You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hivemind.apache.org by ah...@apache.org on 2006/09/18 23:31:34 UTC

svn commit: r447574 - in /hivemind/branches/branch-2-0-annot: library/src/java/org/apache/hivemind/lib/chain/ library/src/java/org/apache/hivemind/lib/factory/ library/src/test/hivemind/test/lib/ library/src/test/org/apache/hivemind/lib/factory/ librar...

Author: ahuegen
Date: Mon Sep 18 14:31:33 2006
New Revision: 447574

URL: http://svn.apache.org/viewvc?view=rev&rev=447574
Log:
Reworked ServiceImplementationFactoryParameters. Made it backward compatible.

Modified:
    hivemind/branches/branch-2-0-annot/library/src/java/org/apache/hivemind/lib/chain/ChainFactory.java
    hivemind/branches/branch-2-0-annot/library/src/java/org/apache/hivemind/lib/factory/BeanFactoryBuilder.java
    hivemind/branches/branch-2-0-annot/library/src/test/hivemind/test/lib/TestSpringLookupFactory.java
    hivemind/branches/branch-2-0-annot/library/src/test/org/apache/hivemind/lib/factory/TestBeanFactoryImpl.java
    hivemind/branches/branch-2-0-annot/library/src/test/org/apache/hivemind/lib/impl/TestServicePropertyFactory.java
    hivemind/branches/branch-2-0-annot/library/src/test/org/apache/hivemind/lib/pipeline/TestPipelineAssembler.java
    hivemind/branches/branch-2-0-annot/library/src/test/org/apache/hivemind/lib/strategy/TestStrategyFactory.java
    hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/ServiceImplementationFactoryParameters.java
    hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/InvokeFactoryServiceConstructor.java
    hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/ServiceImplementationFactoryParametersImpl.java
    hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/service/impl/BuilderFactory.java

Modified: hivemind/branches/branch-2-0-annot/library/src/java/org/apache/hivemind/lib/chain/ChainFactory.java
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/library/src/java/org/apache/hivemind/lib/chain/ChainFactory.java?view=diff&rev=447574&r1=447573&r2=447574
==============================================================================
--- hivemind/branches/branch-2-0-annot/library/src/java/org/apache/hivemind/lib/chain/ChainFactory.java (original)
+++ hivemind/branches/branch-2-0-annot/library/src/java/org/apache/hivemind/lib/chain/ChainFactory.java Mon Sep 18 14:31:33 2006
@@ -35,7 +35,7 @@
     public Object createCoreServiceImplementation(
             ServiceImplementationFactoryParameters factoryParameters)
     {
-        List contributions = (List) factoryParameters.getParameters();
+        List contributions = (List) factoryParameters.getFirstParameter();
 
         Orderer orderer = new Orderer(factoryParameters.getErrorLog(), "command");
 

Modified: hivemind/branches/branch-2-0-annot/library/src/java/org/apache/hivemind/lib/factory/BeanFactoryBuilder.java
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/library/src/java/org/apache/hivemind/lib/factory/BeanFactoryBuilder.java?view=diff&rev=447574&r1=447573&r2=447574
==============================================================================
--- hivemind/branches/branch-2-0-annot/library/src/java/org/apache/hivemind/lib/factory/BeanFactoryBuilder.java (original)
+++ hivemind/branches/branch-2-0-annot/library/src/java/org/apache/hivemind/lib/factory/BeanFactoryBuilder.java Mon Sep 18 14:31:33 2006
@@ -28,7 +28,7 @@
     public Object createCoreServiceImplementation(
             ServiceImplementationFactoryParameters factoryParameters)
     {
-        BeanFactoryParameter p = (BeanFactoryParameter) factoryParameters.getParameters();
+        BeanFactoryParameter p = (BeanFactoryParameter) factoryParameters.getFirstParameter();
 
         return new BeanFactoryImpl(factoryParameters.getErrorLog(), p.getVendClass(), p
                 .getContributions(), p.getDefaultCacheable());

Modified: hivemind/branches/branch-2-0-annot/library/src/test/hivemind/test/lib/TestSpringLookupFactory.java
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/library/src/test/hivemind/test/lib/TestSpringLookupFactory.java?view=diff&rev=447574&r1=447573&r2=447574
==============================================================================
--- hivemind/branches/branch-2-0-annot/library/src/test/hivemind/test/lib/TestSpringLookupFactory.java (original)
+++ hivemind/branches/branch-2-0-annot/library/src/test/hivemind/test/lib/TestSpringLookupFactory.java Mon Sep 18 14:31:33 2006
@@ -21,7 +21,6 @@
 import org.apache.hivemind.lib.SpringBeanFactoryHolder;
 import org.apache.hivemind.lib.impl.SpringBeanParameter;
 import org.apache.hivemind.lib.impl.SpringLookupFactory;
-import org.apache.hivemind.test.HiveMindTestCase;
 import org.apache.hivemind.xml.XmlTestCase;
 import org.springframework.beans.factory.BeanFactory;
 import org.springframework.beans.factory.xml.XmlBeanFactory;

Modified: hivemind/branches/branch-2-0-annot/library/src/test/org/apache/hivemind/lib/factory/TestBeanFactoryImpl.java
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/library/src/test/org/apache/hivemind/lib/factory/TestBeanFactoryImpl.java?view=diff&rev=447574&r1=447573&r2=447574
==============================================================================
--- hivemind/branches/branch-2-0-annot/library/src/test/org/apache/hivemind/lib/factory/TestBeanFactoryImpl.java (original)
+++ hivemind/branches/branch-2-0-annot/library/src/test/org/apache/hivemind/lib/factory/TestBeanFactoryImpl.java Mon Sep 18 14:31:33 2006
@@ -25,7 +25,6 @@
 import org.apache.hivemind.Registry;
 import org.apache.hivemind.ServiceImplementationFactoryParameters;
 import org.apache.hivemind.lib.BeanFactory;
-import org.apache.hivemind.test.HiveMindTestCase;
 import org.apache.hivemind.xml.XmlTestCase;
 import org.easymock.MockControl;
 
@@ -197,8 +196,8 @@
         ServiceImplementationFactoryParameters fp = (ServiceImplementationFactoryParameters) fpc
                 .getMock();
 
-        fp.getParameters();
-        fpc.setReturnValue(Collections.singletonList(p));
+        fp.getFirstParameter();
+        fpc.setReturnValue(p);
 
         fp.getErrorLog();
         fpc.setReturnValue(newMock(ErrorLog.class));

Modified: hivemind/branches/branch-2-0-annot/library/src/test/org/apache/hivemind/lib/impl/TestServicePropertyFactory.java
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/library/src/test/org/apache/hivemind/lib/impl/TestServicePropertyFactory.java?view=diff&rev=447574&r1=447573&r2=447574
==============================================================================
--- hivemind/branches/branch-2-0-annot/library/src/test/org/apache/hivemind/lib/impl/TestServicePropertyFactory.java (original)
+++ hivemind/branches/branch-2-0-annot/library/src/test/org/apache/hivemind/lib/impl/TestServicePropertyFactory.java Mon Sep 18 14:31:33 2006
@@ -17,8 +17,6 @@
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
 import java.lang.reflect.Proxy;
-import java.util.Collections;
-import java.util.List;
 
 import org.apache.hivemind.ApplicationRuntimeException;
 import org.apache.hivemind.HiveMind;
@@ -26,7 +24,6 @@
 import org.apache.hivemind.ServiceImplementationFactoryParameters;
 import org.apache.hivemind.internal.ServicePoint;
 import org.apache.hivemind.service.impl.ClassFactoryImpl;
-import org.apache.hivemind.test.HiveMindTestCase;
 import org.apache.hivemind.xml.XmlTestCase;
 import org.easymock.MockControl;
 
@@ -46,7 +43,7 @@
         return result;
     }
 
-    private List newParameters(WonkSource service, String propertyName)
+    private ServicePropertyFactoryParameter newParameters(WonkSource service, String propertyName)
     {
         ServicePropertyFactoryParameter p = new ServicePropertyFactoryParameter();
 
@@ -61,7 +58,7 @@
         p.setPropertyName(propertyName);
         p.setLocation(newLocation());
 
-        return Collections.singletonList(p);
+        return p;
     }
 
     public void testSuccess()
@@ -75,13 +72,13 @@
         ServiceImplementationFactoryParameters fp = (ServiceImplementationFactoryParameters) fpc
                 .getMock();
 
-        List parameters = newParameters(new WonkHolder(wonk), "wonk");
+        ServicePropertyFactoryParameter parameters = newParameters(new WonkHolder(wonk), "wonk");
 
         wonk.wonkVoid();
         wonk.wonkString("zebra");
         wonkControl.setReturnValue("stripes");
 
-        fp.getParameters();
+        fp.getFirstParameter();
         fpc.setReturnValue(parameters);
 
         fp.getServiceInterface();
@@ -122,13 +119,13 @@
 					}
         	  
         		} );
-        List parameters = newParameters(jdkProxy, "wonk");
+        ServicePropertyFactoryParameter parameters = newParameters(jdkProxy, "wonk");
 
         wonk.wonkVoid();
         wonk.wonkString("zebra");
         wonkControl.setReturnValue("stripes");
 
-        fp.getParameters();
+        fp.getFirstParameter();
         fpc.setReturnValue(parameters);
 
         fp.getServiceInterface();
@@ -158,9 +155,9 @@
 
         ServicePropertyFactory f = newFactory();
 
-        List parameters = newParameters(new WonkHolder(null), "wonk");
+        ServicePropertyFactoryParameter parameters = newParameters(new WonkHolder(null), "wonk");
 
-        fp.getParameters();
+        fp.getFirstParameter();
         fpc.setReturnValue(parameters);
 
         fp.getServiceInterface();
@@ -194,9 +191,9 @@
 
         ServicePropertyFactory f = newFactory();
 
-        List parameters = newParameters(new WonkHolder(null), "writeOnly");
+        ServicePropertyFactoryParameter parameters = newParameters(new WonkHolder(null), "writeOnly");
 
-        fp.getParameters();
+        fp.getFirstParameter();
         fpc.setReturnValue(parameters);
 
         replayControls();
@@ -209,7 +206,7 @@
         catch (ApplicationRuntimeException ex)
         {
             assertEquals("Property 'writeOnly' of <WonkHolder> is not readable.", ex.getMessage());
-            assertEquals(HiveMind.getLocation(parameters.get(0)), ex.getLocation());
+            assertEquals(HiveMind.getLocation(parameters), ex.getLocation());
         }
 
         verifyControls();
@@ -223,9 +220,9 @@
 
         ServicePropertyFactory f = newFactory();
 
-        List parameters = newParameters(new WonkHolder(null), "class");
+        ServicePropertyFactoryParameter parameters = newParameters(new WonkHolder(null), "class");
 
-        fp.getParameters();
+        fp.getFirstParameter();
         fpc.setReturnValue(parameters);
 
         fp.getServiceInterface();
@@ -243,7 +240,7 @@
             assertEquals(
                     "Property 'class' of <WonkHolder> is type java.lang.Class, which does not match the expected interface org.apache.hivemind.lib.impl.Wonk.",
                     ex.getMessage());
-            assertEquals(HiveMind.getLocation(parameters.get(0)), ex.getLocation());
+            assertEquals(HiveMind.getLocation(parameters), ex.getLocation());
         }
 
         verifyControls();

Modified: hivemind/branches/branch-2-0-annot/library/src/test/org/apache/hivemind/lib/pipeline/TestPipelineAssembler.java
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/library/src/test/org/apache/hivemind/lib/pipeline/TestPipelineAssembler.java?view=diff&rev=447574&r1=447573&r2=447574
==============================================================================
--- hivemind/branches/branch-2-0-annot/library/src/test/org/apache/hivemind/lib/pipeline/TestPipelineAssembler.java (original)
+++ hivemind/branches/branch-2-0-annot/library/src/test/org/apache/hivemind/lib/pipeline/TestPipelineAssembler.java Mon Sep 18 14:31:33 2006
@@ -15,7 +15,6 @@
 package org.apache.hivemind.lib.pipeline;
 
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 
 import org.apache.hivemind.ErrorLog;
@@ -24,7 +23,6 @@
 import org.apache.hivemind.lib.impl.DefaultImplementationBuilderImpl;
 import org.apache.hivemind.service.ClassFactory;
 import org.apache.hivemind.service.impl.ClassFactoryImpl;
-import org.apache.hivemind.test.HiveMindTestCase;
 import org.apache.hivemind.xml.XmlTestCase;
 import org.easymock.MockControl;
 
@@ -224,8 +222,8 @@
 
         pp.setPipelineConfiguration(l);
 
-        fp.getParameters();
-        fpc.setReturnValue(Collections.singletonList(pp));
+        fp.getFirstParameter();
+        fpc.setReturnValue(pp);
 
         fp.getServiceId();
         fpc.setReturnValue("example");
@@ -277,8 +275,8 @@
 
         pp.setPipelineConfiguration(l);
 
-        fp.getParameters();
-        fpc.setReturnValue(Collections.singletonList(pp));
+        fp.getFirstParameter();
+        fpc.setReturnValue(pp);
 
         fp.getServiceId();
         fpc.setReturnValue("example");

Modified: hivemind/branches/branch-2-0-annot/library/src/test/org/apache/hivemind/lib/strategy/TestStrategyFactory.java
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/library/src/test/org/apache/hivemind/lib/strategy/TestStrategyFactory.java?view=diff&rev=447574&r1=447573&r2=447574
==============================================================================
--- hivemind/branches/branch-2-0-annot/library/src/test/org/apache/hivemind/lib/strategy/TestStrategyFactory.java (original)
+++ hivemind/branches/branch-2-0-annot/library/src/test/org/apache/hivemind/lib/strategy/TestStrategyFactory.java Mon Sep 18 14:31:33 2006
@@ -22,10 +22,6 @@
 import org.apache.hivemind.Location;
 import org.apache.hivemind.Registry;
 import org.apache.hivemind.ServiceImplementationFactoryParameters;
-import org.apache.hivemind.lib.strategy.StrategyContribution;
-import org.apache.hivemind.lib.strategy.StrategyMessages;
-import org.apache.hivemind.lib.strategy.StrategyParameter;
-import org.apache.hivemind.lib.strategy.StrategyFactory;
 import org.apache.hivemind.lib.util.StrategyRegistry;
 import org.apache.hivemind.service.ClassFab;
 import org.apache.hivemind.service.ClassFabUtils;
@@ -35,7 +31,6 @@
 import org.apache.hivemind.test.AggregateArgumentsMatcher;
 import org.apache.hivemind.test.ArgumentMatcher;
 import org.apache.hivemind.test.ArrayMatcher;
-import org.apache.hivemind.test.HiveMindTestCase;
 import org.apache.hivemind.test.TypeMatcher;
 import org.apache.hivemind.xml.XmlTestCase;
 import org.easymock.MockControl;

Modified: hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/ServiceImplementationFactoryParameters.java
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/ServiceImplementationFactoryParameters.java?view=diff&rev=447574&r1=447573&r2=447574
==============================================================================
--- hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/ServiceImplementationFactoryParameters.java (original)
+++ hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/ServiceImplementationFactoryParameters.java Mon Sep 18 14:31:33 2006
@@ -14,6 +14,8 @@
 
 package org.apache.hivemind;
 
+import java.util.List;
+
 import org.apache.commons.logging.Log;
 import org.apache.hivemind.internal.Module;
 
@@ -58,13 +60,22 @@
     /**
      * The parameters passed to the factory to guide the construction of the service. In most cases,
      * there will only be a single element in the list.
+     * Since HiveMind 2.0 schemas and thus parameters are no longer restricted to lists 
+     * as root element. The parameters can be contained in any other type.
+     * 
+     * @deprecated  use #getParametersContainer instead 
      */
-    public Object getParameters();
+    public List getParameters();
     
     /**
-     * Returns the first parameter passed to the factory (since most factories
-     * take exactly one parameter, this is the most common usage).  If no parameters exist,
-     * returns null.
+     * The parameters passed to the factory to guide the construction of the service.
+     * The concrete type depends on the underlying schema definition. 
+     */
+    public Object getParametersContainer();
+
+    /**
+     * Returns the first parameter passed to the factory. Works only if the parameters
+     * are contained in a list. If no parameters exist, returns null.
      */
     public Object getFirstParameter();
 

Modified: hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/InvokeFactoryServiceConstructor.java
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/InvokeFactoryServiceConstructor.java?view=diff&rev=447574&r1=447573&r2=447574
==============================================================================
--- hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/InvokeFactoryServiceConstructor.java (original)
+++ hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/InvokeFactoryServiceConstructor.java Mon Sep 18 14:31:33 2006
@@ -120,9 +120,14 @@
         _parameters = list;
     }
 
-    public void setFactoryServiceId(String string)
+    public void setFactoryServiceId(String factoryServiceId)
     {
-        _factoryServiceId = string;
+        _factoryServiceId = factoryServiceId;
+    }
+
+    public String getFactoryServiceId()
+    {
+        return _factoryServiceId;
     }
     
     public Object constructParametersContainer(String containerClassName, Module definingModule)
@@ -149,5 +154,6 @@
 
         log.error(message, getLocation(), null);
     }
+
 
 }

Modified: hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/ServiceImplementationFactoryParametersImpl.java
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/ServiceImplementationFactoryParametersImpl.java?view=diff&rev=447574&r1=447573&r2=447574
==============================================================================
--- hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/ServiceImplementationFactoryParametersImpl.java (original)
+++ hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/impl/ServiceImplementationFactoryParametersImpl.java Mon Sep 18 14:31:33 2006
@@ -17,6 +17,7 @@
 import java.util.List;
 
 import org.apache.commons.logging.Log;
+import org.apache.hivemind.ApplicationRuntimeException;
 import org.apache.hivemind.ServiceImplementationFactoryParameters;
 import org.apache.hivemind.ErrorLog;
 import org.apache.hivemind.internal.Module;
@@ -87,7 +88,18 @@
         return _invokingModule;
     }
 
-    public Object getParameters()
+    public List getParameters()
+    {
+        // For backward compatibility lists are handled specially. The behaviour
+        // of hivemind 1.x is emulated
+        if (_parameters instanceof List) {
+            return (List) _parameters;
+        } else {
+            throw new ApplicationRuntimeException("Parameters are not contained in a list. Use getParametersContainer instead.");
+        }
+    }
+    
+    public Object getParametersContainer()
     {
         return _parameters;
     }

Modified: hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/service/impl/BuilderFactory.java
URL: http://svn.apache.org/viewvc/hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/service/impl/BuilderFactory.java?view=diff&rev=447574&r1=447573&r2=447574
==============================================================================
--- hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/service/impl/BuilderFactory.java (original)
+++ hivemind/branches/branch-2-0-annot/xml/src/java/org/apache/hivemind/service/impl/BuilderFactory.java Mon Sep 18 14:31:33 2006
@@ -35,7 +35,7 @@
     public Object createCoreServiceImplementation(
             ServiceImplementationFactoryParameters factoryParameters)
     {
-        BuilderParameter parameter = (BuilderParameter) factoryParameters.getParameters();
+        BuilderParameter parameter = (BuilderParameter) factoryParameters.getFirstParameter();
 
         BuilderFactoryLogic logic = new BuilderFactoryLogic(factoryParameters, parameter);