_______________________________________________________________________________________
Note: This e-mail is subject to the disclaimer contained at the bottom of this message. _______________________________________________________________________________________ I'm using hivemind 1.1.1 to perform JNDI lookup of remote session EJB whose providerUrl and jndiName are only known at runtime. The providerUrl and jndiName are provided by the client with the original request and during post-processing callback to the client is made using these values to locate client remote service. While I managed to pass providerUrl to NameLookup I'm unable to pass jndiName as neither NameLookupImpl nor EJBProxyFactory have setter for it. I have tried playing with configuration points and own implementation of ServiceImplementationFactory without success. If I hard-code jndi-name attribute value it works but the problem is it's unknown at the build/deployment time so it must be a run-time arg Descriptor and code follows. <?xml version="1.0"?> <module id="au.com.cgu.webinsure.common.service" version="1.1.1"> <!-- Client-side Service --> <service-point id="ClientService" interface="au.com.companyname.service.ClientService" /> <implementation service-id="ClientService"> <invoke-factory> <construct class="impl.ClientServiceImpl"> <set-service property="remoteRef" service-id="ClientServiceRemote" /> </construct> </invoke-factory> </implementation> <service-point id="ClientServiceRemote" interface="au.com.companyname.service.ClientServiceRemote" visibility="private"> <invoke-factory service-id="hivemind.lib.EJBProxyFactory"> <construct home-interface="au.com.companyname.ejb.ClientServiceHome" jndi-name="${jndiNameKey}" name-lookup-service-id="NameLookupService" /> </invoke-factory> <interceptor service-id="hivemind.LoggingInterceptor" /> </service-point> <service-point id="NameLookupService" interface="org.apache.hivemind.lib.NameLookup"> <invoke-factory service-id="hivemind.BuilderFactory" model="singleton"> <construct class="org.apache.hivemind.lib.impl.NameLookupImpl"> <set property="initialFactory" value="com.ibm.websphere.naming.WsnInitialContextFactory" /> <set property="providerURL" value="${java.naming.provider.url}" /> </construct> </invoke-factory> <interceptor service-id="hivemind.LoggingInterceptor" /> </service-point> </module> ///////////////////////////////////////////// ... ClientService service = getClientService(providerUrl, jndiName); service.doSomething(); // barfs here ... protected final ClientService getClientService(final String providerUrl,final String jndiName) { System.setProperty(Context.PROVIDER_URL, providerUrl); System.setProperty("jndiNameKey", jndiName); // Construct Hivemind registry. // By that time all system properties hivemind relies upon should be set. RegistryBuilder builder = new RegistryBuilder(); builder.addDefaultModuleDescriptorProvider(); Registry registry = builder.constructRegistry(Locale.getDefault()); return (ClientService ) registry.getService( "au.com.companyname.service.ClientService", ClientService.class); Any thoughts? Thanks, Jake _______________________________________________________________________________________ The information transmitted in this message and its attachments (if any) is intended only for the person or entity to which it is addressed. The message may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon this information, by persons or entities other than the intended recipient is prohibited. If you have received this in error, please contact the sender and delete this e-mail and associated material from any computer. The intended recipient of this e-mail may only use, reproduce, disclose or distribute the information contained in this e-mail and any attached files, with the permission of the sender. This message has been scanned for viruses with Symantec Scan Engine and cleared by MailMarshal. _______________________________________________________________________________________