@Before @Override public void setUp() throws Exception { super.setUp(); entityFinder = this.moduleInstance.findService( EntityFinder.class ).get(); }
@Override public Person byId( Identity id ) { return module.unitOfWorkFactory().currentUnitOfWork().get( Person.class, id ); }
@Override public void initialize() { Logger logger = LoggerFactory.getLogger( getClass() ); ResourceBundle defaultRequestWriters = ResourceBundle.getBundle( "org.apache.polygene.library.rest.client.rest-client" ); String requestWriterClasses = defaultRequestWriters.getString( "requestwriters" ); logger.info( "Using request writers:"+requestWriterClasses ); for (String className : requestWriterClasses.split( "," )) { try { Class writerClass = module.descriptor().classLoader().loadClass( className.trim() ); RequestWriter requestWriter = (RequestWriter) module.newObject( writerClass ); registerRequestWriter(requestWriter); } catch (ClassNotFoundException e) { logger.warn( "Could not register request writer "+className, e ); } } }
public ScriptMixin( @Structure PolygeneSPI spi, @This Object thisComposite, @State StateHolder state, @Structure Layer layer, @Structure Module module, @Structure Application application ) { descriptor = spi.compositeDescriptorFor( thisComposite ); engine = createNewEngine(); Bindings mixinBindings = engine.getBindings( ScriptContext.ENGINE_SCOPE ); mixinBindings.put( "Polygene", spi ); mixinBindings.put( "application", application ); mixinBindings.put( "layer", layer ); mixinBindings.put( "module", module ); mixinBindings.put( "This", thisComposite ); mixinBindings.put( "state", state ); mixinBindings.put( "objectFactory", module.objectFactory() ); mixinBindings.put( "unitOfWorkFactory", module.unitOfWorkFactory() ); mixinBindings.put( "valueBuilderFactory", module.valueBuilderFactory() ); mixinBindings.put( "transientBuilderFactory", module.transientBuilderFactory() ); mixinBindings.put( "serviceFinder", module.serviceFinder() ); mixinBindings.put( "typeLookup", module.typeLookup() ); }
protected ServiceReference<Object> getServiceReference( InjectionContext context ) { try { if( serviceQualifier == null ) { return context.module().instance().findService( serviceType ); } else { return context.module().instance().findServices( serviceType ) .filter( serviceQualifier ).findFirst().orElse( null ); } } catch( NoSuchServiceTypeException e ) { return null; } }
@Override public void tearDown() throws Exception { Module storageModule = application.findModule( "Infrastructure Layer", "Storage Module" ); UnitOfWorkFactory uowf = storageModule.unitOfWorkFactory(); ServiceFinder serviceFinder = storageModule.serviceFinder(); UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Delete " + getClass().getSimpleName() + " test data" ) ); try { SQLConfiguration config = uow.get( SQLConfiguration.class, DEFAULT_ENTITYSTORE_IDENTITY ); Connection connection = serviceFinder.findService( DataSource.class ).get().getConnection(); connection.setAutoCommit( false ); String schemaName = config.schemaName().get(); try( Statement stmt = connection.createStatement() ) { stmt.execute( String.format( "DROP SCHEMA \"%s\" CASCADE", schemaName ) ); connection.commit(); } } finally { uow.discard(); super.tearDown(); } } }
@Override public void moduleApplicationVisible() { module.newObject( ModuleApplicationVisible.class ); }
@Override public void moduleModuleVisible() { ValueBuilder<ModuleModuleVisible> builder = module.newValueBuilder( ModuleModuleVisible.class ); builder.newInstance(); }
@Override protected T initialValue() { return module.instance().newTransient( type ); }
@SuppressWarnings( "unchecked" ) ServiceReference locateService( Application anApplication ) { if( layerName != null ) { Module module = anApplication.findModule( layerName, moduleName ); return module.findServices( serviceType ) .filter( ref -> ref.identity().toString().equals( serviceId ) ) .findFirst().orElse( null ); } return null; } }
public TestResult genericQuery( TestQuery query ) { return module.newValueFromSerializedState( TestResult.class, "{\"xyz\":\"bar\"}" ); } }
@Test( expected = NoSuchObjectTypeException.class ) public void givenFromValueWhenAccessingAboveApplicationVisibleExpectException() { FromValue value = module.newValue( FromValue.class ); value.aboveApplicationVisible(); }
@Test public void givenFixture1WhenFindFromAnotherModuleThenCompositeTypeIsReturned() throws ClassNotFoundException, AssemblyException { Application app = givenFixture1(); Module module = app.findModule( "Layer 1", "Module 1" ).newTransient( TestComposite1.class ).getModule(); module.descriptor().classLoader().loadClass( TestComposite2.class.getName() ); }
protected ServiceFinder serviceFinder() { return moduleInstance.serviceFinder(); }
value = module.instance().newValue( valueType.primaryType() ); if( value instanceof String && !propertyType.equals( String.class ) ) ServiceFinder serviceFinder = module.instance().serviceFinder(); Deserializer deserializer = serviceFinder.findService( Deserializer.class ).get(); if( deserializer != null )
@SuppressWarnings( "unchecked" ) public <V> V findConfigurationInstanceFor( ServiceDescriptor serviceModel, Identity serviceIdentity, UnitOfWork uow ) throws InstantiationException { Class<V> configurationType = serviceModel.configurationType(); V configuration; try { configuration = uow.get( configurationType, serviceIdentity ); uow.pause(); } catch( NoSuchEntityException | NoSuchEntityTypeException e ) { EntityDescriptor entityDescriptor = module.typeLookup().lookupEntityModel( configurationType ); if( entityDescriptor == null ) { throw new NoSuchConfigurationTypeException( configurationType, module.descriptor() ); } return (V) initializeConfigurationInstance( entityDescriptor, uow, serviceModel, serviceIdentity ); } return configuration; }
@Override public Object apply( Module module, PropertyDescriptor property ) { return initialValue( module.descriptor(), initialValue, useDefaults ); }
@Override public void tearDown() throws Exception { Module storageModule = application.findModule( "Infrastructure Layer","Storage Module" ); UnitOfWorkFactory uowf = storageModule.unitOfWorkFactory(); UnitOfWork uow = uowf.newUnitOfWork( UsecaseBuilder.newUsecase( "Delete " + getClass().getSimpleName() + " test data" ) ); try { SQLEntityStoreConfiguration config = uow.get( SQLEntityStoreConfiguration.class, DEFAULT_ENTITYSTORE_IDENTITY ); Connection connection = storageModule.serviceFinder().findService( DataSource.class ).get().getConnection(); connection.setAutoCommit( false ); try( Statement stmt = connection.createStatement() ) { stmt.execute( String.format( "DELETE FROM %s.%s", config.schemaName().get(), config.entityTableName().get() ) ); connection.commit(); } } finally { uow.discard(); super.tearDown(); } } }
@Override public void besideApplicationVisible() { module.newObject( BesideApplicationVisible.class ); }
@Override public void besideLayerVisible() { ValueBuilder<BesideLayerVisible> builder = module.newValueBuilder( BesideLayerVisible.class ); builder.newInstance(); }