You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2019/04/20 17:10:05 UTC
[syncope] branch master updated: [SYNCOPE-1458] Changing
Zookeeper-based Keymaster client to run tests without do DockeDocker,
and moving Docker-based tests to a profile
This is an automated email from the ASF dual-hosted git repository.
ilgrosso pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/syncope.git
The following commit(s) were added to refs/heads/master by this push:
new e526bb1 [SYNCOPE-1458] Changing Zookeeper-based Keymaster client to run tests without do DockeDocker, and moving Docker-based tests to a profile
e526bb1 is described below
commit e526bb1058df45298e3d60681a3132d997003559
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Sat Apr 20 19:09:52 2019 +0200
[SYNCOPE-1458] Changing Zookeeper-based Keymaster client to run tests without do DockeDocker, and moving Docker-based tests to a profile
---
common/keymaster/client-zookeeper/pom.xml | 109 +++++++++++++--------
.../client/zookeper/ZookeeperConfParamOpsTest.java | 80 +++++++++++++++
.../zookeper/ZookeeperTestContentLoader.java | 2 +-
3 files changed, 147 insertions(+), 44 deletions(-)
diff --git a/common/keymaster/client-zookeeper/pom.xml b/common/keymaster/client-zookeeper/pom.xml
index d3883e4..01acda0 100644
--- a/common/keymaster/client-zookeeper/pom.xml
+++ b/common/keymaster/client-zookeeper/pom.xml
@@ -64,6 +64,12 @@ under the License.
</dependency>
<dependency>
+ <groupId>org.apache.curator</groupId>
+ <artifactId>curator-test</artifactId>
+ <version>2.13.0</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<scope>test</scope>
@@ -88,50 +94,8 @@ under the License.
</plugin>
<plugin>
- <groupId>io.fabric8</groupId>
- <artifactId>docker-maven-plugin</artifactId>
- <configuration>
- <images>
- <image>
- <name>zookeeper:${zookeeper.version}</name>
- <run>
- <ports>
- <port>2181:2181</port>
- </ports>
- <volumes>
- <bind>
- <volume>${project.build.outputDirectory}/zoo.cfg:/conf/zoo.cfg</volume>
- <volume>${project.build.outputDirectory}/java.env:/conf/java.env</volume>
- <volume>${project.build.outputDirectory}/server-jaas.conf:/conf/server-jaas.conf</volume>
- <volume>${project.build.outputDirectory}/client-jaas.conf:/conf/client-jaas.conf</volume>
- </bind>
- </volumes>
- </run>
- </image>
- </images>
- </configuration>
- <executions>
- <execution>
- <id>start-zookeeper</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>start</goal>
- </goals>
- </execution>
- <execution>
- <id>stop-zookeeper</id>
- <phase>post-integration-test</phase>
- <goals>
- <goal>stop</goal>
- <goal>remove</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
<groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-failsafe-plugin</artifactId>
+ <artifactId>maven-surefire-plugin</artifactId>
<inherited>true</inherited>
</plugin>
</plugins>
@@ -143,4 +107,63 @@ under the License.
</resource>
</resources>
</build>
+
+ <profiles>
+ <profile>
+ <id>zookeeper-it</id>
+
+ <build>
+ <plugins>
+
+ <plugin>
+ <groupId>io.fabric8</groupId>
+ <artifactId>docker-maven-plugin</artifactId>
+ <configuration>
+ <images>
+ <image>
+ <name>zookeeper:${zookeeper.version}</name>
+ <run>
+ <ports>
+ <port>2181:2181</port>
+ </ports>
+ <volumes>
+ <bind>
+ <volume>${project.build.outputDirectory}/zoo.cfg:/conf/zoo.cfg</volume>
+ <volume>${project.build.outputDirectory}/java.env:/conf/java.env</volume>
+ <volume>${project.build.outputDirectory}/server-jaas.conf:/conf/server-jaas.conf</volume>
+ <volume>${project.build.outputDirectory}/client-jaas.conf:/conf/client-jaas.conf</volume>
+ </bind>
+ </volumes>
+ </run>
+ </image>
+ </images>
+ </configuration>
+ <executions>
+ <execution>
+ <id>start-zookeeper</id>
+ <phase>pre-integration-test</phase>
+ <goals>
+ <goal>start</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>stop-zookeeper</id>
+ <phase>post-integration-test</phase>
+ <goals>
+ <goal>stop</goal>
+ <goal>remove</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-failsafe-plugin</artifactId>
+ <inherited>true</inherited>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
</project>
diff --git a/common/keymaster/client-zookeeper/src/test/java/org/apache/syncope/common/keymaster/client/zookeper/ZookeeperConfParamOpsTest.java b/common/keymaster/client-zookeeper/src/test/java/org/apache/syncope/common/keymaster/client/zookeper/ZookeeperConfParamOpsTest.java
new file mode 100644
index 0000000..19f5ebc
--- /dev/null
+++ b/common/keymaster/client-zookeeper/src/test/java/org/apache/syncope/common/keymaster/client/zookeper/ZookeeperConfParamOpsTest.java
@@ -0,0 +1,80 @@
+/*
+ * 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.syncope.common.keymaster.client.zookeper;
+
+import static org.junit.jupiter.api.Assertions.fail;
+
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+import java.util.concurrent.atomic.AtomicReference;
+import javax.security.auth.login.AppConfigurationEntry;
+import javax.security.auth.login.Configuration;
+import org.apache.curator.test.InstanceSpec;
+import org.apache.curator.test.TestingServer;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+
+public class ZookeeperConfParamOpsTest extends ZookeeperConfParamOpsITCase {
+
+ private static TestingServer ZK_SERVER;
+
+ @BeforeAll
+ public static void setUp() throws Exception {
+ AtomicReference<String> username = new AtomicReference<>();
+ AtomicReference<String> password = new AtomicReference<>();
+ try (InputStream propStream = ZookeeperConfParamOpsTest.class.getResourceAsStream("/keymaster.properties")) {
+ Properties props = new Properties();
+ props.load(propStream);
+
+ username.set(props.getProperty("keymaster.username"));
+ password.set(props.getProperty("keymaster.password"));
+ } catch (Exception e) {
+ fail("Could not load /keymaster.properties", e);
+ }
+
+ Configuration.setConfiguration(new Configuration() {
+
+ private final AppConfigurationEntry[] entries = {
+ new AppConfigurationEntry(
+ "org.apache.zookeeper.server.auth.DigestLoginModule",
+ AppConfigurationEntry.LoginModuleControlFlag.REQUIRED,
+ Map.of(
+ "user_" + username.get(), password.get()
+ ))
+ };
+
+ @Override
+ public AppConfigurationEntry[] getAppConfigurationEntry(final String name) {
+ return entries;
+ }
+ });
+
+ Map<String, Object> customProperties = new HashMap<>();
+ customProperties.put("authProvider.1", "org.apache.zookeeper.server.auth.SASLAuthenticationProvider");
+ InstanceSpec spec = new InstanceSpec(null, 2181, -1, -1, true, 1, -1, -1, customProperties);
+ ZK_SERVER = new TestingServer(spec, true);
+ }
+
+ @AfterAll
+ public static void tearDown() throws Exception {
+ ZK_SERVER.stop();
+ }
+}
diff --git a/common/keymaster/client-zookeeper/src/test/java/org/apache/syncope/common/keymaster/client/zookeper/ZookeeperTestContentLoader.java b/common/keymaster/client-zookeeper/src/test/java/org/apache/syncope/common/keymaster/client/zookeper/ZookeeperTestContentLoader.java
index b54fab7..f3b7169 100644
--- a/common/keymaster/client-zookeeper/src/test/java/org/apache/syncope/common/keymaster/client/zookeper/ZookeeperTestContentLoader.java
+++ b/common/keymaster/client-zookeeper/src/test/java/org/apache/syncope/common/keymaster/client/zookeper/ZookeeperTestContentLoader.java
@@ -40,7 +40,7 @@ public class ZookeeperTestContentLoader implements InitializingBean {
Map.Entry<String, JsonNode> param = itor.next();
Object value = MAPPER.treeToValue(param.getValue(), Object.class);
if (value != null) {
- confParamOps.set(ZookeeperConfParamOpsITCase.DOMAIN, param.getKey(), value);
+ confParamOps.set(ZookeeperConfParamOpsTest.DOMAIN, param.getKey(), value);
}
}
}