First functioning version of Jemmy tests with OSGi
authorMathieu Baudier <mbaudier@argeo.org>
Sun, 21 Sep 2008 12:52:33 +0000 (12:52 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Sun, 21 Sep 2008 12:52:33 +0000 (12:52 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@1604 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

org.argeo.slc.autoui/.classpath
org.argeo.slc.autoui/src/main/java/org/argeo/slc/autoui/Main.java
org.argeo.slc.autoui/src/main/resources/org/argeo/slc/autoui/felix.properties [new file with mode: 0644]

index e39ef13f19e68dae9dd2618af40c487bb125b02e..a66a6162845bd5dbd1fb8adb3fb52ed0d88497a6 100644 (file)
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
        <classpathentry kind="src" path="src/main/java"/>
+       <classpathentry kind="src" path="src/main/resources"/>
        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.3"/>
        <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
        <classpathentry kind="output" path="bin"/>
index 638ba01deb058820c22ce5693c20e69ee2a7b34f..735cb1fdfdae82ad30d407247648df0883ef1ad9 100644 (file)
 package org.argeo.slc.autoui;
 
 import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Enumeration;
 import java.util.List;
-import java.util.Map;
+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.framework.util.FelixConstants;
-import org.apache.felix.framework.util.StringMap;
 import org.apache.felix.main.AutoActivator;
 import org.netbeans.jemmy.ClassReference;
 import org.osgi.framework.BundleContext;
-import org.osgi.framework.Constants;
 import org.osgi.framework.ServiceReference;
 
 public class Main {
+       private final Felix felix;
+       private final BundleContext context;
+
+       public Main(Felix felix) {
+               this.felix = felix;
+               context = felix.getBundleContext();
+       }
+
+       public Felix getFelix() {
+               return felix;
+       }
+
+       public BundleContext getContext() {
+               return context;
+       }
 
-       /**
-        * @param args
-        */
        public static void main(String[] args) {
                try {
-                       // Create a temporary bundle cache directory and
-                       // make sure to clean it up on exit.
-                       final File cachedir = File.createTempFile(
-                                       "felix.example.servicebased", null);
-                       cachedir.delete();
-                       Runtime.getRuntime().addShutdownHook(new Thread() {
-                               public void run() {
-                                       deleteFileOrDir(cachedir);
-                               }
-                       });
-
-                       String mavenBase = "file:/home/mbaudier/.m2/repository/";
-                       String uiPackage = "org.argeo.slc.testui";
-                       Map configMap = new StringMap(false);
-                       configMap
-                                       .put(
-                                                       Constants.FRAMEWORK_SYSTEMPACKAGES,
-                                                       "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.apache.felix.example.servicebased.host.service; version=1.0.0,"*/
-                                                                       + "org.argeo.slc.autoui; version=0.10.3.SNAPSHOT,"
-                                                                       + uiPackage+","
-                                                                       + "javax.swing");
-                       configMap
-                                       .put(
-                                                       AutoActivator.AUTO_START_PROP + ".1",
-                                                       mavenBase
-                                                                       + "org/apache/felix/org.apache.felix.shell/1.0.2/org.apache.felix.shell-1.0.2.jar "
-                                                                       + mavenBase
-                                                                       + "org/apache/felix/org.apache.felix.shell.tui/1.0.2/org.apache.felix.shell.tui-1.0.2.jar "
-                                                                       + mavenBase
-                                                                       + "org/argeo/dep/jemmy/org.argeo.dep.jemmy.nb61/0.2.0/org.argeo.dep.jemmy.nb61-0.2.0.jar "
-                                                                       + mavenBase
-                                                                       + "org/argeo/slc/sandbox/org.argeo.slc.sandbox.jemmytest/0.1.1-SNAPSHOT/org.argeo.slc.sandbox.jemmytest-0.1.1-SNAPSHOT.jar");
-                       configMap.put(FelixConstants.LOG_LEVEL_PROP, "1");
-                       configMap.put(BundleCache.CACHE_PROFILE_DIR_PROP, cachedir
-                                       .getAbsolutePath());
-
-                       // Create list to hold custom framework activators.
-                       List list = new ArrayList();
-                       // Add activator to process auto-start/install properties.
-                       list.add(new AutoActivator(configMap));
-                       // Add our own activator.
-                       list.add(new AutoUiActivator());
-
-                       BundleContext context = null;
-                       try {
-                               // Now create an instance of the framework.
-                               Felix felix = new Felix(configMap, list);
-                               felix.start();
-
-                               context = felix.getBundleContext();
-
-                               // Bundle jemmyTestBundle = context
-                               // .installBundle(mavenBase
-                               // +
-                               // "org/argeo/slc/sandbox/org.argeo.slc.sandbox.jemmytest/0.1.1-SNAPSHOT/org.argeo.slc.sandbox.jemmytest-0.1.1-SNAPSHOT.jar");
-                               // jemmyTestBundle.start();
-
-                       } catch (Exception ex) {
-                               System.err.println("Could not create framework: " + ex);
-                               ex.printStackTrace();
-                               System.exit(-1);
-                       }
+                       // Start OSGi system
+                       Properties config = prepareConfig();
+                       Main main = startSystem(config);
 
-                       
-                       // Start UI
-                       String className = "org.argeo.slc.testui.SwingTestUi";
-                       //String className = SwingTestUi.class.getName();
-                       // String[] args = {};
-                       // SwingTestUi.main(args);
-                       // Start application
-                       ClassReference classReference = new ClassReference(className);
-                       String[] uiArgs = { "noExitOnClose" };
-                       classReference.startApplication(uiArgs);
-
-
-                       
-                       ServiceReference ref = context
-                       .getServiceReference("org.argeo.slc.autoui.AutoUiApplication");
-//                     ServiceReference ref = context
-//                     .getServiceReference("java.lang.Runnable");
-                       Object service = context.getService(ref);
-                       AutoUiActivator.stdOut("service=" + service.getClass());
-                       AutoUiApplication app = (AutoUiApplication) service;
-                       app.execute(null);
-                       // app.execute(null);
-                       
+                       // Start UI (in main class loader)
+                       startUi(config);
 
+                       // Automate
+                       automateUi(main.getContext());
                } 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/felix.properties");
+                       config.load(in);
+               } finally {
+                       if (in != null)
+                               in.close();
+               }
 
-               // Felix felix;
-               // // JemmyTestActivator activator;
-               //
-               // // Create a case-insensitive configuration property map.
-               // Map configMap = new StringMap(false);
-               // // Configure the Felix instance to be embedded.
-               // configMap.put(FelixConstants.EMBEDDED_EXECUTION_PROP, "true");
-               // // Add core OSGi packages to be exported from the class path
-               // // via the system bundle.
-               // configMap.put(Constants.FRAMEWORK_SYSTEMPACKAGES,
-               // "org.osgi.framework; version=1.3.0,"
-               // + "org.osgi.service.packageadmin; version=1.2.0,"
-               // + "org.osgi.service.startlevel; version=1.0.0,"
-               // + "org.osgi.service.url; version=1.0.0");
-               // // Explicitly specify the directory to use for caching bundles.
-               // configMap.put(BundleCache.CACHE_PROFILE_DIR_PROP, "target/cache");
-               //
-               // try {
-               // // Create host activator;
-               // // activator = new JemmyTestActivator();
-               // List list = new ArrayList();
-               // // list.add(activator);
-               // list.add(new Activator());
-               // list.add(new org.apache.felix.shell.impl.Activator());
-               // list.add(new org.apache.felix.bundlerepository.Activator());
-               //
-               // // Now create an instance of the framework with
-               // // our configuration properties and activator.
-               // felix = new Felix(configMap, list);
-               //
-               // // Now start Felix instance.
-               // felix.start();
-               //
-               // Bundle jemmyBundle = felix
-               // .getBundleContext()
-               // .installBundle(
-               // "file:/home/mbaudier/.m2/repository/org/argeo/dep/jemmy/org.argeo.dep.jemmy.nb61/0.2.0/org.argeo.dep.jemmy.nb61-0.2.0.jar");
-               // jemmyBundle.start();
-               // //
-               // // Bundle autoUiBundle = felix
-               // // .getBundleContext()
-               // // .installBundle(
-               // //
-               // "reference:file:/home/mbaudier/dev/src/slc/org.argeo.slc.autoui/");
-               // // autoUiBundle.start();
-               //
-               // Bundle[] bundles = felix.getBundleContext().getBundles();
-               // for (int i = 0; i < bundles.length; i++) {
-               // Bundle bundle = bundles[i];
-               // System.out.println("" + bundle.getBundleId() + "\t"
-               // + bundle.getSymbolicName() + "\t" + bundle.getState()
-               // + "\t" + bundle.getLocation());
-               // }
-               //
-               // // felix.stop();
-               // } catch (Exception ex) {
-               // System.err.println("Could not create framework: " + ex);
-               // ex.printStackTrace();
-               // }
-               //
+               // 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 Main 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 new Main(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 */
+
        /**
-        * Utility method used to delete the profile directory when run as a
-        * stand-alone application.
-        * 
-        * @param file
-        *            The file to recursively delete.
+        * 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();// make sure there are no 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();
diff --git a/org.argeo.slc.autoui/src/main/resources/org/argeo/slc/autoui/felix.properties b/org.argeo.slc.autoui/src/main/resources/org/argeo/slc/autoui/felix.properties
new file mode 100644 (file)
index 0000000..4d2157a
--- /dev/null
@@ -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\"