Project: springxd
Issue XD-841: Create a packaging model for custom modules
Like just discussed after the Spring One session, it would be nice to have a packaging model for custom modules. Instead of putting all libs in one directory and an XML in another, it could be a fat jar including some metadata file pointing to either an XML or to a JavaConfig configuration class inside the jar. Some more words why I think it's important to have something like that: Spring XD can be very well used in the enterprise, and at least for job modules it's likely to have some dependencies. So what do you have to do now to deploy such a module? Build a jar with your build process, then get it from your repository, unpack it and somehow find the relevant XML to copy it into the appropriate folder, then inspect the POM to find out what all the dependencies are, direct and transient, and get them from your repository to copy them into the appropriate folder. And of course, copy the jar. And when using Spring XD in distributed mode, you have to do it several times. With the approach mentioned above you just build your fat jar with your build process and distribute it to all your nodes, nothing complicated. And if you implement it like that it's easy to have a JavaConfig support that's almost the same.
Story points: 9