Gregg, You may be right. I'm curious, does anyone actually ever uses activation?
Dennis On Mar 16, 2013, at 541PM, Gregg Wonderly wrote: > I don't think this will work with activation because the proxy is not what is > returned in that case. It may be necessary to look at doing something in > Phoenix as well, if we keep activation around. > > Gregg > > On Mar 16, 2013, at 4:22 AM, Peter Firmstone <[email protected]> wrote: > >> I dunno, it just seems to fit so well here, I didn't even have to change the >> documentation. >> >> /** Generic service creation method that attempts to start the >> * services defined by the provided <code>ServiceDescriptor[]</code> >> * argument. >> * @param descs The <code>ServiceDescriptor[]</code> that contains >> * the descriptors for the services to start. >> * @param config The associated <code>Configuration</code> object >> * used to customize the service creation process. >> * @return Returns a <code>Result[]</code> that is the same length as >> * <code>descs</code>, which contains the details for each >> * service creation attempt. >> * @throws Exception If there was a problem creating the service. >> * @see Result >> * @see ServiceDescriptor >> * @see net.jini.config.Configuration >> */ >> private static Result[] create(final ServiceDescriptor[] descs, >> final Configuration config) >> throws Exception >> { >> logger.entering(ServiceStarter.class.getName(), "create", >> new Object[] {descs, config}); >> ArrayList proxies = new ArrayList(); >> >> Object result = null; >> Exception problem = null; >> ServiceDescriptor desc = null; >> for (int i=0; i < descs.length; i++) { >> desc = descs[i]; >> result = null; >> problem = null; >> try { >> if (desc != null) { >> result = desc.create(config); >> if (result instanceof Starter) ((Starter) result).start(); >> } >> } catch (Exception e) { >> problem = e; >> } finally { >> proxies.add(new Result(desc, result, problem)); >> } >> } >> logger.exiting(ServiceStarter.class.getName(), "create", proxies); >> return (Result[])proxies.toArray(new Result[proxies.size()]); >> } >> >> Gregg Wonderly wrote: >>> Looking around briefly, it seems that there is a not so great set of >>> returned values from ServiceDescriptor.create() with activation returning >>> the RMI GID. So a little more work to wrap everything into something >>> implementing an interface with lifecycle management in it would be required. >>> >>> Gregg >>> >>> >>> On 3/15/2013 9:18 PM, Peter Firmstone wrote: >>>> I'd like to add a start() method to OutriggerImpl, so I can delay any >>>> threads from being started until after construction is complete. >>>> >>>> This is required for safe publication to comply with the JMM. >>>> >>>> Before doing so, I'd like to know how people are using Outrigger, so I can >>>> minimise unintended consequences / breakages. >>>> >>>> Comments, opinions and thoughts? >>>> >>>> Regards, >>>> >>>> Peter. >>>> >>> >>> >> >
