SLING-6431 and some cosmetic changes
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/testing/http/clients@1777545 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/pom.xml b/pom.xml
index 1267c96..4a326bd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.sling</groupId>
<artifactId>sling</artifactId>
- <version>26</version>
+ <version>28</version>
<relativePath />
</parent>
@@ -77,7 +77,7 @@
<dependencies>
<dependency>
<groupId>org.osgi</groupId>
- <artifactId>org.osgi.core</artifactId>
+ <artifactId>osgi.core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
@@ -151,7 +151,7 @@
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.hapi.client</artifactId>
- <version>1.0.1-SNAPSHOT</version>
+ <version>1.0.0</version>
</dependency>
</dependencies>
</project>
diff --git a/src/main/java/org/apache/sling/testing/clients/AbstractSlingClient.java b/src/main/java/org/apache/sling/testing/clients/AbstractSlingClient.java
index 24d731f..51c57d8 100644
--- a/src/main/java/org/apache/sling/testing/clients/AbstractSlingClient.java
+++ b/src/main/java/org/apache/sling/testing/clients/AbstractSlingClient.java
@@ -28,6 +28,7 @@
import org.apache.sling.testing.clients.util.HttpUtils;
import org.slf4j.LoggerFactory;
+import java.io.Closeable;
import java.io.IOException;
import java.lang.reflect.Constructor;
import java.net.URI;
@@ -41,7 +42,7 @@
* The abstract base client for all implementing integration test clients.
*/
@Immutable
-public class AbstractSlingClient implements HttpClient {
+public class AbstractSlingClient implements HttpClient, Closeable {
private final org.slf4j.Logger log = LoggerFactory.getLogger(getClass());
@@ -648,6 +649,15 @@
return doRequest(request, headers, expectedStatus);
}
+ @Override
+ /**
+ * <p>Closes the http client and makes sure all the underlying resources, like the connection manager, shut down </p>
+ *
+ */
+ public void close() throws IOException {
+ this.http.close();
+ }
+
//
// HttpClient base methods
diff --git a/src/main/java/org/apache/sling/testing/clients/SlingClient.java b/src/main/java/org/apache/sling/testing/clients/SlingClient.java
index 7d9bbe3..ede00b5 100644
--- a/src/main/java/org/apache/sling/testing/clients/SlingClient.java
+++ b/src/main/java/org/apache/sling/testing/clients/SlingClient.java
@@ -21,6 +21,7 @@
import org.apache.http.HttpRequestInterceptor;
import org.apache.http.HttpResponseInterceptor;
import org.apache.http.NameValuePair;
+import org.apache.http.annotation.Immutable;
import org.apache.http.client.CookieStore;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.RedirectStrategy;
@@ -31,6 +32,7 @@
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.sling.testing.clients.interceptors.DelayRequestInterceptor;
+import org.apache.sling.testing.clients.interceptors.TestDescriptionInterceptor;
import org.apache.sling.testing.clients.util.FormEntityBuilder;
import org.apache.sling.testing.clients.util.HttpUtils;
import org.apache.sling.testing.clients.util.JsonUtils;
@@ -51,6 +53,7 @@
* <p>It has methods to perform simple node operations on the server like creating and deleting nodes, etc.
* on the server using requests. </p>
*/
+@Immutable
public class SlingClient extends AbstractSlingClient {
public static final String DEFAULT_NODE_TYPE = "sling:OrderedFolder";
@@ -557,6 +560,7 @@
httpClientBuilder.setMaxConnPerRoute(10);
httpClientBuilder.setMaxConnTotal(100);
// Interceptors
+ httpClientBuilder.addInterceptorLast(new TestDescriptionInterceptor());
httpClientBuilder.addInterceptorLast(new DelayRequestInterceptor(Constants.HTTP_DELAY));
return this;
diff --git a/src/main/java/org/apache/sling/testing/clients/html/package-info.java b/src/main/java/org/apache/sling/testing/clients/html/package-info.java
index 764e51d..97b22cb 100644
--- a/src/main/java/org/apache/sling/testing/clients/html/package-info.java
+++ b/src/main/java/org/apache/sling/testing/clients/html/package-info.java
@@ -17,7 +17,7 @@
* under the License.
*/
-@Version("2.0.0")
+@Version("2.1.0")
package org.apache.sling.testing.clients.html;
import aQute.bnd.annotation.Version;
diff --git a/src/main/java/org/apache/sling/testing/clients/instance/InstanceConfiguration.java b/src/main/java/org/apache/sling/testing/clients/instance/InstanceConfiguration.java
index 168e6ab..4081bd5 100644
--- a/src/main/java/org/apache/sling/testing/clients/instance/InstanceConfiguration.java
+++ b/src/main/java/org/apache/sling/testing/clients/instance/InstanceConfiguration.java
@@ -23,12 +23,23 @@
*/
public class InstanceConfiguration {
+ public static final String DEFAULT_ADMIN_USER = "admin";
+ public static final String DEFAULT_ADMIN_PASSWORD = "admin";
+
private URI url;
private final String runmode;
+ private String adminUser;
+ private String adminPassword;
- public InstanceConfiguration(final URI url, final String runmode) {
+ public InstanceConfiguration(final URI url, final String runmode, String adminUser, String adminPassword) {
this.url = url;
this.runmode = runmode;
+ this.adminUser = adminUser;
+ this.adminPassword = adminPassword;
+ }
+
+ public InstanceConfiguration(URI url, String runmode) {
+ this(url, runmode, DEFAULT_ADMIN_USER, DEFAULT_ADMIN_PASSWORD);
}
public URI getUrl() {
@@ -38,4 +49,12 @@
public String getRunmode() {
return runmode;
}
+
+ public String getAdminUser() {
+ return adminUser;
+ }
+
+ public String getAdminPassword() {
+ return adminPassword;
+ }
}
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/testing/clients/instance/InstanceSetup.java b/src/main/java/org/apache/sling/testing/clients/instance/InstanceSetup.java
index de4e5a3..051b4c9 100644
--- a/src/main/java/org/apache/sling/testing/clients/instance/InstanceSetup.java
+++ b/src/main/java/org/apache/sling/testing/clients/instance/InstanceSetup.java
@@ -29,10 +29,16 @@
* Utility class for getting the current instance setup
*/
public final class InstanceSetup {
-
private static final Logger LOG = LoggerFactory.getLogger(InstanceSetup.class);
private static InstanceSetup SINGLETON;
+ // TODO: JAVADOC
+ public static final String INSTANCE_CONFIG_INSTANCES = Constants.CONFIG_PROP_PREFIX + "instances";
+ public static final String INSTANCE_CONFIG_URL = Constants.CONFIG_PROP_PREFIX + "instance.url.";
+ public static final String INSTANCE_CONFIG_RUNMODE = Constants.CONFIG_PROP_PREFIX + "instance.runmode.";
+ public static final String INSTANCE_CONFIG_ADMINUSER = Constants.CONFIG_PROP_PREFIX + "instance.adminUser.";
+ public static final String INSTANCE_CONFIG_ADMINPASSWORD = Constants.CONFIG_PROP_PREFIX + "instance.adminPassword.";
+
/**
* @return the current setup object.
*/
@@ -46,18 +52,26 @@
private final List<InstanceConfiguration> configs = new ArrayList<InstanceConfiguration>();
private InstanceSetup() {
- final int number = Integer.valueOf(System.getProperty(Constants.CONFIG_PROP_PREFIX + "instances", "0"));
+ final int number = Integer.valueOf(System.getProperty(INSTANCE_CONFIG_INSTANCES, "0"));
for (int i=1; i<=number; i++ ) {
URI url;
try {
- url = new URI(System.getProperty(Constants.CONFIG_PROP_PREFIX + "instance.url." + String.valueOf(i)));
+ url = new URI(System.getProperty(INSTANCE_CONFIG_URL + String.valueOf(i)));
} catch (URISyntaxException e) {
LOG.error("Could not read URL for instance");
continue;
}
- final String runmode = System.getProperty(Constants.CONFIG_PROP_PREFIX + "instance.runmode." + String.valueOf(i));
+ final String runmode = System.getProperty(INSTANCE_CONFIG_RUNMODE + String.valueOf(i));
+ final String adminUser = System.getProperty(INSTANCE_CONFIG_ADMINUSER + String.valueOf(i));
+ final String adminPassword = System.getProperty(INSTANCE_CONFIG_ADMINPASSWORD + String.valueOf(i));
- final InstanceConfiguration qc = new InstanceConfiguration(url, runmode);
+ final InstanceConfiguration qc;
+ // Only pass in the admin user name and password if they're both set
+ if ((null == adminUser) || (null == adminPassword)) {
+ qc = new InstanceConfiguration(url, runmode);
+ } else {
+ qc = new InstanceConfiguration(url, runmode, adminUser, adminPassword);
+ }
this.configs.add(qc);
}
diff --git a/src/main/java/org/apache/sling/testing/clients/instance/package-info.java b/src/main/java/org/apache/sling/testing/clients/instance/package-info.java
new file mode 100644
index 0000000..43010e9
--- /dev/null
+++ b/src/main/java/org/apache/sling/testing/clients/instance/package-info.java
@@ -0,0 +1,24 @@
+/*
+ * 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.
+ */
+
+@Version("1.1.0")
+package org.apache.sling.testing.clients.instance;
+
+import aQute.bnd.annotation.Version;
+
diff --git a/src/main/java/org/apache/sling/testing/clients/interceptors/TestDescriptionInterceptor.java b/src/main/java/org/apache/sling/testing/clients/interceptors/TestDescriptionInterceptor.java
index ad91912..baad350 100644
--- a/src/main/java/org/apache/sling/testing/clients/interceptors/TestDescriptionInterceptor.java
+++ b/src/main/java/org/apache/sling/testing/clients/interceptors/TestDescriptionInterceptor.java
@@ -42,7 +42,7 @@
}
private static void addHeader(HttpRequest httpRequest, String name, String value){
- if (value != null){
+ if (value != null) {
httpRequest.addHeader(name, value);
}
}
diff --git a/src/main/java/org/apache/sling/testing/clients/osgi/package-info.java b/src/main/java/org/apache/sling/testing/clients/osgi/package-info.java
index 3deee0a..3a2f85e 100644
--- a/src/main/java/org/apache/sling/testing/clients/osgi/package-info.java
+++ b/src/main/java/org/apache/sling/testing/clients/osgi/package-info.java
@@ -19,5 +19,5 @@
/**
* OSGI testing tools.
*/
-@aQute.bnd.annotation.Version("1.0.0")
+@aQute.bnd.annotation.Version("1.1.0")
package org.apache.sling.testing.clients.osgi;
diff --git a/src/main/java/org/apache/sling/testing/clients/package-info.java b/src/main/java/org/apache/sling/testing/clients/package-info.java
index 406e979..d9cf961 100644
--- a/src/main/java/org/apache/sling/testing/clients/package-info.java
+++ b/src/main/java/org/apache/sling/testing/clients/package-info.java
@@ -17,7 +17,7 @@
* under the License.
*/
-@Version("1.1.0")
+@Version("1.2.0")
package org.apache.sling.testing.clients;
import aQute.bnd.annotation.Version;
diff --git a/src/main/java/org/apache/sling/testing/clients/util/config/impl/package-info.java b/src/main/java/org/apache/sling/testing/clients/util/config/impl/package-info.java
new file mode 100644
index 0000000..d6bfe66
--- /dev/null
+++ b/src/main/java/org/apache/sling/testing/clients/util/config/impl/package-info.java
@@ -0,0 +1,24 @@
+/*
+ * 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.
+ */
+
+@Version("1.0.0")
+package org.apache.sling.testing.clients.util.config.impl;
+
+import aQute.bnd.annotation.Version;
+
diff --git a/src/main/java/org/apache/sling/testing/clients/util/poller/package-info.java b/src/main/java/org/apache/sling/testing/clients/util/poller/package-info.java
new file mode 100644
index 0000000..6367401
--- /dev/null
+++ b/src/main/java/org/apache/sling/testing/clients/util/poller/package-info.java
@@ -0,0 +1,24 @@
+/*
+ * 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.
+ */
+
+@Version("1.0.0")
+package org.apache.sling.testing.clients.util.poller;
+
+import aQute.bnd.annotation.Version;
+