|Best practices for p2 with non-RCP applications [message #638360]
||Thu, 11 November 2010 01:50
| S. Forbes
Registered: July 2009
I'm trying to find information on using P2 with non-RCP applications and finding things a little hard.
Any P2 related information I do find appears to be out of date or assumes an RCP application.
We already have an existing web application but it's based on eclipse 3.3 (jetty/servletbridge/equinox/birt) and we'd like to update it to 3.6 and take advantage of the new update mechanism P2 provides.
We do currently use the releng build process to build the plugins and features but form there it's a manual process to update a "deployment" directory that has a pre-built structure for our whole application (which includes a jdk, jetty and the osgi platform)
Basically I'm looking for advice/guidance on best practices for working with a web applications based on equinox/osgi.
As our current "maintenance" process is to email someone a new plugin .jar file, tell them to copy it to the plugins directory and restart the service. That's it.
When we have a big enough change we create a new installer which they run to create a whole new installation and the process starts over again.
Fortunately the configuration for our application is stored in its own directory (database connection info, report designs, etc), so after the re-install it's almost always just a case of copying this to the new installation and they're back to where they were, but this is becoming more complex as we start adding optional components or, even worse, site specific custom bundles.
We want to make life as simple as possible for the administrator who as to perform an update, so ultimately I can tell the site administrator to "run this command at the osgi prompt" or "stop the service and run the updater, then restart" and they'd have the latest bundles for the core features and any optional/custom features they'd installed.
We also want to keep the dropins concept so we can send someone a small bug fix for testing and not force them, and us, to go through a whole build/deploy/update cycle.
And obviously a headless build process too.
I've stumbled onto org.eclipse.equinox.simpleconfigurator, thought "no worries, I just move my startup bundles from config.ini to bundles.info and make sure p2 manages everything".
Then I went to create the bundles.info file and had a look at the one that came with eclipse-3.6 to see what I had to include in it, "mmmm, ok, guess that file needs to be automatically generated by something".
Then I get into a whole world of product files (where everyone appears to assume an rcp application) and exporting from eclipse. Not what I'm after (how do I create a product file without a product definition, servlet bridge starts my platform, not launcher).
I found povbridge.war, http://wiki.eclipse.org/Equinox_p2_Webapp_QuickStart, excellent, looks like it could provide some guidance on what I'm after, except it's over 3 years old, references to org.eclipse.equinox.prov but nothing on p2. Is this another dead end?
Oh boy, am I starting to have a new appreciation for what org.eclipse.update.configurator did for us. Is it time to go back and just use some other updater outside of eclipse?
So here I am, at the P2 forum (with a post that's a little longer, and negative, than what I planned) pleading for advice on where I should be looking. Or at least acknowledgement that I'm not loosing it and this is as hard as it's currently appearing to me.
Powered by FUDForum
. Page generated in 0.01326 seconds