Stefan,

Thank you for the detailed test case! I assume you were running your
tests against the HiveMind 1.0 codebase, because the tests don't fail
if you test against HiveMind 1.1-alpha1. This problem was fixed with
the overhaul of the autowiring in BuilderFactory, which now also
supports constructor parameter autowiring.

Let me know if you have more problems with this.

Regards,

--knut

On Mon, 24 Jan 2005 00:36:20 -0800, Liebig, Stefan
<[EMAIL PROTECTED]> wrote:
> Knut,
> 
> here is my �little� HiveMindTestCase (7 files):
> 
> playground.IPing.java:
> package playground;
> public interface IPing {
>  String ping();
> }
> 
> playground.IPingHolder.java:
> package playground;
> import playground.IPing;
> public interface IPingHolder {
>  IPing getPing();
> }
> playground.ObjectProviderMock.java:
> package playground;
> import org.apache.hivemind.Location;
> import org.apache.hivemind.internal.Module;
> import org.apache.hivemind.service.ObjectProvider;
> public class ObjectProviderMock implements ObjectProvider {
>  public static Class propertyType;
>  public ObjectProviderMock() {
>   super();
>  }
>  /**
>   * Interprets the locator as a service id, and passes it to
>   * [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>  Module#getService(String, 
> Class)}.
>   */
>  public Object provideObject( Module contributingModule, Class propertyType, 
> String locator, Location location ) {
>   ObjectProviderMock.propertyType = propertyType;
>   return new Ping();
>  }
> }
> 
> playground.ObjectProviderTest.java:
> package playground;
> import org.apache.hivemind.Registry;
> import org.apache.hivemind.test.HiveMindTestCase;
> public class ObjectProviderTest extends HiveMindTestCase {
>  public void testPingHolderConstructor() throws Exception {
>   Registry registry = buildFrameworkRegistry( "objectprovidertest.xml" );
>   IPingHolder service = (IPingHolder) registry.getService( 
> "playground.PingHolderConstructor", IPingHolder.class );
>   service.getPing().ping();
>   assertSame( IPing.class, ObjectProviderMock.propertyType );
>  }
>  public void testPingHolderSetter() throws Exception {
>   Registry registry = buildFrameworkRegistry( "objectprovidertest.xml" );
>   IPingHolder service = (IPingHolder) registry.getService( 
> "playground.PingHolderSetter", IPingHolder.class );
>   service.getPing().ping();
>   assertSame( IPing.class, ObjectProviderMock.propertyType );
>  }
> }
> 
> playground.Ping.java:
> package playground;
> public class Ping implements IPing {
>  public Ping() {
>   super();
>  }
>  public String ping() {
>   return "ping..";
>  }
> }
> 
> playground.PingHolder.java:
> package playground;
> import playground.IPing;
> public class PingHolder implements IPingHolder {
>  private IPing ping;
>  /**
>   */
>  public PingHolder() {
>   super();
>  }
>  /**
>   * @param ping
>   */
>  public PingHolder( IPing ping ) {
>   super();
>   this.ping = ping;
>  }
>  /**
>   * @see playground.IPingHolder#getPing()
>   */
>  public IPing getPing() {
>   return ping;
>  }
>  /**
>   * @param ping The ping to set.
>   */
>  public void setPing( IPing ping ) {
>   this.ping = ping;
>  }
> }
> 
> playground.objectprovidertest.xml:
> <?xml version="1.0"?>
> <module id="playground" version="1.0.0">
>  <contribution configuration-id="hivemind.ObjectProviders">
>   <provider prefix="test" service-id="ObjectProviderMock"/>
>  </contribution>
>  <service-point id="ObjectProviderMock" 
> interface="org.apache.hivemind.service.ObjectProvider">
>   <create-instance class="playground.ObjectProviderMock"/>
>  </service-point>
> 
>  <service-point id="Ping" interface="playground.IPing">
>   <create-instance class="playground.Ping"/>
>  </service-point>
>  <service-point id="PingHolderConstructor" interface="playground.IPingHolder">
>   <invoke-factory>
>    <construct class="playground.PingHolder">
>     <object>test:Ping</object>
>    </construct>
>   </invoke-factory>
>  </service-point>
> 
>  <service-point id="PingHolderSetter" interface="playground.IPingHolder">
>   <invoke-factory>
>    <construct class="playground.PingHolder">
>     <set-object property="ping" value="test:Ping"/>
>    </construct>
>   </invoke-factory>
>  </service-point>
> 
> </module>
> 
> Stefan
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to