[jbpm-commits] JBoss JBPM SVN: r4561 - in jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire: descriptor and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Apr 16 06:49:27 EDT 2009


Author: tom.baeyens at jboss.com
Date: 2009-04-16 06:49:19 -0400 (Thu, 16 Apr 2009)
New Revision: 4561

Modified:
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/IdentitySessionFactoryBinding.java
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/IdentitySessionFactoryDescriptor.java
Log:
added jndi lookup support for jboss idm session factory lookup in jboss

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/IdentitySessionFactoryBinding.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/IdentitySessionFactoryBinding.java	2009-04-16 08:22:20 UTC (rev 4560)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/IdentitySessionFactoryBinding.java	2009-04-16 10:49:19 UTC (rev 4561)
@@ -39,7 +39,10 @@
   public Object parse(Element element, Parse parse, Parser parser) {
     IdentitySessionFactoryDescriptor descriptor = new IdentitySessionFactoryDescriptor();
     
-    if (element.hasAttribute("resource")) {
+    if (element.hasAttribute("jndi")) {
+      descriptor.setJndiName(element.getAttribute("jndi"));
+      
+    } else if (element.hasAttribute("resource")) {
       descriptor.setResource(element.getAttribute("resource"));
     }
 

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/IdentitySessionFactoryDescriptor.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/IdentitySessionFactoryDescriptor.java	2009-04-16 08:22:20 UTC (rev 4560)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/descriptor/IdentitySessionFactoryDescriptor.java	2009-04-16 10:49:19 UTC (rev 4561)
@@ -21,7 +21,12 @@
  */
 package org.jbpm.pvm.internal.wire.descriptor;
 
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+
+import org.jboss.identity.idm.api.IdentitySessionFactory;
 import org.jboss.identity.idm.impl.api.IdentitySessionFactoryImpl;
+import org.jboss.identity.idm.spi.configuration.metadata.IdentityConfigurationMetaData;
 import org.jbpm.JbpmException;
 import org.jbpm.pvm.internal.wire.WireContext;
 import org.jbpm.pvm.internal.wire.WireDefinition;
@@ -35,8 +40,19 @@
   private static final long serialVersionUID = 1L;
   
   protected String resource = "jbpm.identity.cfg.xml";
+  protected String jndiName = null;
 
   public Object construct(WireContext wireContext) {
+    if (jndiName!=null) {
+      try {
+        InitialContext initialContext = new InitialContext();
+        IdentitySessionFactory identitySessionFactory = (IdentitySessionFactory) initialContext.lookup(jndiName);
+        return identitySessionFactory;
+      } catch (Exception e) {
+        throw new JbpmException("couldn't get idm session factory from jndi address "+jndiName, e);
+      }
+    }
+    
     try {
       return new IdentitySessionFactoryImpl(resource);
     } catch (Exception e) {
@@ -44,11 +60,14 @@
     }
   }
 
+  public Class< ? > getType(WireDefinition wireDefinition) {
+    return IdentitySessionFactory.class;
+  }
+  
   public void setResource(String resource) {
     this.resource = resource;
   }
-
-  public Class< ? > getType(WireDefinition wireDefinition) {
-    return IdentitySessionFactoryImpl.class;
+  public void setJndiName(String jndiName) {
+    this.jndiName = jndiName;
   }
 }




More information about the jbpm-commits mailing list