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 2004/11/01 01:05:29 UTC
svn commit: rev 56169 - in geronimo/trunk/modules: connector/src/java/org/apache/geronimo/connector/deployment naming/src/java/org/apache/geronimo/naming/jmx naming/src/java/org/apache/geronimo/naming/reference
Author: djencks
Date: Sun Oct 31 16:05:29 2004
New Revision: 56169
Added:
geronimo/trunk/modules/naming/src/java/org/apache/geronimo/naming/reference/
geronimo/trunk/modules/naming/src/java/org/apache/geronimo/naming/reference/GBeanGetResourceRefAddr.java
- copied, changed from rev 56121, geronimo/trunk/modules/naming/src/java/org/apache/geronimo/naming/jmx/JMXRefAddr.java
geronimo/trunk/modules/naming/src/java/org/apache/geronimo/naming/reference/GBeanRefAddr.java
geronimo/trunk/modules/naming/src/java/org/apache/geronimo/naming/reference/RefAddrContentObjectFactory.java
- copied, changed from rev 56121, geronimo/trunk/modules/naming/src/java/org/apache/geronimo/naming/jmx/JMXObjectFactory.java
Removed:
geronimo/trunk/modules/naming/src/java/org/apache/geronimo/naming/jmx/
Modified:
geronimo/trunk/modules/connector/src/java/org/apache/geronimo/connector/deployment/ConnectorModuleBuilder.java
Log:
improve names and introduce a helper interface
Modified: geronimo/trunk/modules/connector/src/java/org/apache/geronimo/connector/deployment/ConnectorModuleBuilder.java
==============================================================================
--- geronimo/trunk/modules/connector/src/java/org/apache/geronimo/connector/deployment/ConnectorModuleBuilder.java (original)
+++ geronimo/trunk/modules/connector/src/java/org/apache/geronimo/connector/deployment/ConnectorModuleBuilder.java Sun Oct 31 16:05:29 2004
@@ -66,8 +66,8 @@
import org.apache.geronimo.j2ee.deployment.j2eeobjectnames.J2eeContext;
import org.apache.geronimo.j2ee.deployment.j2eeobjectnames.J2eeContextImpl;
import org.apache.geronimo.j2ee.deployment.j2eeobjectnames.NameFactory;
-import org.apache.geronimo.naming.jmx.JMXObjectFactory;
-import org.apache.geronimo.naming.jmx.JMXRefAddr;
+import org.apache.geronimo.naming.reference.RefAddrContentObjectFactory;
+import org.apache.geronimo.naming.reference.GBeanGetResourceRefAddr;
import org.apache.geronimo.schema.SchemaConversionUtils;
import org.apache.geronimo.xbeans.geronimo.GerAdminobjectInstanceType;
import org.apache.geronimo.xbeans.geronimo.GerAdminobjectType;
@@ -659,9 +659,12 @@
throw new DeploymentException("Unexpected transaction support element");
}
PoolingSupport pooling = null;
+ //TODO configure this
+// int idleTimeoutMinutes = 15;
if (connectionManager.getSinglePool() != null) {
pooling = new SinglePool(connectionManager.getSinglePool().getMaxSize(),
connectionManager.getSinglePool().getBlockingTimeoutMilliseconds(),
+// idleTimeoutMinutes,
connectionManager.getSinglePool().getMatchOne() != null,
connectionManager.getSinglePool().getMatchAll() != null,
connectionManager.getSinglePool().getSelectOneAssumeMatch() != null);
@@ -670,6 +673,7 @@
connectionManager.getPartitionedPool().getPartitionBySubject() != null,
connectionManager.getPartitionedPool().getMaxSize(),
connectionManager.getPartitionedPool().getBlockingTimeoutMilliseconds(),
+// idleTimeoutMinutes,
connectionManager.getPartitionedPool().getMatchOne() != null,
connectionManager.getPartitionedPool().getMatchAll() != null,
connectionManager.getPartitionedPool().getSelectOneAssumeMatch() != null);
@@ -770,14 +774,14 @@
//ResourceReferenceBuilder implementation
public Reference createResourceRef(String containerId, Class iface) throws DeploymentException {
- Reference ref = new Reference(null, JMXObjectFactory.class.getName(), null);
- ref.add(new JMXRefAddr(null, containerId, iface));
+ Reference ref = new Reference(null, RefAddrContentObjectFactory.class.getName(), null);
+ ref.add(new GBeanGetResourceRefAddr(null, containerId, iface));
return ref;
}
public Reference createAdminObjectRef(String containerId, Class iface) throws DeploymentException {
- Reference ref = new Reference(null, JMXObjectFactory.class.getName(), null);
- ref.add(new JMXRefAddr(null, containerId, iface));
+ Reference ref = new Reference(null, RefAddrContentObjectFactory.class.getName(), null);
+ ref.add(new GBeanGetResourceRefAddr(null, containerId, iface));
return ref;
}
Copied: geronimo/trunk/modules/naming/src/java/org/apache/geronimo/naming/reference/GBeanGetResourceRefAddr.java (from rev 56121, geronimo/trunk/modules/naming/src/java/org/apache/geronimo/naming/jmx/JMXRefAddr.java)
==============================================================================
--- geronimo/trunk/modules/naming/src/java/org/apache/geronimo/naming/jmx/JMXRefAddr.java (original)
+++ geronimo/trunk/modules/naming/src/java/org/apache/geronimo/naming/reference/GBeanGetResourceRefAddr.java Sun Oct 31 16:05:29 2004
@@ -15,28 +15,29 @@
* limitations under the License.
*/
-package org.apache.geronimo.naming.jmx;
+package org.apache.geronimo.naming.reference;
-import java.net.URI;
-import java.net.URISyntaxException;
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectName;
import javax.naming.RefAddr;
+import org.apache.geronimo.kernel.Kernel;
+
/**
*
*
* @version $Rev$ $Date$
*
* */
-public class JMXRefAddr extends RefAddr {
+public class GBeanGetResourceRefAddr extends RefAddr implements GBeanRefAddr {
private final static String TYPE = "org.apache.geronimo.naming.jmx.RefType";
private final String kernelName;
private final String containerId;
- private final static String SCHEME = "geronimo";
private final Class iface;
- public JMXRefAddr(String kernelName, String containerId, Class iface) {
+ public GBeanGetResourceRefAddr(String kernelName, String containerId, Class iface) {
super(TYPE);
this.kernelName = kernelName;
this.containerId = containerId;
@@ -57,10 +58,33 @@
}
public Object getContent() {
+ Kernel kernel;
+ if (getKernelName() == null) {
+ kernel = Kernel.getSingleKernel();
+ } else {
+ kernel = Kernel.getKernel(getKernelName());
+ }
+
+ ObjectName target = null;
try {
- return new URI(SCHEME, kernelName, containerId, null);
- } catch (URISyntaxException e) {
- throw (IllegalStateException)new IllegalStateException("invalid jmx ref addr").initCause(e);
+ target = ObjectName.getInstance(getContainerId());
+ } catch (MalformedObjectNameException e) {
+ throw (IllegalArgumentException) new IllegalArgumentException("Invalid object name in jmxRefAddr: " + getContainerId()).initCause(e);
}
+
+ Object proxy = null;
+ try {
+ proxy = kernel.invoke(target, "$getResource");
+ } catch (Exception e) {
+ throw (IllegalStateException)new IllegalStateException("Could not get proxy").initCause(e);
+ }
+ if (proxy == null) {
+ throw new IllegalStateException("Proxy not returned. Target " + getContainerId() + " not started");
+ }
+ if (!getInterface().isAssignableFrom(proxy.getClass())) {
+ throw new ClassCastException("Proxy does not implement expected interface " + getInterface());
+ }
+ return proxy;
+
}
}
Added: geronimo/trunk/modules/naming/src/java/org/apache/geronimo/naming/reference/GBeanRefAddr.java
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/naming/src/java/org/apache/geronimo/naming/reference/GBeanRefAddr.java Sun Oct 31 16:05:29 2004
@@ -0,0 +1,28 @@
+/**
+ *
+ * Copyright 2003-2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.geronimo.naming.reference;
+
+/**
+ * @version $Rev: $ $Date: $
+ */
+public interface GBeanRefAddr {
+
+ String getContainerId();
+
+ String getKernelName();
+
+}
Copied: geronimo/trunk/modules/naming/src/java/org/apache/geronimo/naming/reference/RefAddrContentObjectFactory.java (from rev 56121, geronimo/trunk/modules/naming/src/java/org/apache/geronimo/naming/jmx/JMXObjectFactory.java)
==============================================================================
--- geronimo/trunk/modules/naming/src/java/org/apache/geronimo/naming/jmx/JMXObjectFactory.java (original)
+++ geronimo/trunk/modules/naming/src/java/org/apache/geronimo/naming/reference/RefAddrContentObjectFactory.java Sun Oct 31 16:05:29 2004
@@ -15,56 +15,26 @@
* limitations under the License.
*/
-package org.apache.geronimo.naming.jmx;
+package org.apache.geronimo.naming.reference;
import java.util.Hashtable;
-
import javax.naming.Context;
import javax.naming.Name;
import javax.naming.RefAddr;
import javax.naming.Reference;
import javax.naming.spi.ObjectFactory;
-import javax.management.ObjectName;
-import javax.management.MalformedObjectNameException;
-
-import org.apache.geronimo.kernel.Kernel;
/**
* @version $Rev$ $Date$
*/
-public class JMXObjectFactory implements ObjectFactory {
+public class RefAddrContentObjectFactory implements ObjectFactory {
public Object getObjectInstance(Object obj, Name name, Context nameCtx,
Hashtable environment) throws Exception {
if (obj instanceof Reference) {
Reference ref = (Reference) obj;
RefAddr refAddr = ref.get(0);
- if (!(refAddr instanceof JMXRefAddr)) {
- throw new IllegalStateException("Invalid ref addr in a Connectionfactory ref: " + refAddr);
- }
- JMXRefAddr jmxRefAddr = (JMXRefAddr) refAddr;
- Kernel kernel;
- if (jmxRefAddr.getKernelName() == null) {
- kernel = Kernel.getSingleKernel();
- } else {
- kernel = Kernel.getKernel(jmxRefAddr.getKernelName());
- }
-
- ObjectName target = null;
- try {
- target = ObjectName.getInstance(jmxRefAddr.getContainerId());
- } catch (MalformedObjectNameException e) {
- throw (IllegalArgumentException) new IllegalArgumentException("Invalid object name in jmxRefAddr: " + jmxRefAddr.getContainerId()).initCause(e);
- }
-
- Object proxy = kernel.invoke(target, "$getResource");
- if (proxy == null) {
- throw new IllegalStateException("Proxy not returned. Target " + jmxRefAddr.getContainerId() + " not started");
- }
- if (!jmxRefAddr.getInterface().isAssignableFrom(proxy.getClass())) {
- throw new ClassCastException("Proxy does not implement expected interface " + jmxRefAddr.getInterface());
- }
- return proxy;
+ return refAddr.getContent();
}
return null;
}