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

Difference between revisions of "EclipseLink/Examples/DBWS/AdvancedOSGi"

(Modifying Activator to implement javax.xml.ws.Provider)
(Modifying Activator to implement javax.xml.ws.Provider)
Line 69: Line 69:
 
=== Modifying Activator to implement <code>javax.xml.ws.Provider</code> ===
 
=== Modifying Activator to implement <code>javax.xml.ws.Provider</code> ===
 
In order for our Activator to 'provide' Web service, we need to update the EclipseLink bundles. Builds after
 
In order for our Activator to 'provide' Web service, we need to update the EclipseLink bundles. Builds after
<tt>2.1.1.v20100805-r7986</tt> have EclipseLink DBWS packages as a 'fragment' bundle that extends the core
+
<tt>2.1.1.v20100805-r7986</tt> have EclipseLink DBWS packaged as a 'fragment' bundle that extends the core
 
<code>org.eclipse.persistence</code> bundle. Download the updated [http://www.eclipse.org/downloads/download.php?file=/rt/eclipselink/nightly/2.1.1/20100805/eclipselink-plugins-2.1.1.v20100805-r7986.zip bundles] and extract the following 6 bundles:
 
<code>org.eclipse.persistence</code> bundle. Download the updated [http://www.eclipse.org/downloads/download.php?file=/rt/eclipselink/nightly/2.1.1/20100805/eclipselink-plugins-2.1.1.v20100805-r7986.zip bundles] and extract the following 6 bundles:
 
directory:
 
directory:

Revision as of 16:14, 11 August 2010


DBWS in an OSGi Environment

An Eclipselink DBWS service can be run in an OSGi environment using Javase 6's 'containerless' javax.xml.ws.Endpoint API.

Environment Setup

Download a version of the Eclipse IDE that includes the Plug-in Development Environment (PDE) (Eclipse IDE for Java EE Developers, Eclipse Classic 3.6.0 or
Eclipse for RCP and RAP Developers). Install an OSGi-friendly JDBC driver - use Derby bundle:

  • Download Apache Derby (org.apache.derby) bundle from Orbit.


EclipseLinkExamplesOSGiDeveloping with EclipseLink OSGi in PDE-2v2.png

  • Place the org.apache.derby bundle into your $ECLIPSE_HOME/dropins folder.
  • Install the EclipseLink and Jetty target Components:


EclipseLink DBWS with OSGi in PDE.png

EclipseLink DBWS with OSGi in PDE2.png
Accept the license and proceed through the prompts for re-starting Eclipse ...
{NB - later, a set of updated EclipseLink bundles will be required}
Under 'Preferences' -> 'Plug-in Development' -> 'Target Platform', reload the Running Platform (Active) EclipseLink DBWS with OSGi Target Platform.png

Create a new Plug-in project

From the 'Plug-in Development' Perspective, create a new Plug-in project SimpleTable:
{Note the choice of 'standard' for OSGi framework}
EclipseLink DBWS with OSGi SimpleTable.png
Proceed to the next panel of the wizard where the (OSGi bundle) Activator for SimpleTable is defined:
EclipseLink DBWS with OSGi SimpleTableActivator.png
Click 'Finish' and open the generated Activator:

package simpletable;
 
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
 
public class Activator implements BundleActivator {
 
	private static BundleContext context;
 
	static BundleContext getContext() {
		return context;
	}
 
	/*
	 * (non-Javadoc)
	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
	 */
	public void start(BundleContext bundleContext) throws Exception {
		Activator.context = bundleContext;
	}
 
	/*
	 * (non-Javadoc)
	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
	 */
	public void stop(BundleContext bundleContext) throws Exception {
		Activator.context = null;
	}
}

Modifying Activator to implement javax.xml.ws.Provider

In order for our Activator to 'provide' Web service, we need to update the EclipseLink bundles. Builds after 2.1.1.v20100805-r7986 have EclipseLink DBWS packaged as a 'fragment' bundle that extends the core org.eclipse.persistence bundle. Download the updated bundles and extract the following 6 bundles: directory:

$ ls updatedBundles/
org.eclipse.persistence.asm.source_2.1.1.v20100805-r7986.jar
org.eclipse.persistence.asm_2.1.1.v20100805-r7986.jar
org.eclipse.persistence.core.source_2.1.1.v20100805-r7986.jar
org.eclipse.persistence.core_2.1.1.v20100805-r7986.jar
org.eclipse.persistence.dbws.source_2.1.1.v20100805-r7986.jar
org.eclipse.persistence.dbws_2.1.1.v20100805-r7986.jar

Edit the Target Platform, adding the directory with the above bundles:
EclipseLink DBWS with OSGi UpdatedBundles1.png
EclipseLink DBWS with OSGi UpdatedBundles2.png

Back to the top