Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

COSMOS SDD Runtime P2 Review

Revision as of 13:59, 26 February 2008 by Jeff.Hamm.sas.com (Talk | contribs)

The SDD Runtime team took a week to do a deep dive into the framework called Equinox P2, which is part of the [http://wiki.eclipse.org/Equinox/ Equinox Project under Eclipse.


Goals

The main goals of the investigation was to determine where in the process the p2 framework was, and to get an understanding of the overall architecture of the framework. High level discussions had pointed to the architecture following the same constructs that the SDD schema and profile is trying to solve, but using different terminology.

Background

The existence of the p2 framework is not new information to the COSMOS teams. In fact, there is documented information on the p2/SDD alignment work that defines the terminology of SDD and how it is represented in p2. To see these differences, see xxxx.

Approach

The approach the COSMOS Runtime team took was to divide and conquer. With several "Getting Started" guides on the Equinox Wiki, we each took a guide and attempted to get something built based on the information provided.

Getting Started for Developers

For the Getting Started for Developers guide, we started by following the provided documentation and were met with little success. Retrieving the code and building in an Eclipse 3.3 (Europa) environment was proving fatal as the p2 code was relying on libraries developed for the 3.4 (Ganamede). The latest stable build of 3.4 is the M5 build. Once 3.4M5 was downloaded, the code was reloaded and recompiled and we started moving into running the steps defined in the guide. The first step of running the Metadata Generator SDK was successful and repository and archive data was generated. We have no way of knowing if the data that is generated is the correct data so we proceeded to the next step.

The next step was to run the director app code, which is supposed to take the metadata directories created in the first step using the generator and make a application area that can be run. Invoking the director app proved troublesome as it would not run and threw the following error.

       osgi> !SESSION 2008-02-21 12:35:51.494
       -----------------------------------------------
       eclipse.buildId=unknown
       java.version=1.5.0_12
       java.vendor=Sun Microsystems Inc.
       BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US Framework 
       arguments:  -application org.eclipse.equinox.p2.director.app.application -metadataRepository file:C:\equinox.p2\servers\ -artifactRepository file:C:\equinox.p2\servers\-installIU sdk -destination C:\equinox.p2\eclipseApp\ -flavor tooling -profile foo 
       Command-line arguments:  -dev file:C:/jehamm/dev/open_source/.metadata/.plugins/org.eclipse.pde.core/directorapp/dev.properties  
       console -consolelog -application org.eclipse.equinox.p2.director.app.application -metadataRepository file:C:\equinox.p2\servers\ -artifactRepository file:C:\equinox.p2\servers\ -installIU sdk -destination C:\equinox.p2\eclipseApp\ -flavor tooling -profile foo
       !ENTRY org.eclipse.osgi 4 0 2008-02-21 12:35:52.212 !MESSAGE 
       Application error !STACK 1
       java.lang.IllegalStateException: Unable to acquire application service.
       Ensure that the org.eclipse.core.runtime bundle is resolved and started (see config.ini).
       at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:72)
       at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:362)
       at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:175)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
       at java.lang.reflect.Method.invoke(Unknown Source)
       atorg.eclipse.equinox.launcher.Main.invokeFramework(Main.java:564)
       at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
       at org.eclipse.equinox.launcher.Main.run(Main.java:1251)
       at org.eclipse.equinox.launcher.Main.main(Main.java:1227)


After getting this error an email was sent to the equinox-dev group requesting any help regarding this error. In the meantime, some time spent searching through the p2 dev mailing turned up some things to try to correct the problem but nothing worked. After a couple of iterations over email though various individuals we were never able to get past the first step in the Getting Started For Developers Guide.

Webapp QuickStart

In addition to working through the developers guide, we also tackled the WebApp Quick Start guide. This quick start is designed to show how to use the p2 framework to deploy an existing war file into a Tomcat or JBoss application thus provisioning some new jsp files.

To start this investigation, we used an instance of JBoss and downloaded and installed

Getting Started

In addition to working through the developers guide, we simultaneously tackled the Getting Started guide.

Summary

Latest ( 2/26/2008 )

The source code for the p2 project has been relocated from its CVS repository into a new location. The new code location is /cvsroot/eclipse/org.eclipse.equinox/p2/. To get the new code and start afresh, I have removed all of the original code and started with a clean build. I have successfully been able to run both the Metadata Generator SDK and the director app and have created a working Eclipse Application as advertised in the Getting Started for Developers Guide. Now to figure out what all of this really means....

Back to the top