You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by hl...@apache.org on 2003/08/07 17:51:43 UTC
cvs commit: jakarta-commons-sandbox/hivemind/src/test/hivemind/test/services/impl BuilderAccessImpl.java
hlship 2003/08/07 08:51:43
Modified: hivemind/src/java/org/apache/commons/hivemind
HiveMindMessages.properties HiveMind.java
hivemind/src/java/org/apache/commons/hivemind/service/impl
BuilderParameter.java EJBProxyFactory.java
BuilderFactory.java
hivemind/src/test/hivemind/test/services TestServices.java
hivemind/src/java/org/apache/commons/hivemind/schema/rules
RuleUtils.java
hivemind/src/META-INF hivemodule.xml
Added: hivemind/src/test/hivemind/test/services
BuilderAccessFailure.xml BuilderAccess.xml
BuilderAccess.properties BuilderAccess.java
hivemind/src/test/hivemind/test/services/impl
BuilderAccessImpl.java
Log:
Make use of PropertyUtils, not BeanUtils for setting properties.
Extend BuilderFactory to help eliminate the need for using the Initializable interface.
Revision Changes Path
1.20 +2 -9 jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/HiveMindMessages.properties
Index: HiveMindMessages.properties
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/HiveMindMessages.properties,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- HiveMindMessages.properties 5 Aug 2003 15:41:44 -0000 1.19
+++ HiveMindMessages.properties 7 Aug 2003 15:51:43 -0000 1.20
@@ -5,6 +5,7 @@
no-such-service-extension-id=Service extension point {0} does not exist.
no-such-extension-id=Extension point {0} does not exist.
no-such-service=Service {0} (implementing interface {1}) does not exist.
+unable-to-set-property=Unable to set property {0} of {1} to {2}: {3}
wrong-factory-parameter-count=Service implementation factory {0} expects {1,choice,0#no parameters|1#one parameter,1<{1,number,integer} parameters} but received {2,choice,0#none|1#one|1<{2,number,integer}}.
@@ -89,15 +90,7 @@
# parse package
-InstanceBuilderDescriptor.unable-to-set-property=Unable to set property {0} of {1} to {2}: {3}
-
-ExpressionDescriptor.unable-to-evaluate=Unable to evaluate expression ''{0}'' for {1}: {2}
-
InvokeFactoryDescriptor.factory-is-null=Factory service {0} is null.
-
-XMLDescriptor.unable-to-parse=Unable to parse {0} (referenced at {1}): {2}
-
-ResourceDescriptor.missing-resource=Resource {0} relative to module {1} ({2}) not found.
# schema.rules package
1.14 +12 -3 jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/HiveMind.java
Index: HiveMind.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/HiveMind.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- HiveMind.java 5 Aug 2003 00:50:36 -0000 1.13
+++ HiveMind.java 7 Aug 2003 15:51:43 -0000 1.14
@@ -214,8 +214,17 @@
}
+ /**
+ * Checks that the number of parameters provided to a service implementation factory
+ * matches the expected number.
+ *
+ * @param extensionPointId the id of the service implementation factory (used in the error message)
+ * @param parameters the actual parameters
+ * @param expectedCount the expected number of parameters (usually, 1)
+ * @throws ApplicationRuntimeException if the actual and expected counts differ.
+ */
public static void checkFactoryParameterCount(
- ServiceExtensionPoint point,
+ String extensionPointId,
List parameters,
int expectedCount)
{
@@ -223,7 +232,7 @@
throw new ApplicationRuntimeException(
HiveMind.format(
"wrong-factory-parameter-count",
- point.getExtensionPointId(),
+ extensionPointId,
new Integer(expectedCount),
new Integer(parameters.size())));
}
1.2 +49 -1 jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/service/impl/BuilderParameter.java
Index: BuilderParameter.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/service/impl/BuilderParameter.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- BuilderParameter.java 30 Jul 2003 22:34:53 -0000 1.1
+++ BuilderParameter.java 7 Aug 2003 15:51:43 -0000 1.2
@@ -62,6 +62,7 @@
/**
* Parameter object used with {@link org.apache.commons.hivemind.service.impl.BuilderFactory}.
+ *
*
* @author Howard Lewis Ship
* @version $Id$
@@ -70,6 +71,9 @@
{
private String _className;
private List _properties = new ArrayList();
+ private String _messagesPropertyName;
+ private String _extensionPointIdPropertyName;
+ private String _logPropertyName;
public void addProperty(SetPropertyValue property)
{
@@ -89,6 +93,50 @@
public void setClassName(String string)
{
_className = string;
+ }
+
+ public String getExtensionPointIdPropertyName()
+ {
+ return _extensionPointIdPropertyName;
+ }
+
+ public String getLogPropertyName()
+ {
+ return _logPropertyName;
+ }
+
+ public String getMessagesPropertyName()
+ {
+ return _messagesPropertyName;
+ }
+
+ /**
+ * Sets the name of a property to which the services' extension point id
+ * will be set.
+ */
+ public void setExtensionPointIdPropertyName(String string)
+ {
+ _extensionPointIdPropertyName = string;
+ }
+
+ /**
+ * Sets the name of a property to which a
+ * {@link org.apache.commons.logging.Log} instance will be set.
+ * The <code>Log</code> is constructed from the extension point id.
+ */
+ public void setLogPropertyName(String string)
+ {
+ _logPropertyName = string;
+ }
+
+ /**
+ * Sets the name of a property to which the module's
+ * {@link org.apache.tapestry.IMessages messages} instance
+ * will be assigned.
+ */
+ public void setMessagesPropertyName(String string)
+ {
+ _messagesPropertyName = string;
}
}
1.6 +2 -2 jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/service/impl/EJBProxyFactory.java
Index: EJBProxyFactory.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/service/impl/EJBProxyFactory.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- EJBProxyFactory.java 30 Jul 2003 22:34:53 -0000 1.5
+++ EJBProxyFactory.java 7 Aug 2003 15:51:43 -0000 1.6
@@ -99,7 +99,7 @@
Module invokingModule,
List parameters)
{
- HiveMind.checkFactoryParameterCount(_point, parameters, 1);
+ HiveMind.checkFactoryParameterCount(_point.getExtensionPointId(), parameters, 1);
EJBProxyParameters proxyParameters = (EJBProxyParameters) parameters.get(0);
String jndiName = proxyParameters.getJndiName();
1.2 +62 -14 jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/service/impl/BuilderFactory.java
Index: BuilderFactory.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/service/impl/BuilderFactory.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- BuilderFactory.java 30 Jul 2003 22:34:53 -0000 1.1
+++ BuilderFactory.java 7 Aug 2003 15:51:43 -0000 1.2
@@ -59,24 +59,42 @@
import java.util.List;
-import org.apache.commons.beanutils.BeanUtils;
+import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.hivemind.HiveMind;
import org.apache.commons.hivemind.Initializable;
import org.apache.commons.hivemind.Module;
import org.apache.commons.hivemind.ServiceExtensionPoint;
import org.apache.commons.hivemind.ServiceImplementationFactory;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.tapestry.ApplicationRuntimeException;
import org.apache.tapestry.IResourceResolver;
/**
* Implementation of {@link org.apache.commons.hivemind.ServiceImplementationFactory}
* that can instantiate an object and then configure its properties.
+ *
+ * <p>
+ * This service exists to allow the a service to be configured fully
+ * without the service having to implement {@link org.apache.commons.hivemind.Initializable},
+ * which allows for a more IoC (Inversion of Control) feel. A service
+ * implements <code>Initializable</code> typically to access
+ * its module's messages, or its own extension point id, but BuilderFactory
+ * is capable of providing the service with that information by setting properties.
+ *
+ * <p>
+ * Some thought has been given to using bytecode generation to create properties
+ * for messages, extension point id, and so forth. This is being avoided because it
+ * undermines the ability to test service implemenations as POJOs, outside the
+ * framework of HiveMind. Implementing <code>Initializiable</code> also makes
+ * it difficult to test service implementations properly.
*
* @author Howard Lewis Ship
* @version $Id$
*/
public class BuilderFactory implements ServiceImplementationFactory, Initializable
{
+ private static final Log LOG = LogFactory.getLog(BuilderFactory.class);
/**
* SEP for BuilderFactory.
*/
@@ -87,7 +105,7 @@
Module invokingModule,
List parameters)
{
- HiveMind.checkFactoryParameterCount(_point, parameters, 1);
+ HiveMind.checkFactoryParameterCount(_point.getExtensionPointId(), parameters, 1);
BuilderParameter parameter = (BuilderParameter) parameters.get(0);
@@ -99,17 +117,6 @@
Class serviceClass = resolver.findClass(parameter.getClassName());
result = serviceClass.newInstance();
-
- List properties = parameter.getProperties();
- int count = properties.size();
-
- for (int i = 0; i < count; i++)
- {
- SetPropertyValue property = (SetPropertyValue) properties.get(i);
-
- BeanUtils.setProperty(result, property.getPropertyName(), property.getValue());
- }
-
}
catch (Exception ex)
{
@@ -122,7 +129,48 @@
ex);
}
+ String name = parameter.getExtensionPointIdPropertyName();
+
+ if (name != null)
+ set(result, name, point.getExtensionPointId());
+
+ name = parameter.getLogPropertyName();
+
+ if (name != null)
+ set(result, name, LogFactory.getLog(point.getExtensionPointId()));
+
+ name = parameter.getMessagesPropertyName();
+
+ if (name != null)
+ set(result, name, invokingModule.getMessages());
+
+ List properties = parameter.getProperties();
+ int count = properties.size();
+
+ for (int i = 0; i < count; i++)
+ {
+ SetPropertyValue property = (SetPropertyValue) properties.get(i);
+
+ set(result, property.getPropertyName(), property.getValue());
+ }
+
return result;
+ }
+
+ private void set(Object serviceImplementation, String propertyName, Object value)
+ {
+ try
+ {
+ PropertyUtils.setProperty(serviceImplementation, propertyName, value);
+ }
+ catch (Exception ex)
+ {
+ LOG.error(
+ HiveMind.format(
+ "unable-to-set-property",
+ new Object[] { propertyName, serviceImplementation, value, ex.getMessage()}),
+ ex);
+ }
}
public void initializeService(ServiceExtensionPoint point, Object service)
1.17 +40 -1 jakarta-commons-sandbox/hivemind/src/test/hivemind/test/services/TestServices.java
Index: TestServices.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/hivemind/src/test/hivemind/test/services/TestServices.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- TestServices.java 6 Aug 2003 18:50:50 -0000 1.16
+++ TestServices.java 7 Aug 2003 15:51:43 -0000 1.17
@@ -69,6 +69,7 @@
import org.apache.commons.hivemind.Registry;
import org.apache.commons.hivemind.service.NameLookup;
+import org.apache.commons.hivemind.service.impl.BuilderFactory;
import org.apache.tapestry.ApplicationRuntimeException;
/**
@@ -376,5 +377,43 @@
"END toString\\(\\) \\[ToStringImpl of toString\\(\\)\\]",
events);
+ }
+
+ public void testBuilderAccess() throws Exception
+ {
+ Registry r = buildRegistry("BuilderAccess.xml");
+
+ BuilderAccess s =
+ (BuilderAccess) r.getService(
+ "hivemind.test.services.BuilderAccess",
+ BuilderAccess.class);
+
+ assertEquals("A successful test of BuilderFactory.", s.getLocalizedMessage("success"));
+
+ assertEquals("hivemind.test.services.BuilderAccess", s.getExtensionPointId());
+
+ interceptLogging("hivemind");
+
+ s.logMessage("This is a test.");
+
+ checkLoggingEvent("hivemind.test.services.BuilderAccess", "This is a test\\.");
+ }
+
+ public void testBuilderAccessFailure() throws Exception
+ {
+ Registry r = buildRegistry("BuilderAccessFailure.xml");
+
+ interceptLogging();
+
+ BuilderAccess s =
+ (BuilderAccess) r.getService(
+ "hivemind.test.services.BuilderAccessFailure",
+ BuilderAccess.class);
+
+ assertNotNull(s);
+
+ checkLoggingEvent(
+ BuilderFactory.class.getName(),
+ "Unable to set property EVIL of hivemind\\.test\\.services\\.impl\\.BuilderAccessImpl@.*: Unknown property 'EVIL'");
}
}
1.1 jakarta-commons-sandbox/hivemind/src/test/hivemind/test/services/BuilderAccessFailure.xml
Index: BuilderAccessFailure.xml
===================================================================
<?xml version="1.0"?>
<!-- $Id: BuilderAccessFailure.xml,v 1.1 2003/08/07 15:51:43 hlship Exp $ -->
<module id="hivemind.test.services" version="1.0.0">
<service id="BuilderAccessFailure" interface="hivemind.test.services.BuilderAccess">
<invoke-factory service-id="hivemind.BuilderFactory">
<construct class="hivemind.test.services.impl.BuilderAccessImpl"
log-property="log"
messages-property="messages"
point-id-property="EVIL"/>
</invoke-factory>
</service>
</module>
1.1 jakarta-commons-sandbox/hivemind/src/test/hivemind/test/services/BuilderAccess.xml
Index: BuilderAccess.xml
===================================================================
<?xml version="1.0"?>
<!-- $Id: BuilderAccess.xml,v 1.1 2003/08/07 15:51:43 hlship Exp $ -->
<module id="hivemind.test.services" version="1.0.0">
<service id="BuilderAccess" interface="hivemind.test.services.BuilderAccess">
<invoke-factory service-id="hivemind.BuilderFactory">
<construct class="hivemind.test.services.impl.BuilderAccessImpl"
log-property="log"
messages-property="messages"
point-id-property="extensionPointId"/>
</invoke-factory>
</service>
</module>
1.1 jakarta-commons-sandbox/hivemind/src/test/hivemind/test/services/BuilderAccess.properties
Index: BuilderAccess.properties
===================================================================
# $Id: BuilderAccess.properties,v 1.1 2003/08/07 15:51:43 hlship Exp $
success=A successful test of BuilderFactory.
1.1 jakarta-commons-sandbox/hivemind/src/test/hivemind/test/services/BuilderAccess.java
Index: BuilderAccess.java
===================================================================
/*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package hivemind.test.services;
/**
* Used to test {@link org.apache.commons.hivemind.service.impl.BuilderFactory}.
*
* @author Howard Lewis Ship
* @version $Id: BuilderAccess.java,v 1.1 2003/08/07 15:51:43 hlship Exp $
*/
public interface BuilderAccess
{
/**
* Logs a message at INFO.
*/
public void logMessage(String message);
/**
* Gets a localized message.
*/
public String getLocalizedMessage(String key);
/**
* Gets the extension point id for the service.
*/
public String getExtensionPointId();
}
1.2 +3 -3 jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/schema/rules/RuleUtils.java
Index: RuleUtils.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/schema/rules/RuleUtils.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- RuleUtils.java 4 Aug 2003 14:21:56 -0000 1.1
+++ RuleUtils.java 7 Aug 2003 15:51:43 -0000 1.2
@@ -61,7 +61,7 @@
import java.util.HashMap;
import java.util.Map;
-import org.apache.commons.beanutils.BeanUtils;
+import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.hivemind.Element;
import org.apache.commons.hivemind.HiveMind;
import org.apache.commons.hivemind.Registry;
@@ -170,7 +170,7 @@
{
try
{
- BeanUtils.setProperty(target, propertyName, value);
+ PropertyUtils.setProperty(target, propertyName, value);
}
catch (Exception ex)
{
1.13 +27 -2 jakarta-commons-sandbox/hivemind/src/META-INF/hivemodule.xml
Index: hivemodule.xml
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/hivemind/src/META-INF/hivemodule.xml,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- hivemodule.xml 6 Aug 2003 18:50:50 -0000 1.12
+++ hivemodule.xml 7 Aug 2003 15:51:43 -0000 1.13
@@ -83,11 +83,36 @@
<description>
A single construct element identifies the class to instantiate.
</description>
- <attribute name="class" required="true"/>
+
+ <attribute name="class" required="true">
+ <description>The name of the class to instantiate.</description>
+ </attribute>
+
+ <attribute name="messages-property">
+ <description>
+ The name of a property to assign to invoking module's messages to.
+ </description>
+ </attribute>
+
+ <attribute name="log-property">
+ <description>
+ The name of a property to assign the Log instance for the service to.
+ The Log instance is built from the service extension point id.
+ </description>
+ </attribute>
+
+ <attribute name="point-id-property">
+ <description>
+ The name of a property to assign the extension point id of the service to.
+ </description>
+ </attribute>
<rules>
<create-object class="org.apache.commons.hivemind.service.impl.BuilderParameter"/>
<read-attribute property="className" attribute="class"/>
+ <read-attribute attribute="messages-property" property="messagesPropertyName"/>
+ <read-attribute attribute="log-property" property="logPropertyName"/>
+ <read-attribute attribute="point-id-property" property="extensionPointIdPropertyName"/>
<invoke-parent method="addElement"/>
</rules>
1.1 jakarta-commons-sandbox/hivemind/src/test/hivemind/test/services/impl/BuilderAccessImpl.java
Index: BuilderAccessImpl.java
===================================================================
/*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package hivemind.test.services.impl;
import hivemind.test.services.BuilderAccess;
import org.apache.commons.logging.Log;
import org.apache.tapestry.IMessages;
/**
* Used to test {@link org.apache.commons.hivemind.service.impl.BuilderFactory}.
*
* @author Howard Lewis Ship
* @version $Id: BuilderAccessImpl.java,v 1.1 2003/08/07 15:51:43 hlship Exp $
*/
public class BuilderAccessImpl implements BuilderAccess
{
private String _extensionPointId;
private IMessages _messages;
private Log _log;
public void logMessage(String message)
{
_log.info(message);
}
public String getLocalizedMessage(String key)
{
return _messages.getMessage(key);
}
public String getExtensionPointId()
{
return _extensionPointId;
}
public Log getLog()
{
return _log;
}
public IMessages getMessages()
{
return _messages;
}
public void setExtensionPointId(String string)
{
_extensionPointId = string;
}
public void setLog(Log log)
{
_log = log;
}
public void setMessages(IMessages messages)
{
_messages = messages;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org