You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ri...@apache.org on 2009/06/10 21:54:03 UTC

svn commit: r783472 - in /felix/trunk/examples/servicebased.host: pom.xml src/main/java/org/apache/felix/example/servicebased/host/Activator.java

Author: rickhall
Date: Wed Jun 10 19:54:02 2009
New Revision: 783472

URL: http://svn.apache.org/viewvc?rev=783472&view=rev
Log:
Modified example to work with Felix 1.8.0 release.

Modified:
    felix/trunk/examples/servicebased.host/pom.xml
    felix/trunk/examples/servicebased.host/src/main/java/org/apache/felix/example/servicebased/host/Activator.java

Modified: felix/trunk/examples/servicebased.host/pom.xml
URL: http://svn.apache.org/viewvc/felix/trunk/examples/servicebased.host/pom.xml?rev=783472&r1=783471&r2=783472&view=diff
==============================================================================
--- felix/trunk/examples/servicebased.host/pom.xml (original)
+++ felix/trunk/examples/servicebased.host/pom.xml Wed Jun 10 19:54:02 2009
@@ -36,7 +36,7 @@
     <dependency>
       <groupId>org.apache.felix</groupId>
       <artifactId>org.apache.felix.main</artifactId>
-      <version>1.0.4</version>
+      <version>1.8.0</version>
     </dependency>
   </dependencies>
   <build>
@@ -48,10 +48,12 @@
         <extensions>true</extensions>
         <configuration>
           <instructions>
+            <_donotcopy>(CVS|.svn|config.properties)</_donotcopy>
             <Main-Class>org.apache.felix.example.servicebased.host.Activator</Main-Class>
-            <Import-Package>!android.dalvik,javax.microedition.io;resolution:=optional, org.osgi.framework,org.osgi.service.packageadmin,org.osgi.service.url,org.osgi.service.startlevel,org.osgi.util.tracker,*</Import-Package>
+            <Import-Package>!android.*,!dalvik.*,org.osgi.framework,org.osgi.service.packageadmin,org.osgi.service.url,org.osgi.service.startlevel,org.osgi.util.tracker,*</Import-Package>
             <Export-Package>org.apache.felix.example.servicebased.host.service.*</Export-Package>
-            <Private-Package>org.apache.felix.example.servicebased.host.*,org.apache.felix.moduleloader.*,org.apache.felix.framework.*,org.apache.felix.main,org.osgi.*</Private-Package>
+            <Private-Package>org.apache.felix.example.servicebased.host.*</Private-Package>
+            <Embed-Dependency>*;artifactId=org.apache.felix.main;inline=true</Embed-Dependency>
             <Bundle-Activator>org.apache.felix.example.servicebased.host.Activator</Bundle-Activator>
             <Bundle-Vendor>The Apache Software Foundation</Bundle-Vendor>
           </instructions>

Modified: felix/trunk/examples/servicebased.host/src/main/java/org/apache/felix/example/servicebased/host/Activator.java
URL: http://svn.apache.org/viewvc/felix/trunk/examples/servicebased.host/src/main/java/org/apache/felix/example/servicebased/host/Activator.java?rev=783472&r1=783471&r2=783472&view=diff
==============================================================================
--- felix/trunk/examples/servicebased.host/src/main/java/org/apache/felix/example/servicebased/host/Activator.java (original)
+++ felix/trunk/examples/servicebased.host/src/main/java/org/apache/felix/example/servicebased/host/Activator.java Wed Jun 10 19:54:02 2009
@@ -49,9 +49,8 @@
  * launch the stand-alone application, it must be run from this bundle's
  * installation directory using "<tt>java -jar</tt>".
 **/
-public class Activator implements BundleActivator, Runnable
+public class Activator implements BundleActivator
 {
-    private BundleContext m_context	= null;
     private DrawingFrame m_frame = null;
     private ShapeTracker m_shapetracker = null;
 
@@ -61,18 +60,61 @@
      * and repainting issues.
      * @param context The context of the bundle.
     **/
-    public void start(BundleContext context)
+    public void start(final BundleContext context)
     {
-        m_context = context;
+        javax.swing.SwingUtilities.invokeLater(new Runnable() {
+            // This creates of the application window.
+            public void run()
+            {
+                m_frame = new DrawingFrame();
+                m_frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
+                m_frame.addWindowListener(new WindowAdapter() {
+                    public void windowClosing(WindowEvent evt)
+                    {
+                        try
+                        {
+                            context.getBundle(0).stop();
+                        }
+                        catch (BundleException ex)
+                        {
+                            ex.printStackTrace();
+                        }
+                    }
+                });
+
+                m_frame.setVisible(true);
+
+                m_shapetracker = new ShapeTracker(context, m_frame);
+                m_shapetracker.open();
+            }
+        });
+    }
+
+    /**
+     * Stops service tracking and disposes of the application window.
+     * @param context The context of the bundle.
+    **/
+    public void stop(BundleContext context)
+    {
+        Runnable runner = new Runnable() {
+            // This disposes of the application window.
+            public void run()
+            {
+                m_shapetracker.close();
+                m_frame.setVisible(false);
+                m_frame.dispose();
+            }
+        };
+
         if (SwingUtilities.isEventDispatchThread())
         {
-            run();
+            runner.run();
         }
         else
         {
             try
             {
-                javax.swing.SwingUtilities.invokeAndWait(this);
+                javax.swing.SwingUtilities.invokeAndWait(runner);
             }
             catch (Exception ex)
             {
@@ -82,47 +124,6 @@
     }
 
     /**
-     * Stops service tracking and disposes of the application window.
-     * @param context The context of the bundle.
-    **/
-    public void stop(BundleContext context)
-    {
-        m_shapetracker.close();
-        m_frame.setVisible(false);
-        m_frame.dispose();
-    }
-
-    /**
-     * This method actually performs the creation of the application window.
-     * It is intended to be called by the Swing event thread and should not
-     * be called directly.
-    **/
-    public void run()
-    {
-        m_frame = new DrawingFrame();
-
-        m_frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
-        m_frame.addWindowListener(new WindowAdapter() {
-            public void windowClosing(WindowEvent evt)
-            {
-                try
-                {
-                    m_context.getBundle(0).stop();
-                }
-                catch (BundleException ex)
-                {
-                    ex.printStackTrace();
-                }
-            }
-        });
-
-        m_frame.setVisible(true);
-
-        m_shapetracker = new ShapeTracker(m_context, m_frame);
-        m_shapetracker.open();
-    }
-
-    /**
      * Enables the bundle to run as a stand-alone application. When this
      * static <tt>main()</tt> method is invoked, the application creates
      * its own embedded Felix framework instance and interacts with the
@@ -146,20 +147,14 @@
         });
 
         Map configMap = new StringMap(false);
-        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," +
-            "org.osgi.util.tracker; version=1.3.2," +
-            "org.apache.felix.example.servicebased.host.service; version=1.0.0," +
-            "javax.swing");
+        configMap.put(Constants.FRAMEWORK_SYSTEMPACKAGES_EXTRA,
+            "org.apache.felix.example.servicebased.host.service; version=1.0.0");
         configMap.put(AutoActivator.AUTO_START_PROP + ".1",
             "file:../servicebased.circle/target/servicebased.circle-1.0.0.jar " +
             "file:../servicebased.square/target/servicebased.square-1.0.0.jar " +
             "file:../servicebased.triangle/target/servicebased.triangle-1.0.0.jar");
-        configMap.put(FelixConstants.LOG_LEVEL_PROP, "1");
-        configMap.put(BundleCache.CACHE_PROFILE_DIR_PROP, cachedir.getAbsolutePath());
+        configMap.put(FelixConstants.LOG_LEVEL_PROP, "4");
+        configMap.put(Constants.FRAMEWORK_STORAGE, cachedir.getAbsolutePath());
 
         // Create list to hold custom framework activators.
         List list = new ArrayList();
@@ -167,11 +162,13 @@
         list.add(new AutoActivator(configMap));
         // Add our own activator.
         list.add(new Activator());
+        // Add our custom framework activators to the configuration map.
+        configMap.put(FelixConstants.SYSTEMBUNDLE_ACTIVATORS_PROP, list);
 
         try
         {
             // Now create an instance of the framework.
-            Felix felix = new Felix(configMap, list);
+            Felix felix = new Felix(configMap);
             felix.start();
         }
         catch (Exception ex)
@@ -199,4 +196,4 @@
         }
         file.delete();
     }
-}
+}
\ No newline at end of file