[
http://issues.ops4j.org/jira/browse/QI-60?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_11494
]
Sonny Gill commented on QI-60:
------------------------------
I can see why this should not work. No idea what I was thinking when I created
this issue.
Thanks.
> Exception raised when using a 'State of Composite' object with ObjectBuilder
> ----------------------------------------------------------------------------
>
> Key: QI-60
> URL: http://issues.ops4j.org/jira/browse/QI-60
> Project: Qi4j
> Issue Type: Bug
> Components: Core Runtime
> Reporter: Sonny Gill
> Assignee: Rickard Öberg
> Fix For: 0.3
>
>
> Stack trace -
> Exception in thread "main" java.lang.IllegalArgumentException: Method does
> not represent state: public native int java.lang.Object.hashCode()
> at
> org.qi4j.runtime.structure.CompositeBuilderImpl$StateInvocationHandler.invoke(CompositeBuilderImpl.java:211)
> at org.$Proxy9.hashCode(Unknown Source)
> at java.util.HashMap.put(HashMap.java:418)
> at java.util.HashSet.add(HashSet.java:194)
> at
> org.qi4j.runtime.structure.ObjectBuilderImpl.use(ObjectBuilderImpl.java:48)
> at org.TestCase.<init>(TestCase.java:50)
> at org.TestCase.main(TestCase.java:57)
> Test case -
> ----------------------------------------------------------------------------------------------------------------------------------
> import org.qi4j.bootstrap.ApplicationFactory;
> import org.qi4j.bootstrap.AssemblyException;
> import org.qi4j.bootstrap.ModuleAssembly;
> import org.qi4j.bootstrap.SingletonAssembler;
> import org.qi4j.composite.Composite;
> import org.qi4j.composite.CompositeBuilderFactory;
> import org.qi4j.composite.ObjectBuilder;
> import org.qi4j.composite.ObjectBuilderFactory;
> import org.qi4j.composite.scope.Structure;
> import org.qi4j.composite.scope.Uses;
> import org.qi4j.entity.memory.MemoryEntityStoreService;
> import org.qi4j.property.Property;
> import org.qi4j.runtime.structure.ApplicationInstance;
> import org.qi4j.spi.entity.UuidIdentityGeneratorService;
> import org.qi4j.structure.Visibility;
> public class TestCase
> {
> @Structure CompositeBuilderFactory cbf;
> @Structure ObjectBuilderFactory obf;
> public TestCase() throws Exception
> {
> SingletonAssembler assembler = new SingletonAssembler()
> {
> public void assemble( ModuleAssembly module ) throws
> AssemblyException
> {
> module.addServices( UuidIdentityGeneratorService.class,
> MemoryEntityStoreService.class ).
> visibleIn( Visibility.layer );
> module.addObjects( TestCase.class, CompositeUser.class );
> module.addComposites( AComposite.class );
> }
> };
> final ApplicationInstance application = new
> ApplicationFactory().newApplication(assembler).
> newApplicationInstance( "Test" );
> application.activate();
> ObjectBuilderFactory obf = application.getLayerInstances().get( 0
> ).getModuleInstances().
> get( 0 ).getStructureContext().getObjectBuilderFactory();
> obf.newObjectBuilder( TestCase.class ).injectTo( this );
> AComposite aComposite = cbf.newCompositeBuilder( AComposite.class
> ).stateOfComposite();
> ObjectBuilder<CompositeUser> builder = obf.newObjectBuilder(
> CompositeUser.class );
> builder.use( aComposite );
> builder.newInstance();
> }
> public static void main( String[] args ) throws Exception
> {
> new TestCase();
> }
> public static class CompositeUser
> {
> @Uses AComposite composite;
> public CompositeUser()
> {
> }
> }
> static interface AComposite extends Composite
> {
> Property<String> name();
> }
> }
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.ops4j.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
_______________________________________________
qi4j-dev mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/qi4j-dev