You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2003/11/16 06:24:38 UTC
cvs commit: incubator-geronimo/modules/core/src/test/org/apache/geronimo/naming/jmx ContextTest.java TestObject.java
djencks 2003/11/15 21:24:38
Modified: modules/core/src/java/org/apache/geronimo/naming/java
ComponentContextBuilder.java ReadOnlyContext.java
ReferenceFactory.java
modules/core/src/java/org/apache/geronimo/naming/jmx
JMXReferenceFactory.java
modules/core/src/test/org/apache/geronimo/naming/java
ContextBuilderTest.java
modules/core/src/test/org/apache/geronimo/naming/jmx
ContextTest.java TestObject.java
Log:
Improve ReadOnlyContext bindings and tests thereon.
Revision Changes Path
1.10 +23 -5 incubator-geronimo/modules/core/src/java/org/apache/geronimo/naming/java/ComponentContextBuilder.java
Index: ComponentContextBuilder.java
===================================================================
RCS file: /home/cvs/incubator-geronimo/modules/core/src/java/org/apache/geronimo/naming/java/ComponentContextBuilder.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- ComponentContextBuilder.java 13 Nov 2003 04:30:56 -0000 1.9
+++ ComponentContextBuilder.java 16 Nov 2003 05:24:38 -0000 1.10
@@ -68,6 +68,7 @@
import org.apache.geronimo.deployment.model.geronimo.j2ee.JNDIEnvironmentRefs;
import org.apache.geronimo.deployment.model.geronimo.j2ee.ResourceRef;
import org.apache.geronimo.deployment.model.geronimo.j2ee.JNDILocator;
+import org.apache.geronimo.deployment.model.geronimo.j2ee.EjbLocalRef;
import org.apache.geronimo.deployment.model.j2ee.EnvEntry;
import org.apache.geronimo.kernel.deployment.DeploymentException;
@@ -96,6 +97,7 @@
Map envMap = new HashMap();
buildEnvEntries(envMap, refs.getEnvEntry());
buildEJBRefs(envMap, refs.getGeronimoEJBRef());
+ buildEJBLocalRefs(envMap, refs.getGeronimoEJBLocalRef());
buildResourceRefs(envMap, refs.getGeronimoResourceRef());
Map compMap = new HashMap();
@@ -152,12 +154,28 @@
String name = ejbRef.getEJBRefName();
Reference ref = null;
try {
- ref = referenceFactory.getReference(ejbRef, ejbRef.getEJBRefType());
+ ref = referenceFactory.getReference(ejbRef.getEJBLink(), ejbRef);
} catch (NamingException e) {
- throw new DeploymentException("Could not construct reference to " + ejbRef.getJndiName());
+ throw new DeploymentException("Could not construct reference to " + ejbRef.getJndiName() + ", " + e.getMessage());
}
if (envMap.put(name, ref) != null) {
- throw new AssertionError("Duplicate entry for env-entry " + name);
+ throw new DeploymentException("Duplicate entry for env-entry " + name);
+ }
+ }
+ }
+
+ private void buildEJBLocalRefs(Map envMap, EjbLocalRef[] ejbLocalRefs) throws DeploymentException {
+ for (int i = 0; i < ejbLocalRefs.length; i++) {
+ EjbLocalRef ejbLocalRef = ejbLocalRefs[i];
+ String name = ejbLocalRef.getEJBRefName();
+ Reference ref = null;
+ try {
+ ref = referenceFactory.getReference(ejbLocalRef.getEJBLink(), ejbLocalRef);
+ } catch (NamingException e) {
+ throw new DeploymentException("Could not construct reference to " + ejbLocalRef.getJndiName() + ", " + e.getMessage());
+ }
+ if (envMap.put(name, ref) != null) {
+ throw new DeploymentException("Duplicate entry for env-entry " + name);
}
}
}
@@ -176,7 +194,7 @@
}
} else {
try {
- ref = referenceFactory.getReference(resRef, "ConnectionFactory");
+ ref = referenceFactory.getReference(null, resRef);
} catch (NamingException e) {
throw new DeploymentException("Could not construct reference to " + resRef.getJndiName());
}
1.6 +3 -3 incubator-geronimo/modules/core/src/java/org/apache/geronimo/naming/java/ReadOnlyContext.java
Index: ReadOnlyContext.java
===================================================================
RCS file: /home/cvs/incubator-geronimo/modules/core/src/java/org/apache/geronimo/naming/java/ReadOnlyContext.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- ReadOnlyContext.java 13 Nov 2003 04:30:56 -0000 1.5
+++ ReadOnlyContext.java 16 Nov 2003 05:24:38 -0000 1.6
@@ -156,11 +156,11 @@
String scheme = name.substring(0, pos);
Context ctx = NamingManager.getURLContext(scheme, env);
if (ctx == null) {
- throw new NamingException();
+ throw new NamingException("scheme " + scheme + " not recognized");
}
return ctx.lookup(name);
}
- throw new NameNotFoundException();
+ throw new NameNotFoundException(name);
}
if (result instanceof LinkRef) {
LinkRef ref = (LinkRef) result;
1.3 +4 -4 incubator-geronimo/modules/core/src/java/org/apache/geronimo/naming/java/ReferenceFactory.java
Index: ReferenceFactory.java
===================================================================
RCS file: /home/cvs/incubator-geronimo/modules/core/src/java/org/apache/geronimo/naming/java/ReferenceFactory.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ReferenceFactory.java 13 Nov 2003 22:22:30 -0000 1.2
+++ ReferenceFactory.java 16 Nov 2003 05:24:38 -0000 1.3
@@ -6,12 +6,12 @@
import org.apache.geronimo.deployment.model.geronimo.j2ee.JNDILocator;
/**
- *
+ *
*
* @version $Revision$ $Date$
- *
+ *
* */
public interface ReferenceFactory {
- Reference getReference(JNDILocator locator, String type) throws NamingException;
+ Reference getReference(String link, JNDILocator locator) throws NamingException;
}
1.3 +12 -9 incubator-geronimo/modules/core/src/java/org/apache/geronimo/naming/jmx/JMXReferenceFactory.java
Index: JMXReferenceFactory.java
===================================================================
RCS file: /home/cvs/incubator-geronimo/modules/core/src/java/org/apache/geronimo/naming/jmx/JMXReferenceFactory.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- JMXReferenceFactory.java 13 Nov 2003 22:22:31 -0000 1.2
+++ JMXReferenceFactory.java 16 Nov 2003 05:24:38 -0000 1.3
@@ -62,6 +62,9 @@
import org.apache.geronimo.naming.java.ReferenceFactory;
import org.apache.geronimo.deployment.model.geronimo.j2ee.JNDILocator;
+import org.apache.geronimo.deployment.model.geronimo.j2ee.ResourceRef;
+import org.apache.geronimo.deployment.model.j2ee.EJBRef;
+import org.apache.geronimo.deployment.model.j2ee.EJBLocalRef;
/**
* This is a preliminary implementation that makes several unwarranted and redundant assumptions such as:
@@ -75,8 +78,8 @@
* */
public class JMXReferenceFactory implements ReferenceFactory {
- private final static String EJB_HOME = "Home";
- private final static String EJB_LOCAL_HOME = "LocalHome";
+ private final static String SESSION = "Session";
+ private final static String ENTITY = "Entity";
private final static String CONNECTION_FACTORY = "ConnectionFactory";
private final String mbeanServerId;
@@ -85,20 +88,20 @@
this.mbeanServerId = mbeanServerId;
}
- public Reference getReference(JNDILocator locator, String type) throws NamingException {
+ public Reference getReference(String link, JNDILocator locator) throws NamingException {
String methodName;
- if (EJB_HOME.equals(type)) {
+ if (locator instanceof EJBRef) {
methodName = "getEJBHome";
- } else if (EJB_LOCAL_HOME.equals(type)) {
+ } else if (locator instanceof EJBLocalRef) {
methodName = "getEJBLocalHome";
- } else if (CONNECTION_FACTORY.equals(type)) {
+ } else if (locator instanceof ResourceRef) {
methodName = "getConnectionFactory";
} else {
- throw new NamingException("Invalid type: " + type);
+ throw new NamingException("Invalid type: " + locator);
}
return new LinkRef(JMXContext.encode(mbeanServerId,
- locator.getJndiName(),
+ (link == null)? locator.getJndiName(): link,
methodName));
}
}
1.9 +57 -21 incubator-geronimo/modules/core/src/test/org/apache/geronimo/naming/java/ContextBuilderTest.java
Index: ContextBuilderTest.java
===================================================================
RCS file: /home/cvs/incubator-geronimo/modules/core/src/test/org/apache/geronimo/naming/java/ContextBuilderTest.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- ContextBuilderTest.java 16 Nov 2003 02:09:36 -0000 1.8
+++ ContextBuilderTest.java 16 Nov 2003 05:24:38 -0000 1.9
@@ -69,6 +69,7 @@
import org.apache.geronimo.deployment.model.geronimo.j2ee.EjbRef;
import org.apache.geronimo.deployment.model.geronimo.j2ee.ResourceRef;
import org.apache.geronimo.deployment.model.geronimo.j2ee.EjbLocalRef;
+import org.apache.geronimo.deployment.model.geronimo.ejb.Session;
import org.apache.geronimo.transaction.manager.UserTransactionImpl;
import org.apache.geronimo.kernel.jmx.JMXKernel;
import org.apache.geronimo.naming.jmx.JMXReferenceFactory;
@@ -80,24 +81,28 @@
* @version $Revision$ $Date$
*/
public class ContextBuilderTest extends TestCase {
- private static final String objectName1 = "geronimo.test:name=test1";
- private static final String objectName2 = "geronimo.test:name=test2";
-
- private ApplicationClient client;
-
- private Context compCtx;
- private JMXKernel kernel;
- private ReferenceFactory referenceFactory;
- private TestObject testObject1 = new TestObject(new Object());
- private TestObject testObject2 = new TestObject(new Object());
+ protected static final String objectName1 = "geronimo.test:name=test1";
+ protected static final String objectName2 = "geronimo.test:name=test2";
+ protected static final String objectName3 = "geronimo.test:name=test3";
+
+ protected ApplicationClient client;
+ protected Session session;
+ protected Context compCtx;
+ protected JMXKernel kernel;
+ protected ReferenceFactory referenceFactory;
+ protected TestObject testObject1 = new TestObject();
+ protected TestObject testObject2 = new TestObject();
+ protected TestObject testObject3 = new TestObject();
protected void setUp() throws Exception {
kernel = new JMXKernel("geronimo.test");
kernel.getMBeanServer().registerMBean(testObject1, ObjectName.getInstance(objectName1));
kernel.getMBeanServer().registerMBean(testObject2, ObjectName.getInstance(objectName2));
+ kernel.getMBeanServer().registerMBean(testObject3, ObjectName.getInstance(objectName3));
referenceFactory = new JMXReferenceFactory(kernel.getMBeanServerId());
client = new ApplicationClient();
+ session = new Session();
EnvEntry stringEntry = new EnvEntry();
stringEntry.setEnvEntryName("string");
stringEntry.setEnvEntryType("java.lang.String");
@@ -109,15 +114,24 @@
EjbRef ejbRef = new EjbRef();
ejbRef.setEJBRefName("here/there/EJB1");
- ejbRef.setEJBRefType("Home");
+ ejbRef.setEJBRefType("Session");
ejbRef.setJndiName(objectName1);
- //EjbLocalRef ejbLocalRef = new EjbLocalRef();
- EjbRef ejbLocalRef = new EjbRef();
+ EjbRef ejbLinkRef = new EjbRef();
+ ejbLinkRef.setEJBRefName("here/LinkEjb");
+ ejbLinkRef.setEJBRefType("Session");
+ ejbLinkRef.setEJBLink(objectName3);
+
+ EjbLocalRef ejbLocalRef = new EjbLocalRef();
ejbLocalRef.setEJBRefName("local/here/LocalEJB2");
- ejbLocalRef.setEJBRefType("LocalHome");
+ ejbLocalRef.setEJBRefType("Entity");
ejbLocalRef.setJndiName(objectName2);
+ EjbLocalRef ejbLocalLinkRef = new EjbLocalRef();
+ ejbLocalLinkRef.setEJBRefName("local/here/LinkLocalEjb");
+ ejbLocalLinkRef.setEJBRefType("Entity");
+ ejbLocalLinkRef.setEJBLink(objectName3);
+
ResourceRef urlRef = new ResourceRef();
urlRef.setResRefName("url/testURL");
urlRef.setResType(URL.class.getName());
@@ -128,12 +142,13 @@
cfRef.setJndiName(objectName1);
client.setEnvEntry(new EnvEntry[] { stringEntry, intEntry });
- //client.setEJBRef(new EjbRef[] {ejbRef});
- client.setEJBRef(new EjbRef[] {ejbRef, ejbLocalRef});
- //client.setEJBLocalRef(new EjbLocalRef[] {ejbLocalRef});
-
+ session.setEnvEntry(client.getEnvEntry());
+ client.setEJBRef(new EjbRef[] {ejbRef, ejbLinkRef});
+ session.setEJBRef(client.getEJBRef());
+ session.setEJBLocalRef(new EjbLocalRef[] {ejbLocalRef, ejbLocalLinkRef});
client.setResourceRef(new ResourceRef[] { urlRef, cfRef });
+ session.setResourceRef(client.getResourceRef());
}
public void testEnvEntries() throws Exception {
@@ -157,15 +172,36 @@
assertEquals(userTransaction, compCtx.lookup("UserTransaction"));
}
- public void testEJBRefs() throws Exception {
+ public void testClientEJBRefs() throws Exception {
ReadOnlyContext compContext = new ComponentContextBuilder(referenceFactory, null).buildContext(client);
RootContext.setComponentContext(compContext);
InitialContext initialContext = new InitialContext();
assertEquals("Expected object from testObject1", testObject1.getEJBHome(),
initialContext.lookup("java:comp/env/here/there/EJB1"));
- assertEquals("Expected object from testObject2", testObject2.getEJBLocalHome(),
+ assertEquals("Expected object from testObject3", testObject3.getEJBHome(),
+ initialContext.lookup("java:comp/env/here/LinkEjb"));
+ assertEquals("Expected object from testObject1", testObject1.getConnectionFactory(),
+ initialContext.lookup("java:comp/env/DefaultCF"));
+ }
+
+ public void testLocalEJBRefs() throws Exception {
+ ReadOnlyContext compContext = new ComponentContextBuilder(referenceFactory, null).buildContext(session);
+ RootContext.setComponentContext(compContext);
+ InitialContext initialContext = new InitialContext();
+ assertEquals("Expected object from testObject1", testObject1.getEJBHome(),
+ initialContext.lookup("java:comp/env/here/there/EJB1"));
+
+ assertEquals("Expected object from testObject3", testObject3.getEJBHome(),
+ initialContext.lookup("java:comp/env/here/LinkEjb"));
+
+ assertEquals("Expected object from testObject1", testObject2.getEJBLocalHome(),
initialContext.lookup("java:comp/env/local/here/LocalEJB2"));
+
+ assertEquals("Expected object from testObject3", testObject3.getEJBLocalHome(),
+ initialContext.lookup("java:comp/env/local/here/LinkLocalEjb"));
+
assertEquals("Expected object from testObject1", testObject1.getConnectionFactory(),
initialContext.lookup("java:comp/env/DefaultCF"));
}
+
}
1.3 +11 -11 incubator-geronimo/modules/core/src/test/org/apache/geronimo/naming/jmx/ContextTest.java
Index: ContextTest.java
===================================================================
RCS file: /home/cvs/incubator-geronimo/modules/core/src/test/org/apache/geronimo/naming/jmx/ContextTest.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ContextTest.java 13 Nov 2003 22:22:31 -0000 1.2
+++ ContextTest.java 16 Nov 2003 05:24:38 -0000 1.3
@@ -79,10 +79,10 @@
import org.apache.geronimo.naming.java.RootContext;
/**
- *
+ *
*
* @version $Revision$ $Date$
- *
+ *
* */
public class ContextTest extends TestCase {
@@ -91,16 +91,16 @@
private MBeanServer server;
private String agentId;
- private Object payload = new Object();
private ObjectName objectName;
private JMXKernel kernel;
+ private TestObject mbean;
protected void setUp() throws Exception {
kernel = new JMXKernel("geronimo.test");
server = kernel.getMBeanServer();
agentId = kernel.getMBeanServerId();
objectName = new ObjectName(on1);
- Object mbean = new TestObject(payload);
+ mbean = new TestObject();
server.registerMBean(mbean, objectName);
}
@@ -111,13 +111,13 @@
public void testLookupString() throws Exception {
JMXContext context = new JMXContext(new Hashtable());
Object result = context.lookup(JMXContext.encode(agentId, on1, mn1));
- assertTrue("Expected the supplied object back", result == payload);
+ assertTrue("Expected the ", result == mbean.getEJBHome());
}
public void testLookupName() throws Exception {
JMXContext context = new JMXContext(new Hashtable());
Object result = context.lookup(new CompositeName(JMXContext.encode(agentId, on1, mn1)));
- assertTrue("Expected the supplied object back", result == payload);
+ assertTrue("Expected the supplied object back", result == mbean.getEJBHome());
}
public void testWrongObjectName() throws Exception {
@@ -144,7 +144,7 @@
jmxURLContextFactory contextFactory = new jmxURLContextFactory();
Context context = (Context)contextFactory.getObjectInstance(null, null, null, new Hashtable());
Object result = context.lookup(JMXContext.encode(agentId, on1, mn1));
- assertTrue("Expected the supplied object back", result == payload);
+ assertTrue("Expected the supplied object back", result == mbean.getEJBHome());
}
@@ -162,11 +162,11 @@
Context envContext = (Context) initialContext.lookup("java:comp/env");
Object result = initialContext.lookup("java:comp/env/link");
- assertTrue("Expected the supplied object back", result == payload);
+ assertTrue("Expected the supplied object back", result == mbean.getEJBHome());
result = compContext.lookup("env/link");
- assertTrue("Expected the supplied object back", result == payload);
+ assertTrue("Expected the supplied object back", result == mbean.getEJBHome());
result = envContext.lookup("link");
- assertTrue("Expected the supplied object back", result == payload);
+ assertTrue("Expected the supplied object back", result == mbean.getEJBHome());
}
1.3 +10 -9 incubator-geronimo/modules/core/src/test/org/apache/geronimo/naming/jmx/TestObject.java
Index: TestObject.java
===================================================================
RCS file: /home/cvs/incubator-geronimo/modules/core/src/test/org/apache/geronimo/naming/jmx/TestObject.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TestObject.java 13 Nov 2003 22:22:31 -0000 1.2
+++ TestObject.java 16 Nov 2003 05:24:38 -0000 1.3
@@ -59,29 +59,30 @@
import javax.ejb.EJBHome;
/**
- *
+ *
*
* @version $Revision$ $Date$
- *
+ *
* */
public class TestObject implements TestObjectMBean {
- private Object payload;
+ private Object home = new Object();
+ private Object local = new Object();
+ private Object cf = new Object();
- public TestObject(Object payload) {
- this.payload = payload;
+ public TestObject() {
}
public Object getEJBHome() {
- return payload;
+ return home;
}
public Object getEJBLocalHome() {
- return payload;
+ return local;
}
public Object getConnectionFactory() {
- return payload;
+ return cf;
}