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