Database structure management
The database structure can now be created and upgraded from the web application itself (see #7).
This also brings up a situation were we want to upgrade the database structure in the future, instead of just re-creating it.
OSGi R5 repository index
Yes, Package Drone can now not only provide a P2 index, but also the more OSGi conformant R5 XML index format (see #8). Direct you browser / tool to http://localhost:8080/r5/channel and you will get an XML index which can be used e.g. with Bndtools.
This allows one to:
- Build with Tycho -> use from Bndtools (or other OSGi R5 repository tools)
And of course a few other scenarios which are supported with Bndtools in a different way (Maven Repo -> use from Bndtools). Also see OSGi use cases.
Automatically create source bundles
Eclipse uses a special bundle format in OSGi in order to assign source code to bundles. If such a source bundle is found by Eclipse PDE for an OSGi bundle, then the source code will automatically attached and can be used in debugging and developing.
However Maven uses a different kind of source attachment.
Package drone now allows one to attach sub-artifacts to parent and this can now be used to attach a source attachment from maven, to an OSGi bundle (which can also come from maven) and package drone will automatically create a source bundle when the "Eclipse Source Bundle" aspect is installed in the channel.
Of course the source bundle will also be processed like a normal artifact and P2 metadata can be generated, so that the source bundle will be available using P2.
When it comes to deployment and running package drone, there is still a lot of work to do (like upstart or systemd integration). However the situation has improved a little bit, since there is now a start script (
server), which will wrap up the actual java call. So as long as you have
java on your path (version 8) or define
JAVA_HOME, it should be a bit easier now to start package drone.
Under the hood
Added attached artifacts
Each stored artifact allows one to attach "child artifacts". This can be used for maven attachments like sources or javadoc. Attached artifacts can be deleted like normal artifacts. And will automatically be deleted one the parent is deleted. Otherwise the will be processed like all other artifacts.
This was added in order to implement #5, but I guess there will be a few more use cases for this in the future.
- Weaving seems to be working now. However, every now and then it again fails when run from the IDE. It helps to clear the configuration area. But this was never observed when running from the command line
- A lot of minor issues have been solved
Known bugs and limitation
- Sometimes weaving breaks in the IDE, need to investigate further
- Caching in Eclipse Link had to to be completely disabled
- Several important queries still suffer from "n+1 select" problems
- And there will be lots of other limitations and missing features as well