henning 2003/03/11 08:38:44
Modified: src/java/org/apache/turbine/services/assemblerbroker
AssemblerBrokerService.java
TurbineAssemblerBroker.java
TurbineAssemblerBrokerService.java
Log:
- Some Java doc cleanups and additions
- Use Interface types and Collection objects in the service
- replace loops with iterators, reworked getAssembler() logic
Revision Changes Path
1.5 +38 -12
jakarta-turbine-2/src/java/org/apache/turbine/services/assemblerbroker/AssemblerBrokerService.java
Index: AssemblerBrokerService.java
===================================================================
RCS file:
/home/cvs/jakarta-turbine-2/src/java/org/apache/turbine/services/assemblerbroker/AssemblerBrokerService.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- AssemblerBrokerService.java 9 Mar 2003 03:06:24 -0000 1.4
+++ AssemblerBrokerService.java 11 Mar 2003 16:38:44 -0000 1.5
@@ -64,23 +64,49 @@
* See TurbineAssemblerBrokerService for more info.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Leon Messerschmidt</a>
+ * @author <a href="mailto:[EMAIL PROTECTED]">Henning P. Schmiedehausen</a>
* @version $Id$
*/
-public interface AssemblerBrokerService extends Service
+public interface AssemblerBrokerService
+ extends Service
{
- static final String SERVICE_NAME = "AssemblerBrokerService";
+ /** Name of the Service */
+ String SERVICE_NAME = "AssemblerBrokerService";
- /**Predefined types for Turbine built-in assemblers */
- static final String ACTION_TYPE = "action";
- static final String SCREEN_TYPE = "screen";
- static final String NAVIGATION_TYPE = "navigation";
- static final String LAYOUT_TYPE = "layout";
- static final String PAGE_TYPE = "page";
- static final String SCHEDULEDJOB_TYPE = "scheduledjob";
+ /** Predefined types for Turbine built-in assemblers: Actions */
+ String ACTION_TYPE = "action";
- /** Register an AssemblerFactory class for a given type*/
+ /** Predefined types for Turbine built-in assemblers: Screens */
+ String SCREEN_TYPE = "screen";
+
+ /** Predefined types for Turbine built-in assemblers: Navigations */
+ String NAVIGATION_TYPE = "navigation";
+
+ /** Predefined types for Turbine built-in assemblers: Layouts */
+ String LAYOUT_TYPE = "layout";
+
+ /** Predefined types for Turbine built-in assemblers: Pages */
+ String PAGE_TYPE = "page";
+
+ /** Predefined types for Turbine built-in assemblers: Scheduler Jobs */
+ String SCHEDULEDJOB_TYPE = "scheduledjob";
+
+ /**
+ * Register an AssemblerFactory class for a given type
+ *
+ * @param type Type of the Factory
+ * @param factory The factory object
+ */
void registerFactory(String type, AssemblerFactory factory);
- /** Attempts to load an Assembler of a type with a given name*/
+ /**
+ * Attempts to load an Assembler of a type with a given name
+ *
+ * @param type The Type of the Assembler
+ * @param name The Name of the Assembler
+ * @return An Assembler object for the requested name and type
+ *
+ * @throws TurbineException Something went wrong while looking for the Assembler
+ */
Assembler getAssembler(String type, String name) throws TurbineException;
}
1.3 +4 -4
jakarta-turbine-2/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBroker.java
Index: TurbineAssemblerBroker.java
===================================================================
RCS file:
/home/cvs/jakarta-turbine-2/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBroker.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TurbineAssemblerBroker.java 9 Mar 2003 03:06:24 -0000 1.2
+++ TurbineAssemblerBroker.java 11 Mar 2003 16:38:44 -0000 1.3
@@ -68,6 +68,7 @@
* See TurbineAssemblerBrokerService for more info.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Leon Messerschmidt</a>
+ * @author <a href="mailto:[EMAIL PROTECTED]">Henning P. Schmiedehausen</a>
* @version $Id$
*/
public abstract class TurbineAssemblerBroker
@@ -76,7 +77,7 @@
* Utility method for accessing the service
* implementation
*
- * @return a VelocityService implementation instance
+ * @return An AssemblerBroker implementation instance
*/
public static AssemblerBrokerService getService()
{
@@ -105,8 +106,7 @@
*
* @throws TurbineException If a problem locating the Assember occured.
*/
- public static Assembler getAssembler(String type,
- String name)
+ public static Assembler getAssembler(String type, String name)
throws TurbineException
{
return getService().getAssembler(type, name);
1.7 +34 -32
jakarta-turbine-2/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBrokerService.java
Index: TurbineAssemblerBrokerService.java
===================================================================
RCS file:
/home/cvs/jakarta-turbine-2/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBrokerService.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- TurbineAssemblerBrokerService.java 9 Mar 2003 03:06:24 -0000 1.6
+++ TurbineAssemblerBrokerService.java 11 Mar 2003 16:38:44 -0000 1.7
@@ -54,10 +54,15 @@
* <http://www.apache.org/>.
*/
-import java.util.Hashtable;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
import java.util.Vector;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+
import org.apache.turbine.modules.Assembler;
import org.apache.turbine.services.InitializationException;
import org.apache.turbine.services.TurbineBaseService;
@@ -71,19 +76,19 @@
* by adding them to the TurbineResources.properties file.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Leon Messerschmidt</a>
+ * @author <a href="mailto:[EMAIL PROTECTED]">Henning P. Schmiedehausen</a>
* @version $Id$
*/
public class TurbineAssemblerBrokerService
- extends TurbineBaseService
- implements AssemblerBrokerService
-
+ extends TurbineBaseService
+ implements AssemblerBrokerService
{
- /** the log */
+ /** Logging */
private static Log log
= LogFactory.getLog(TurbineAssemblerBrokerService.class);
- /** A structure that holds the registered AssemblerFactories*/
- private Hashtable factories = null;
+ /** A structure that holds the registered AssemblerFactories */
+ private Map factories = null;
/**
* Get a list of AssemblerFactories of a certain type
@@ -91,13 +96,13 @@
* @param type type of Assembler
* @return list of AssemblerFactories
*/
- private Vector getFactoryGroup(String type)
+ private List getFactoryGroup(String type)
{
if (!factories.containsKey(type))
{
factories.put(type, new Vector());
}
- return (Vector) factories.get(type);
+ return (List) factories.get(type);
}
/**
@@ -109,17 +114,16 @@
private void registerFactories(String type)
throws TurbineException
{
- log.debug("registerFactories: key = " + type);
-
- String[] names = getConfiguration().getStringArray(type);
+ List names = getConfiguration().getVector(type);
- log.info("Registering " + names.length + " " + type + " factories.");
+ log.info("Registering " + names.size() + " " + type + " factories.");
- for (int i = 0; i < names.length; i++)
+ for (Iterator it = names.iterator(); it.hasNext(); )
{
+ String factory = (String) it.next();
try
{
- Object o = Class.forName(names[i]).newInstance();
+ Object o = Class.forName(factory).newInstance();
registerFactory(type, (AssemblerFactory) o);
}
// these must be passed to the VM
@@ -136,20 +140,21 @@
catch (Throwable t)
{
throw new TurbineException("Failed registering " + type
- + " factories", t);
+ + " factory: " + factory, t);
}
}
}
/**
* Initializes the AssemblerBroker and loads the AssemblerFactory
- * classes registerd in TurbineResources.Properties.
+ * classes registered in TurbineResources.Properties.
*
* @throws InitializationException
*/
- public void init() throws InitializationException
+ public void init()
+ throws InitializationException
{
- factories = new Hashtable();
+ factories = new HashMap();
try
{
registerFactories(AssemblerBrokerService.ACTION_TYPE);
@@ -192,27 +197,24 @@
public Assembler getAssembler(String type, String name)
throws TurbineException
{
- Vector facs = getFactoryGroup(type);
+ List facs = getFactoryGroup(type);
- for (int i = 0; i < facs.size(); i++)
+ Assembler assembler = null;
+ for (Iterator it = facs.iterator(); (assembler == null) && it.hasNext();)
{
- AssemblerFactory fac = (AssemblerFactory) facs.get(i);
- Assembler assembler = null;
+ AssemblerFactory fac = (AssemblerFactory) it.next();
try
{
assembler = fac.getAssembler(name);
}
catch (Exception e)
{
- throw new TurbineException("Failed to find the " + type
- + " named " + name, e);
- }
-
- if (assembler != null)
- {
- return assembler;
+ throw new TurbineException("Failed to load an assembler for "
+ + name + " from the "
+ + type + " factory "
+ + fac.getClass().getName(), e);
}
}
- return null;
+ return assembler;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]