You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hivemind.apache.org by hl...@apache.org on 2004/11/08 15:14:25 UTC
cvs commit: jakarta-hivemind/library/src/test/org/apache/hivemind/lib/impl TestServicePropertyFactory.java
hlship 2004/11/08 06:14:25
Modified: framework/src/java/org/apache/hivemind/service/impl
CtClassSource.java HiveMindClassPool.java
LoggingInterceptorFactory.java ClassFabImpl.java
ClassFactoryImpl.java ClassFactoryClassLoader.java
src/documentation/content/xdocs index.xml links.ent
library/src/java/org/apache/hivemind/lib/impl
EJBProxyFactory.java ServicePropertyFactory.java
PlaceholderFactory.java
DefaultImplementationBuilderImpl.java
framework/src/java/org/apache/hivemind/impl
ProxyBuilder.java
framework/src/java/org/apache/hivemind
ServiceImplementationFactory.java
framework/src/test/org/apache/hivemind/service/impl
TestLoggingInterceptorFactory.java
. status.xml
framework/src/java/org/apache/hivemind/service
ClassFactory.java
library/src/test/org/apache/hivemind/lib/pipeline
TestPipelineAssembler.java TestBridgeBuilder.java
library/src/java/org/apache/hivemind/lib/adapter
AdapterRegistryFactory.java
library/src/java/org/apache/hivemind/lib/pipeline
PipelineFactory.java PipelineAssembler.java
BridgeBuilder.java
library/src/java/org/apache/hivemind/lib
DefaultImplementationBuilder.java
library/src/test/org/apache/hivemind/lib/adapter
TestAdapterRegistryFactory.java
library/src/test/hivemind/test/lib
TestDefaultImplementationBuilder.java
library/src/test/org/apache/hivemind/lib/impl
TestServicePropertyFactory.java
Log:
Simplify the ClassFactory and DefaultimplementationBuilder interfaces by removing the Module parameter from each.
Revision Changes Path
1.5 +7 -10 jakarta-hivemind/framework/src/java/org/apache/hivemind/service/impl/CtClassSource.java
Index: CtClassSource.java
===================================================================
RCS file: /home/cvs/jakarta-hivemind/framework/src/java/org/apache/hivemind/service/impl/CtClassSource.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- CtClassSource.java 2 Nov 2004 22:32:16 -0000 1.4
+++ CtClassSource.java 8 Nov 2004 14:14:24 -0000 1.5
@@ -38,6 +38,13 @@
public CtClass getCtClass(Class searchClass)
{
+ ClassLoader loader = searchClass.getClassLoader();
+
+ // Add the class loader for the searchClass to the class pool and
+ // delegating class loader if needed.
+
+ _pool.appendClassLoader(loader);
+
String name = ClassFabUtils.getJavaClassName(searchClass);
try
@@ -66,16 +73,6 @@
try
{
return _pool.toClass(ctClass);
-
- // _pool.write(className);
- //
- // byte[] bytecode = _pool.write(className);
- //
- // Class result = _pool.loadClass(className, bytecode);
- //
- // // _cache.add(className, bytecode);
- //
- // return result;
}
catch (Throwable ex)
{
1.4 +6 -2 jakarta-hivemind/framework/src/java/org/apache/hivemind/service/impl/HiveMindClassPool.java
Index: HiveMindClassPool.java
===================================================================
RCS file: /home/cvs/jakarta-hivemind/framework/src/java/org/apache/hivemind/service/impl/HiveMindClassPool.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- HiveMindClassPool.java 2 Nov 2004 22:32:16 -0000 1.3
+++ HiveMindClassPool.java 8 Nov 2004 14:14:24 -0000 1.4
@@ -14,7 +14,9 @@
package org.apache.hivemind.service.impl;
+import java.util.HashMap;
import java.util.HashSet;
+import java.util.Map;
import java.util.Set;
import javassist.CannotCompileException;
@@ -35,13 +37,15 @@
private ClassFactoryClassLoader _loader = new ClassFactoryClassLoader();
/**
- * Used to identify which class loaders have already been integrated into the pool.
+ * Used to identify which class loaders have already been integrated into the pool.
*/
private Set _loaders = new HashSet();
public HiveMindClassPool()
{
super(null);
+
+ appendClassLoader(Thread.currentThread().getContextClassLoader());
}
/**
@@ -49,7 +53,7 @@
*/
public synchronized void appendClassLoader(ClassLoader loader)
{
- if (_loaders.contains(loader))
+ if (loader == null || loader == _loader || _loaders.contains(loader))
return;
_loader.addDelegateLoader(loader);
1.11 +2 -3 jakarta-hivemind/framework/src/java/org/apache/hivemind/service/impl/LoggingInterceptorFactory.java
Index: LoggingInterceptorFactory.java
===================================================================
RCS file: /home/cvs/jakarta-hivemind/framework/src/java/org/apache/hivemind/service/impl/LoggingInterceptorFactory.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- LoggingInterceptorFactory.java 14 Sep 2004 17:56:51 -0000 1.10
+++ LoggingInterceptorFactory.java 8 Nov 2004 14:14:24 -0000 1.11
@@ -202,11 +202,10 @@
private Class constructInterceptorClass(InterceptorStack stack, List parameters)
{
Class serviceInterfaceClass = stack.getServiceInterface();
- Module module = stack.getServiceModule();
-
+
String name = ClassFabUtils.generateClassName("Interceptor");
- ClassFab classFab = _factory.newClass(name, Object.class, module.getClassResolver().getClassLoader());
+ ClassFab classFab = _factory.newClass(name, Object.class);
classFab.addInterface(serviceInterfaceClass);
1.7 +25 -1 jakarta-hivemind/framework/src/java/org/apache/hivemind/service/impl/ClassFabImpl.java
Index: ClassFabImpl.java
===================================================================
RCS file: /home/cvs/jakarta-hivemind/framework/src/java/org/apache/hivemind/service/impl/ClassFabImpl.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- ClassFabImpl.java 4 Nov 2004 03:19:20 -0000 1.6
+++ ClassFabImpl.java 8 Nov 2004 14:14:24 -0000 1.7
@@ -46,6 +46,14 @@
private final CtClassSource _source;
/**
+ * Map from Class to CtClass.
+ *
+ * @since 1.1
+ */
+
+ private Map _ctClassCache = new HashMap();
+
+ /**
* Stores information about a constructor; used by toString().
*
* @since 1.1
@@ -352,9 +360,25 @@
for (int i = 0; i < count; i++)
{
- CtClass ctClass = _source.getCtClass(inputClasses[i]);
+ CtClass ctClass = convertClass(inputClasses[i]);
result[i] = ctClass;
+ }
+
+ return result;
+ }
+
+ /**
+ * @since 1.1
+ */
+ private CtClass convertClass(Class inputClass)
+ {
+ CtClass result = (CtClass) _ctClassCache.get(inputClass);
+
+ if (result == null)
+ {
+ result = _source.getCtClass(inputClass);
+ _ctClassCache.put(inputClass, result);
}
return result;
1.8 +8 -27 jakarta-hivemind/framework/src/java/org/apache/hivemind/service/impl/ClassFactoryImpl.java
Index: ClassFactoryImpl.java
===================================================================
RCS file: /home/cvs/jakarta-hivemind/framework/src/java/org/apache/hivemind/service/impl/ClassFactoryImpl.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- ClassFactoryImpl.java 13 Sep 2004 14:48:15 -0000 1.7
+++ ClassFactoryImpl.java 8 Nov 2004 14:14:24 -0000 1.8
@@ -14,9 +14,6 @@
package org.apache.hivemind.service.impl;
-import java.util.HashSet;
-import java.util.Set;
-
import javassist.CtClass;
import org.apache.hivemind.ApplicationRuntimeException;
@@ -25,7 +22,7 @@
/**
* Implementation of {@link org.apache.hivemind.service.ClassFactory}.
- *
+ *
* @author Howard Lewis Ship
*/
public class ClassFactoryImpl implements ClassFactory
@@ -34,14 +31,11 @@
* ClassPool shared by all modules (all CtClassSource instances).
*/
private HiveMindClassPool _pool = new HiveMindClassPool();
- private CtClassSource _classSource = new CtClassSource(_pool);
- private Set _addedClassLoaders = new HashSet();
+ private CtClassSource _classSource = new CtClassSource(_pool);
- public ClassFab newClass(String name, Class superClass, ClassLoader loader)
+ public ClassFab newClass(String name, Class superClass)
{
- updateSourceForClassLoader(loader);
-
try
{
CtClass ctNewClass = _classSource.newClass(name, superClass);
@@ -50,24 +44,11 @@
}
catch (Exception ex)
{
- throw new ApplicationRuntimeException(
- ServiceMessages.unableToCreateClass(name, superClass, ex),
- ex);
+ throw new ApplicationRuntimeException(ServiceMessages.unableToCreateClass(
+ name,
+ superClass,
+ ex), ex);
}
}
- /**
- * Whenever a new class loader is encountered (which is, actually,
- * fairly rare), update the pool (and, indirectly, the class source)
- * to search it as well.
- */
- private synchronized void updateSourceForClassLoader(ClassLoader loader)
- {
- if (_addedClassLoaders.contains(loader))
- return;
-
- _pool.appendClassLoader(loader);
-
- _addedClassLoaders.add(loader);
- }
-}
+}
\ No newline at end of file
1.6 +2 -2 jakarta-hivemind/framework/src/java/org/apache/hivemind/service/impl/ClassFactoryClassLoader.java
Index: ClassFactoryClassLoader.java
===================================================================
RCS file: /home/cvs/jakarta-hivemind/framework/src/java/org/apache/hivemind/service/impl/ClassFactoryClassLoader.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- ClassFactoryClassLoader.java 2 Nov 2004 22:32:16 -0000 1.5
+++ ClassFactoryClassLoader.java 8 Nov 2004 14:14:24 -0000 1.6
@@ -19,7 +19,7 @@
/**
* ClassLoader used to properly instantiate newly created classes.
- *
+ *
* @author Howard Lewis Ship / Essl Christian
* @see org.apache.hivemind.service.impl.CtClassSource
*/
@@ -71,4 +71,4 @@
throw cnfex;
}
-}
+}
\ No newline at end of file
1.22 +16 -4 jakarta-hivemind/src/documentation/content/xdocs/index.xml
Index: index.xml
===================================================================
RCS file: /home/cvs/jakarta-hivemind/src/documentation/content/xdocs/index.xml,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- index.xml 5 Nov 2004 15:58:34 -0000 1.21
+++ index.xml 8 Nov 2004 14:14:24 -0000 1.22
@@ -90,12 +90,24 @@
<p>James Carman has just been voted on as a HiveMind committer.</p>
<p>HiveMind's final 1.0 release occured on Sep 22 2004. Work is already underway
on a 1.1 release.</p>
- <p>Release 1.1 has introduced an incompatible change to the &api.ServiceImplementationFactory; interface. This
- change should not affect the vast majority of HiveMind users, only those who have created their
- own service implementation factory services.</p>
- <p>Added the <link href="site:hivemind.lib.AdaptorRegistryFactory">AdaptorRegistryFactory</link> service implementation
+ <p>Added the <link href="site:hivemind.lib.AdapterRegistryFactory">AdapterRegistryFactory</link> service implementation
factory.</p>
</section>
+ <section>
+ <title>Upgrade warnings (release 1.0 to release 1.1)</title>
+
+ <p>For the most part, code that works with HiveMind 1.0 will work with HiveMind 1.1 as well. There have been a small number
+ of incompatible changes between releases that will not affect the vast majority of users:</p>
+ <ul>
+ <li>The &api.ServiceImplementationFactory; interface has been been simplified, replacing a long list of
+ parameters with a single &api.ServiceImplementationFactoryParameters; object.</li>
+ <li>The &api.ClassFactory;'s newClass() method has been simplified; the module parameter has been
+ removed.</li>
+ <li>The module parameter has also been removed from the DefaultImplementationBuilder's
+ buildDefaultImplementation() method.</li>
+ </ul>
+
+ </section>
<section>
<title>Acknowledgments</title>
<p>HiveMind represents a generous donation of code to the Apache Software
1.18 +3 -0 jakarta-hivemind/src/documentation/content/xdocs/links.ent
Index: links.ent
===================================================================
RCS file: /home/cvs/jakarta-hivemind/src/documentation/content/xdocs/links.ent,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- links.ent 2 Nov 2004 17:46:11 -0000 1.17
+++ links.ent 8 Nov 2004 14:14:24 -0000 1.18
@@ -21,6 +21,7 @@
<!ENTITY hivedoc '&projectroot;hivedocs'>
+<!ENTITY api.ClassFactory '<link href="&apiroot;/service/ClassFactory.html">ClassFactory</link>'>
<!ENTITY api.ClassResolver '<link href="&apiroot;/ClassResolver.html">ClassResolver</link>'>
<!ENTITY api.Element '<link href="&apiroot;/Element.html">Element</link>'>
<!ENTITY api.ErrorHandler '<link href="&apiroot;/ErrorHandler.html">ErrorHandler</link>'>
@@ -34,6 +35,8 @@
<!ENTITY api.RegistryShutdownListener '<link href="&apiroot;/events/RegistryShutdownListener.html">RegistryShutdownListener</link>'>
<!ENTITY api.Resource '<link href="&apiroot;/Resource.html">Resource</link>'>
<!ENTITY api.ServiceImplementationFactory '<link href="&apiroot;/ServiceImplementationFactory.html">ServiceImplementationFactory</link>'>
+<!ENTITY api.ServiceImplementationFactoryParameter '<link href="&apiroot;/ServiceImplementationFactoryParameters.html">ServiceImplementationFactoryParameters</link>'>
+
<!ENTITY api.ServiceInterceptorFactory '<link href="&apiroot;/ServiceInterceptorFactory.html">ServiceInterceptorFactory</link>'>
<!ENTITY api.Translator '<link href="&apiroot;/schema/Translator.html">Translator</link>'>
1.11 +1 -2 jakarta-hivemind/library/src/java/org/apache/hivemind/lib/impl/EJBProxyFactory.java
Index: EJBProxyFactory.java
===================================================================
RCS file: /home/cvs/jakarta-hivemind/library/src/java/org/apache/hivemind/lib/impl/EJBProxyFactory.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- EJBProxyFactory.java 2 Nov 2004 17:46:09 -0000 1.10
+++ EJBProxyFactory.java 8 Nov 2004 14:14:25 -0000 1.11
@@ -67,8 +67,7 @@
ClassFab classFab =
_classFactory.newClass(
proxyClassName,
- AbstractEJBProxy.class,
- module.getClassResolver().getClassLoader());
+ AbstractEJBProxy.class);
classFab.addInterface(serviceInterface);
1.8 +1 -2 jakarta-hivemind/library/src/java/org/apache/hivemind/lib/impl/ServicePropertyFactory.java
Index: ServicePropertyFactory.java
===================================================================
RCS file: /home/cvs/jakarta-hivemind/library/src/java/org/apache/hivemind/lib/impl/ServicePropertyFactory.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- ServicePropertyFactory.java 2 Nov 2004 17:46:09 -0000 1.7
+++ ServicePropertyFactory.java 8 Nov 2004 14:14:25 -0000 1.8
@@ -73,8 +73,7 @@
String name = ClassFabUtils.generateClassName("ServicePropertyProxy");
- ClassFab cf = _classFactory.newClass(name, Object.class, factoryParameters
- .getInvokingModule().getClassResolver().getClassLoader());
+ ClassFab cf = _classFactory.newClass(name, Object.class);
addInfrastructure(cf, targetService, serviceInterface, propertyName, readMethodName);
1.4 +1 -2 jakarta-hivemind/library/src/java/org/apache/hivemind/lib/impl/PlaceholderFactory.java
Index: PlaceholderFactory.java
===================================================================
RCS file: /home/cvs/jakarta-hivemind/library/src/java/org/apache/hivemind/lib/impl/PlaceholderFactory.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- PlaceholderFactory.java 2 Nov 2004 17:46:09 -0000 1.3
+++ PlaceholderFactory.java 8 Nov 2004 14:14:25 -0000 1.4
@@ -37,8 +37,7 @@
ServiceImplementationFactoryParameters factoryParameters)
{
return _builder.buildDefaultImplementation(
- factoryParameters.getServiceInterface(),
- factoryParameters.getInvokingModule());
+ factoryParameters.getServiceInterface());
}
public void setBuilder(DefaultImplementationBuilder builder)
1.6 +16 -19 jakarta-hivemind/library/src/java/org/apache/hivemind/lib/impl/DefaultImplementationBuilderImpl.java
Index: DefaultImplementationBuilderImpl.java
===================================================================
RCS file: /home/cvs/jakarta-hivemind/library/src/java/org/apache/hivemind/lib/impl/DefaultImplementationBuilderImpl.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- DefaultImplementationBuilderImpl.java 5 Nov 2004 15:58:35 -0000 1.5
+++ DefaultImplementationBuilderImpl.java 8 Nov 2004 14:14:25 -0000 1.6
@@ -20,7 +20,6 @@
import org.apache.hivemind.ApplicationRuntimeException;
import org.apache.hivemind.impl.BaseLocatable;
-import org.apache.hivemind.internal.Module;
import org.apache.hivemind.lib.DefaultImplementationBuilder;
import org.apache.hivemind.service.ClassFab;
import org.apache.hivemind.service.ClassFabUtils;
@@ -29,33 +28,33 @@
/**
* Implemenation of {@link org.apache.hivemind.lib.DefaultImplementationBuilder}.
- *
+ *
* @author Howard Lewis Ship
*/
-public class DefaultImplementationBuilderImpl
- extends BaseLocatable
- implements DefaultImplementationBuilder
+public class DefaultImplementationBuilderImpl extends BaseLocatable implements
+ DefaultImplementationBuilder
{
private Map _instances = Collections.synchronizedMap(new HashMap());
private ClassFactory _classFactory;
- public Object buildDefaultImplementation(Class interfaceType, Module module)
+ public Object buildDefaultImplementation(Class interfaceType)
{
Object result = _instances.get(interfaceType);
if (result == null)
{
- result = create(interfaceType, module);
+ result = create(interfaceType);
+
_instances.put(interfaceType, result);
}
return result;
}
- private Object create(Class interfaceType, Module module)
+ private Object create(Class interfaceType)
{
- Class defaultClass = createClass(interfaceType, module);
+ Class defaultClass = createClass(interfaceType);
try
{
@@ -63,21 +62,20 @@
}
catch (Exception ex)
{
- throw new ApplicationRuntimeException(
- ImplMessages.unableToCreateDefaultImplementation(interfaceType, ex),
- ex);
+ throw new ApplicationRuntimeException(ImplMessages.unableToCreateDefaultImplementation(
+ interfaceType,
+ ex), ex);
}
}
- private Class createClass(Class interfaceType, Module module)
+ private Class createClass(Class interfaceType)
{
if (!interfaceType.isInterface())
throw new ApplicationRuntimeException(ImplMessages.notAnInterface(interfaceType));
String name = ClassFabUtils.generateClassName("DefaultImpl");
- ClassFab cf =
- _classFactory.newClass(name, Object.class, module.getClassResolver().getClassLoader());
+ ClassFab cf = _classFactory.newClass(name, Object.class);
cf.addInterface(interfaceType);
@@ -89,9 +87,8 @@
}
if (!mi.getToString())
- ClassFabUtils.addToStringMethod(
- cf,
- ImplMessages.defaultImplementationDescription(interfaceType));
+ ClassFabUtils.addToStringMethod(cf, ImplMessages
+ .defaultImplementationDescription(interfaceType));
return cf.createClass();
}
@@ -101,4 +98,4 @@
_classFactory = factory;
}
-}
+}
\ No newline at end of file
1.7 +1 -2 jakarta-hivemind/framework/src/java/org/apache/hivemind/impl/ProxyBuilder.java
Index: ProxyBuilder.java
===================================================================
RCS file: /home/cvs/jakarta-hivemind/framework/src/java/org/apache/hivemind/impl/ProxyBuilder.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- ProxyBuilder.java 13 Sep 2004 14:48:16 -0000 1.6
+++ ProxyBuilder.java 8 Nov 2004 14:14:25 -0000 1.7
@@ -56,8 +56,7 @@
_classFab =
factory.newClass(
ClassFabUtils.generateClassName(type),
- Object.class,
- module.getClassResolver().getClassLoader());
+ Object.class);
_classFab.addInterface(_serviceInterface);
}
1.6 +0 -3 jakarta-hivemind/framework/src/java/org/apache/hivemind/ServiceImplementationFactory.java
Index: ServiceImplementationFactory.java
===================================================================
RCS file: /home/cvs/jakarta-hivemind/framework/src/java/org/apache/hivemind/ServiceImplementationFactory.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- ServiceImplementationFactory.java 2 Nov 2004 17:46:09 -0000 1.5
+++ ServiceImplementationFactory.java 8 Nov 2004 14:14:25 -0000 1.6
@@ -37,7 +37,4 @@
*/
public Object createCoreServiceImplementation(
ServiceImplementationFactoryParameters factoryParameters);
-
- // TODO: Can we use something else here? Module is in internal and it would be best
- // to not expose it.
}
1.3 +3 -12 jakarta-hivemind/framework/src/test/org/apache/hivemind/service/impl/TestLoggingInterceptorFactory.java
Index: TestLoggingInterceptorFactory.java
===================================================================
RCS file: /home/cvs/jakarta-hivemind/framework/src/test/org/apache/hivemind/service/impl/TestLoggingInterceptorFactory.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TestLoggingInterceptorFactory.java 14 Sep 2004 17:56:50 -0000 1.2
+++ TestLoggingInterceptorFactory.java 8 Nov 2004 14:14:25 -0000 1.3
@@ -17,7 +17,6 @@
import java.util.Collections;
import org.apache.commons.logging.Log;
-import org.apache.hivemind.impl.DefaultClassResolver;
import org.apache.hivemind.impl.InterceptorStackImpl;
import org.apache.hivemind.internal.Module;
import org.apache.hivemind.internal.ServicePoint;
@@ -49,22 +48,14 @@
MockControl spControl = newControl(ServicePoint.class);
ServicePoint sp = (ServicePoint) spControl.getMock();
-
- MockControl moduleControl = newControl(Module.class);
- Module module = (Module) moduleControl.getMock();
+
+ Module module = (Module)newMock(Module.class);
// Training
sp.getServiceInterface();
spControl.setReturnValue(Runnable.class);
-
- sp.getModule();
- spControl.setReturnValue(module);
-
- module.getClassResolver();
- moduleControl.setReturnValue(new DefaultClassResolver());
-
-
+
sp.getExtensionPointId();
spControl.setReturnValue("foo.bar");
1.77 +3 -1 jakarta-hivemind/status.xml
Index: status.xml
===================================================================
RCS file: /home/cvs/jakarta-hivemind/status.xml,v
retrieving revision 1.76
retrieving revision 1.77
diff -u -r1.76 -r1.77
--- status.xml 5 Nov 2004 15:58:35 -0000 1.76
+++ status.xml 8 Nov 2004 14:14:25 -0000 1.77
@@ -86,8 +86,10 @@
Add toString() support to ClassFab and MethodFab.
</action>
<action type="add" dev="HLS">
- Add the hivemind.lib.AdaptorRegistryFactory service implementation factory.
+ Add the hivemind.lib.AdapterRegistryFactory service implementation factory.
</action>
+ <action type="update" dev="HLS"> Removed the module parameter from ClassFactory.newClass() and from
+ DefaultImplementationBuilder.buildDefaultImplementation(). </action>
</release>
<release version="1.0" date="Sep 22 2004">
1.5 +15 -14 jakarta-hivemind/framework/src/java/org/apache/hivemind/service/ClassFactory.java
Index: ClassFactory.java
===================================================================
RCS file: /home/cvs/jakarta-hivemind/framework/src/java/org/apache/hivemind/service/ClassFactory.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- ClassFactory.java 13 Sep 2004 14:48:16 -0000 1.4
+++ ClassFactory.java 8 Nov 2004 14:14:25 -0000 1.5
@@ -16,21 +16,22 @@
/**
* Service used when dynamically creating new classes.
- *
+ *
* @author Howard Lewis Ship
*/
public interface ClassFactory
{
- /**
- * Creates a {@link ClassFab} object for the given name; the new class
- * is a subclass of the indicated class. The new class
- * is public and concrete.
- *
- * @param name the full qualified name of the class to create
- * @param superClass the parent class, which is often java.lang.Object
- * @param classLoader the class loader to use when resolving classes (this is usually
- * provided by the containing {@link org.apache.hivemind.internal.Module}.
- */
-
- public ClassFab newClass(String name, Class superClass, ClassLoader classLoader);
-}
+ /**
+ * Creates a {@link ClassFab}object for the given name; the new class is a subclass of the
+ * indicated class. The new class is public and concrete.
+ * <p>
+ * <b>Incompatible change from 1.0: The module parameter has been removed. </b>
+ *
+ * @param name
+ * the full qualified name of the class to create
+ * @param superClass
+ * the parent class, which is often java.lang.Object
+ */
+
+ public ClassFab newClass(String name, Class superClass);
+}
\ No newline at end of file
1.9 +5 -28 jakarta-hivemind/library/src/test/org/apache/hivemind/lib/pipeline/TestPipelineAssembler.java
Index: TestPipelineAssembler.java
===================================================================
RCS file: /home/cvs/jakarta-hivemind/library/src/test/org/apache/hivemind/lib/pipeline/TestPipelineAssembler.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- TestPipelineAssembler.java 2 Nov 2004 17:46:10 -0000 1.8
+++ TestPipelineAssembler.java 8 Nov 2004 14:14:25 -0000 1.9
@@ -70,7 +70,7 @@
replayControls();
PipelineAssembler pa = new PipelineAssembler(log, "foo.bar", StandardService.class,
- StandardFilter.class, null, null, null);
+ StandardFilter.class, null, null);
StandardService ss1 = new StandardInner("ss1");
StandardService ss2 = new StandardInner("ss2");
@@ -94,7 +94,7 @@
replayControls();
PipelineAssembler pa = new PipelineAssembler(log, "foo.bar", StandardService.class,
- StandardFilter.class, null, null, null);
+ StandardFilter.class, null, null);
pa.setTerminator("-String-", null);
@@ -114,7 +114,7 @@
replayControls();
PipelineAssembler pa = new PipelineAssembler(log, "foo.bar", StandardService.class,
- StandardFilter.class, null, null, null);
+ StandardFilter.class, null, null);
pa.addFilter("filter-name", null, null, "-String-", null);
@@ -128,14 +128,12 @@
dib.setClassFactory(cf);
- Module module = newModule();
-
ErrorLog log = newErrorLog();
replayControls();
PipelineAssembler pa = new PipelineAssembler(log, "foo.bar", StandardService.class,
- StandardFilter.class, new ClassFactoryImpl(), dib, module);
+ StandardFilter.class, new ClassFactoryImpl(), dib);
StandardService pipeline = (StandardService) pa.createPipeline();
@@ -151,12 +149,10 @@
dib.setClassFactory(cf);
- Module module = newModule();
-
ErrorLog log = newErrorLog();
PipelineAssembler pa = new PipelineAssembler(log, "foo.bar", StandardService.class,
- StandardFilter.class, new ClassFactoryImpl(), dib, module);
+ StandardFilter.class, new ClassFactoryImpl(), dib);
replayControls();
@@ -210,8 +206,6 @@
dib.setClassFactory(cf);
- // Module module = newModule();
-
PipelineFactory factory = new PipelineFactory();
factory.setClassFactory(cf);
factory.setDefaultImplementationBuilder(dib);
@@ -240,9 +234,6 @@
fp.getServiceInterface();
fpc.setReturnValue(StandardService.class);
- fp.getInvokingModule();
- fpc.setReturnValue(newModule());
-
replayControls();
StandardService s = (StandardService) factory.createCoreServiceImplementation(fp);
@@ -296,9 +287,6 @@
fp.getServiceInterface();
fpc.setReturnValue(StandardService.class);
- fp.getInvokingModule();
- fpc.setReturnValue(newModule());
-
replayControls();
StandardService s = (StandardService) factory.createCoreServiceImplementation(fp);
@@ -307,17 +295,6 @@
assertEquals(18, s.run(9));
verifyControls();
- }
-
- private Module newModule()
- {
- MockControl control = newControl(Module.class);
- Module result = (Module) control.getMock();
-
- result.getClassResolver();
- control.setReturnValue(new DefaultClassResolver());
-
- return result;
}
private ErrorLog newErrorLog()
1.6 +5 -28 jakarta-hivemind/library/src/test/org/apache/hivemind/lib/pipeline/TestBridgeBuilder.java
Index: TestBridgeBuilder.java
===================================================================
RCS file: /home/cvs/jakarta-hivemind/library/src/test/org/apache/hivemind/lib/pipeline/TestBridgeBuilder.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- TestBridgeBuilder.java 2 Nov 2004 17:46:10 -0000 1.5
+++ TestBridgeBuilder.java 8 Nov 2004 14:14:25 -0000 1.6
@@ -16,15 +16,11 @@
import java.io.Serializable;
-import org.apache.commons.logging.Log;
import org.apache.hivemind.ApplicationRuntimeException;
import org.apache.hivemind.ErrorLog;
-import org.apache.hivemind.impl.DefaultClassResolver;
-import org.apache.hivemind.internal.Module;
import org.apache.hivemind.service.ClassFactory;
import org.apache.hivemind.service.impl.ClassFactoryImpl;
import org.apache.hivemind.test.HiveMindTestCase;
-import org.easymock.MockControl;
/**
* Tests the {@link org.apache.hivemind.lib.pipeline.BridgeBuilder}class.
@@ -36,25 +32,12 @@
{
private ClassFactory _classFactory = new ClassFactoryImpl();
- private Module setupModule()
- {
- MockControl control = newControl(Module.class);
- Module result = (Module) control.getMock();
-
- result.getClassResolver();
- control.setReturnValue(new DefaultClassResolver());
-
- return result;
- }
-
public void testStandard()
{
- Module module = setupModule();
-
replayControls();
BridgeBuilder bb = new BridgeBuilder(null, "foo.bar", StandardService.class,
- StandardFilter.class, _classFactory, module);
+ StandardFilter.class, _classFactory);
StandardFilter sf = new StandardFilter()
{
@@ -91,12 +74,10 @@
public void testToString()
{
- Module module = setupModule();
-
replayControls();
BridgeBuilder bb = new BridgeBuilder(null, "foo.bar", ToStringService.class,
- ToStringFilter.class, _classFactory, module);
+ ToStringFilter.class, _classFactory);
ToStringFilter f = new ToStringFilter()
{
@@ -123,7 +104,6 @@
public void testExtraServiceMethod()
{
- Module module = setupModule();
ErrorLog log = (ErrorLog) newMock(ErrorLog.class);
log
@@ -135,7 +115,7 @@
replayControls();
BridgeBuilder bb = new BridgeBuilder(log, "foo.bar", ExtraServiceMethod.class,
- Serializable.class, _classFactory, module);
+ Serializable.class, _classFactory);
ExtraServiceMethod esm = (ExtraServiceMethod) bb.instantiateBridge(null, null);
@@ -156,7 +136,6 @@
public void testExtraFilterMethod()
{
- Module module = setupModule();
ErrorLog log = (ErrorLog) newMock(ErrorLog.class);
log
@@ -170,7 +149,7 @@
replayControls();
BridgeBuilder bb = new BridgeBuilder(log, "foo.bar", Serializable.class,
- ExtraFilterMethod.class, _classFactory, module);
+ ExtraFilterMethod.class, _classFactory);
Object bridge = bb.instantiateBridge(null, null);
@@ -181,12 +160,10 @@
public void testServiceInTheMiddle()
{
- Module module = setupModule();
-
replayControls();
BridgeBuilder bb = new BridgeBuilder(null, "foo.bar", MiddleService.class,
- MiddleFilter.class, _classFactory, module);
+ MiddleFilter.class, _classFactory);
MiddleFilter mf = new MiddleFilter()
{
1.2 +1 -1 jakarta-hivemind/library/src/java/org/apache/hivemind/lib/adapter/AdapterRegistryFactory.java
Index: AdapterRegistryFactory.java
===================================================================
RCS file: /home/cvs/jakarta-hivemind/library/src/java/org/apache/hivemind/lib/adapter/AdapterRegistryFactory.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AdapterRegistryFactory.java 7 Nov 2004 12:35:00 -0000 1.1
+++ AdapterRegistryFactory.java 8 Nov 2004 14:14:25 -0000 1.2
@@ -126,7 +126,7 @@
{
Class serviceInterface = factoryParameters.getServiceInterface();
- ClassFab cf = _classFactory.newClass(name, Object.class, loader);
+ ClassFab cf = _classFactory.newClass(name, Object.class);
cf.addInterface(serviceInterface);
1.6 +1 -1 jakarta-hivemind/library/src/java/org/apache/hivemind/lib/pipeline/PipelineFactory.java
Index: PipelineFactory.java
===================================================================
RCS file: /home/cvs/jakarta-hivemind/library/src/java/org/apache/hivemind/lib/pipeline/PipelineFactory.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- PipelineFactory.java 2 Nov 2004 17:46:10 -0000 1.5
+++ PipelineFactory.java 8 Nov 2004 14:14:25 -0000 1.6
@@ -48,7 +48,7 @@
PipelineAssembler pa = new PipelineAssembler(_errorLog, factoryParameters.getServiceId(),
factoryParameters.getServiceInterface(), pp.getFilterInterface(), _classFactory,
- _defaultImplementationBuilder, factoryParameters.getInvokingModule());
+ _defaultImplementationBuilder);
Object terminator = pp.getTerminator();
1.5 +5 -10 jakarta-hivemind/library/src/java/org/apache/hivemind/lib/pipeline/PipelineAssembler.java
Index: PipelineAssembler.java
===================================================================
RCS file: /home/cvs/jakarta-hivemind/library/src/java/org/apache/hivemind/lib/pipeline/PipelineAssembler.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- PipelineAssembler.java 2 Nov 2004 17:46:10 -0000 1.4
+++ PipelineAssembler.java 8 Nov 2004 14:14:25 -0000 1.5
@@ -16,8 +16,6 @@
import java.util.List;
-import org.apache.commons.logging.Log;
-import org.apache.hivemind.ErrorHandler;
import org.apache.hivemind.ErrorLog;
import org.apache.hivemind.Location;
import org.apache.hivemind.impl.BaseLocatable;
@@ -57,8 +55,6 @@
/**
* @param errorLog
* used for reporting recoverable errors
- * @param servceId
- * of the service being assembled
* @param serviceInterface
* the main interface
* @param filterInterface
@@ -67,12 +63,12 @@
* for creating new classes
* @param defaultBuilder
* used to provide a placeholder terminator if no real terminator is supplied
- * @param module
- * the Module containing the service to be created
+ * @param servceId
+ * of the service being assembled
*/
public PipelineAssembler(ErrorLog errorLog, String serviceId, Class serviceInterface,
Class filterInterface, ClassFactory classFactory,
- DefaultImplementationBuilder defaultBuilder, Module module)
+ DefaultImplementationBuilder defaultBuilder)
{
_errorLog = errorLog;
_serviceId = serviceId;
@@ -80,7 +76,6 @@
_filterInterface = filterInterface;
_classFactory = classFactory;
_defaultBuilder = defaultBuilder;
- _module = module;
_orderer = new Orderer(_errorLog, "filter");
@@ -146,10 +141,10 @@
int count = filterHolders.size();
BridgeBuilder bb = (count == 0) ? null : new BridgeBuilder(_errorLog, _serviceId,
- _serviceInterface, _filterInterface, _classFactory, _module);
+ _serviceInterface, _filterInterface, _classFactory);
Object next = _terminator != null ? _terminator : _defaultBuilder
- .buildDefaultImplementation(_serviceInterface, _module);
+ .buildDefaultImplementation(_serviceInterface);
// Like service interceptors, we work deepest (last) to shallowest (first).
1.5 +2 -3 jakarta-hivemind/library/src/java/org/apache/hivemind/lib/pipeline/BridgeBuilder.java
Index: BridgeBuilder.java
===================================================================
RCS file: /home/cvs/jakarta-hivemind/library/src/java/org/apache/hivemind/lib/pipeline/BridgeBuilder.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- BridgeBuilder.java 2 Nov 2004 17:46:10 -0000 1.4
+++ BridgeBuilder.java 8 Nov 2004 14:14:25 -0000 1.5
@@ -54,7 +54,7 @@
private Constructor _constructor;
BridgeBuilder(ErrorLog errorLog, String serviceId, Class serviceInterface,
- Class filterInterface, ClassFactory classFactory, Module module)
+ Class filterInterface, ClassFactory classFactory)
{
_errorLog = errorLog;
_serviceId = serviceId;
@@ -63,8 +63,7 @@
String name = ClassFabUtils.generateClassName("PipelineBridge");
- _classFab = classFactory.newClass(name, Object.class, module.getClassResolver()
- .getClassLoader());
+ _classFab = classFactory.newClass(name, Object.class);
_filterMethodAnalyzer = new FilterMethodAnalyzer(serviceInterface);
}
1.2 +1 -2 jakarta-hivemind/library/src/java/org/apache/hivemind/lib/DefaultImplementationBuilder.java
Index: DefaultImplementationBuilder.java
===================================================================
RCS file: /home/cvs/jakarta-hivemind/library/src/java/org/apache/hivemind/lib/DefaultImplementationBuilder.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DefaultImplementationBuilder.java 6 Jun 2004 02:14:30 -0000 1.1
+++ DefaultImplementationBuilder.java 8 Nov 2004 14:14:25 -0000 1.2
@@ -14,7 +14,6 @@
package org.apache.hivemind.lib;
-import org.apache.hivemind.internal.Module;
/**
* Builds a default implementation of an interface. The fabricated class has no-op
@@ -32,5 +31,5 @@
*
* @throws org.apache.hivemind.ApplicationRuntimeException if interfaceType is not an interface.
*/
- public Object buildDefaultImplementation(Class interfaceType, Module module);
+ public Object buildDefaultImplementation(Class interfaceType);
}
1.2 +2 -2 jakarta-hivemind/library/src/test/org/apache/hivemind/lib/adapter/TestAdapterRegistryFactory.java
Index: TestAdapterRegistryFactory.java
===================================================================
RCS file: /home/cvs/jakarta-hivemind/library/src/test/org/apache/hivemind/lib/adapter/TestAdapterRegistryFactory.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TestAdapterRegistryFactory.java 7 Nov 2004 12:35:00 -0000 1.1
+++ TestAdapterRegistryFactory.java 8 Nov 2004 14:14:25 -0000 1.2
@@ -159,7 +159,7 @@
fp.getServiceInterface();
fpc.setReturnValue(ToStringAdapter.class);
- factory.newClass("NewClass", Object.class, loader);
+ factory.newClass("NewClass", Object.class);
factoryControl.setReturnValue(cf);
cf.addInterface(ToStringAdapter.class);
@@ -225,7 +225,7 @@
fp.getServiceInterface();
fpc.setReturnValue(Runnable.class);
- factory.newClass("NewClass", Object.class, loader);
+ factory.newClass("NewClass", Object.class);
factoryControl.setReturnValue(cf);
cf.addInterface(Runnable.class);
1.10 +3 -26 jakarta-hivemind/library/src/test/hivemind/test/lib/TestDefaultImplementationBuilder.java
Index: TestDefaultImplementationBuilder.java
===================================================================
RCS file: /home/cvs/jakarta-hivemind/library/src/test/hivemind/test/lib/TestDefaultImplementationBuilder.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- TestDefaultImplementationBuilder.java 2 Nov 2004 17:46:08 -0000 1.9
+++ TestDefaultImplementationBuilder.java 8 Nov 2004 14:14:25 -0000 1.10
@@ -17,8 +17,6 @@
import org.apache.hivemind.ApplicationRuntimeException;
import org.apache.hivemind.Registry;
import org.apache.hivemind.ServiceImplementationFactoryParameters;
-import org.apache.hivemind.impl.DefaultClassResolver;
-import org.apache.hivemind.internal.Module;
import org.apache.hivemind.lib.DefaultImplementationBuilder;
import org.apache.hivemind.lib.impl.DefaultImplementationBuilderImpl;
import org.apache.hivemind.lib.impl.PlaceholderFactory;
@@ -36,8 +34,6 @@
{
private DefaultImplementationBuilder _builder;
- private Module _module;
-
protected void setUp() throws Exception
{
super.setUp();
@@ -49,23 +45,11 @@
_builder = bi;
}
- private void setupModule()
- {
- MockControl c = newControl(Module.class);
- _module = (Module) c.getMock();
-
- _module.getClassResolver();
- c.setReturnValue(new DefaultClassResolver());
-
- }
-
private Object create(Class interfaceType)
{
- setupModule();
-
replayControls();
- return _builder.buildDefaultImplementation(interfaceType, _module);
+ return _builder.buildDefaultImplementation(interfaceType);
}
public void testSimple()
@@ -102,7 +86,7 @@
public void testCache()
{
Runnable r1 = (Runnable) create(Runnable.class);
- Runnable r2 = (Runnable) _builder.buildDefaultImplementation(Runnable.class, _module);
+ Runnable r2 = (Runnable) _builder.buildDefaultImplementation(Runnable.class);
assertSame(r1, r2);
@@ -130,11 +114,9 @@
"hivemind.lib.DefaultImplementationBuilder",
DefaultImplementationBuilder.class);
- setupModule();
-
replayControls();
- Runnable o = (Runnable) dib.buildDefaultImplementation(Runnable.class, _module);
+ Runnable o = (Runnable) dib.buildDefaultImplementation(Runnable.class);
o.run();
@@ -151,14 +133,9 @@
db.setBuilder(_builder);
- setupModule();
-
fp.getServiceInterface();
fpc.setReturnValue(Runnable.class);
- fp.getInvokingModule();
- fpc.setReturnValue(_module);
-
replayControls();
Runnable r = (Runnable) db.createCoreServiceImplementation(fp);
1.6 +0 -17 jakarta-hivemind/library/src/test/org/apache/hivemind/lib/impl/TestServicePropertyFactory.java
Index: TestServicePropertyFactory.java
===================================================================
RCS file: /home/cvs/jakarta-hivemind/library/src/test/org/apache/hivemind/lib/impl/TestServicePropertyFactory.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- TestServicePropertyFactory.java 2 Nov 2004 17:46:10 -0000 1.5
+++ TestServicePropertyFactory.java 8 Nov 2004 14:14:25 -0000 1.6
@@ -43,17 +43,6 @@
return result;
}
- private Module newModule()
- {
- MockControl c = newControl(Module.class);
- Module result = (Module) c.getMock();
-
- result.getClassResolver();
- c.setReturnValue(new DefaultClassResolver());
-
- return result;
- }
-
private List newParameters(Object service, String propertyName)
{
ServicePropertyFactoryParameter p = new ServicePropertyFactoryParameter();
@@ -88,9 +77,6 @@
fp.getServiceInterface();
fpc.setReturnValue(Wonk.class);
- fp.getInvokingModule();
- fpc.setReturnValue(newModule());
-
fp.getServiceId();
fpc.setReturnValue("foo.bar");
@@ -123,9 +109,6 @@
fp.getServiceInterface();
fpc.setReturnValue(Wonk.class);
-
- fp.getInvokingModule();
- fpc.setReturnValue(newModule());
fp.getServiceId();
fpc.setReturnValue("foo.bar");
---------------------------------------------------------------------
To unsubscribe, e-mail: hivemind-cvs-unsubscribe@jakarta.apache.org
For additional commands, e-mail: hivemind-cvs-help@jakarta.apache.org