You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@turbine.apache.org by gk...@apache.org on 2021/09/08 13:19:42 UTC

[turbine-fulcrum-factory] 40/49: Turbine coding standards compliance, update tests with annotations

This is an automated email from the ASF dual-hosted git repository.

gk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/turbine-fulcrum-factory.git

commit ce263e0da1553a77afd15d71af33a47b727fa6df
Author: Jeffery Painter <pa...@apache.org>
AuthorDate: Mon Jan 7 21:02:00 2019 +0000

    Turbine coding standards compliance, update tests with annotations
    
    git-svn-id: https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/factory@1850690 13f79535-47bb-0310-9956-ffa450edef68
---
 .../fulcrum/factory/DefaultFactoryService.java     | 140 ++++++++++++++-------
 .../apache/fulcrum/factory/FactoryException.java   |  12 +-
 .../org/apache/fulcrum/factory/FactoryService.java |  15 ++-
 .../factory/utils/ObjectInputStreamForContext.java |   4 +-
 .../apache/fulcrum/factory/FactoryServiceTest.java |  75 +++++++----
 .../utils/ObjectInputStreamForContextTest.java     |  31 ++++-
 6 files changed, 193 insertions(+), 84 deletions(-)

diff --git a/src/java/org/apache/fulcrum/factory/DefaultFactoryService.java b/src/java/org/apache/fulcrum/factory/DefaultFactoryService.java
index 0e6d599..69532f0 100644
--- a/src/java/org/apache/fulcrum/factory/DefaultFactoryService.java
+++ b/src/java/org/apache/fulcrum/factory/DefaultFactoryService.java
@@ -106,7 +106,8 @@ public class DefaultFactoryService extends AbstractLogEnabled
 	 * @param type a primitive type.
 	 * @return the corresponding class, or null.
 	 */
-	protected static Class<?> getPrimitiveClass(String type) {
+	protected static Class<?> getPrimitiveClass(String type) 
+	{
 		return primitiveClasses.get(type);
 	}
 
@@ -118,7 +119,8 @@ public class DefaultFactoryService extends AbstractLogEnabled
 	 * @throws FactoryException if instantiation fails.
 	 */
 	@Override
-	public <T> T getInstance(String className) throws FactoryException {
+	public <T> T getInstance(String className) throws FactoryException 
+	{
 		if (className == null) {
 			throw new FactoryException("Missing String className");
 		}
@@ -149,7 +151,8 @@ public class DefaultFactoryService extends AbstractLogEnabled
 	 * @throws FactoryException if instantiation fails.
 	 */
 	@Override
-	public <T> T getInstance(String className, ClassLoader loader) throws FactoryException {
+	public <T> T getInstance(String className, ClassLoader loader) throws FactoryException 
+	{
 		Factory<T> factory = getFactory(className);
 		if (factory == null) {
 			if (loader != null) {
@@ -180,7 +183,8 @@ public class DefaultFactoryService extends AbstractLogEnabled
 	 * @throws FactoryException if instantiation fails.
 	 */
 	@Override
-	public <T> T getInstance(String className, Object[] params, String[] signature) throws FactoryException {
+	public <T> T getInstance(String className, Object[] params, String[] signature) throws FactoryException 
+	{
 		Factory<T> factory = getFactory(className);
 		if (factory == null) {
 			Class<T> clazz;
@@ -203,7 +207,9 @@ public class DefaultFactoryService extends AbstractLogEnabled
 	 * <p>
 	 * Class loaders are supported only if the isLoaderSupported method returns
 	 * true. Otherwise the loader parameter is ignored.
+	 * </p>
 	 *
+	 * @param           <T> Type of the class
 	 * @param className the name of the class.
 	 * @param loader    the class loader.
 	 * @param params    an array containing the parameters of the constructor.
@@ -213,7 +219,8 @@ public class DefaultFactoryService extends AbstractLogEnabled
 	 */
 	@Override
 	public <T> T getInstance(String className, ClassLoader loader, Object[] params, String[] signature)
-			throws FactoryException {
+			throws FactoryException 
+	{
 		Factory<T> factory = getFactory(className);
 		if (factory == null) {
 			if (loader != null) {
@@ -248,6 +255,7 @@ public class DefaultFactoryService extends AbstractLogEnabled
 	/**
 	 * Gets an instance of a specified class.
 	 *
+	 * @param           <T> Type of the class
 	 * @param clazz the class.
 	 * @return the instance.
 	 * @throws FactoryException if instantiation fails.
@@ -295,7 +303,8 @@ public class DefaultFactoryService extends AbstractLogEnabled
 	 * @throws ClassNotFoundException if any of the classes is not found.
 	 */
 	@Override
-	public Class<?>[] getSignature(Class<?> clazz, Object params[], String signature[]) throws ClassNotFoundException {
+	public Class<?>[] getSignature(Class<?> clazz, Object params[], String signature[]) throws ClassNotFoundException 
+	{
 		if (signature != null) {
 			/* We have parameters. */
 			ClassLoader tempLoader;
@@ -337,30 +346,43 @@ public class DefaultFactoryService extends AbstractLogEnabled
 	 * @param loader the loader of the new context.
 	 * @return the object
 	 */
-	protected Object switchObjectContext(Object object, ClassLoader loader) {
+	protected Object switchObjectContext(Object object, ClassLoader loader) 
+	{
 		ByteArrayOutputStream bout = new ByteArrayOutputStream();
 
-		try {
+		try 
+		{
 			ObjectOutputStream out = new ObjectOutputStream(bout);
 			out.writeObject(object);
 			out.flush();
-		} catch (IOException x) {
+		} 
+		catch (IOException x) 
+		{
 			return object;
 		}
 
 		ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray());
 		ObjectInputStreamForContext in = null;
 
-		try {
+		try 
+		{
 			in = new ObjectInputStreamForContext(bin, loader);
 			return in.readObject();
-		} catch (Exception x) {
+		} 
+		catch (Exception x) 
+		{
 			return object;
-		} finally {
-			if (in != null) {
-				try {
+		} 
+		finally 
+		{
+			if (in != null) 
+			{
+				try 
+				{
 					in.close();
-				} catch (IOException e) {
+				} 
+				catch (IOException e) 
+				{
 					// close quietly
 				}
 			}
@@ -375,24 +397,35 @@ public class DefaultFactoryService extends AbstractLogEnabled
 	 * @throws ClassNotFoundException if the class was not found.
 	 */
 	@SuppressWarnings("unchecked")
-	protected <T> Class<T> loadClass(String className) throws ClassNotFoundException {
+	protected <T> Class<T> loadClass(String className) throws ClassNotFoundException 
+	{
 		ClassLoader loader = this.getClass().getClassLoader();
-		try {
+		try 
+		{
 			Class<T> clazz;
 
-			if (loader != null) {
+			if (loader != null) 
+			{
 				clazz = (Class<T>) loader.loadClass(className);
-			} else {
+			} 
+			else 
+			{
 				clazz = (Class<T>) Class.forName(className);
 			}
 
 			return clazz;
-		} catch (ClassNotFoundException x) {
+		} 
+		catch (ClassNotFoundException x) 
+		{
 			/* Go through additional loaders. */
-			for (ClassLoader l : classLoaders) {
-				try {
+			for (ClassLoader l : classLoaders) 
+			{
+				try 
+				{
 					return (Class<T>) l.loadClass(className);
-				} catch (ClassNotFoundException xx) {
+				} 
+				catch (ClassNotFoundException xx) 
+				{
 					// continue
 				}
 			}
@@ -410,10 +443,14 @@ public class DefaultFactoryService extends AbstractLogEnabled
 	 * @throws ClassNotFoundException if the class was not found.
 	 */
 	@SuppressWarnings("unchecked")
-	protected <T> Class<T> loadClass(String className, ClassLoader loader) throws ClassNotFoundException {
-		if (loader != null) {
+	protected <T> Class<T> loadClass(String className, ClassLoader loader) throws ClassNotFoundException 
+	{
+		if (loader != null) 
+		{
 			return (Class<T>) loader.loadClass(className);
-		} else {
+		} 
+		else 
+		{
 			return loadClass(className);
 		}
 	}
@@ -427,19 +464,24 @@ public class DefaultFactoryService extends AbstractLogEnabled
 	 * @throws FactoryException if instantiation of the factory fails.
 	 */
 	@SuppressWarnings("unchecked")
-	protected <T> Factory<T> getFactory(String className) throws FactoryException {
+	protected <T> Factory<T> getFactory(String className) throws FactoryException 
+	{
 		Factory<T> factory = (Factory<T>) objectFactories.get(className);
-		if (factory == null) {
-			// No named factory for this; try the default, if one
-			// exists.
+		if (factory == null) 
+		{
+			// No named factory for this; try the default, if one exists
 			factory = (Factory<T>) objectFactories.get(DEFAULT_FACTORY);
 		}
+		
 		if (factory == null) {
+			
 			/* Not yet instantiated... */
 			String factoryClass = objectFactoryClasses.get(className);
-			if (factoryClass == null) {
+			if (factoryClass == null) 
+			{
 				factoryClass = objectFactoryClasses.get(DEFAULT_FACTORY);
 			}
+			
 			if (factoryClass == null) {
 				return null;
 			}
@@ -447,11 +489,15 @@ public class DefaultFactoryService extends AbstractLogEnabled
 			try {
 				factory = getInstance(factoryClass);
 				factory.init(className);
-			} catch (ClassCastException x) {
+			} 
+			catch (ClassCastException x) 
+			{
 				throw new FactoryException("Incorrect factory " + factoryClass + " for class " + className, x);
 			}
+			
 			Factory<T> _factory = (Factory<T>) objectFactories.putIfAbsent(className, factory);
-			if (_factory != null) {
+			if (_factory != null) 
+			{
 				// Already created - take first instance
 				factory = _factory;
 			}
@@ -467,17 +513,21 @@ public class DefaultFactoryService extends AbstractLogEnabled
 	 * @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
 	 */
 	@Override
-	public void configure(Configuration conf) throws ConfigurationException {
+	public void configure(Configuration conf) throws ConfigurationException 
+	{
 		final Configuration[] loaders = conf.getChildren(CLASS_LOADER);
-		if (loaders != null) {
+		if (loaders != null) 
+		{
 			loaderNames = new String[loaders.length];
-			for (int i = 0; i < loaders.length; i++) {
+			for (int i = 0; i < loaders.length; i++) 
+			{
 				loaderNames[i] = loaders[i].getValue();
 			}
 		}
 
 		final Configuration factories = conf.getChild(OBJECT_FACTORY, false);
-		if (factories != null) {
+		if (factories != null) 
+		{
 			// Store the factory to the table as a string and
 			// instantiate it by using the service when needed.
 			Configuration[] nameVal = factories.getChildren();
@@ -494,13 +544,19 @@ public class DefaultFactoryService extends AbstractLogEnabled
 	 * @throws Exception if initialization fails.
 	 */
 	@Override
-	public void initialize() throws Exception {
-		if (loaderNames != null) {
-			for (String className : loaderNames) {
-				try {
+	public void initialize() throws Exception 
+	{
+		if (loaderNames != null) 
+		{
+			for (String className : loaderNames) 
+			{
+				try 
+				{
 					ClassLoader loader = (ClassLoader) loadClass(className).newInstance();
 					classLoaders.add(loader);
-				} catch (Exception x) {
+				} 
+				catch (Exception x) 
+				{
 					throw new Exception("No such class loader '" + className + "' for DefaultFactoryService", x);
 				}
 			}
diff --git a/src/java/org/apache/fulcrum/factory/FactoryException.java b/src/java/org/apache/fulcrum/factory/FactoryException.java
index 1e1cae1..d87033b 100644
--- a/src/java/org/apache/fulcrum/factory/FactoryException.java
+++ b/src/java/org/apache/fulcrum/factory/FactoryException.java
@@ -34,7 +34,8 @@ public class FactoryException extends Exception {
 	/**
 	 * Default constructor
 	 */
-	public FactoryException() {
+	public FactoryException() 
+	{
 		super();
 	}
 
@@ -44,7 +45,8 @@ public class FactoryException extends Exception {
 	 * @param message the message
 	 * @param e       the exception
 	 */
-	public FactoryException(String message, Throwable e) {
+	public FactoryException(String message, Throwable e) 
+	{
 		super(message, e);
 	}
 
@@ -53,7 +55,8 @@ public class FactoryException extends Exception {
 	 * 
 	 * @param e the exception to bubble up
 	 */
-	public FactoryException(Throwable e) {
+	public FactoryException(Throwable e) 
+	{
 		super(e);
 	}
 
@@ -62,7 +65,8 @@ public class FactoryException extends Exception {
 	 * 
 	 * @param msg the message to bubble up
 	 */
-	public FactoryException(String msg) {
+	public FactoryException(String msg) 
+	{
 		super(msg);
 	}
 }
diff --git a/src/java/org/apache/fulcrum/factory/FactoryService.java b/src/java/org/apache/fulcrum/factory/FactoryService.java
index f48ecd4..8f4347f 100644
--- a/src/java/org/apache/fulcrum/factory/FactoryService.java
+++ b/src/java/org/apache/fulcrum/factory/FactoryService.java
@@ -40,6 +40,7 @@ public interface FactoryService
 	/**
 	* Gets an instance of a class.
 	*
+	* @param <T> Type of the class
 	* @param clazz the name of the class.
 	* @return {@inheritDoc} the instance.
 	* @throws FactoryException if instantiation fails.
@@ -50,6 +51,7 @@ public interface FactoryService
     /**
      * Gets an instance of a named class.
      *
+     * @param <T> Type of the class
      * @param className the name of the class.
      * @return {@inheritDoc} the instance.
      * @throws FactoryException if instantiation fails.
@@ -60,9 +62,10 @@ public interface FactoryService
     /**
      * Gets an instance of a named class using a specified class loader.
      *
-     * <p>Class loaders are supported only if the isLoaderSupported
+     * Class loaders are supported only if the isLoaderSupported
      * method returns true. Otherwise the loader parameter is ignored.
-     *
+     * 
+     * @param <T> Type of the class
      * @param className the name of the class.
      * @param loader the class loader.
      * @return {@inheritDoc} the instance.
@@ -77,6 +80,7 @@ public interface FactoryService
      * Parameters for its constructor are given as an array of objects,
      * primitive types must be wrapped with a corresponding class.
      *
+     * @param <T> Type of the class
      * @param className the name of the class.
      * @param params an array containing the parameters of the constructor.
      * @param signature an array containing the signature of the constructor.
@@ -93,9 +97,10 @@ public interface FactoryService
      * Parameters for its constructor are given as an array of objects,
      * primitive types must be wrapped with a corresponding class.
      *
-     * <p>Class loaders are supported only if the isLoaderSupported
+     * Class loaders are supported only if the isLoaderSupported
      * method returns true. Otherwise the loader parameter is ignored.
      *
+     * @param <T> Type of the class
      * @param className the name of the class.
      * @param loader the class loader.
      * @param params an array containing the parameters of the constructor.
@@ -125,9 +130,11 @@ public interface FactoryService
      * @param clazz the class.
      * @param params an array containing the parameters of the method.
      * @param signature an array containing the signature of the method.
+     * 
      * @return {@inheritDoc} an array of signature classes. Note that in some cases
      * objects in the parameter array can be switched to the context
-     * of a different class loader.
+     * of a different class loader
+     * 
      * @throws ClassNotFoundException if any of the classes is not found.
      */
     Class<?>[] getSignature(Class<?> clazz,
diff --git a/src/java/org/apache/fulcrum/factory/utils/ObjectInputStreamForContext.java b/src/java/org/apache/fulcrum/factory/utils/ObjectInputStreamForContext.java
index bf9338b..f7b2e40 100644
--- a/src/java/org/apache/fulcrum/factory/utils/ObjectInputStreamForContext.java
+++ b/src/java/org/apache/fulcrum/factory/utils/ObjectInputStreamForContext.java
@@ -38,7 +38,7 @@ public class ObjectInputStreamForContext extends ObjectInputStream
     private ClassLoader classLoader;
 
     /**
-     * this is to make the proxy happy.
+     * Required to make satisfy the proxy methods
      * 
      * @throws IOException Generic exception
      */
@@ -48,7 +48,7 @@ public class ObjectInputStreamForContext extends ObjectInputStream
     }
 
     /**
-     * Contructs a new object stream for a context.
+     * This method will construct a new object stream for a context.
      *
      * @param in the serialized input stream.
      * @param loader the class loader of the context.
diff --git a/src/test/org/apache/fulcrum/factory/FactoryServiceTest.java b/src/test/org/apache/fulcrum/factory/FactoryServiceTest.java
index e86a229..1a85700 100644
--- a/src/test/org/apache/fulcrum/factory/FactoryServiceTest.java
+++ b/src/test/org/apache/fulcrum/factory/FactoryServiceTest.java
@@ -23,15 +23,21 @@ package org.apache.fulcrum.factory;
 import java.util.ArrayList;
 
 import org.apache.fulcrum.testcontainer.BaseUnitTest;
+import org.junit.Before;
+import org.junit.Test;
 
 /**
- * @author Eric Pugh
+ * Basic tests of the fulcrum factory service
+ * 
+ * @author <a href="mailto:epugh@upstate.com">Eric Pugh</a>
  * @author <a href="mailto:mcconnell@apache.org">Stephen McConnell</a>
- *
+ * 
+ * @version $Id$ 
  */
 public class FactoryServiceTest extends BaseUnitTest
 {
     private FactoryService factoryService = null;
+    
     /**
      * Defines the testcase name for JUnit.
      *
@@ -42,54 +48,64 @@ public class FactoryServiceTest extends BaseUnitTest
         super(name);
     }
 
-    @Override
+    @Before
     public void setUp() throws Exception
     {
         super.setUp();
         factoryService = (FactoryService) this.resolve( FactoryService.class.getName() );
-
     }
-    /*
+    
+    /**
      * Class to test for Object getInstance(String)
+     * @throws Exception if factory fails to generate object
      */
+    @Test
     public void testGetInstanceString() throws Exception
     {
         Object object = factoryService.getInstance("java.lang.StringBuilder");
         assertTrue(object instanceof StringBuilder);
     }
-    /*
+    
+    /**
      * Class to test for Object getInstance(String, ClassLoader)
+     *
+     * @throws Exception Generic exception
      */
+    @Test
     public void testGetInstanceStringClassLoader() throws Exception
     {
         Object object = factoryService.getInstance("java.lang.StringBuilder", StringBuilder.class.getClassLoader());
         assertTrue(object instanceof StringBuilder);
     }
-    /*
+    
+    /**
      * Class to test for Object getInstance(String, Object[], String[])
+     * @throws Exception Generic exception
      */
+    @Test
     public void testGetInstanceStringObjectArrayStringArray() throws Exception
     {
-        Object params[] = new Object[1];
-        String sourceValue = "testing";
-        params[0] = sourceValue;
-        String signature[] = new String[1];
-        signature[0] = "java.lang.String";
+    	String sourceValue = "testing";
+    	Object params[] = new Object[] { sourceValue };
+        String signature[] = new String[] { "java.lang.String" };
+
         Object object = factoryService.getInstance("java.lang.StringBuilder", params, signature);
         assertTrue(object instanceof StringBuilder);
         assertEquals(sourceValue, object.toString());
-
     }
-    /*
+    
+    /**
      * Class to test for Object getInstance(String, ClassLoader, Object[], String[])
-     */
+     * 
+     * @throws Exception Generic exception
+     */    
+    @Test
     public void testGetInstanceStringClassLoaderObjectArrayStringArray() throws Exception
     {
-        Object params[] = new Object[1];
-        String sourceValu = "testing";
-        params[0] = sourceValu;
-        String signature[] = new String[1];
-        signature[0] = "java.lang.String";
+    	String sourceValue = "testing";
+    	Object params[] = new Object[] { sourceValue };
+        String signature[] = new String[] { "java.lang.String" };
+
         Object object =
             factoryService.getInstance(
                 "java.lang.StringBuilder",
@@ -97,7 +113,7 @@ public class FactoryServiceTest extends BaseUnitTest
                 params,
                 signature);
         assertTrue(object instanceof StringBuilder);
-        assertEquals(sourceValu, object.toString());
+        assertEquals(sourceValue, object.toString());
 
     }
     
@@ -106,19 +122,26 @@ public class FactoryServiceTest extends BaseUnitTest
      * 
      * @throws Exception Generic exception
      */
+    @Test
     public void testIsLoaderSupported() throws Exception
     {
         // TODO Need to run a test where the loader is NOT supported.
         assertTrue(factoryService.isLoaderSupported("java.lang.String"));
     }
     
+
+    /**
+     * Test get signature
+     * 
+     * @throws Exception Generic exception
+     */
+    @Test
     public void testGetSignature() throws Exception
     {
-        Object params[] = new Object[1];
-        String sourceValu = "testing";
-        params[0] = sourceValu;
-        String signature[] = new String[1];
-        signature[0] = "java.lang.String";
+    	String sourceValue = "testing";
+    	Object params[] = new Object[] { sourceValue };
+        String signature[] = new String[] { "java.lang.String" };
+
         Class<?>[] results = factoryService.getSignature(StringBuilder.class, params, signature);
         assertEquals(1, results.length);
         assertTrue(results[0].equals(String.class));
diff --git a/src/test/org/apache/fulcrum/factory/utils/ObjectInputStreamForContextTest.java b/src/test/org/apache/fulcrum/factory/utils/ObjectInputStreamForContextTest.java
index d8010a1..e533e03 100644
--- a/src/test/org/apache/fulcrum/factory/utils/ObjectInputStreamForContextTest.java
+++ b/src/test/org/apache/fulcrum/factory/utils/ObjectInputStreamForContextTest.java
@@ -22,31 +22,50 @@ package org.apache.fulcrum.factory.utils;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.ObjectOutputStream;
-import junit.framework.TestCase;
+
+import org.apache.fulcrum.testcontainer.BaseUnitTest;
+import org.junit.Test;
 
 /**
- * @author Eric Pugh
+ * Basic test for object input stream for fulcrum factory
+ * 
+ * @author <a href="mailto:epugh@upstate.com">Eric Pugh</a>
+ * @version $Id$ 
  */
-public class ObjectInputStreamForContextTest extends TestCase
+public class ObjectInputStreamForContextTest extends BaseUnitTest
 {
-    public static void main(String[] args)
+	 
+    /**
+     * Defines the testcase name for JUnit.
+     *
+     * @param name the testcase's name.
+     */
+    public ObjectInputStreamForContextTest(String name)
     {
-        junit.textui.TestRunner.run(ObjectInputStreamForContextTest.class);
+        super(name);
     }
-    /*
+	
+    /**
+     * 
      * Class to test for void ObjectInputStreamForContext(InputStream, ClassLoader)
+     * 
+     * @throws Exception generic exception
      */
+    @Test
     public void testObjectInputStreamForContextInputStreamClassLoader() throws Exception
     {
         Object object = new String("I am testing");
         Object object2 = null;
+        
         ByteArrayOutputStream bout = new ByteArrayOutputStream();
         ObjectOutputStream out = new ObjectOutputStream(bout);
         out.writeObject(object);
         out.flush();
+        
         ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray());
         ObjectInputStreamForContext in = new ObjectInputStreamForContext(bin, String.class.getClassLoader());
         object2 = in.readObject();
+        
         assertEquals(object.toString(), object2.toString());
         assertEquals(object, object2);
     }