Not really able to follow what you're looking for, but have you looked at Rocoto <http://99soft.github.com/rocoto/>? Apologies if that's a tack in the wrong direction.
On Mon, Jul 23, 2012 at 4:05 PM, MarvinToll.com <[email protected]>wrote: > {Newbie alert continues... } > > I'm trying another approach... > > My concrete Module file includes: > > public class SjcLocalHostLoggerMO extends SjcBaseMO { > > @Override > public void putPropertiesTM(final Properties properties) { > > properties.put( > > SjcPiLoggerJdkRF.LOGGER_FILEHANDLER_OUTPUTFILE_BYTELIMIT, > "10000000"); > ... etc. > > And am binding all the properties during the "configure" step of the > Module life-cycle: > > Names.bindProperties(binder(), properties); > > When this is done... the debugger indicates that an ArrayList of > Elements are available in the Binder including: > > InstanceBinding[key=Key[type=java.lang.String, > > [email protected](value=logger.filehandler.outputfile.bytelimit)], > source=info.soaj.core.mo.SjcBaseMO.configure(SjcBaseMO.java:84), > instance=10000000] > > > So the question... how do I subsequently retrieve the property > value??? Or retrieve the complete Properties instance??? > > Said another way... the AbstractModule contains the Binder... which is > accessible... how do I get to the Elements (or Element) containing the > "InstanceBinding" of interest? > > _Marvin > > > On Jul 21, 12:22 pm, "MarvinToll.com" <[email protected]> wrote: > > I'm far enough along to provide some contextualized code useful for > problem > > statement elaboration... and maybe someone can think of an > outside-the-box > > solution? > > > > The basic challenge is the integration of properties with each > 'injectable > > plugin'. The properties are defined at *server start-up > > or outside-container unit testing set-up* where five steps are executed: > > > > ********************************************************************** > > * SOAj v. 2.2.6 [Copyright (c) 2012 by GTC at gtcGroup.com] > > ********************************************************************** > > * Threads Available: 12 > > * Cores Available: 8 > > ********************************************************************** > > * > > > /C:/projects/refapp/SOAj/soaj-core/target/test-classes/soaj-timer-config.xml > > ********************************************************************** > > * Activation Sequence Phase 0 - Retrieve Elements [3] > > * Activation Sequence Phase 1 - Injector Bindings [3] > > * Activation Sequence Phase 2 - Instantiate Plugins [3] > > * Activation Sequence Phase 3 - Invoke Verification > > * Activation Sequence Phase 4 - Log Metadata > > ********************************************************************** > > > > *During Phase 1 the plugin module objects (MO) populate properties using > a > > Template Method invoked during the "configure" portion of the module > > lifecycle. * > > > > /** > > * This MODULE OBJECT defines properties programmatically. > > * > > * <p style="font-family:Verdana; font-size:10px; font-style:italic"> > > * Copyright (c) 2006 - 2012 by Global Technology Consulting Group, Inc. > at > > <a > > * href="http://gtcGroup.com">gtcGroup.com </a>. > > * </p> > > * > > * @author Marvin Toll > > * @since v. 2.3 > > */ > > public class SjcLocalHostTimerMO extends SjcBaseMO { > > /** > > * Constructor > > * > > * @param pluginElementPO > > */ > > public SjcLocalHostTimerMO(final SjcPluginElementPO pluginElementPO) > { > > super(pluginElementPO); > > return; > > } > > /** > > * @see SjcBaseMO#putPropertiesTM(Properties) > > */ > > @Override > > public void putPropertiesTM(final Properties properties) { > > properties.put(SjcPiTimer.DECLARATIVE_LOGGING_TASK_SCHEDULED, > > "true"); > > properties.put(SjcPiTimer.DECLARATIVE_LOGGING_TASK_LAUNCHED, > > "true"); > > properties.put(SjcPiTimer.DECLARATIVE_LOGGING_TASK_COMPLETED, > > "true"); > > return; > > } > > > > } > > > > The properties above are cached using the injectable plugin 'unique name' > > as the key.* During processing, the injectable plugin instances may need > > access to their properties* (obtainable from the Caching Singleton)*:* > > > > /** > > * This method retrieves cached properties. > > * > > * @param pluginUniqueName > > * @return SjcPluginPropertyPO > > */ > > public static SjcPluginPropertyPO retrievePluginPropertyPO( > > final String pluginUniqueName) { > > > > final SjcPluginPropertyPO pluginPropertyPO = > > ActivatedPluginsCS.activatedProperties > > .get(pluginUniqueName); > > > > return pluginPropertyPO; > > } > > > > *So... this got me to the point that an injectable plugin instance needs > to > > know its own "unique name".* > > > > Having said all that... there may be a better way to integrate properties > > (useable with both web server and outside-container unit testing) with > > their injectable plugin instance... that are processed at server startup. > > > > _Marvinhttp://PatternEnabled.com > > > > > > > > On Friday, July 20, 2012 3:58:14 PM UTC-4, Craig McClanahan wrote: > > > What you are trying to do isn't going to work. > > > > > The @Named annotation in question is on the field where the injection > took > > > place. The object that got injected, or its class (SjcPiTimerSI) has > no > > > clue *why* it got injected, so no general purpose utility method like > you > > > have outlined is going to be able to learn what you're after. > > > > > Craig > > > > > On Thu, Jul 19, 2012 at 10:03 AM, MarvinToll.com < > [email protected]>wrote: > > > > >> ** Newbie Alert ** > > > > >> A class has the following field injection: > > > > >> @Inject > > >> @Named(SjcConstant.TIMER_PLUGIN) > > >> private SjcPiTimerSI timerSI; > > > > >> I would like to subsequently find out the instance @Named value. > > > > >> For example, a Utility method similar to: > > > > >> public static String retrieveInstanceNamedName (SjcPiTimerSI > > >> thisInstance) { > > > > >> String instanceName; > > > > >> *???* > > > > >> return instanceName; > > >> } > > > > >> Any thoughts/ > > > > >> _Marvin > > >>http://PatternEnabled.com > > -- > You received this message because you are subscribed to the Google Groups > "google-guice" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/google-guice?hl=en. > > -- You received this message because you are subscribed to the Google Groups "google-guice" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-guice?hl=en.
