knut 2004/10/01 14:34:06
Modified: framework/src/java/org/apache/hivemind/service/impl
BuilderPropertyFacet.java
framework/src/test/hivemind/test/services TestServices.java
ConstructorFactory.xml
framework/src/documentation/content/xdocs/hivemind
BuilderFactory.xml
. status.xml
framework/src/descriptor/META-INF hivemodule.xml
framework/src/java/org/apache/hivemind/util
ConstructorUtils.java
framework/src/test/hivemind/test/services/impl
ConstructorAccessImpl.java
Log:
Fixes HIVEMIND-63. BuilderFactory now accepts <null/> as constructor
parameter.
Puts previously unused statement in ConstructorUtils to work and thus raises
code coverage thereof to 97% :-)
Revision Changes Path
1.5 +4 -5
jakarta-hivemind/framework/src/java/org/apache/hivemind/service/impl/BuilderPropertyFacet.java
Index: BuilderPropertyFacet.java
===================================================================
RCS file:
/home/cvs/jakarta-hivemind/framework/src/java/org/apache/hivemind/service/impl/BuilderPropertyFacet.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- BuilderPropertyFacet.java 5 Jun 2004 19:09:13 -0000 1.4
+++ BuilderPropertyFacet.java 1 Oct 2004 21:34:05 -0000 1.5
@@ -17,10 +17,9 @@
import org.apache.hivemind.internal.Module;
/**
- * Implementation of [EMAIL PROTECTED]
org.apache.hivemind.service.impl.BuilderFacet}
- * that stores a value. This corresponds to the
- * <set> type elements.
- *
+ * Implementation of [EMAIL PROTECTED]
org.apache.hivemind.service.impl.BuilderFacet}that stores a value. This
+ * corresponds to the <set> type elements and all constructor
parameter elements.
+ *
* @author Howard Lewis Ship
*/
public class BuilderPropertyFacet extends BuilderFacet
@@ -37,4 +36,4 @@
_value = object;
}
-}
+}
\ No newline at end of file
1.22 +3 -3
jakarta-hivemind/framework/src/test/hivemind/test/services/TestServices.java
Index: TestServices.java
===================================================================
RCS file:
/home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/services/TestServices.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- TestServices.java 15 Aug 2004 15:41:57 -0000 1.21
+++ TestServices.java 1 Oct 2004 21:34:05 -0000 1.22
@@ -307,15 +307,15 @@
{
Registry r = buildFrameworkRegistry("ConstructorFactory.xml");
- interceptLogging("hivemind");
-
String[] servicesToTest =
{
"DefaultConstructor",
"LongConstructor",
+ "ServiceConstructor",
"MultiConstructor",
"ConfigurationConstructor",
- "LogAndMessagesConstructor" };
+ "LogAndMessagesConstructor",
+ "NullConstructor"};
for (int i = 0; i < servicesToTest.length; i++)
{
1.3 +8 -7
jakarta-hivemind/framework/src/test/hivemind/test/services/ConstructorFactory.xml
Index: ConstructorFactory.xml
===================================================================
RCS file:
/home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/services/ConstructorFactory.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ConstructorFactory.xml 9 Aug 2004 14:53:44 -0000 1.2
+++ ConstructorFactory.xml 1 Oct 2004 21:34:05 -0000 1.3
@@ -46,21 +46,22 @@
</invoke-factory>
</service-point>
- <service-point id="ConfigurationConstructor"
interface="hivemind.test.services.ConstructorAccess">
+ <service-point id="LogAndMessagesConstructor"
interface="hivemind.test.services.ConstructorAccess">
<invoke-factory>
<construct
class="hivemind.test.services.impl.ConstructorAccessImpl">
- <configuration>DummyConfiguration</configuration>
- <set property="expectedConstructorMessage"
value="(List)"/>
+ <log/>
+ <messages/>
+ <set property="expectedConstructorMessage" value="(Log,
Messages)"/>
</construct>
</invoke-factory>
</service-point>
- <service-point id="LogAndMessagesConstructor"
interface="hivemind.test.services.ConstructorAccess">
+ <service-point id="NullConstructor"
interface="hivemind.test.services.ConstructorAccess">
<invoke-factory>
<construct
class="hivemind.test.services.impl.ConstructorAccessImpl">
- <log/>
- <messages/>
- <set property="expectedConstructorMessage" value="(Log,
Messages)"/>
+ <long>42</long>
+ <null/>
+ <set property="expectedConstructorMessage"
value="(long, null)"/>
</construct>
</invoke-factory>
</service-point>
1.11 +6 -0
jakarta-hivemind/framework/src/documentation/content/xdocs/hivemind/BuilderFactory.xml
Index: BuilderFactory.xml
===================================================================
RCS file:
/home/cvs/jakarta-hivemind/framework/src/documentation/content/xdocs/hivemind/BuilderFactory.xml,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- BuilderFactory.xml 27 Sep 2004 13:51:37 -0000 1.10
+++ BuilderFactory.xml 1 Oct 2004 21:34:05 -0000 1.11
@@ -48,6 +48,7 @@
<resource> ... </resource>
<service> ... </service>
<object> ... </object>
+ <null/>
<event-listener service-id="..." event-type-name="..."/>
<set property="..." value="..."/>
@@ -231,6 +232,11 @@
<td>object</td>
<td><em>variable</em></td>
<td>As determined by the object translator, this is decidedly
free-form. See &hivemind.ObjectProviders;.</td>
+ </tr>
+ <tr>
+ <td>null</td>
+ <td><em>any reference type</em></td>
+ <td>Always simply <code>null</code>.</td>
</tr>
<tr>
<td>service-id</td>
1.65 +3 -0 jakarta-hivemind/status.xml
Index: status.xml
===================================================================
RCS file: /home/cvs/jakarta-hivemind/status.xml,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -r1.64 -r1.65
--- status.xml 27 Sep 2004 14:38:11 -0000 1.64
+++ status.xml 1 Oct 2004 21:34:05 -0000 1.65
@@ -40,6 +40,9 @@
<action type="add" dev="HLS" fixes-bug="HIVEMIND-58">
Add visibility (public or private) to configuration points, service
points and schemas.
</action>
+ <action type="fix" dev="KW" fixes-bug="HIVEMIND-63">
+ Add <null> constructor parameter element to BuilderFactory
service.
+ </action>
</release>
<release version="1.0" date="Sep 22 2004">
1.17 +10 -0
jakarta-hivemind/framework/src/descriptor/META-INF/hivemodule.xml
Index: hivemodule.xml
===================================================================
RCS file:
/home/cvs/jakarta-hivemind/framework/src/descriptor/META-INF/hivemodule.xml,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- hivemodule.xml 27 Sep 2004 14:35:57 -0000 1.16
+++ hivemodule.xml 1 Oct 2004 21:34:05 -0000 1.17
@@ -349,6 +349,16 @@
</rules>
</element>
+ <element name="null">
+
+ Placeholder for a null object provided by the object translator as
a constructor parameter.
+
+ <rules>
+ <create-object
class="org.apache.hivemind.service.impl.BuilderPropertyFacet"/>
+ <invoke-parent depth="6" method="addParameter"/>
+ </rules>
+ </element>
+
<element name="set">
Configures a property of the service instance.
1.5 +1 -1
jakarta-hivemind/framework/src/java/org/apache/hivemind/util/ConstructorUtils.java
Index: ConstructorUtils.java
===================================================================
RCS file:
/home/cvs/jakarta-hivemind/framework/src/java/org/apache/hivemind/util/ConstructorUtils.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- ConstructorUtils.java 29 Jul 2004 13:18:51 -0000 1.4
+++ ConstructorUtils.java 1 Oct 2004 21:34:05 -0000 1.5
@@ -101,7 +101,7 @@
for (int i = 0; i < types.length; i++)
{
- if (types[i] == null && actualTypes[i].isPrimitive())
+ if (types[i] == null && !actualTypes[i].isPrimitive())
continue;
if (!isCompatible(actualTypes[i], types[i]))
1.4 +48 -42
jakarta-hivemind/framework/src/test/hivemind/test/services/impl/ConstructorAccessImpl.java
Index: ConstructorAccessImpl.java
===================================================================
RCS file:
/home/cvs/jakarta-hivemind/framework/src/test/hivemind/test/services/impl/ConstructorAccessImpl.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ConstructorAccessImpl.java 26 Feb 2004 23:07:35 -0000 1.3
+++ ConstructorAccessImpl.java 1 Oct 2004 21:34:05 -0000 1.4
@@ -31,47 +31,53 @@
public class ConstructorAccessImpl implements ConstructorAccess
{
- private String actualMessage;
- private String expectedMessage;
+ private String actualMessage;
- public ConstructorAccessImpl()
- {
- actualMessage = "()";
- }
-
- public ConstructorAccessImpl(long l)
- {
- actualMessage = "(long)";
- }
-
- public ConstructorAccessImpl(ConstructorAccess service)
- {
- actualMessage = "(ConstructorAccess)";
- }
-
- public ConstructorAccessImpl(ConstructorAccess service, String s)
- {
- actualMessage = "(ConstructorAccess, String)";
- }
-
- public ConstructorAccessImpl(List configurations)
- {
- actualMessage = "(List)";
- }
-
- public ConstructorAccessImpl(Log log, Messages messages)
- {
- actualMessage = "(Log, Messages)";
- }
-
- public void setExpectedConstructorMessage(String expectedMessage)
- {
- this.expectedMessage = expectedMessage;
- }
-
- public void verify() throws AssertionFailedError
- {
- Assert.assertEquals(expectedMessage, actualMessage);
- }
+ private String expectedMessage;
-}
+ public ConstructorAccessImpl()
+ {
+ actualMessage = "()";
+ }
+
+ public ConstructorAccessImpl(long l)
+ {
+ actualMessage = "(long)";
+ }
+
+ public ConstructorAccessImpl(ConstructorAccess service)
+ {
+ actualMessage = "(ConstructorAccess)";
+ }
+
+ public ConstructorAccessImpl(ConstructorAccess service, String s)
+ {
+ actualMessage = "(ConstructorAccess, String)";
+ }
+
+ public ConstructorAccessImpl(List configurations)
+ {
+ actualMessage = "(List)";
+ }
+
+ public ConstructorAccessImpl(Log log, Messages messages)
+ {
+ actualMessage = "(Log, Messages)";
+ }
+
+ public ConstructorAccessImpl(long l, ConstructorAccess nullObject)
+ {
+ actualMessage = "(long, " + nullObject + ")";
+ }
+
+ public void setExpectedConstructorMessage(String expectedMessage)
+ {
+ this.expectedMessage = expectedMessage;
+ }
+
+ public void verify() throws AssertionFailedError
+ {
+ Assert.assertEquals(expectedMessage, actualMessage);
+ }
+
+}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]