First let me preface this question by stating that I'm very much an Ant newbie.
I have a Java application that was designed to provide the ability to "plug in" a message transport mechanism (e.g. ActiveMQ) for a given client installation. The code defines interfaces for the transport and then there are a number of implementations that conform to the interfaces, providing concrete implementations of the transports we support. The idea is that a given client will indicate the transport they want/need to use and we will provide them with a build that includes only the classes for the chosen implementation. No other transport implementations should be included. The reasons for this are to keep code size down and for 3rd party licensing issues. How do you set up an Ant build file to customize the jar file produced so that it only includes a subset of the transport implementations? Obviously I need to somehow get the transport selection into the build file so that it has the info it needs. From what I've read, you have to use properties to get input arguments into the script. Beyond that, I am at a loss as to what to do next. I'll provide a brief package hierarchy to illustrate what is located where. If it makes sense to restructure this in some way, please let me know. <base package>.impl config TransportConfig.java <- Used to unmarshal a file used to configure the transport transport impl <- Where the supported transport implementations live dds.rti jms.activemq udp <transportX> <other packages and classes> <other packages and classes> <base package>.service TransportFactoryLoader.java <- Uses a ServiceLoader to load a transport factory (currently set up in build file) <base package>.transport <- Contains the interfaces the transports must implement <transport interfaces> So, as an example, client A will be using ActiveMQ. We want to run the build so that only the <base package>.impl.transport.impl.jms.activemq classes are included, but nothing from the rti.dds, udp, etc. packages are included. I've tried to find information in this area, but have found nothing helps. I am open to any suggestions and ideas about how to go about this. Thanks, Joe Gagnon Engineer II Group 58 - Cyber Systems & Technology MIT Lincoln Laboratory Lexington, MA
smime.p7s
Description: S/MIME cryptographic signature