You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@river.apache.org by si...@apache.org on 2011/01/10 15:27:40 UTC

svn commit: r1057212 - /incubator/river/jtsk/trunk/src/com/sun/jini/start/ServiceStarter.java

Author: sijskes
Date: Mon Jan 10 14:27:40 2011
New Revision: 1057212

URL: http://svn.apache.org/viewvc?rev=1057212&view=rev
Log:
allow embedded use

Modified:
    incubator/river/jtsk/trunk/src/com/sun/jini/start/ServiceStarter.java

Modified: incubator/river/jtsk/trunk/src/com/sun/jini/start/ServiceStarter.java
URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/src/com/sun/jini/start/ServiceStarter.java?rev=1057212&r1=1057211&r2=1057212&view=diff
==============================================================================
--- incubator/river/jtsk/trunk/src/com/sun/jini/start/ServiceStarter.java (original)
+++ incubator/river/jtsk/trunk/src/com/sun/jini/start/ServiceStarter.java Mon Jan 10 14:27:40 2011
@@ -422,7 +422,30 @@ public class ServiceStarter {
         logger.exiting(ServiceStarter.class.getName(),
            "checkResultFailures");
     }
-    
+
+    /**
+     * Workhorse function for both main() entrypoints.
+     */
+    private static void processServiceDescriptors( Configuration config ) throws Exception
+    {
+       ServiceDescriptor[] descs =  (ServiceDescriptor[])
+               config.getEntry(START_PACKAGE, "serviceDescriptors",
+                   ServiceDescriptor[].class, null);
+       if (descs == null || descs.length == 0) {
+           logger.warning("service.config.empty");
+           return;
+       }
+       LoginContext loginContext =  (LoginContext)
+           config.getEntry(START_PACKAGE, "loginContext",
+               LoginContext.class, null);
+       Result[] results = null;
+       if (loginContext != null)
+           results = createWithLogin(descs, config, loginContext);
+       else
+           results = create(descs, config);
+       checkResultFailures(results);
+       maintainNonActivatableReferences(results);
+    }
 
     /**
      * The main method for the <code>ServiceStarter</code> application.
@@ -450,23 +473,7 @@ public class ServiceStarter {
            logger.entering(ServiceStarter.class.getName(),
 	       "main", (Object[])args);
            Configuration config = ConfigurationProvider.getInstance(args);
-           ServiceDescriptor[] descs =  (ServiceDescriptor[])
-	           config.getEntry(START_PACKAGE, "serviceDescriptors",
-	               ServiceDescriptor[].class, null);
-           if (descs == null || descs.length == 0) {
-               logger.warning("service.config.empty");
-	       return;
-	   }
-           LoginContext loginContext =  (LoginContext)
-	       config.getEntry(START_PACKAGE, "loginContext", 
-	           LoginContext.class, null);
-	   Result[] results = null;
-	   if (loginContext != null)
-	       results = createWithLogin(descs, config, loginContext);
-	   else
-	       results = create(descs, config);
-           checkResultFailures(results);	       
-           maintainNonActivatableReferences(results);	       
+           processServiceDescriptors(config);
        } catch (ConfigurationException cex) {
 	   logger.log(Level.SEVERE, "service.config.exception", cex);
        } catch (Exception e) {
@@ -476,4 +483,33 @@ public class ServiceStarter {
 	   "main");
     }   
     
+    /**
+     * The main method for embidding the <code>ServiceStarter</code> application.
+     * The <code>config</code> argument is queried for the
+     * <code>com.sun.jini.start.serviceDescriptors</code> entry, which
+     * is assumed to be a <code>ServiceDescriptor[]</code>.
+     * The <code>create()</code> method is then called on each of the array
+     * elements.
+     * @param config the <code>Configuration</code> object.
+     * @see ServiceDescriptor
+     * @see SharedActivatableServiceDescriptor
+     * @see SharedActivationGroupDescriptor
+     * @see NonActivatableServiceDescriptor
+     * @see net.jini.config.Configuration
+     */
+    public static void main(Configuration config) {
+       ensureSecurityManager();
+       try {
+           logger.entering(ServiceStarter.class.getName(),
+	       "main", config);
+           processServiceDescriptors(config);
+       } catch (ConfigurationException cex) {
+	   logger.log(Level.SEVERE, "service.config.exception", cex);
+       } catch (Exception e) {
+           logger.log(Level.SEVERE, "service.creation.exception", e);
+       }
+       logger.exiting(ServiceStarter.class.getName(),
+	   "main");
+    }
+    
 }//end class ServiceStarter