Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Language IDEs » Java Development Tools (JDT) » JDT Classpath setup and ServiceLoader
JDT Classpath setup and ServiceLoader [message #1060798] Tue, 28 May 2013 08:55
Benjamin Muskalla is currently offline Benjamin Muskalla
Messages: 338
Registered: July 2009
Senior Member
Hey there,

I'm currently struggling a bit how to best setup a JDT project for the following use-cases:

* should act as a regular Java library (running plain Java and JUnit)
* will be deployed as OSGi bundle (contains manifest, pde nature)
* provides/consumes services with Java ServiceLoader

When running classes/tests from such a project, with a default JDT setup, the classpath will contain only the /bin folder, nothing else.
In order to work with ServiceLoader, you need to provide a file in "META-INF/services/fqn.Interface" which is usually not part of the classpath. Thus, any interaction with ServiceLoader works when packaged as a .jar, but not when running classes/tests inside Eclipse.

Options I've tried out so far:
* adding META-INF as classfolder
Works to get it into the classpath but under the wrong root. ServiceLoader expects to find something in "META-INF/.." while the classfolder feature only works from META-INF/ down.

* Putting the META-INF into the src folder
Works but breaks PDE tooling as it tries to find the MANIFEST within the projects root.

* Put META-INF/MANIFEST.MF in project root, services in src package
Works as the service file is on the classpath, building the jar with Tycho properly merged both folders together. But very confusing as you now deal with two META-INF folders within the same project.

* Add project root as a folder on the classpath in launch config
Works but requires manual setup for each and every launch config. Running unit tests without a manually touching the launch config is impossible.

So essentially I need to put the the project root as-is onto the classpath when launching plain junit tests, not just the bin folder.

Anyone else out there with some ideas how to accomplish such a setup?

Thanks,
Benjamin

(Attached is a minimal project with the same setup)
  • Attachment: spi.zip
    (Size: 4.59KB, Downloaded 38 times)
Previous Topic:Issue with Extension point for action
Next Topic:Please Help Asap!!!
Goto Forum:
  


Current Time: Fri Jul 25 07:37:39 EDT 2014

Powered by FUDForum. Page generated in 0.02245 seconds