http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/extensions/entitystore-hazelcast/src/test/java/org/apache/polygene/entitystore/hazelcast/HazelcastEntityStoreTestSuite.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-hazelcast/src/test/java/org/apache/polygene/entitystore/hazelcast/HazelcastEntityStoreTestSuite.java b/extensions/entitystore-hazelcast/src/test/java/org/apache/polygene/entitystore/hazelcast/HazelcastEntityStoreTestSuite.java new file mode 100644 index 0000000..346f0ea --- /dev/null +++ b/extensions/entitystore-hazelcast/src/test/java/org/apache/polygene/entitystore/hazelcast/HazelcastEntityStoreTestSuite.java @@ -0,0 +1,48 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * + */ +package org.apache.polygene.entitystore.hazelcast; + +import org.apache.polygene.api.common.Visibility; +import org.apache.polygene.bootstrap.ModuleAssembly; +import org.apache.polygene.entitystore.hazelcast.assembly.HazelcastEntityStoreAssembler; +import org.apache.polygene.test.entity.model.EntityStoreTestSuite; +import org.junit.After; + +public class HazelcastEntityStoreTestSuite extends EntityStoreTestSuite +{ + @Override + protected void defineStorageModule( ModuleAssembly module ) + { + module.defaultServices(); + new HazelcastEntityStoreAssembler() + .visibleIn( Visibility.application ) + .withConfig( configModule, Visibility.application ) + .assemble( module ); + } + + @After + @Override + public void tearDown() + throws Exception + { + super.tearDown(); + // TODO : delete test data + } +}
http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/extensions/entitystore-jclouds/src/test/java/org/apache/polygene/entitystore/jclouds/JCloudsFilesystemTestSuite.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-jclouds/src/test/java/org/apache/polygene/entitystore/jclouds/JCloudsFilesystemTestSuite.java b/extensions/entitystore-jclouds/src/test/java/org/apache/polygene/entitystore/jclouds/JCloudsFilesystemTestSuite.java new file mode 100644 index 0000000..d1eeb88 --- /dev/null +++ b/extensions/entitystore-jclouds/src/test/java/org/apache/polygene/entitystore/jclouds/JCloudsFilesystemTestSuite.java @@ -0,0 +1,52 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * + */ + +package org.apache.polygene.entitystore.jclouds; + +import java.util.Collections; +import org.apache.polygene.api.common.Visibility; +import org.apache.polygene.bootstrap.ModuleAssembly; +import org.apache.polygene.entitystore.jclouds.assembly.JCloudsEntityStoreAssembler; +import org.apache.polygene.test.entity.model.EntityStoreTestSuite; +import org.jclouds.filesystem.reference.FilesystemConstants; +import org.junit.Rule; +import org.junit.rules.TemporaryFolder; + +public class JCloudsFilesystemTestSuite extends EntityStoreTestSuite +{ + @Rule + public TemporaryFolder tmpDir = new TemporaryFolder(); + + @Override + protected void defineStorageModule( ModuleAssembly module ) + { + module.defaultServices(); + new JCloudsEntityStoreAssembler() + .visibleIn( Visibility.application ) + .withConfig( configModule, Visibility.application ) + .assemble( module ); + + JCloudsEntityStoreConfiguration defaults = configModule.forMixin( JCloudsEntityStoreConfiguration.class ) + .declareDefaults(); + defaults.provider().set( "filesystem" ); + defaults.properties().set( Collections.singletonMap( FilesystemConstants.PROPERTY_BASEDIR, + tmpDir.getRoot().getAbsolutePath() ) ); + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/extensions/entitystore-jclouds/src/test/java/org/apache/polygene/entitystore/jclouds/JCloudsS3TestSuite.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-jclouds/src/test/java/org/apache/polygene/entitystore/jclouds/JCloudsS3TestSuite.java b/extensions/entitystore-jclouds/src/test/java/org/apache/polygene/entitystore/jclouds/JCloudsS3TestSuite.java new file mode 100644 index 0000000..1b43c7d --- /dev/null +++ b/extensions/entitystore-jclouds/src/test/java/org/apache/polygene/entitystore/jclouds/JCloudsS3TestSuite.java @@ -0,0 +1,53 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * + */ +package org.apache.polygene.entitystore.jclouds; + +import org.apache.polygene.api.common.Visibility; +import org.apache.polygene.bootstrap.ModuleAssembly; +import org.apache.polygene.entitystore.jclouds.assembly.JCloudsEntityStoreAssembler; +import org.apache.polygene.test.docker.DockerRule; +import org.apache.polygene.test.entity.model.EntityStoreTestSuite; +import org.junit.ClassRule; + +public class JCloudsS3TestSuite extends EntityStoreTestSuite +{ + @ClassRule + public static final DockerRule DOCKER = new DockerRule( "s3server", "server started" ); + + @Override + protected void defineStorageModule( ModuleAssembly module ) + { + module.defaultServices(); + new JCloudsEntityStoreAssembler() + .visibleIn( Visibility.application ) + .withConfig( configModule, Visibility.application ) + .assemble( module ); + + JCloudsEntityStoreConfiguration defaults = + configModule.forMixin( JCloudsEntityStoreConfiguration.class ).declareDefaults(); + + String host = DOCKER.getDockerHost(); + int port = DOCKER.getExposedContainerPort( "8000/tcp" ); + defaults.provider().set( "s3" ); + defaults.endpoint().set( "http://" + host + ':' + port ); + defaults.identifier().set( "dummyIdentifier" ); + defaults.credential().set( "dummyCredential" ); + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/extensions/entitystore-jclouds/src/test/java/org/apache/polygene/entitystore/jclouds/JCloudsTransientTestSuite.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-jclouds/src/test/java/org/apache/polygene/entitystore/jclouds/JCloudsTransientTestSuite.java b/extensions/entitystore-jclouds/src/test/java/org/apache/polygene/entitystore/jclouds/JCloudsTransientTestSuite.java new file mode 100644 index 0000000..186d7f0 --- /dev/null +++ b/extensions/entitystore-jclouds/src/test/java/org/apache/polygene/entitystore/jclouds/JCloudsTransientTestSuite.java @@ -0,0 +1,39 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * + */ + +package org.apache.polygene.entitystore.jclouds; + +import org.apache.polygene.api.common.Visibility; +import org.apache.polygene.bootstrap.ModuleAssembly; +import org.apache.polygene.entitystore.jclouds.assembly.JCloudsEntityStoreAssembler; +import org.apache.polygene.test.entity.model.EntityStoreTestSuite; + +public class JCloudsTransientTestSuite extends EntityStoreTestSuite +{ + @Override + protected void defineStorageModule( ModuleAssembly module ) + { + module.defaultServices(); + new JCloudsEntityStoreAssembler() + .visibleIn( Visibility.application ) + .withConfig( configModule, Visibility.application ) + .assemble( module ); + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/extensions/entitystore-jdbm/src/test/java/org/apache/polygene/entitystore/jdbm/JdbmEntityStoreTestSuite.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-jdbm/src/test/java/org/apache/polygene/entitystore/jdbm/JdbmEntityStoreTestSuite.java b/extensions/entitystore-jdbm/src/test/java/org/apache/polygene/entitystore/jdbm/JdbmEntityStoreTestSuite.java index 597bfe3..959c83f 100644 --- a/extensions/entitystore-jdbm/src/test/java/org/apache/polygene/entitystore/jdbm/JdbmEntityStoreTestSuite.java +++ b/extensions/entitystore-jdbm/src/test/java/org/apache/polygene/entitystore/jdbm/JdbmEntityStoreTestSuite.java @@ -32,7 +32,6 @@ public class JdbmEntityStoreTestSuite extends EntityStoreTestSuite { @Rule public final TemporaryFolder tmpDir = new TemporaryFolder(); - private ModuleAssembly configModule; @Override protected void defineStorageModule( ModuleAssembly module ) @@ -45,11 +44,4 @@ public class JdbmEntityStoreTestSuite extends EntityStoreTestSuite .withConfig( configModule, Visibility.application ) .assemble( module ); } - - @Override - protected void defineConfigModule( ModuleAssembly module ) - { - configModule = module; - super.defineConfigModule( module ); - } } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/extensions/entitystore-leveldb/src/test/java/org/apache/polygene/entitystore/leveldb/JavaLevelDBEntityStoreTestSuite.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-leveldb/src/test/java/org/apache/polygene/entitystore/leveldb/JavaLevelDBEntityStoreTestSuite.java b/extensions/entitystore-leveldb/src/test/java/org/apache/polygene/entitystore/leveldb/JavaLevelDBEntityStoreTestSuite.java new file mode 100644 index 0000000..70c8929 --- /dev/null +++ b/extensions/entitystore-leveldb/src/test/java/org/apache/polygene/entitystore/leveldb/JavaLevelDBEntityStoreTestSuite.java @@ -0,0 +1,52 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * + */ +package org.apache.polygene.entitystore.leveldb; + +import org.apache.polygene.api.common.Visibility; +import org.apache.polygene.bootstrap.ModuleAssembly; +import org.apache.polygene.entitystore.leveldb.assembly.LevelDBEntityStoreAssembler; +import org.apache.polygene.library.fileconfig.FileConfigurationAssembler; +import org.apache.polygene.library.fileconfig.FileConfigurationOverride; +import org.apache.polygene.test.entity.model.EntityStoreTestSuite; +import org.junit.Rule; +import org.junit.rules.TemporaryFolder; + +public class JavaLevelDBEntityStoreTestSuite extends EntityStoreTestSuite +{ + @Rule + public final TemporaryFolder tmpDir = new TemporaryFolder(); + + @Override + protected void defineStorageModule( ModuleAssembly module ) + { + module.defaultServices(); + new FileConfigurationAssembler() + .withOverride( new FileConfigurationOverride().withConventionalRoot( tmpDir.getRoot() ) ) + .assemble( module ); + + new LevelDBEntityStoreAssembler() + .visibleIn( Visibility.application ) + .withConfig( configModule, Visibility.application ) + .identifiedBy( "java-leveldb-entitystore" ) + .assemble( module ); + + configModule.forMixin( LevelDBEntityStoreConfiguration.class ).declareDefaults().flavour().set( "java" ); + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/extensions/entitystore-leveldb/src/test/java/org/apache/polygene/entitystore/leveldb/JniLevelDBEntityStoreTest.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-leveldb/src/test/java/org/apache/polygene/entitystore/leveldb/JniLevelDBEntityStoreTest.java b/extensions/entitystore-leveldb/src/test/java/org/apache/polygene/entitystore/leveldb/JniLevelDBEntityStoreTest.java index 08177e1..c072f4d 100644 --- a/extensions/entitystore-leveldb/src/test/java/org/apache/polygene/entitystore/leveldb/JniLevelDBEntityStoreTest.java +++ b/extensions/entitystore-leveldb/src/test/java/org/apache/polygene/entitystore/leveldb/JniLevelDBEntityStoreTest.java @@ -20,40 +20,33 @@ package org.apache.polygene.entitystore.leveldb; import org.apache.polygene.api.common.Visibility; -import org.apache.polygene.bootstrap.AssemblyException; import org.apache.polygene.bootstrap.ModuleAssembly; import org.apache.polygene.entitystore.leveldb.assembly.LevelDBEntityStoreAssembler; import org.apache.polygene.library.fileconfig.FileConfigurationAssembler; import org.apache.polygene.library.fileconfig.FileConfigurationOverride; -import org.apache.polygene.test.EntityTestAssembler; -import org.apache.polygene.test.entity.AbstractEntityStoreTest; +import org.apache.polygene.test.entity.model.EntityStoreTestSuite; import org.junit.Rule; import org.junit.rules.TemporaryFolder; -public class JniLevelDBEntityStoreTest - extends AbstractEntityStoreTest +public class JniLevelDBEntityStoreTest extends EntityStoreTestSuite { @Rule public final TemporaryFolder tmpDir = new TemporaryFolder(); @Override - public void assemble( ModuleAssembly module ) - throws AssemblyException + protected void defineStorageModule( ModuleAssembly module ) { - super.assemble( module ); - - ModuleAssembly config = module.layer().module( "config" ); - new EntityTestAssembler().defaultServicesVisibleIn( Visibility.layer ).assemble( config ); - + module.defaultServices(); new FileConfigurationAssembler() .withOverride( new FileConfigurationOverride().withConventionalRoot( tmpDir.getRoot() ) ) .assemble( module ); new LevelDBEntityStoreAssembler() - .withConfig( config, Visibility.layer ) + .visibleIn( Visibility.application ) + .withConfig( configModule, Visibility.application ) .identifiedBy( "jni-leveldb-entitystore" ) .assemble( module ); - config.forMixin( LevelDBEntityStoreConfiguration.class ).declareDefaults().flavour().set( "jni" ); + configModule.forMixin( LevelDBEntityStoreConfiguration.class ).declareDefaults().flavour().set( "jni" ); } } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/extensions/entitystore-memory/src/test/java/org/apache/polygene/entitystore/memory/MemoryEntityStoreTestSuite.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-memory/src/test/java/org/apache/polygene/entitystore/memory/MemoryEntityStoreTestSuite.java b/extensions/entitystore-memory/src/test/java/org/apache/polygene/entitystore/memory/MemoryEntityStoreTestSuite.java new file mode 100644 index 0000000..01d4b33 --- /dev/null +++ b/extensions/entitystore-memory/src/test/java/org/apache/polygene/entitystore/memory/MemoryEntityStoreTestSuite.java @@ -0,0 +1,37 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * + */ +package org.apache.polygene.entitystore.memory; + +import org.apache.polygene.api.common.Visibility; +import org.apache.polygene.bootstrap.ModuleAssembly; +import org.apache.polygene.entitystore.memory.assembly.MemoryEntityStoreAssembler; +import org.apache.polygene.test.entity.model.EntityStoreTestSuite; + +public class MemoryEntityStoreTestSuite extends EntityStoreTestSuite +{ + @Override + protected void defineStorageModule( ModuleAssembly module ) + { + module.defaultServices(); + new MemoryEntityStoreAssembler() + .visibleIn( Visibility.application ) + .assemble( module ); + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/extensions/entitystore-mongodb/src/test/java/org/apache/polygene/entitystore/mongodb/EmbedMongoDBMapEntityStoreTestSuite.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-mongodb/src/test/java/org/apache/polygene/entitystore/mongodb/EmbedMongoDBMapEntityStoreTestSuite.java b/extensions/entitystore-mongodb/src/test/java/org/apache/polygene/entitystore/mongodb/EmbedMongoDBMapEntityStoreTestSuite.java new file mode 100644 index 0000000..57c1e16 --- /dev/null +++ b/extensions/entitystore-mongodb/src/test/java/org/apache/polygene/entitystore/mongodb/EmbedMongoDBMapEntityStoreTestSuite.java @@ -0,0 +1,84 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.polygene.entitystore.mongodb; + +import de.flapdoodle.embed.mongo.MongodExecutable; +import de.flapdoodle.embed.mongo.MongodStarter; +import de.flapdoodle.embed.mongo.config.MongodConfigBuilder; +import de.flapdoodle.embed.mongo.config.Net; +import de.flapdoodle.embed.mongo.distribution.Version; +import de.flapdoodle.embed.process.runtime.Network; +import java.io.IOException; +import java.util.Collections; +import org.apache.polygene.api.common.Visibility; +import org.apache.polygene.bootstrap.ModuleAssembly; +import org.apache.polygene.entitystore.mongodb.assembly.MongoDBEntityStoreAssembler; +import org.apache.polygene.test.entity.model.EntityStoreTestSuite; +import org.apache.polygene.test.util.FreePortFinder; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Rule; +import org.junit.rules.TestName; + +public class EmbedMongoDBMapEntityStoreTestSuite extends EntityStoreTestSuite +{ + private static final MongodStarter MONGO_STARTER = MongodStarter.getDefaultInstance(); + + @Rule + public TestName testName = new TestName(); + private static int port; + private static MongodExecutable mongod; + + @BeforeClass + public static void startEmbedMongo() + throws IOException + { + port = FreePortFinder.findFreePortOnLoopback(); + mongod = MONGO_STARTER.prepare( new MongodConfigBuilder() + .version( Version.Main.PRODUCTION ) + .net( new Net( "localhost", port, Network.localhostIsIPv6() ) ) + .build() ); + mongod.start(); + } + + @AfterClass + public static void stopEmbedMongo() + { + if( mongod != null ) + { + mongod.stop(); + } + } + + @Override + protected void defineStorageModule( ModuleAssembly module ) + { + module.defaultServices(); + new MongoDBEntityStoreAssembler() + .visibleIn( Visibility.application ) + .withConfig( configModule, Visibility.application ) + .assemble( module ); + + MongoDBEntityStoreConfiguration mongoConfig = configModule.forMixin( MongoDBEntityStoreConfiguration.class ) + .declareDefaults(); + mongoConfig.writeConcern().set( MongoDBEntityStoreConfiguration.WriteConcern.MAJORITY ); + mongoConfig.database().set( "polygene-test" ); + mongoConfig.collection().set( testName.getMethodName() ); + mongoConfig.nodes().set( Collections.singletonList( "localhost:" + port ) ); + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/extensions/entitystore-mongodb/src/test/java/org/apache/polygene/entitystore/mongodb/MongoDBEntityStoreTestSuite.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-mongodb/src/test/java/org/apache/polygene/entitystore/mongodb/MongoDBEntityStoreTestSuite.java b/extensions/entitystore-mongodb/src/test/java/org/apache/polygene/entitystore/mongodb/MongoDBEntityStoreTestSuite.java new file mode 100644 index 0000000..109ff43 --- /dev/null +++ b/extensions/entitystore-mongodb/src/test/java/org/apache/polygene/entitystore/mongodb/MongoDBEntityStoreTestSuite.java @@ -0,0 +1,77 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * + */ +package org.apache.polygene.entitystore.mongodb; + +import com.mongodb.Mongo; +import org.apache.polygene.api.common.Visibility; +import org.apache.polygene.api.structure.Module; +import org.apache.polygene.bootstrap.ModuleAssembly; +import org.apache.polygene.entitystore.mongodb.assembly.MongoDBEntityStoreAssembler; +import org.apache.polygene.test.docker.DockerRule; +import org.apache.polygene.test.entity.model.EntityStoreTestSuite; +import org.junit.ClassRule; + +/** + * Test the MongoDBEntityStoreService. + */ +public class MongoDBEntityStoreTestSuite extends EntityStoreTestSuite +{ + @ClassRule + public static final DockerRule DOCKER = new DockerRule( "mongo", 27017 ); + + @Override + protected void defineStorageModule( ModuleAssembly module ) + { + module.defaultServices(); + new MongoDBEntityStoreAssembler() + .visibleIn( Visibility.application ) + .withConfig( configModule, Visibility.application ) + .assemble( module ); + + MongoDBEntityStoreConfiguration mongoConfig = configModule.forMixin( MongoDBEntityStoreConfiguration.class ).declareDefaults(); + mongoConfig.writeConcern().set( MongoDBEntityStoreConfiguration.WriteConcern.MAJORITY ); + mongoConfig.database().set( "polygene:test" ); + mongoConfig.collection().set( "polygene:test:entities" ); + mongoConfig.hostname().set( DOCKER.getDockerHost() ); + mongoConfig.port().set( DOCKER.getExposedContainerPort( "27017/tcp" ) ); + } + + private Mongo mongo; + private String dbName; + + @Override + public void setUp() + throws Exception + { + super.setUp(); + Module storageModule = application.findModule( "Infrastructure Layer", "Storage Module" ); + MongoDBEntityStoreService es = storageModule.serviceFinder().findService( MongoDBEntityStoreService.class ).get(); + mongo = es.mongoInstanceUsed(); + dbName = es.dbInstanceUsed().getName(); + } + + @Override + public void tearDown() + throws Exception + { + mongo.dropDatabase( dbName ); + super.tearDown(); + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/extensions/entitystore-preferences/src/main/java/org/apache/polygene/entitystore/preferences/assembly/PreferencesEntityStoreAssembler.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-preferences/src/main/java/org/apache/polygene/entitystore/preferences/assembly/PreferencesEntityStoreAssembler.java b/extensions/entitystore-preferences/src/main/java/org/apache/polygene/entitystore/preferences/assembly/PreferencesEntityStoreAssembler.java index 1020216..f3b0de5 100644 --- a/extensions/entitystore-preferences/src/main/java/org/apache/polygene/entitystore/preferences/assembly/PreferencesEntityStoreAssembler.java +++ b/extensions/entitystore-preferences/src/main/java/org/apache/polygene/entitystore/preferences/assembly/PreferencesEntityStoreAssembler.java @@ -26,8 +26,7 @@ import org.apache.polygene.bootstrap.ServiceDeclaration; import org.apache.polygene.entitystore.preferences.PreferencesEntityStoreInfo; import org.apache.polygene.entitystore.preferences.PreferencesEntityStoreService; -public class PreferencesEntityStoreAssembler - extends Assemblers.VisibilityIdentityConfig<PreferencesEntityStoreAssembler> +public class PreferencesEntityStoreAssembler extends Assemblers.VisibilityIdentityConfig<PreferencesEntityStoreAssembler> { @Override public void assemble( ModuleAssembly module ) @@ -38,9 +37,9 @@ public class PreferencesEntityStoreAssembler Preferences node = root.node( applicationName ); PreferencesEntityStoreInfo info = new PreferencesEntityStoreInfo( node ); ServiceDeclaration service = module.services( PreferencesEntityStoreService.class ) - .setMetaInfo( info ) - .visibleIn( visibility() ) - .instantiateOnStartup(); + .setMetaInfo( info ) + .visibleIn( visibility() ) + .instantiateOnStartup(); if( hasIdentity() ) { service.identifiedBy( identity() ); http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/extensions/entitystore-preferences/src/test/java/org/apache/polygene/entitystore/preferences/PreferencesEntityStoreTestSuite.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-preferences/src/test/java/org/apache/polygene/entitystore/preferences/PreferencesEntityStoreTestSuite.java b/extensions/entitystore-preferences/src/test/java/org/apache/polygene/entitystore/preferences/PreferencesEntityStoreTestSuite.java new file mode 100644 index 0000000..4ca18b4 --- /dev/null +++ b/extensions/entitystore-preferences/src/test/java/org/apache/polygene/entitystore/preferences/PreferencesEntityStoreTestSuite.java @@ -0,0 +1,56 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * + */ +package org.apache.polygene.entitystore.preferences; + +import java.util.prefs.BackingStoreException; +import java.util.prefs.Preferences; +import org.apache.polygene.api.common.Visibility; +import org.apache.polygene.bootstrap.ModuleAssembly; +import org.apache.polygene.entitystore.preferences.assembly.PreferencesEntityStoreAssembler; +import org.apache.polygene.test.entity.model.EntityStoreTestSuite; +import org.junit.After; +import org.junit.Rule; +import org.junit.rules.TemporaryFolder; + +public class PreferencesEntityStoreTestSuite extends EntityStoreTestSuite +{ + @Rule + public TemporaryFolder tmpDir = new TemporaryFolder(); + private Preferences rootNode; + + @Override + protected void defineStorageModule( ModuleAssembly module ) + { + module.defaultServices(); + String applicationName = module.layer().application().name(); + rootNode = Preferences.userRoot().node( applicationName ); + + new PreferencesEntityStoreAssembler() + .visibleIn( Visibility.application ) + .assemble( module ); + } + + @After + public void tearDown() + throws BackingStoreException + { + rootNode.removeNode(); + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/extensions/entitystore-redis/src/test/java/org/apache/polygene/entitystore/redis/RedisEntityStoreTestSuite.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-redis/src/test/java/org/apache/polygene/entitystore/redis/RedisEntityStoreTestSuite.java b/extensions/entitystore-redis/src/test/java/org/apache/polygene/entitystore/redis/RedisEntityStoreTestSuite.java new file mode 100644 index 0000000..6ae99a1 --- /dev/null +++ b/extensions/entitystore-redis/src/test/java/org/apache/polygene/entitystore/redis/RedisEntityStoreTestSuite.java @@ -0,0 +1,74 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * + */ +package org.apache.polygene.entitystore.redis; + +import org.apache.polygene.api.common.Visibility; +import org.apache.polygene.api.structure.Module; +import org.apache.polygene.bootstrap.ModuleAssembly; +import org.apache.polygene.entitystore.redis.assembly.RedisEntityStoreAssembler; +import org.apache.polygene.test.docker.DockerRule; +import org.apache.polygene.test.entity.model.EntityStoreTestSuite; +import org.junit.ClassRule; +import redis.clients.jedis.Jedis; +import redis.clients.jedis.JedisPool; + +public class RedisEntityStoreTestSuite extends EntityStoreTestSuite +{ + @ClassRule + public static final DockerRule DOCKER = new DockerRule( "redis", 6379 ); + + @Override + protected void defineStorageModule( ModuleAssembly module ) + { + module.defaultServices(); + new RedisEntityStoreAssembler() + .visibleIn( Visibility.application ) + .withConfig( configModule, Visibility.application ) + .assemble( module ); + + RedisEntityStoreConfiguration redisConfig = configModule.forMixin( RedisEntityStoreConfiguration.class ) + .declareDefaults(); + redisConfig.host().set( DOCKER.getDockerHost() ); + redisConfig.port().set( DOCKER.getExposedContainerPort( "6379/tcp" ) ); + } + + private JedisPool jedisPool; + + @Override + public void setUp() + throws Exception + { + super.setUp(); + Module storageModule = application.findModule( "Infrastructure Layer", "Storage Module" ); + RedisEntityStoreService es = storageModule.findService( RedisEntityStoreService.class ).get(); + jedisPool = es.jedisPool(); + } + + @Override + public void tearDown() + throws Exception + { + try( Jedis jedis = jedisPool.getResource() ) + { + jedis.flushDB(); + } + super.tearDown(); + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakEntityStoreTestSuite.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakEntityStoreTestSuite.java b/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakEntityStoreTestSuite.java new file mode 100644 index 0000000..14828ff --- /dev/null +++ b/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakEntityStoreTestSuite.java @@ -0,0 +1,70 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.polygene.entitystore.riak; + +import java.util.Collections; +import org.apache.polygene.api.common.Visibility; +import org.apache.polygene.api.structure.Module; +import org.apache.polygene.bootstrap.ModuleAssembly; +import org.apache.polygene.entitystore.riak.assembly.RiakEntityStoreAssembler; +import org.apache.polygene.test.docker.DockerRule; +import org.apache.polygene.test.entity.model.EntityStoreTestSuite; +import org.junit.ClassRule; + +public class RiakEntityStoreTestSuite extends EntityStoreTestSuite +{ + @ClassRule + public static final DockerRule DOCKER = new DockerRule( "riak", "riak_auth_mods started on node" ); + + private RiakFixture riakFixture; + + @Override + protected void defineStorageModule( ModuleAssembly module ) + { + module.defaultServices(); + new RiakEntityStoreAssembler() + .visibleIn( Visibility.application ) + .withConfig( configModule, Visibility.application ) + .assemble( module ); + + RiakEntityStoreConfiguration riakConfig = configModule.forMixin( RiakEntityStoreConfiguration.class ) + .declareDefaults(); + String host = DOCKER.getDockerHost(); + int port = DOCKER.getExposedContainerPort( "8087/tcp" ); + riakConfig.hosts().set( Collections.singletonList( host + ':' + port ) ); + } + + @Override + public void tearDown() + throws Exception + { + riakFixture.deleteTestData(); + super.tearDown(); + } + + @Override + public void setUp() + throws Exception + { + super.setUp(); + Module storageModule = application.findModule( "Infrastructure Layer", "Storage Module" ); + RiakEntityStoreService es = storageModule.findService( RiakEntityStoreService.class ).get(); + riakFixture = new RiakFixture( es.riakClient(), es.riakNamespace() ); + riakFixture.waitUntilReady(); + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/extensions/entitystore-sql/src/main/java/org/apache/polygene/entitystore/sql/assembly/AbstractSQLEntityStoreAssembler.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-sql/src/main/java/org/apache/polygene/entitystore/sql/assembly/AbstractSQLEntityStoreAssembler.java b/extensions/entitystore-sql/src/main/java/org/apache/polygene/entitystore/sql/assembly/AbstractSQLEntityStoreAssembler.java index 6a41cea..c25a3cd 100644 --- a/extensions/entitystore-sql/src/main/java/org/apache/polygene/entitystore/sql/assembly/AbstractSQLEntityStoreAssembler.java +++ b/extensions/entitystore-sql/src/main/java/org/apache/polygene/entitystore/sql/assembly/AbstractSQLEntityStoreAssembler.java @@ -36,7 +36,7 @@ import org.jooq.conf.Settings; public abstract class AbstractSQLEntityStoreAssembler<AssemblerType> extends Assemblers.VisibilityIdentityConfig<AssemblerType> { - public static final Identity DEFAULT_ENTITYSTORE_IDENTITY = StringIdentity.identity( "entitystore-sql" ); + public static final Identity DEFAULT_ENTITYSTORE_IDENTITY = StringIdentity.identityOf( "entitystore-sql" ); private static final String DEFAULT_CHANGELOG_PATH = "org/apache/polygene/entitystore/sql/changelog.xml"; private String changelogPath = DEFAULT_CHANGELOG_PATH; http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/DerbySQLEntityStoreTestSuite.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/DerbySQLEntityStoreTestSuite.java b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/DerbySQLEntityStoreTestSuite.java new file mode 100644 index 0000000..7fbfb2a --- /dev/null +++ b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/DerbySQLEntityStoreTestSuite.java @@ -0,0 +1,94 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * + */ +package org.apache.polygene.entitystore.sql; + +import java.sql.Connection; +import java.sql.Statement; +import javax.sql.DataSource; +import org.apache.polygene.api.common.Visibility; +import org.apache.polygene.api.structure.Module; +import org.apache.polygene.api.unitofwork.UnitOfWork; +import org.apache.polygene.api.unitofwork.UnitOfWorkFactory; +import org.apache.polygene.api.usecase.UsecaseBuilder; +import org.apache.polygene.bootstrap.ModuleAssembly; +import org.apache.polygene.entitystore.sql.assembly.DerbySQLEntityStoreAssembler; +import org.apache.polygene.library.sql.assembly.DataSourceAssembler; +import org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler; +import org.apache.polygene.test.entity.model.EntityStoreTestSuite; + +import static org.apache.polygene.entitystore.sql.assembly.DerbySQLEntityStoreAssembler.DEFAULT_ENTITYSTORE_IDENTITY; + +public class DerbySQLEntityStoreTestSuite extends EntityStoreTestSuite +{ + @Override + protected void defineStorageModule( ModuleAssembly module ) + { + module.defaultServices(); + // DataSourceService + new DBCPDataSourceServiceAssembler() + .identifiedBy( "derby-datasource-service" ) + .visibleIn( Visibility.module ) + .withConfig( configModule, Visibility.application ) + .assemble( module ); + + // DataSource + new DataSourceAssembler() + .withDataSourceServiceIdentity( "derby-datasource-service" ) + .identifiedBy( "derby-datasource" ) + .visibleIn( Visibility.module ) + .withCircuitBreaker() + .assemble( module ); + + // SQL EntityStore + new DerbySQLEntityStoreAssembler() + .visibleIn( Visibility.application ) + .withConfig( configModule, Visibility.application ) + .assemble( module ); + } + + @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(); + } + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/H2SQLEntityStoreTestSuite.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/H2SQLEntityStoreTestSuite.java b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/H2SQLEntityStoreTestSuite.java new file mode 100644 index 0000000..f763238 --- /dev/null +++ b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/H2SQLEntityStoreTestSuite.java @@ -0,0 +1,56 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * + */ +package org.apache.polygene.entitystore.sql; + +import org.apache.polygene.api.common.Visibility; +import org.apache.polygene.bootstrap.ModuleAssembly; +import org.apache.polygene.entitystore.sql.assembly.H2SQLEntityStoreAssembler; +import org.apache.polygene.library.sql.assembly.DataSourceAssembler; +import org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler; +import org.apache.polygene.test.entity.model.EntityStoreTestSuite; + +public class H2SQLEntityStoreTestSuite extends EntityStoreTestSuite +{ + @Override + protected void defineStorageModule( ModuleAssembly module ) + { + module.defaultServices(); + // DataSourceService + new DBCPDataSourceServiceAssembler() + .identifiedBy( "h2-datasource-service" ) + .visibleIn( Visibility.module ) + .withConfig( configModule, Visibility.application ) + .assemble( module ); + + // DataSource + new DataSourceAssembler() + .withDataSourceServiceIdentity( "h2-datasource-service" ) + .identifiedBy( "h2-datasource" ) + .visibleIn( Visibility.module ) + .withCircuitBreaker() + .assemble( module ); + + // SQL EntityStore + new H2SQLEntityStoreAssembler() + .visibleIn( Visibility.application ) + .withConfig( configModule, Visibility.application ) + .assemble( module ); + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MySQLEntityStoreTestSuite.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MySQLEntityStoreTestSuite.java b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MySQLEntityStoreTestSuite.java new file mode 100644 index 0000000..e2b0564 --- /dev/null +++ b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MySQLEntityStoreTestSuite.java @@ -0,0 +1,122 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * + */ +package org.apache.polygene.entitystore.sql; + +import java.sql.Connection; +import java.sql.Statement; +import java.util.HashMap; +import javax.sql.DataSource; +import org.apache.polygene.api.common.Visibility; +import org.apache.polygene.api.service.ServiceFinder; +import org.apache.polygene.api.structure.Module; +import org.apache.polygene.api.unitofwork.UnitOfWork; +import org.apache.polygene.api.unitofwork.UnitOfWorkFactory; +import org.apache.polygene.api.usecase.UsecaseBuilder; +import org.apache.polygene.bootstrap.ModuleAssembly; +import org.apache.polygene.entitystore.sql.assembly.MySQLEntityStoreAssembler; +import org.apache.polygene.library.sql.assembly.DataSourceAssembler; +import org.apache.polygene.library.sql.datasource.DataSourceConfiguration; +import org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler; +import org.apache.polygene.test.docker.DockerRule; +import org.apache.polygene.test.entity.model.EntityStoreTestSuite; +import org.junit.ClassRule; + +import static org.apache.polygene.entitystore.sql.assembly.MySQLEntityStoreAssembler.DEFAULT_ENTITYSTORE_IDENTITY; + +public class MySQLEntityStoreTestSuite extends EntityStoreTestSuite +{ + @ClassRule + public static final DockerRule DOCKER = new DockerRule( + "mysql", + new HashMap<String, String>() + {{ + put( "MYSQL_ROOT_PASSWORD", "" ); + put( "MYSQL_ALLOW_EMPTY_PASSWORD", "yes" ); + put( "MYSQL_DATABASE", "jdbc_test_db" ); + put( "MYSQL_ROOT_HOST", "172.17.0.1" ); + }}, + 30000L +// , "mysqld: ready for connections" TODO: add this after next release of tdomzal/junit-docker-rule + ); + + @Override + protected void defineStorageModule( ModuleAssembly module ) + { + module.defaultServices(); + // DataSourceService + new DBCPDataSourceServiceAssembler() + .identifiedBy( "mysql-datasource-service" ) + .visibleIn( Visibility.module ) + .withConfig( configModule, Visibility.application ) + .assemble( module ); + + // DataSource + new DataSourceAssembler() + .withDataSourceServiceIdentity( "mysql-datasource-service" ) + .identifiedBy( "mysql-datasource" ) + .visibleIn( Visibility.module ) + .withCircuitBreaker() + .assemble( module ); + + // SQL EntityStore + new MySQLEntityStoreAssembler() + .visibleIn( Visibility.application ) + .withConfig( configModule, Visibility.application ) + .assemble( module ); + + String mysqlHost = DOCKER.getDockerHost(); + int mysqlPort = DOCKER.getExposedContainerPort( "3306/tcp" ); + configModule.forMixin( DataSourceConfiguration.class ).declareDefaults() + .url().set( "jdbc:mysql://" + mysqlHost + ":" + mysqlPort + + "/jdbc_test_db?profileSQL=false&useLegacyDatetimeCode=false&serverTimezone=UTC" + + "&nullCatalogMeansCurrent=true&nullNamePatternMatchesAll=true" ); + } + + @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 + { + Connection connection = serviceFinder.findService( DataSource.class ).get().getConnection(); + SQLEntityStoreConfiguration configuration = uow.get( SQLEntityStoreConfiguration.class, + DEFAULT_ENTITYSTORE_IDENTITY ); + connection.setAutoCommit( false ); + try( Statement stmt = connection.createStatement() ) + { + stmt.execute( String.format( "TRUNCATE %s.%s", + configuration.schemaName().get(), + configuration.entityTableName().get() ) ); + connection.commit(); + } + } + finally + { + uow.discard(); + super.tearDown(); + } + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/PostgreSQLEntityStoreTest.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/PostgreSQLEntityStoreTest.java b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/PostgreSQLEntityStoreTest.java index d3342b8..daa9949 100644 --- a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/PostgreSQLEntityStoreTest.java +++ b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/PostgreSQLEntityStoreTest.java @@ -39,40 +39,6 @@ import org.junit.ClassRule; import static org.apache.polygene.entitystore.sql.assembly.PostgreSQLEntityStoreAssembler.DEFAULT_ENTITYSTORE_IDENTITY; -/** - * WARN This test run only if localhost:5432 is listening. - * - * To run it you need to have a user & database set up in postgresql. Here are two snippets to create and drop the - * needed test environment. - * - * Use 'password' as password for the jdbc_test_login user. - * - * Eventually create a database cluster: - * - * <pre> - * initdb -D /usr/local/pgsql/data - * </pre> - * - * Start PostgreSQL. Then, create test user and database: - * - * <pre> - * createuser -A -D -P -E -W jdbc_test_login - * createdb -O jdbc_test_login -W jdbc_test_db - * </pre> - * - * To clear the data: - * - * <pre> - * dropdb -W jdbc_test_db - * createdb -O jdbc_test_login -W jdbc_test_db - * </pre> - * - * To remove the test user: - * - * <pre> - * dropuser -W jdbc_test_login - * </pre> - */ public class PostgreSQLEntityStoreTest extends AbstractEntityStoreTest { http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/PostgreSQLEntityStoreTestSuite.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/PostgreSQLEntityStoreTestSuite.java b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/PostgreSQLEntityStoreTestSuite.java new file mode 100644 index 0000000..d1dd952 --- /dev/null +++ b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/PostgreSQLEntityStoreTestSuite.java @@ -0,0 +1,111 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * + */ +package org.apache.polygene.entitystore.sql; + +import java.sql.Connection; +import java.sql.Statement; +import javax.sql.DataSource; +import org.apache.polygene.api.common.Visibility; +import org.apache.polygene.api.service.ServiceFinder; +import org.apache.polygene.api.structure.Module; +import org.apache.polygene.api.unitofwork.UnitOfWork; +import org.apache.polygene.api.unitofwork.UnitOfWorkFactory; +import org.apache.polygene.api.usecase.UsecaseBuilder; +import org.apache.polygene.bootstrap.ModuleAssembly; +import org.apache.polygene.entitystore.sql.assembly.PostgreSQLEntityStoreAssembler; +import org.apache.polygene.library.sql.assembly.DataSourceAssembler; +import org.apache.polygene.library.sql.common.SQLConfiguration; +import org.apache.polygene.library.sql.datasource.DataSourceConfiguration; +import org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler; +import org.apache.polygene.test.docker.DockerRule; +import org.apache.polygene.test.entity.model.EntityStoreTestSuite; +import org.junit.ClassRule; + +import static org.apache.polygene.entitystore.sql.assembly.PostgreSQLEntityStoreAssembler.DEFAULT_ENTITYSTORE_IDENTITY; + +public class PostgreSQLEntityStoreTestSuite extends EntityStoreTestSuite +{ + @ClassRule + public static final DockerRule DOCKER = new DockerRule( "postgres", + 3000L, + "PostgreSQL init process complete; ready for start up." ); + + @Override + protected void defineStorageModule( ModuleAssembly module ) + { + module.defaultServices(); + // DataSourceService + new DBCPDataSourceServiceAssembler() + .identifiedBy( "postgresql-datasource-service" ) + .visibleIn( Visibility.module ) + .withConfig( configModule, Visibility.application ) + .assemble( module ); + + // DataSource + new DataSourceAssembler() + .withDataSourceServiceIdentity( "postgresql-datasource-service" ) + .identifiedBy( "postgresql-datasource" ) + .visibleIn( Visibility.module ) + .withCircuitBreaker() + .assemble( module ); + + // SQL EntityStore + new PostgreSQLEntityStoreAssembler() + .visibleIn( Visibility.application ) + .withConfig( configModule, Visibility.application ) + .assemble( module ); + + String host = DOCKER.getDockerHost(); + int port = DOCKER.getExposedContainerPort( "5432/tcp" ); + configModule.forMixin( DataSourceConfiguration.class ).declareDefaults() + .url().set( "jdbc:postgresql://" + host + ":" + port + "/jdbc_test_db" ); + // START SNIPPET: assembly + } + // END SNIPPET: assembly + + @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(); + } + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/SQLiteEntityStoreTestSuite.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/SQLiteEntityStoreTestSuite.java b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/SQLiteEntityStoreTestSuite.java new file mode 100644 index 0000000..6dc5fbe --- /dev/null +++ b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/SQLiteEntityStoreTestSuite.java @@ -0,0 +1,65 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * + */ +package org.apache.polygene.entitystore.sql; + +import org.apache.polygene.api.common.Visibility; +import org.apache.polygene.bootstrap.ModuleAssembly; +import org.apache.polygene.entitystore.sql.assembly.SQLiteEntityStoreAssembler; +import org.apache.polygene.library.sql.assembly.DataSourceAssembler; +import org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler; +import org.apache.polygene.test.entity.model.EntityStoreTestSuite; +import org.junit.BeforeClass; + +import static org.apache.polygene.test.util.Assume.assumeNoIbmJdk; + +public class SQLiteEntityStoreTestSuite extends EntityStoreTestSuite +{ + @BeforeClass + public static void beforeClass_IBMJDK() + { + assumeNoIbmJdk(); + } + + @Override + protected void defineStorageModule( ModuleAssembly module ) + { + module.defaultServices(); + // DataSourceService + new DBCPDataSourceServiceAssembler() + .identifiedBy( "sqlite-datasource-service" ) + .visibleIn( Visibility.module ) + .withConfig( configModule, Visibility.application ) + .assemble( module ); + + // DataSource + new DataSourceAssembler() + .withDataSourceServiceIdentity( "sqlite-datasource-service" ) + .identifiedBy( "sqlite-datasource" ) + .visibleIn( Visibility.module ) + .withCircuitBreaker() + .assemble( module ); + + // SQL EntityStore + new SQLiteEntityStoreAssembler() + .visibleIn( Visibility.application ) + .withConfig( configModule, Visibility.application ) + .assemble( module ); + } +} http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RDFPerformanceTest.java ---------------------------------------------------------------------- diff --git a/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RDFPerformanceTest.java b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RDFPerformanceTest.java index 08e1db4..86bd8e3 100644 --- a/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RDFPerformanceTest.java +++ b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RDFPerformanceTest.java @@ -102,7 +102,7 @@ public class RDFPerformanceTest extends AbstractPolygeneTest List<ExampleEntity> entities = new ArrayList<ExampleEntity>(); for (Integer x = 0; x < howMany; ++x) { - ExampleEntity exampleEntity = this.unitOfWorkFactory.currentUnitOfWork().newEntity( ExampleEntity.class, StringIdentity.identity( "entity" + x ) ); + ExampleEntity exampleEntity = this.unitOfWorkFactory.currentUnitOfWork().newEntity( ExampleEntity.class, StringIdentity.identityOf( "entity" + x ) ); for (ExampleEntity entity : entities) { @@ -188,7 +188,7 @@ public class RDFPerformanceTest extends AbstractPolygeneTest UnitOfWork uow = this.unitOfWorkFactory.newUnitOfWork(); for (int i = 0; i < 1000; i++) { - ExampleEntity entity50 = uow.get(ExampleEntity.class, StringIdentity.identity( "entity50" ) ); + ExampleEntity entity50 = uow.get(ExampleEntity.class, StringIdentity.identityOf( "entity50" ) ); Query<ExampleEntity> query = uow.newQuery( this.queryBuilderFactory.newQueryBuilder( ExampleEntity.class ). where( QueryExpressions.contains( QueryExpressions.templateFor( ExampleEntity.class ).manyAssoc(), entity50) )); System.out.println(query.count()); http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/extensions/indexing-sql/src/main/java/org/apache/polygene/index/sql/assembly/AbstractSQLIndexQueryAssembler.java ---------------------------------------------------------------------- diff --git a/extensions/indexing-sql/src/main/java/org/apache/polygene/index/sql/assembly/AbstractSQLIndexQueryAssembler.java b/extensions/indexing-sql/src/main/java/org/apache/polygene/index/sql/assembly/AbstractSQLIndexQueryAssembler.java index 86790c9..b5e861c 100644 --- a/extensions/indexing-sql/src/main/java/org/apache/polygene/index/sql/assembly/AbstractSQLIndexQueryAssembler.java +++ b/extensions/indexing-sql/src/main/java/org/apache/polygene/index/sql/assembly/AbstractSQLIndexQueryAssembler.java @@ -35,7 +35,7 @@ import org.apache.polygene.library.sql.generator.vendor.SQLVendorProvider; public abstract class AbstractSQLIndexQueryAssembler<AssemblerType> extends Assemblers.VisibilityIdentityConfig<AssemblerType> { - public static final Identity DEFAULT_IDENTITY = StringIdentity.identity( "indexing-sql" ); + public static final Identity DEFAULT_IDENTITY = StringIdentity.identityOf( "indexing-sql" ); private Class<? extends ReindexingStrategy> reindexingStrategy = ReindexingStrategy.NeverNeed.class; http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/libraries/alarm/src/main/java/org/apache/polygene/library/alarm/AlarmSystem.java ---------------------------------------------------------------------- diff --git a/libraries/alarm/src/main/java/org/apache/polygene/library/alarm/AlarmSystem.java b/libraries/alarm/src/main/java/org/apache/polygene/library/alarm/AlarmSystem.java index 1b42452..0b90143 100644 --- a/libraries/alarm/src/main/java/org/apache/polygene/library/alarm/AlarmSystem.java +++ b/libraries/alarm/src/main/java/org/apache/polygene/library/alarm/AlarmSystem.java @@ -214,7 +214,7 @@ public interface AlarmSystem public AlarmPoint createAlarm( String name, AlarmCategory category ) { UnitOfWork uow = uowf.currentUnitOfWork(); - EntityBuilder<AlarmPoint> builder = uow.newEntityBuilder( AlarmPoint.class, StringIdentity.identity( name ) ); + EntityBuilder<AlarmPoint> builder = uow.newEntityBuilder( AlarmPoint.class, StringIdentity.identityOf( name ) ); builder.instance().category().set( category ); AlarmPoint.AlarmState state = builder.instanceFor( AlarmPoint.AlarmState.class ); state.systemName().set( name ); http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/libraries/alarm/src/test/java/org/apache/polygene/library/alarm/AlarmProxyTest.java ---------------------------------------------------------------------- diff --git a/libraries/alarm/src/test/java/org/apache/polygene/library/alarm/AlarmProxyTest.java b/libraries/alarm/src/test/java/org/apache/polygene/library/alarm/AlarmProxyTest.java index 5ec2236..cd6c292 100644 --- a/libraries/alarm/src/test/java/org/apache/polygene/library/alarm/AlarmProxyTest.java +++ b/libraries/alarm/src/test/java/org/apache/polygene/library/alarm/AlarmProxyTest.java @@ -60,7 +60,7 @@ public class AlarmProxyTest extends AbstractPolygeneTest try { // START SNIPPET: documentation - myAlarmPoint = factory.create( StringIdentity.identity( "This Alarm Identity" ), "ProActiveCRM", "Sales", AlarmClass.B ); + myAlarmPoint = factory.create( StringIdentity.identityOf( "This Alarm Identity" ), "ProActiveCRM", "Sales", AlarmClass.B ); myAlarmPoint.history().maxSize().set( 20 ); // END SNIPPET: documentation @@ -71,7 +71,7 @@ public class AlarmProxyTest extends AbstractPolygeneTest assertThat( myAlarmPoint.history().activateCounter(), equalTo( 1 ) ); AlarmEvent event = myAlarmPoint.history().firstEvent(); assertThat( event, notNullValue() ); - assertThat( event.identity().get(), equalTo( StringIdentity.identity( "This Alarm Identity" ) ) ); + assertThat( event.identity().get(), equalTo( StringIdentity.identityOf( "This Alarm Identity" ) ) ); assertThat( event.newStatus().get().name( null ), equalTo( "Activated" ) ); assertThat( event.oldStatus().get().name( null ), equalTo( "Normal" ) ); } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/libraries/jmx/src/main/java/org/apache/polygene/library/jmx/ConfigurationManagerService.java ---------------------------------------------------------------------- diff --git a/libraries/jmx/src/main/java/org/apache/polygene/library/jmx/ConfigurationManagerService.java b/libraries/jmx/src/main/java/org/apache/polygene/library/jmx/ConfigurationManagerService.java index 91025f0..ed5964d 100644 --- a/libraries/jmx/src/main/java/org/apache/polygene/library/jmx/ConfigurationManagerService.java +++ b/libraries/jmx/src/main/java/org/apache/polygene/library/jmx/ConfigurationManagerService.java @@ -243,7 +243,7 @@ public interface ConfigurationManagerService EditableConfiguration( MBeanInfo info, String identity, Map<String, AccessibleObject> propertyNames ) { this.info = info; - this.identity = StringIdentity.identity( identity ); + this.identity = StringIdentity.identityOf( identity ); this.propertyNames = propertyNames; } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/libraries/rdf/src/test/java/org/apache/polygene/library/rdf/entity/EntitySerializerTest.java ---------------------------------------------------------------------- diff --git a/libraries/rdf/src/test/java/org/apache/polygene/library/rdf/entity/EntitySerializerTest.java b/libraries/rdf/src/test/java/org/apache/polygene/library/rdf/entity/EntitySerializerTest.java index a48e272..64512cb 100644 --- a/libraries/rdf/src/test/java/org/apache/polygene/library/rdf/entity/EntitySerializerTest.java +++ b/libraries/rdf/src/test/java/org/apache/polygene/library/rdf/entity/EntitySerializerTest.java @@ -109,14 +109,14 @@ public class EntitySerializerTest valueBuilder.prototype().test3().set( valueBuilder2.newInstance() ); TestValue testValue = valueBuilder.newInstance(); - EntityBuilder<TestEntity> builder = unitOfWork.newEntityBuilder( TestEntity.class, StringIdentity.identity( "test1" ) ); + EntityBuilder<TestEntity> builder = unitOfWork.newEntityBuilder( TestEntity.class, StringIdentity.identityOf( "test1" ) ); TestEntity rickardTemplate = builder.instance(); rickardTemplate.name().set( "Rickard" ); rickardTemplate.title().set( "Mr" ); rickardTemplate.value().set( testValue ); TestEntity testEntity = builder.newInstance(); - EntityBuilder<TestEntity> builder2 = unitOfWork.newEntityBuilder( TestEntity.class, StringIdentity.identity( "test2" ) ); + EntityBuilder<TestEntity> builder2 = unitOfWork.newEntityBuilder( TestEntity.class, StringIdentity.identityOf( "test2" ) ); TestEntity niclasTemplate = builder2.instance(); niclasTemplate.name().set( "Niclas" ); niclasTemplate.title().set( "Mr" ); http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/libraries/rdf/src/test/java/org/apache/polygene/library/rdf/entity/EntityTypeSerializerTest.java ---------------------------------------------------------------------- diff --git a/libraries/rdf/src/test/java/org/apache/polygene/library/rdf/entity/EntityTypeSerializerTest.java b/libraries/rdf/src/test/java/org/apache/polygene/library/rdf/entity/EntityTypeSerializerTest.java index ae4c56e..8e8d8d7 100644 --- a/libraries/rdf/src/test/java/org/apache/polygene/library/rdf/entity/EntityTypeSerializerTest.java +++ b/libraries/rdf/src/test/java/org/apache/polygene/library/rdf/entity/EntityTypeSerializerTest.java @@ -95,14 +95,14 @@ public class EntityTypeSerializerTest valueBuilder.prototype().test3().set( vb2.newInstance() ); TestValue testValue = valueBuilder.newInstance(); - EntityBuilder<TestEntity> builder = unitOfWork.newEntityBuilder(TestEntity.class, StringIdentity.identity( "test1" ) ); + EntityBuilder<TestEntity> builder = unitOfWork.newEntityBuilder(TestEntity.class, StringIdentity.identityOf( "test1" ) ); TestEntity rickardTemplate = builder.instance(); rickardTemplate.name().set( "Rickard" ); rickardTemplate.title().set( "Mr" ); rickardTemplate.value().set( testValue ); TestEntity testEntity = builder.newInstance(); - EntityBuilder<TestEntity> builder2 = unitOfWork.newEntityBuilder(TestEntity.class, StringIdentity.identity( "test2" ) ); + EntityBuilder<TestEntity> builder2 = unitOfWork.newEntityBuilder(TestEntity.class, StringIdentity.identityOf( "test2" ) ); TestEntity niclasTemplate = builder2.instance(); niclasTemplate.name().set( "Niclas" ); niclasTemplate.title().set( "Mr" ); http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/restlet/RequestReaderDelegator.java ---------------------------------------------------------------------- diff --git a/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/restlet/RequestReaderDelegator.java b/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/restlet/RequestReaderDelegator.java index 50db549..33b69b8 100644 --- a/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/restlet/RequestReaderDelegator.java +++ b/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/restlet/RequestReaderDelegator.java @@ -51,7 +51,7 @@ public class RequestReaderDelegator public void init( @Service Iterable<ServiceReference<RequestReader>> requestReaderReferences ) { Logger logger = LoggerFactory.getLogger( getClass() ); - Identity requestreaderdelegator = StringIdentity.identity( "requestreaderdelegator" ); + Identity requestreaderdelegator = StringIdentity.identityOf( "requestreaderdelegator" ); // Add custom readers first for( ServiceReference<RequestReader> requestReader : requestReaderReferences ) http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/restlet/ResponseWriterDelegator.java ---------------------------------------------------------------------- diff --git a/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/restlet/ResponseWriterDelegator.java b/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/restlet/ResponseWriterDelegator.java index 5809f66..29da261 100644 --- a/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/restlet/ResponseWriterDelegator.java +++ b/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/restlet/ResponseWriterDelegator.java @@ -48,7 +48,7 @@ public class ResponseWriterDelegator public void init( @Service Iterable<ServiceReference<ResponseWriter>> resultWriters ) { Logger logger = LoggerFactory.getLogger( getClass() ); - Identity responsewriterdelegator = StringIdentity.identity( "responsewriterdelegator" ); + Identity responsewriterdelegator = StringIdentity.identityOf( "responsewriterdelegator" ); // Add custom writers first for( ServiceReference<ResponseWriter> resultWriter : resultWriters ) http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/restlet/requestreader/DefaultRequestReader.java ---------------------------------------------------------------------- diff --git a/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/restlet/requestreader/DefaultRequestReader.java b/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/restlet/requestreader/DefaultRequestReader.java index 65b31af..60f26c8 100644 --- a/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/restlet/requestreader/DefaultRequestReader.java +++ b/libraries/rest-server/src/main/java/org/apache/polygene/library/rest/server/restlet/requestreader/DefaultRequestReader.java @@ -251,7 +251,7 @@ public class DefaultRequestReader entityAsForm = new Form(); } - Identity entityIdentity = StringIdentity.identity( getValue( "entity", queryAsForm, entityAsForm ) ); + Identity entityIdentity = StringIdentity.identityOf( getValue( "entity", queryAsForm, entityAsForm ) ); args[0] = uowf.currentUnitOfWork().get( method.getParameterTypes()[0], entityIdentity ); return args; @@ -480,7 +480,7 @@ public class DefaultRequestReader } else if( parameterType.isInterface() ) { - arg = uowf.currentUnitOfWork().get( parameterType, StringIdentity.identity( argString ) ); + arg = uowf.currentUnitOfWork().get( parameterType, StringIdentity.identityOf( argString ) ); } else { http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/libraries/rest/src/main/java/org/apache/polygene/library/rest/admin/EntityResource.java ---------------------------------------------------------------------- diff --git a/libraries/rest/src/main/java/org/apache/polygene/library/rest/admin/EntityResource.java b/libraries/rest/src/main/java/org/apache/polygene/library/rest/admin/EntityResource.java index a81e682..17d4ae1 100644 --- a/libraries/rest/src/main/java/org/apache/polygene/library/rest/admin/EntityResource.java +++ b/libraries/rest/src/main/java/org/apache/polygene/library/rest/admin/EntityResource.java @@ -106,7 +106,7 @@ public class EntityResource { // /entity/{reference} Map<String, Object> attributes = getRequest().getAttributes(); - identity = StringIdentity.identity( (String) attributes.get( "reference" ) ); + identity = StringIdentity.identityOf( (String) attributes.get( "reference" ) ); } @Override @@ -474,7 +474,6 @@ public class EntityResource try { unitOfWork.entityStateOf( module, reference ); - namedAssociation.remove( name ); namedAssociation.put( name, reference ); http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/libraries/rest/src/test/java/org/apache/polygene/library/rest/admin/DummyDataService.java ---------------------------------------------------------------------- diff --git a/libraries/rest/src/test/java/org/apache/polygene/library/rest/admin/DummyDataService.java b/libraries/rest/src/test/java/org/apache/polygene/library/rest/admin/DummyDataService.java index 56004c4..1d5a2ad 100644 --- a/libraries/rest/src/test/java/org/apache/polygene/library/rest/admin/DummyDataService.java +++ b/libraries/rest/src/test/java/org/apache/polygene/library/rest/admin/DummyDataService.java @@ -77,13 +77,13 @@ public interface DummyDataService valueBuilder.prototype().string().set( "Foo bar value" ); valueBuilder.prototype().map().set( new HashMap() ); - EntityBuilder<TestEntity> builder = unitOfWork.newEntityBuilder( TestEntity.class, StringIdentity.identity( "test1" ) ); + EntityBuilder<TestEntity> builder = unitOfWork.newEntityBuilder( TestEntity.class, StringIdentity.identityOf( "test1" ) ); builder.instance().name().set( "Foo bar" ); builder.instance().age().set( 42 ); builder.instance().value().set( valueBuilder.newInstance() ); TestEntity testEntity = builder.newInstance(); - EntityBuilder<TestEntity> builder2 = unitOfWork.newEntityBuilder( TestEntity.class, StringIdentity.identity( "test2" ) ); + EntityBuilder<TestEntity> builder2 = unitOfWork.newEntityBuilder( TestEntity.class, StringIdentity.identityOf( "test2" ) ); builder2.instance().name().set( "Xyzzy" ); builder2.instance().age().set( 12 ); builder2.instance().association().set( testEntity ); @@ -98,7 +98,7 @@ public interface DummyDataService } { - EntityBuilder<TestEntity2> builder = unitOfWork.newEntityBuilder( TestEntity2.class, StringIdentity.identity( "test3" ) ); + EntityBuilder<TestEntity2> builder = unitOfWork.newEntityBuilder( TestEntity2.class, StringIdentity.identityOf( "test3" ) ); builder.instance().name().set( "Test3" ); builder.newInstance(); } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/libraries/rest/src/test/java/org/apache/polygene/library/rest/admin/RestTest.java ---------------------------------------------------------------------- diff --git a/libraries/rest/src/test/java/org/apache/polygene/library/rest/admin/RestTest.java b/libraries/rest/src/test/java/org/apache/polygene/library/rest/admin/RestTest.java index 206c0ef..db6db80 100644 --- a/libraries/rest/src/test/java/org/apache/polygene/library/rest/admin/RestTest.java +++ b/libraries/rest/src/test/java/org/apache/polygene/library/rest/admin/RestTest.java @@ -111,13 +111,13 @@ public class RestTest extends AbstractPolygeneTest UnitOfWork uow = unitOfWorkFactory.newUnitOfWork(); try { - EntityBuilder<PersonEntity> builder1 = uow.newEntityBuilder( PersonEntity.class, StringIdentity.identity( "P2" ) ); + EntityBuilder<PersonEntity> builder1 = uow.newEntityBuilder( PersonEntity.class, StringIdentity.identityOf( "P2" ) ); PersonEntity maryDoe = builder1.instance(); maryDoe.firstname().set( "Mary" ); maryDoe.lastname().set( "Doe" ); maryDoe = builder1.newInstance(); - EntityBuilder<PersonEntity> builder2 = uow.newEntityBuilder( PersonEntity.class, StringIdentity.identity( "P1" ) ); + EntityBuilder<PersonEntity> builder2 = uow.newEntityBuilder( PersonEntity.class, StringIdentity.identityOf( "P1" ) ); PersonEntity joeDoe = builder2.instance(); joeDoe.firstname().set( "Joe" ); joeDoe.lastname().set( "Doe" ); @@ -162,7 +162,7 @@ public class RestTest extends AbstractPolygeneTest UnitOfWork work = unitOfWorkFactory.newUnitOfWork(); try { - PersonEntity entity = work.get( PersonEntity.class, StringIdentity.identity( "P1" ) ); + PersonEntity entity = work.get( PersonEntity.class, StringIdentity.identityOf( "P1" ) ); assertEquals( "FirstName not changed.", "Jack", entity.firstname().get() ); assertEquals( "LastName not changed.", "Doe", entity.lastname().get() ); work.complete(); @@ -185,7 +185,7 @@ public class RestTest extends AbstractPolygeneTest PersonEntity entity = null; try { - entity = work.get( PersonEntity.class, StringIdentity.identity( "P1" ) ); + entity = work.get( PersonEntity.class, StringIdentity.identityOf( "P1" ) ); } catch( NoSuchEntityException expected ) { http://git-wip-us.apache.org/repos/asf/polygene-java/blob/0d9e8a1b/libraries/restlet/src/main/java/org/apache/polygene/library/restlet/crud/EntityResource.java ---------------------------------------------------------------------- diff --git a/libraries/restlet/src/main/java/org/apache/polygene/library/restlet/crud/EntityResource.java b/libraries/restlet/src/main/java/org/apache/polygene/library/restlet/crud/EntityResource.java index c822892..965a33a 100644 --- a/libraries/restlet/src/main/java/org/apache/polygene/library/restlet/crud/EntityResource.java +++ b/libraries/restlet/src/main/java/org/apache/polygene/library/restlet/crud/EntityResource.java @@ -97,7 +97,7 @@ public interface EntityResource<T extends HasIdentity> extends ServerResource<T> { Class entityType = parameters.entityType().get(); String idOfEntity = parameters.id().get(); - locator.find( entityType ).delete( StringIdentity.identity( idOfEntity ) ); + locator.find( entityType ).delete( StringIdentity.identityOf( idOfEntity ) ); } @Override @@ -137,7 +137,7 @@ public interface EntityResource<T extends HasIdentity> extends ServerResource<T> throw new RuntimeException( message, e ); } Reference base = parameters.request().get().getResourceRef(); - return resourceBuilder.createRestLink( StringIdentity.identity( "" ), base, org.restlet.data.Method.GET ); + return resourceBuilder.createRestLink( StringIdentity.identityOf( "" ), base, org.restlet.data.Method.GET ); } private Object createParametersComposite( RestForm form, Class argType )
