Package org.qi4j.bootstrap

Examples of org.qi4j.bootstrap.SingletonAssembler


    }

    @Test
    public void givenEnablableServiceWhenInjectWithAvailableQualifierThenInjectCorrectly()
    {
        SingletonAssembler assembler = new SingletonAssembler()
        {
            public void assemble( ModuleAssembly module )
                    throws AssemblyException
            {
                module.objects( TestObject.class );
                module.services( TestServiceComposite2.class );
                module.entities( TestServiceConfiguration.class );

                new EntityTestAssembler().assemble( module );
            }
        };

        TestObject object = assembler.module().newObject( TestObject.class );

        assertThat( "service is unavailable", object.getService(), CoreMatchers.<Object>nullValue() );

        ServiceReference<TestServiceComposite2> serviceRef = assembler.module().findService( TestServiceComposite2.class );
        serviceRef.get().configuration().enabled().set( true );
        serviceRef.get().save();

        object = assembler.module().newObject( TestObject.class );
        assertThat( "service is available", object.getService(), CoreMatchers.<Object>notNullValue() );
    }
View Full Code Here


    @Test
    public void testActivatable()
        throws Exception
    {
        SingletonAssembler assembly = new SingletonAssembler()
        {
            public void assemble( ModuleAssembly module )
                throws AssemblyException
            {
                module.objects( ActivatableServiceTest.class );
                module.services( ActivatableComposite.class );

                module.services( new Specification<ServiceAssembly>()
                {
                    @Override
                    public boolean satisfiedBy( ServiceAssembly item )
                    {
                        return Activatable.class.isAssignableFrom( item.type() );
                    }
                } ).instantiateOnStartup();
            }
        };

        assertTrue( isActive );

        assembly.module().injectTo( this );

        assertTrue( isActive );

        service.get();

        assertTrue( isActive );

        assembly.application().passivate();

        assertFalse( isActive );
    }
View Full Code Here

public class OperatorsTest
{
    @Test
    public void testOperators() throws UnitOfWorkCompletionException
    {
        SingletonAssembler assembler = new SingletonAssembler()
        {
            @Override
            public void assemble( ModuleAssembly module ) throws AssemblyException
            {
                new EntityTestAssembler(  ).assemble( module );


                module.entities( TestEntity.class );
                module.values( TestValue.class );
                module.forMixin( TestEntity.class ).declareDefaults().foo().set( "Bar" );
                module.forMixin( TestValue.class ).declareDefaults().bar().set( "Xyz" );
            }
        };

        UnitOfWork uow = assembler.module().newUnitOfWork();

        try
        {
            EntityBuilder<TestEntity> entityBuilder = uow.newEntityBuilder( TestEntity.class, "123" );
            entityBuilder.instance().value().set( assembler.module().newValue( TestValue.class ) );
            TestEntity testEntity = entityBuilder.newInstance();

            uow.complete();
            uow = assembler.module().newUnitOfWork();

            Iterable<TestEntity> entities = Iterables.iterable( testEntity = uow.get( testEntity ) );

            QueryBuilder<TestEntity> builder = assembler.module().newQueryBuilder( TestEntity.class );

            {
                Specification<Composite> where = QueryExpressions.eq( QueryExpressions.templateFor( TestEntity.class ).foo(), "Bar" );
                Assert.assertTrue( where.satisfiedBy( testEntity ) );
                System.out.println(where);
View Full Code Here

    @Test
    public void testActivationEvents() throws Exception
    {
        final StringBuffer events = new StringBuffer();

        SingletonAssembler assembler = new SingletonAssembler()
        {
            @Override
            public void assemble( ModuleAssembly module ) throws AssemblyException
            {
                module.services( TestService.class ).instantiateOnStartup();
            }
        };

        assembler.application().passivate();

        assembler.application().registerActivationEventListener( new ActivationEventListener()
        {
            @Override
            public void onEvent( ActivationEvent event )
            {
                events.append( event.toString() ).append( "\n" );
            }
        } );

        assembler.application().activate();
        assembler.application().passivate();

        System.out.println(events);
    }
View Full Code Here

public class ServiceSelectorImporterTest
{
    @Test
    public void givenManyServicesWhenInjectServiceThenGetFirstOne()
    {
        SingletonAssembler assembler = new SingletonAssembler()
        {
            public void assemble( ModuleAssembly module )
                throws AssemblyException
            {
                module.objects( ServiceConsumer.class );
                module.services( TestServiceComposite1.class,
                                 TestServiceComposite2.class );
            }
        };

        TestService service = assembler.module().newObject( ServiceConsumer.class ).getService();

        assertThat( "service is first one", service.test(), equalTo( "mixin1" ) );
    }
View Full Code Here

    }

    @Test
    public void givenManyServicesAndFilterWhenInjectServiceThenGetSpecifiedOne()
    {
        SingletonAssembler assembler = new SingletonAssembler()
        {
            public void assemble( ModuleAssembly module )
                throws AssemblyException
            {
                module.objects( ServiceConsumer.class );

                module.importedServices( TestService.class )
                    .importedBy( SERVICE_SELECTOR )
                    .setMetaInfo( ServiceQualifier.withId( TestServiceComposite2.class.getSimpleName() ) );

                ModuleAssembly module2 = module.layer().module( "Other module" );
                module2.services( TestServiceComposite2.class, TestServiceComposite2.class )
                    .visibleIn( Visibility.layer );
            }
        };

        TestService service = assembler.module().newObject( ServiceConsumer.class ).getService();

        assertThat( "service is specified one", service.test(), equalTo( "mixin2" ) );
    }
View Full Code Here

    }

    @Test
    public void givenManyServicesAndSelectFirstWhenInjectServiceThenDontGetSelf()
    {
        SingletonAssembler assembler = new SingletonAssembler()
        {
            public void assemble( ModuleAssembly module )
                throws AssemblyException
            {
                module.objects( ServiceConsumer.class );

                module.importedServices( TestService.class )
                    .importedBy( SERVICE_SELECTOR )
                    .setMetaInfo( ServiceQualifier.withId( "TestServiceComposite2_1" ) );

                ModuleAssembly module2 = module.layer().module( "Other module" );
                module2.addServices( TestServiceComposite2.class, TestServiceComposite2.class )
                    .visibleIn( Visibility.layer );
            }
        };

        TestService service = assembler.module().newObject( ServiceConsumer.class ).getService();

        assertThat( "service is specified one", service.test(), equalTo( "mixin2" ) );
    }
View Full Code Here

    private static Module module;

    public static void main( String[] args )
        throws Exception
    {
        SingletonAssembler assembler = new SingletonAssembler()
        {

            public void assemble( ModuleAssembly module )
                throws AssemblyException
            {
                module.transients( BoundPersonComposite.class );
                module.transients( AddressTransient.class );
                module.values( CityValue.class, CountryValue.class );
                new SwingBindingAssembler().assemble( module );
            }
        };
        module = assembler.module();
        Address address1 = createAddress( "Vista Damai", "Jalan Tun Razak" );
        Address address2 = createAddress( "Mutiara", "Jalan Ceylon" );

        TransientBuilder<BoundPersonComposite> builder = module.newTransientBuilder( BoundPersonComposite.class );
        PersonComposite prototype = builder.prototype();
View Full Code Here

{
    @Test
    public void givenAvailableServiceWhenCheckServiceReferenceThenReturnTrue()
        throws ActivationException, AssemblyException
    {
        SingletonAssembler assembler = new SingletonAssembler()
        {
            public void assemble( ModuleAssembly module )
                throws AssemblyException
            {
                module.services( TestServiceComposite1.class );
            }
        };

        ServiceReference<TestServiceComposite1> serviceRef = assembler.module()
            .findService( TestServiceComposite1.class );

        assertThat( "service is available", serviceRef.isAvailable(), equalTo( true ) );
    }
View Full Code Here

    @Test
    public void givenEnablableServiceWhenCheckAvailableThenReturnEnabledStatus()
        throws ActivationException, AssemblyException
    {
        SingletonAssembler assembler = new SingletonAssembler()
        {
            public void assemble( ModuleAssembly module )
                throws AssemblyException
            {
                module.services( TestServiceComposite2.class );
                module.entities( TestServiceConfiguration.class );

                new EntityTestAssembler().assemble( module );
            }
        };

        ServiceReference<TestServiceComposite2> serviceRef = assembler.module()
            .findService( TestServiceComposite2.class );

        assertThat( "service is unavailable", serviceRef.isAvailable(), equalTo( false ) );

        serviceRef.get().get().enabled().set( true );
View Full Code Here

TOP

Related Classes of org.qi4j.bootstrap.SingletonAssembler

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.