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 2008/09/10 06:15:55 UTC
svn commit: r693702 - in /geronimo/server/trunk/framework/modules:
geronimo-kernel/src/main/java/org/apache/geronimo/kernel/
geronimo-kernel/src/main/java/org/apache/geronimo/kernel/basic/
geronimo-kernel/src/main/java/org/apache/geronimo/kernel/proxy/...
Author: djencks
Date: Tue Sep 9 21:15:55 2008
New Revision: 693702
URL: http://svn.apache.org/viewvc?rev=693702&view=rev
Log:
GERONIMO-4293 some generics in kernel
Modified:
geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/Kernel.java
geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/KernelGBean.java
geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/basic/BasicKernel.java
geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/basic/BasicProxyManager.java
geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/proxy/ProxyManager.java
geronimo/server/trunk/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/jmx/KernelDelegate.java
Modified: geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/Kernel.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/Kernel.java?rev=693702&r1=693701&r2=693702&view=diff
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/Kernel.java (original)
+++ geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/Kernel.java Tue Sep 9 21:15:55 2008
@@ -101,8 +101,8 @@
*/
Object getGBean(AbstractName name) throws GBeanNotFoundException, InternalKernelException, IllegalStateException;
Object getGBean(String shortName) throws GBeanNotFoundException, InternalKernelException, IllegalStateException;
- Object getGBean(Class type) throws GBeanNotFoundException, InternalKernelException, IllegalStateException;
- Object getGBean(String shortName, Class type) throws GBeanNotFoundException, InternalKernelException, IllegalStateException;
+ <T> T getGBean(Class<T> type) throws GBeanNotFoundException, InternalKernelException, IllegalStateException;
+ <T> T getGBean(String shortName, Class<T> type) throws GBeanNotFoundException, InternalKernelException, IllegalStateException;
/**
* Start a specific GBean.
@@ -226,14 +226,14 @@
* @param abstractNameQuery the query to execute
* @return the AbstractNames of all matching GBeans
*/
- Set listGBeans(AbstractNameQuery abstractNameQuery);
+ Set<AbstractName> listGBeans(AbstractNameQuery abstractNameQuery);
/**
* Returns a Set of all GBeans matching the set of object name pattern
* @param abstractNameQueries the queries to execute
* @return a List of AbstractNameName of matching GBeans registered with this kernel
*/
- Set listGBeans(Set abstractNameQueries);
+ Set<AbstractName> listGBeans(Set abstractNameQueries);
/**
* Gets the value of an attribute on the specified gbean
@@ -360,7 +360,7 @@
*
* @deprecated Use AbstractNameQuery version instead
*/
- Set listGBeans(ObjectName pattern);
+ Set<AbstractName> listGBeans(ObjectName pattern);
/**
* @deprecated Use AbstractName version instead
*/
Modified: geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/KernelGBean.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/KernelGBean.java?rev=693702&r1=693701&r2=693702&view=diff
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/KernelGBean.java (original)
+++ geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/KernelGBean.java Tue Sep 9 21:15:55 2008
@@ -90,11 +90,11 @@
return kernel.getGBean(shortName);
}
- public Object getGBean(Class type) throws GBeanNotFoundException, InternalKernelException, IllegalStateException {
+ public <T> T getGBean(Class<T> type) throws GBeanNotFoundException, InternalKernelException, IllegalStateException {
return kernel.getGBean(type);
}
- public Object getGBean(String shortName, Class type) throws GBeanNotFoundException, InternalKernelException, IllegalStateException {
+ public <T> T getGBean(String shortName, Class<T> type) throws GBeanNotFoundException, InternalKernelException, IllegalStateException {
return kernel.getGBean(shortName, type);
}
@@ -266,11 +266,11 @@
return kernel.getGBeanData(shortName, type);
}
- public Set listGBeans(ObjectName pattern) {
+ public Set<AbstractName> listGBeans(ObjectName pattern) {
return kernel.listGBeans(pattern);
}
- public Set listGBeans(Set patterns) {
+ public Set<AbstractName> listGBeans(Set patterns) {
return kernel.listGBeans(patterns);
}
@@ -386,7 +386,7 @@
return kernel.isRunning();
}
- public Set listGBeans(AbstractNameQuery refInfoQuery) {
+ public Set<AbstractName> listGBeans(AbstractNameQuery refInfoQuery) {
return kernel.listGBeans(refInfoQuery);
}
Modified: geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/basic/BasicKernel.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/basic/BasicKernel.java?rev=693702&r1=693701&r2=693702&view=diff
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/basic/BasicKernel.java (original)
+++ geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/basic/BasicKernel.java Tue Sep 9 21:15:55 2008
@@ -276,16 +276,16 @@
return getGBean(shortName, null);
}
- public Object getGBean(Class type) throws GBeanNotFoundException, InternalKernelException, IllegalStateException {
+ public <T> T getGBean(Class<T> type) throws GBeanNotFoundException, InternalKernelException, IllegalStateException {
return getGBean(null, type);
}
- public Object getGBean(String shortName, Class type) throws GBeanNotFoundException, InternalKernelException, IllegalStateException {
+ public <T> T getGBean(String shortName, Class<T> type) throws GBeanNotFoundException, InternalKernelException, IllegalStateException {
GBeanInstance gbeanInstance = registry.getGBeanInstance(shortName, type);
if (gbeanInstance.getState() != State.RUNNING_INDEX) {
throw new IllegalStateException("GBean is not running: " + gbeanInstance.getAbstractName());
}
- return gbeanInstance.getTarget();
+ return (T)gbeanInstance.getTarget();
}
public Object getGBean(ObjectName name) throws GBeanNotFoundException, InternalKernelException, IllegalStateException {
@@ -496,56 +496,52 @@
return gbeanInstance.getStartTime();
}
- public Set listGBeans(ObjectName pattern) {
- Set gbeans = registry.listGBeans(pattern);
+ public Set<AbstractName> listGBeans(ObjectName pattern) {
+ Set<GBeanInstance> gbeans = registry.listGBeans(pattern);
- Set result = new HashSet(gbeans.size());
- for (Iterator i = gbeans.iterator(); i.hasNext();) {
- GBeanInstance instance = (GBeanInstance) i.next();
- result.add(instance.getObjectNameObject());
+ Set<AbstractName> result = new HashSet<AbstractName>(gbeans.size());
+ for (GBeanInstance instance : gbeans) {
+ result.add(instance.getAbstractName());
}
return result;
}
- public Set listGBeans(Set patterns) {
- Set gbeans = new HashSet();
- for (Iterator iterator = patterns.iterator(); iterator.hasNext();) {
- Object pattern = iterator.next();
+ public Set<AbstractName> listGBeans(Set patterns) {
+ Set<AbstractName> gbeans = new HashSet<AbstractName>();
+ for (Object pattern : patterns) {
if (pattern instanceof ObjectName) {
- gbeans.addAll(listGBeans((ObjectName)pattern));
+ gbeans.addAll(listGBeans((ObjectName) pattern));
} else if (pattern instanceof AbstractNameQuery) {
- gbeans.addAll(listGBeans((AbstractNameQuery)pattern));
+ gbeans.addAll(listGBeans((AbstractNameQuery) pattern));
}
}
return gbeans;
}
- public Set listGBeans(AbstractNameQuery query) {
- Set gbeans = registry.listGBeans(query);
- Set result = new HashSet(gbeans.size());
- for (Iterator i = gbeans.iterator(); i.hasNext();) {
- GBeanInstance instance = (GBeanInstance) i.next();
+ public Set<AbstractName> listGBeans(AbstractNameQuery query) {
+ Set<GBeanInstance> gbeans = registry.listGBeans(query);
+ Set<AbstractName> result = new HashSet<AbstractName>(gbeans.size());
+ for (GBeanInstance instance : gbeans) {
result.add(instance.getAbstractName());
}
return result;
}
- public Set listGBeansByInterface(String[] interfaces) {
- Set gbeans = new HashSet();
- Set all = listGBeans((AbstractNameQuery)null);
- for (Iterator it = all.iterator(); it.hasNext();) {
- AbstractName name = (AbstractName) it.next();
+ public Set<AbstractName> listGBeansByInterface(String[] interfaces) {
+ Set<AbstractName> gbeans = new HashSet<AbstractName>();
+ Set<AbstractName> all = listGBeans((AbstractNameQuery)null);
+ for (AbstractName name : all) {
try {
GBeanInfo info = getGBeanInfo(name);
- Set intfs = info.getInterfaces();
- for (int i = 0; i < interfaces.length; i++) {
- String candidate = interfaces[i];
- if(intfs.contains(candidate)) {
+ Set<String> intfs = info.getInterfaces();
+ for (String candidate : interfaces) {
+ if (intfs.contains(candidate)) {
gbeans.add(name);
break;
}
}
- } catch (GBeanNotFoundException e) {}
+ } catch (GBeanNotFoundException e) {
+ }
}
return gbeans;
}
Modified: geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/basic/BasicProxyManager.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/basic/BasicProxyManager.java?rev=693702&r1=693701&r2=693702&view=diff
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/basic/BasicProxyManager.java (original)
+++ geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/basic/BasicProxyManager.java Tue Sep 9 21:15:55 2008
@@ -78,7 +78,7 @@
return new ManagedProxyFactory(types, classLoader);
}
- public Object createProxy(AbstractName target, Class type) {
+ public <T> T createProxy(AbstractName target, Class<T> type) {
if (target == null) throw new NullPointerException("target is null");
if (type == null) throw new NullPointerException("type is null");
@@ -100,7 +100,7 @@
if (types == null) types = new ArrayList();
types.add(type);
- return createProxyFactory((Class[]) types.toArray(new Class[types.size()]), classLoader).createProxy(target);
+ return (T) createProxyFactory((Class[]) types.toArray(new Class[types.size()]), classLoader).createProxy(target);
} catch (GBeanNotFoundException e) {
throw new IllegalArgumentException("Could not get GBeanInfo for target object: " + target, e);
}
Modified: geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/proxy/ProxyManager.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/proxy/ProxyManager.java?rev=693702&r1=693701&r2=693702&view=diff
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/proxy/ProxyManager.java (original)
+++ geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/proxy/ProxyManager.java Tue Sep 9 21:15:55 2008
@@ -41,7 +41,7 @@
public Object createProxy(AbstractName target, ClassLoader loader);
- public Object createProxy(AbstractName target, Class type);
+ public <T> T createProxy(AbstractName target, Class<T> type);
/**
* Cleans up and resources associated with the proxy
Modified: geronimo/server/trunk/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/jmx/KernelDelegate.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/jmx/KernelDelegate.java?rev=693702&r1=693701&r2=693702&view=diff
==============================================================================
--- geronimo/server/trunk/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/jmx/KernelDelegate.java (original)
+++ geronimo/server/trunk/framework/modules/geronimo-system/src/main/java/org/apache/geronimo/system/jmx/KernelDelegate.java Tue Sep 9 21:15:55 2008
@@ -100,21 +100,17 @@
}
}
- public Object getGBean(Class type) throws GBeanNotFoundException, InternalKernelException, IllegalStateException {
- try {
- return invokeKernel("getGBean", new Object[] {type}, new String[] {Class.class.getName()});
- } catch (GBeanNotFoundException e) {
- throw e;
- } catch (RuntimeException e) {
- throw e;
- } catch (Exception e) {
- throw new InternalKernelException(e);
+ public <T> T getGBean(Class<T> type) throws GBeanNotFoundException, InternalKernelException, IllegalStateException {
+ Set<AbstractName> set = listGBeans(new AbstractNameQuery(type.getName()));
+ for (AbstractName name : set) {
+ return proxyManager.createProxy(name, type);
}
+ throw new GBeanNotFoundException("No implementation found for type " + type.getName(), null, set);
}
- public Object getGBean(String shortName, Class type) throws GBeanNotFoundException, InternalKernelException, IllegalStateException {
+ public <T> T getGBean(String shortName, Class<T> type) throws GBeanNotFoundException, InternalKernelException, IllegalStateException {
try {
- return invokeKernel("getGBean", new Object[] {shortName, type}, new String[] {String.class.getName(), Class.class.getName()});
+ return (T)invokeKernel("getGBean", new Object[] {shortName, type}, new String[] {String.class.getName(), Class.class.getName()});
} catch (GBeanNotFoundException e) {
throw e;
} catch (RuntimeException e) {
@@ -663,9 +659,9 @@
}
}
- public Set listGBeans(ObjectName pattern) {
+ public Set<AbstractName> listGBeans(ObjectName pattern) {
try {
- return (Set) invokeKernel("listGBeans", new Object[] {pattern}, new String[] {ObjectName.class.getName()});
+ return (Set<AbstractName>) invokeKernel("listGBeans", new Object[] {pattern}, new String[] {ObjectName.class.getName()});
} catch (RuntimeException e) {
throw e;
} catch (Exception e) {
@@ -673,9 +669,9 @@
}
}
- public Set listGBeans(Set patterns) {
+ public Set<AbstractName> listGBeans(Set patterns) {
try {
- return (Set) invokeKernel("listGBeans", new Object[] {patterns}, new String[] {Set.class.getName()});
+ return (Set<AbstractName>) invokeKernel("listGBeans", new Object[] {patterns}, new String[] {Set.class.getName()});
} catch (RuntimeException e) {
throw e;
} catch (Exception e) {
@@ -832,9 +828,9 @@
return ((Boolean) getKernelAttribute("running")).booleanValue();
}
- public Set listGBeans(AbstractNameQuery query) {
+ public Set<AbstractName> listGBeans(AbstractNameQuery query) {
try {
- return (Set) invokeKernel("listGBeans", new Object[] {query}, new String[] {AbstractNameQuery.class.getName()});
+ return (Set<AbstractName>) invokeKernel("listGBeans", new Object[] {query}, new String[] {AbstractNameQuery.class.getName()});
} catch (RuntimeException e) {
throw e;
} catch (Exception e) {