You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by pa...@apache.org on 2017/02/26 13:09:47 UTC
[2/3] polygene-java git commit: jclouds-es: integration test with S3
provider
jclouds-es: integration test with S3 provider
Using docker and https://s3.scality.com/
Project: http://git-wip-us.apache.org/repos/asf/polygene-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/polygene-java/commit/f54ad6d8
Tree: http://git-wip-us.apache.org/repos/asf/polygene-java/tree/f54ad6d8
Diff: http://git-wip-us.apache.org/repos/asf/polygene-java/diff/f54ad6d8
Branch: refs/heads/develop
Commit: f54ad6d8e1323f0d148123a1a33309ffc2c8e5d3
Parents: 5a2782c
Author: Paul Merlin <pa...@apache.org>
Authored: Sun Feb 26 12:33:54 2017 +0100
Committer: Paul Merlin <pa...@apache.org>
Committed: Sun Feb 26 13:08:54 2017 +0100
----------------------------------------------------------------------
dependencies.gradle | 19 ++++---
extensions/entitystore-jclouds/build.gradle | 2 +-
.../entitystore/jclouds/JCloudsS3Test.java | 53 ++++++++++++++++++++
.../src/main/docker/s3server/Dockerfile | 20 ++++++++
4 files changed, 86 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/polygene-java/blob/f54ad6d8/dependencies.gradle
----------------------------------------------------------------------
diff --git a/dependencies.gradle b/dependencies.gradle
index 932bf85..adb7bb6 100644
--- a/dependencies.gradle
+++ b/dependencies.gradle
@@ -78,8 +78,7 @@ def velocityVersion = '1.7'
dependencies.libraries << [
bonecp : "com.jolbox:bonecp:$bonecpVersion",
bouncy_castle : "org.bouncycastle:bcprov-jdk15on:$bouncyVersion",
- cassandra_client : [ "com.datastax.cassandra:cassandra-driver-core:$cassandraClientVersion",
- ],
+ cassandra_client : "com.datastax.cassandra:cassandra-driver-core:$cassandraClientVersion",
codahale_metrics : [ "io.dropwizard.metrics:metrics-core:$codahaleMetricsVersion",
"io.dropwizard.metrics:metrics-healthchecks:$codahaleMetricsVersion" ],
commons_dbcp : "org.apache.commons:commons-dbcp2:$commonsDbcpVersion",
@@ -177,6 +176,7 @@ def easyMockVersion = '3.4'
def embedMongoVersion = '1.50.5'
def h2Version = '1.4.193'
def hamcrestVersion = '1.3'
+def jaxRsApiVersion = '2.0.1'
def junitVersion = '4.12'
def logbackVersion = '1.1.7'
def mockitoVersion = '2.2.9'
@@ -229,6 +229,11 @@ dependencies.dependencySubstitutionSpec = { DependencySubstitution substitution,
{
substitution.useTarget group: dep.group, name: dep.module, version: jacksonVersion
}
+ // Always resolve JAX-RS API to the same version
+ else if( [ 'jaxrs-api', 'jsr311-api', 'javax.ws.rs-api' ].contains( dep.module ) )
+ {
+ substitution.useTarget group: 'javax.ws.rs', name: 'javax.ws.rs-api', version: jaxRsApiVersion
+ }
// woodstox:wstx-asl is broken (no pom), use org.codehaus.woodstox:wstx-asl instead
else if( dep.group == 'woodstox' && dep.module == 'wstx-asl' )
{
@@ -255,10 +260,10 @@ dependencies.buildToolsVersions << [
// Docker Images
dependencies.dockerImagesVersions << [
cassandra: 'cassandra:3.10',
- fakeS3: 'lphoward/fake-s3:14.04',
memcached: 'memcached:1.4-alpine',
- mariadb: 'mariadb:10.1',
- postgres: 'postgres:9.6-alpine',
- redis: 'redis:3.2-alpine',
- riak: 'basho/riak-kv:ubuntu-2.2.0'
+ mariadb : 'mariadb:10.1',
+ postgres : 'postgres:9.6-alpine',
+ redis : 'redis:3.2-alpine',
+ riak : 'basho/riak-kv:ubuntu-2.2.0',
+ s3server : 'scality/s3server:mem-e2a2574'
]
http://git-wip-us.apache.org/repos/asf/polygene-java/blob/f54ad6d8/extensions/entitystore-jclouds/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jclouds/build.gradle b/extensions/entitystore-jclouds/build.gradle
index f0ccb8e..01a732e 100644
--- a/extensions/entitystore-jclouds/build.gradle
+++ b/extensions/entitystore-jclouds/build.gradle
@@ -36,7 +36,7 @@ dependencies {
runtimeOnly polygene.core.runtime
runtimeOnly libraries.jaxb_api
- testImplementation polygene.core.testsupport
+ testImplementation polygene.internals.testsupport
testImplementation polygene.extension( 'valueserialization-orgjson' )
testImplementation libraries.jclouds_filesystem
http://git-wip-us.apache.org/repos/asf/polygene-java/blob/f54ad6d8/extensions/entitystore-jclouds/src/test/java/org/apache/polygene/entitystore/jclouds/JCloudsS3Test.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jclouds/src/test/java/org/apache/polygene/entitystore/jclouds/JCloudsS3Test.java b/extensions/entitystore-jclouds/src/test/java/org/apache/polygene/entitystore/jclouds/JCloudsS3Test.java
new file mode 100644
index 0000000..f375b02
--- /dev/null
+++ b/extensions/entitystore-jclouds/src/test/java/org/apache/polygene/entitystore/jclouds/JCloudsS3Test.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.EntityTestAssembler;
+import org.apache.polygene.test.entity.AbstractEntityStoreTest;
+import org.apache.polygene.test.internal.DockerRule;
+import org.apache.polygene.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
+import org.junit.ClassRule;
+
+public class JCloudsS3Test extends AbstractEntityStoreTest
+{
+ @ClassRule
+ public static final DockerRule DOCKER = new DockerRule( "s3server", 8000 );
+
+ @Override
+ public void assemble( ModuleAssembly module )
+ {
+ super.assemble( module );
+ ModuleAssembly config = module.layer().module( "config" );
+ new EntityTestAssembler().assemble( config );
+ new OrgJsonValueSerializationAssembler().assemble( module );
+ new JCloudsEntityStoreAssembler().withConfig( config, Visibility.layer ).assemble( module );
+ JCloudsMapEntityStoreConfiguration defaults = config.forMixin( JCloudsMapEntityStoreConfiguration.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/f54ad6d8/internals/testsupport-internal/src/main/docker/s3server/Dockerfile
----------------------------------------------------------------------
diff --git a/internals/testsupport-internal/src/main/docker/s3server/Dockerfile b/internals/testsupport-internal/src/main/docker/s3server/Dockerfile
new file mode 100644
index 0000000..552569f
--- /dev/null
+++ b/internals/testsupport-internal/src/main/docker/s3server/Dockerfile
@@ -0,0 +1,20 @@
+# 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.
+
+FROM @s3server@
+
+# See https://github.com/scality/S3/blob/master/DOCKER.md
+ENV ACCESS_KEY dummyIdentifier
+ENV SECRET_KEY dummyCredential