From: Mathieu Baudier Date: Wed, 24 Sep 2008 14:18:43 +0000 (+0000) Subject: Introduce SLC AutoUI Launcher X-Git-Tag: argeo-slc-2.1.7~2570 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=7256f4030f23a5262785b63da5ea8ab7e214823b;p=gpl%2Fargeo-slc.git Introduce SLC AutoUI Launcher git-svn-id: https://svn.argeo.org/slc/trunk@1615 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/org.argeo.slc.autoui.launcher/.classpath b/org.argeo.slc.autoui.launcher/.classpath new file mode 100644 index 000000000..0df7745b3 --- /dev/null +++ b/org.argeo.slc.autoui.launcher/.classpath @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/org.argeo.slc.autoui.launcher/.project b/org.argeo.slc.autoui.launcher/.project new file mode 100644 index 000000000..3417a0f85 --- /dev/null +++ b/org.argeo.slc.autoui.launcher/.project @@ -0,0 +1,23 @@ + + + org.argeo.slc.autoui.launcher + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.maven.ide.eclipse.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.maven.ide.eclipse.maven2Nature + + diff --git a/org.argeo.slc.autoui.launcher/.settings/org.eclipse.jdt.core.prefs b/org.argeo.slc.autoui.launcher/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..8a05e34b1 --- /dev/null +++ b/org.argeo.slc.autoui.launcher/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,12 @@ +#Wed Sep 24 16:02:48 CEST 2008 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.4 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning +org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning +org.eclipse.jdt.core.compiler.source=1.3 diff --git a/org.argeo.slc.autoui.launcher/.settings/org.maven.ide.eclipse.prefs b/org.argeo.slc.autoui.launcher/.settings/org.maven.ide.eclipse.prefs new file mode 100644 index 000000000..a8ec2344f --- /dev/null +++ b/org.argeo.slc.autoui.launcher/.settings/org.maven.ide.eclipse.prefs @@ -0,0 +1,9 @@ +#Wed Sep 24 16:04:14 CEST 2008 +activeProfiles= +eclipse.preferences.version=1 +filterResources=false +includeModules=false +resolveWorkspaceProjects=true +resourceFilterGoals=process-resources resources\:testResources +useMavenFolders=false +version=1 diff --git a/org.argeo.slc.autoui.launcher/pom.xml b/org.argeo.slc.autoui.launcher/pom.xml new file mode 100644 index 000000000..f49c9168d --- /dev/null +++ b/org.argeo.slc.autoui.launcher/pom.xml @@ -0,0 +1,45 @@ + + 4.0.0 + + org.argeo.slc + argeo-slc + 0.10.3-SNAPSHOT + ../org.argeo.slc + + org.argeo.slc.autoui.launcher.launcher + SLC Auto UI Launcher + jar + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.3 + 1.3 + + + + org.apache.maven.plugins + maven-source-plugin + + + + + + org.argeo.slc + org.argeo.slc.autoui + ${project.version} + + + org.argeo.dep.jemmy + org.argeo.dep.jemmy.nb61 + + + org.apache.felix + org.apache.felix.main + + + \ No newline at end of file diff --git a/org.argeo.slc.autoui.launcher/src/main/java/org/argeo/slc/autoui/launcher/Main.java b/org.argeo.slc.autoui.launcher/src/main/java/org/argeo/slc/autoui/launcher/Main.java new file mode 100644 index 000000000..cf5ec3790 --- /dev/null +++ b/org.argeo.slc.autoui.launcher/src/main/java/org/argeo/slc/autoui/launcher/Main.java @@ -0,0 +1,175 @@ +package org.argeo.slc.autoui.launcher; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.List; +import java.util.Properties; +import java.util.Vector; + +import org.apache.felix.framework.Felix; +import org.apache.felix.framework.cache.BundleCache; +import org.apache.felix.main.AutoActivator; +import org.argeo.slc.autoui.AutoUiActivator; +import org.argeo.slc.autoui.AutoUiApplication; +import org.netbeans.jemmy.ClassReference; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceReference; + +public class Main { + + public static void main(String[] args) { + try { + // Start OSGi system + Properties config = prepareConfig(); + Felix felix = startSystem(config); + + // Start UI (in main class loader) + startUi(config); + + // Automate + automateUi(felix.getBundleContext()); + + felix.stop(); + } catch (Exception e) { + e.printStackTrace(); + System.exit(-1); + } + } + + protected static Properties prepareConfig() throws Exception { + final File cachedir = createTemporaryCacheDir(); + + // Load config + Properties config = new Properties(); + InputStream in = null; + ; + try { + in = Main.class + .getResourceAsStream("/org/argeo/slc/autoui/launcher/felix.properties"); + config.load(in); + } finally { + if (in != null) + in.close(); + } + + // Perform variable substitution for system properties. + for (Enumeration e = config.propertyNames(); e.hasMoreElements();) { + String name = (String) e.nextElement(); + config.setProperty(name, org.apache.felix.main.Main.substVars( + config.getProperty(name), name, null, config)); + } + + config.put(BundleCache.CACHE_PROFILE_DIR_PROP, cachedir + .getAbsolutePath()); + + return config; + } + + protected static File createTemporaryCacheDir() throws IOException { + // Create a temporary bundle cache directory and + // make sure to clean it up on exit. + final File cachedir = File.createTempFile("argeo.slc.autoui", null); + cachedir.delete(); + Runtime.getRuntime().addShutdownHook(new Thread() { + public void run() { + deleteFileOrDir(cachedir); + } + }); + return cachedir; + } + + public static Felix startSystem(Properties config) throws Exception { + // Create list to hold custom framework activators. + List list = new ArrayList(); + // Add activator to process auto-start/install properties. + list.add(new AutoActivator(config)); + // Add our own activator. + list.add(new AutoUiActivator()); + + // Now create an instance of the framework. + Felix felix = new Felix(config, list); + felix.start(); + + return felix; + } + + public static void startUi(Properties config) throws Exception { + String className = config.getProperty("argeo.scl.autoui.uiclass"); + String[] uiArgs = readArgumentsFromLine(config.getProperty( + "argeo.slc.autoui.uiargs", "")); + ClassReference classReference = new ClassReference(className); + classReference.startApplication(uiArgs); + } + + protected static void automateUi(BundleContext context) throws Exception { + // Retrieve service and execute it + ServiceReference ref = context + .getServiceReference("org.argeo.slc.autoui.AutoUiApplication"); + Object service = context.getService(ref); + AutoUiActivator.stdOut("service.class=" + service.getClass()); + AutoUiApplication app = (AutoUiApplication) service; + app.execute(null); + } + + /* UTILITIES */ + + /** + * Transform a line into an array of arguments, taking "" as single + * arguments. (nested \" are not supported) + */ + private static String[] readArgumentsFromLine(String lineOrig) { + + String line = lineOrig.trim();// remove trailing spaces + // System.out.println("line=" + line); + List args = new Vector(); + StringBuffer curr = new StringBuffer(""); + boolean inQuote = false; + char[] arr = line.toCharArray(); + for (int i = 0; i < arr.length; i++) { + char c = arr[i]; + switch (c) { + case '\"': + inQuote = !inQuote; + break; + case ' ': + if (!inQuote) {// otherwise, no break: goes to default + if (curr.length() > 0) { + args.add(curr.toString()); + curr = new StringBuffer(""); + } + break; + } + default: + curr.append(c); + break; + } + } + + // Add last arg + if (curr.length() > 0) { + args.add(curr.toString()); + curr = null; + } + + String[] res = new String[args.size()]; + for (int i = 0; i < args.size(); i++) { + res[i] = args.get(i).toString(); + // System.out.println("res[i]=" + res[i]); + } + return res; + } + + private static void deleteFileOrDir(File file) { + if (file.isDirectory()) { + File[] childs = file.listFiles(); + for (int i = 0; i < childs.length; i++) { + deleteFileOrDir(childs[i]); + } + } + file.delete(); + } + +} diff --git a/org.argeo.slc.autoui.launcher/src/main/resources/org/argeo/slc/autoui/launcher/felix.properties b/org.argeo.slc.autoui.launcher/src/main/resources/org/argeo/slc/autoui/launcher/felix.properties new file mode 100644 index 000000000..4d2157af2 --- /dev/null +++ b/org.argeo.slc.autoui.launcher/src/main/resources/org/argeo/slc/autoui/launcher/felix.properties @@ -0,0 +1,476 @@ + +# Argeo Specific Context Properties +argeo.slc.mavenBase=file:/home/mbaudier/.m2/repository/ + +argeo.scl.autoui.uiclass=org.argeo.slc.testui.SwingTestUi +argeo.slc.autoui.uiargs=noExitOnClose + +# +# Framework config properties. +# +org.osgi.framework.system.packages=org.osgi.framework; version=1.4.0, \ + org.osgi.service.packageadmin; version=1.2.0, \ + org.osgi.service.startlevel; version=1.1.0, \ + org.osgi.service.url; version=1.0.0, \ + org.osgi.util.tracker; version=1.3.3, \ + org.argeo.slc.autoui; version=0.10.3.SNAPSHOT, \ + org.argeo.slc.testui \ + ${jre-${java.specification.version}} + +#org.osgi.framework.bootdelegation=sun.*,com.sun.* +#felix.cache.profile=foo +#felix.auto.start.1= \ +# file:bundle/org.apache.felix.shell-1.0.2.jar \ +# file:bundle/org.apache.felix.shell.tui-1.0.2.jar \ +# file:bundle/org.apache.felix.bundlerepository-1.2.0.jar + +felix.auto.start.1= \ + ${argeo.slc.mavenBase}org/apache/felix/org.apache.felix.shell/1.0.2/org.apache.felix.shell-1.0.2.jar \ + ${argeo.slc.mavenBase}org/apache/felix/org.apache.felix.shell.tui/1.0.2/org.apache.felix.shell.tui-1.0.2.jar \ + ${argeo.slc.mavenBase}org/argeo/dep/jemmy/org.argeo.dep.jemmy.nb61/0.2.1-SNAPSHOT/org.argeo.dep.jemmy.nb61-0.2.1-SNAPSHOT.jar \ + ${argeo.slc.mavenBase}org/argeo/slc/sandbox/org.argeo.slc.sandbox.jemmytest/0.1.1-SNAPSHOT/org.argeo.slc.sandbox.jemmytest-0.1.1-SNAPSHOT.jar" + + +felix.log.level=1 +felix.startlevel.framework=1 +felix.startlevel.bundle=1 +#felix.service.urlhandlers=false + +# +# Bundle config properties. +# +org.osgi.service.http.port=8080 +osgi.shell.telnet=on +obr.repository.url=http://felix.apache.org/obr/releases.xml + + +# +# Java platform package export properties. +# +jre-1.3=, \ + javax.accessibility; \ + javax.naming; \ + javax.naming.directory; \ + javax.naming.event; \ + javax.naming.ldap; \ + javax.naming.spi; \ + javax.rmi; \ + javax.rmi.CORBA; \ + javax.sound.midi; \ + javax.sound.midi.spi; \ + javax.sound.sampled; \ + javax.sound.sampled.spi; \ + javax.swing; \ + javax.swing.border; \ + javax.swing.colorchooser; \ + javax.swing.event; \ + javax.swing.filechooser; \ + javax.swing.plaf; \ + javax.swing.plaf.basic; \ + javax.swing.plaf.metal; \ + javax.swing.plaf.multi; \ + javax.swing.table; \ + javax.swing.text; \ + javax.swing.text.html; \ + javax.swing.text.html.parser; \ + javax.swing.text.rtf; \ + javax.swing.tree; \ + javax.swing.undo; \ + javax.transaction; \ + org.omg.CORBA; \ + org.omg.CORBA_2_3; \ + org.omg.CORBA_2_3.portable; \ + org.omg.CORBA.DynAnyPackage; \ + org.omg.CORBA.ORBPackage; \ + org.omg.CORBA.portable; \ + org.omg.CORBA.TypeCodePackage; \ + org.omg.CosNaming; \ + org.omg.CosNaming.NamingContextPackage; \ + org.omg.SendingContext; \ + org.omg.stub.java.rmi; \ + version="1.3.0" + +jre-1.4=, \ + javax.accessibility; \ + javax.crypto; \ + javax.crypto.interfaces; \ + javax.crypto.spec; \ + javax.imageio; \ + javax.imageio.event; \ + javax.imageio.metadata; \ + javax.imageio.plugins.jpeg; \ + javax.imageio.spi; \ + javax.imageio.stream; \ + javax.naming; \ + javax.naming.directory; \ + javax.naming.event; \ + javax.naming.ldap; \ + javax.naming.spi; \ + javax.net; \ + javax.net.ssl; \ + javax.print; \ + javax.print.attribute; \ + javax.print.attribute.standard; \ + javax.print.event; \ + javax.rmi; \ + javax.rmi.CORBA; \ + javax.security.auth; \ + javax.security.auth.callback; \ + javax.security.auth.kerberos; \ + javax.security.auth.login; \ + javax.security.auth.spi; \ + javax.security.auth.x500; \ + javax.sound.midi; \ + javax.sound.midi.spi; \ + javax.sound.sampled; \ + javax.sound.sampled.spi; \ + javax.sql; \ + javax.swing; \ + javax.swing.border; \ + javax.swing.colorchooser; \ + javax.swing.event; \ + javax.swing.filechooser; \ + javax.swing.plaf; \ + javax.swing.plaf.basic; \ + javax.swing.plaf.metal; \ + javax.swing.plaf.multi; \ + javax.swing.table; \ + javax.swing.text; \ + javax.swing.text.html; \ + javax.swing.text.html.parser; \ + javax.swing.text.rtf; \ + javax.swing.tree; \ + javax.swing.undo; \ + javax.transaction; \ + javax.transaction.xa; \ + javax.xml.parsers; \ + javax.xml.transform; \ + javax.xml.transform.dom; \ + javax.xml.transform.sax; \ + javax.xml.transform.stream; \ + org.ietf.jgss; \ + org.omg.CORBA; \ + org.omg.CORBA_2_3; \ + org.omg.CORBA_2_3.portable; \ + org.omg.CORBA.DynAnyPackage; \ + org.omg.CORBA.ORBPackage; \ + org.omg.CORBA.portable; \ + org.omg.CORBA.TypeCodePackage; \ + org.omg.CosNaming; \ + org.omg.CosNaming.NamingContextExtPackage; \ + org.omg.CosNaming.NamingContextPackage; \ + org.omg.Dynamic; \ + org.omg.DynamicAny; \ + org.omg.DynamicAny.DynAnyFactoryPackage; \ + org.omg.DynamicAny.DynAnyPackage; \ + org.omg.IOP; \ + org.omg.IOP.CodecFactoryPackage; \ + org.omg.IOP.CodecPackage; \ + org.omg.Messaging; \ + org.omg.PortableInterceptor; \ + org.omg.PortableInterceptor.ORBInitInfoPackage; \ + org.omg.PortableServer; \ + org.omg.PortableServer.CurrentPackage; \ + org.omg.PortableServer.POAManagerPackage; \ + org.omg.PortableServer.POAPackage; \ + org.omg.PortableServer.portable; \ + org.omg.PortableServer.ServantLocatorPackage; \ + org.omg.SendingContext; \ + org.omg.stub.java.rmi; \ + org.w3c.dom; \ + org.w3c.dom.css; \ + org.w3c.dom.events; \ + org.w3c.dom.html; \ + org.w3c.dom.stylesheets; \ + org.w3c.dom.traversal; \ + org.w3c.dom.views; \ + org.xml.sax; \ + org.xml.sax.ext; \ + org.xml.sax.helpers; \ + version="1.4.0" + +jre-1.5=, \ + javax.accessibility; \ + javax.activity; \ + javax.crypto; \ + javax.crypto.interfaces; \ + javax.crypto.spec; \ + javax.imageio; \ + javax.imageio.event; \ + javax.imageio.metadata; \ + javax.imageio.plugins.bmp; \ + javax.imageio.plugins.jpeg; \ + javax.imageio.spi; \ + javax.imageio.stream; \ + javax.management; \ + javax.management.loading; \ + javax.management.modelmbean; \ + javax.management.monitor; \ + javax.management.openmbean; \ + javax.management.relation; \ + javax.management.remote; \ + javax.management.remote.rmi; \ + javax.management.timer; \ + javax.naming; \ + javax.naming.directory; \ + javax.naming.event; \ + javax.naming.ldap; \ + javax.naming.spi; \ + javax.net; \ + javax.net.ssl; \ + javax.print; \ + javax.print.attribute; \ + javax.print.attribute.standard; \ + javax.print.event; \ + javax.rmi; \ + javax.rmi.CORBA; \ + javax.rmi.ssl; \ + javax.security.auth; \ + javax.security.auth.callback; \ + javax.security.auth.kerberos; \ + javax.security.auth.login; \ + javax.security.auth.spi; \ + javax.security.auth.x500; \ + javax.security.sasl; \ + javax.sound.midi; \ + javax.sound.midi.spi; \ + javax.sound.sampled; \ + javax.sound.sampled.spi; \ + javax.sql; \ + javax.sql.rowset; \ + javax.sql.rowset.serial; \ + javax.sql.rowset.spi; \ + javax.swing; \ + javax.swing.border; \ + javax.swing.colorchooser; \ + javax.swing.event; \ + javax.swing.filechooser; \ + javax.swing.plaf; \ + javax.swing.plaf.basic; \ + javax.swing.plaf.metal; \ + javax.swing.plaf.multi; \ + javax.swing.plaf.synth; \ + javax.swing.table; \ + javax.swing.text; \ + javax.swing.text.html; \ + javax.swing.text.html.parser; \ + javax.swing.text.rtf; \ + javax.swing.tree; \ + javax.swing.undo; \ + javax.transaction; \ + javax.transaction.xa; \ + javax.xml; \ + javax.xml.datatype; \ + javax.xml.namespace; \ + javax.xml.parsers; \ + javax.xml.transform; \ + javax.xml.transform.dom; \ + javax.xml.transform.sax; \ + javax.xml.transform.stream; \ + javax.xml.validation; \ + javax.xml.xpath; \ + org.ietf.jgss; \ + org.omg.CORBA; \ + org.omg.CORBA_2_3; \ + org.omg.CORBA_2_3.portable; \ + org.omg.CORBA.DynAnyPackage; \ + org.omg.CORBA.ORBPackage; \ + org.omg.CORBA.portable; \ + org.omg.CORBA.TypeCodePackage; \ + org.omg.CosNaming; \ + org.omg.CosNaming.NamingContextExtPackage; \ + org.omg.CosNaming.NamingContextPackage; \ + org.omg.Dynamic; \ + org.omg.DynamicAny; \ + org.omg.DynamicAny.DynAnyFactoryPackage; \ + org.omg.DynamicAny.DynAnyPackage; \ + org.omg.IOP; \ + org.omg.IOP.CodecFactoryPackage; \ + org.omg.IOP.CodecPackage; \ + org.omg.Messaging; \ + org.omg.PortableInterceptor; \ + org.omg.PortableInterceptor.ORBInitInfoPackage; \ + org.omg.PortableServer; \ + org.omg.PortableServer.CurrentPackage; \ + org.omg.PortableServer.POAManagerPackage; \ + org.omg.PortableServer.POAPackage; \ + org.omg.PortableServer.portable; \ + org.omg.PortableServer.ServantLocatorPackage; \ + org.omg.SendingContext; \ + org.omg.stub.java.rmi; \ + org.omg.stub.javax.management.remote.rmi; \ + org.w3c.dom; \ + org.w3c.dom.bootstrap; \ + org.w3c.dom.css; \ + org.w3c.dom.events; \ + org.w3c.dom.html; \ + org.w3c.dom.ls; \ + org.w3c.dom.ranges; \ + org.w3c.dom.stylesheets; \ + org.w3c.dom.traversal; \ + org.w3c.dom.views; \ + org.xml.sax; \ + org.xml.sax.ext; \ + org.xml.sax.helpers; \ + version="1.5.0" + +jre-1.6=, \ + javax.accessibility; \ + javax.activation; \ + javax.activity; \ + javax.annotation; \ + javax.annotation.processing; \ + javax.crypto; \ + javax.crypto.interfaces; \ + javax.crypto.spec; \ + javax.imageio; \ + javax.imageio.event; \ + javax.imageio.metadata; \ + javax.imageio.plugins.bmp; \ + javax.imageio.plugins.jpeg; \ + javax.imageio.spi; \ + javax.imageio.stream; \ + javax.jws; \ + javax.jws.soap; \ + javax.lang.model; \ + javax.lang.model.element; \ + javax.lang.model.type; \ + javax.lang.model.util; \ + javax.management; \ + javax.management.loading; \ + javax.management.modelmbean; \ + javax.management.monitor; \ + javax.management.openmbean; \ + javax.management.relation; \ + javax.management.remote; \ + javax.management.remote.rmi; \ + javax.management.timer; \ + javax.naming; \ + javax.naming.directory; \ + javax.naming.event; \ + javax.naming.ldap; \ + javax.naming.spi; \ + javax.net; \ + javax.net.ssl; \ + javax.print; \ + javax.print.attribute; \ + javax.print.attribute.standard; \ + javax.print.event; \ + javax.rmi; \ + javax.rmi.CORBA; \ + javax.rmi.ssl; \ + javax.script; \ + javax.security.auth; \ + javax.security.auth.callback; \ + javax.security.auth.kerberos; \ + javax.security.auth.login; \ + javax.security.auth.spi; \ + javax.security.auth.x500; \ + javax.security.cert; \ + javax.security.sasl; \ + javax.sound.midi; \ + javax.sound.midi.spi; \ + javax.sound.sampled; \ + javax.sound.sampled.spi; \ + javax.sql; \ + javax.sql.rowset; \ + javax.sql.rowset.serial; \ + javax.sql.rowset.spi; \ + javax.swing; \ + javax.swing.border; \ + javax.swing.colorchooser; \ + javax.swing.event; \ + javax.swing.filechooser; \ + javax.swing.plaf; \ + javax.swing.plaf.basic; \ + javax.swing.plaf.metal; \ + javax.swing.plaf.multi; \ + javax.swing.plaf.synth; \ + javax.swing.table; \ + javax.swing.text; \ + javax.swing.text.html; \ + javax.swing.text.html.parser; \ + javax.swing.text.rtf; \ + javax.swing.tree; \ + javax.swing.undo; \ + javax.tools; \ + javax.transaction; \ + javax.transaction.xa; \ + javax.xml; \ + javax.xml.bind; \ + javax.xml.bind.annotation; \ + javax.xml.bind.annotation.adapters; \ + javax.xml.bind.attachment; \ + javax.xml.bind.helpers; \ + javax.xml.bind.util; \ + javax.xml.crypto; \ + javax.xml.crypto.dom; \ + javax.xml.crypto.dsig; \ + javax.xml.crypto.dsig.dom; \ + javax.xml.crypto.dsig.keyinfo; \ + javax.xml.crypto.dsig.spec; \ + javax.xml.datatype; \ + javax.xml.namespace; \ + javax.xml.parsers; \ + javax.xml.soap; \ + javax.xml.stream; \ + javax.xml.stream.events; \ + javax.xml.stream.util; \ + javax.xml.transform; \ + javax.xml.transform.dom; \ + javax.xml.transform.sax; \ + javax.xml.transform.stax; \ + javax.xml.transform.stream; \ + javax.xml.validation; \ + javax.xml.ws; \ + javax.xml.ws.handler; \ + javax.xml.ws.handler.soap; \ + javax.xml.ws.http; \ + javax.xml.ws.soap; \ + javax.xml.ws.spi; \ + javax.xml.xpath; \ + org.ietf.jgss; \ + org.omg.CORBA; \ + org.omg.CORBA_2_3; \ + org.omg.CORBA_2_3.portable; \ + org.omg.CORBA.DynAnyPackage; \ + org.omg.CORBA.ORBPackage; \ + org.omg.CORBA.portable; \ + org.omg.CORBA.TypeCodePackage; \ + org.omg.CosNaming; \ + org.omg.CosNaming.NamingContextExtPackage; \ + org.omg.CosNaming.NamingContextPackage; \ + org.omg.Dynamic; \ + org.omg.DynamicAny; \ + org.omg.DynamicAny.DynAnyFactoryPackage; \ + org.omg.DynamicAny.DynAnyPackage; \ + org.omg.IOP; \ + org.omg.IOP.CodecFactoryPackage; \ + org.omg.IOP.CodecPackage; \ + org.omg.Messaging; \ + org.omg.PortableInterceptor; \ + org.omg.PortableInterceptor.ORBInitInfoPackage; \ + org.omg.PortableServer; \ + org.omg.PortableServer.CurrentPackage; \ + org.omg.PortableServer.POAManagerPackage; \ + org.omg.PortableServer.POAPackage; \ + org.omg.PortableServer.portable; \ + org.omg.PortableServer.ServantLocatorPackage; \ + org.omg.SendingContext; \ + org.omg.stub.java.rmi; \ + org.omg.stub.javax.management.remote.rmi; \ + org.w3c.dom; \ + org.w3c.dom.bootstrap; \ + org.w3c.dom.css; \ + org.w3c.dom.events; \ + org.w3c.dom.html; \ + org.w3c.dom.ls; \ + org.w3c.dom.ranges; \ + org.w3c.dom.stylesheets; \ + org.w3c.dom.traversal; \ + org.w3c.dom.views; \ + org.w3c.dom.xpath; \ + org.xml.sax; \ + org.xml.sax.ext; \ + org.xml.sax.helpers; \ + version=\"1.6.0\"