You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2014/11/13 13:44:15 UTC
[08/10] incubator-brooklyn git commit: fix a few https/tomcat issues
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7ef195f0/software/webapp/src/test/java/brooklyn/entity/webapp/jboss/Jboss7ServerRebindIntegrationTest.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/test/java/brooklyn/entity/webapp/jboss/Jboss7ServerRebindIntegrationTest.java b/software/webapp/src/test/java/brooklyn/entity/webapp/jboss/Jboss7ServerRebindIntegrationTest.java
deleted file mode 100644
index 9a1bd5e..0000000
--- a/software/webapp/src/test/java/brooklyn/entity/webapp/jboss/Jboss7ServerRebindIntegrationTest.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * 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 brooklyn.entity.webapp.jboss;
-
-import static org.testng.Assert.assertEquals;
-
-import java.net.URL;
-import java.util.List;
-import java.util.concurrent.CopyOnWriteArrayList;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import brooklyn.entity.basic.SoftwareProcess;
-import brooklyn.entity.proxying.EntitySpec;
-import brooklyn.entity.rebind.RebindTestFixtureWithApp;
-import brooklyn.entity.rebind.RebindTestUtils;
-import brooklyn.location.basic.LocalhostMachineProvisioningLocation;
-import brooklyn.test.EntityTestUtils;
-import brooklyn.test.HttpTestUtils;
-import brooklyn.test.WebAppMonitor;
-import brooklyn.test.entity.TestApplication;
-
-import com.google.common.base.Predicates;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Iterables;
-
-/**
- * TODO re-write this like WebAppIntegrationTest, rather than being jboss7 specific.
- */
-public class Jboss7ServerRebindIntegrationTest extends RebindTestFixtureWithApp {
- private static final Logger LOG = LoggerFactory.getLogger(Jboss7ServerRebindIntegrationTest.class);
-
- private URL warUrl;
- private LocalhostMachineProvisioningLocation localhostProvisioningLocation;
- private TestApplication newApp;
- private List<WebAppMonitor> webAppMonitors = new CopyOnWriteArrayList<WebAppMonitor>();
- private ExecutorService executor;
-
- @BeforeMethod(groups = "Integration")
- @Override
- public void setUp() throws Exception {
- super.setUp();
- String warPath = "hello-world.war";
- warUrl = getClass().getClassLoader().getResource(warPath);
- executor = Executors.newCachedThreadPool();
- localhostProvisioningLocation = (LocalhostMachineProvisioningLocation) origManagementContext.getLocationRegistry().resolve("localhost");
- }
-
- @Override
- @AfterMethod(alwaysRun=true)
- public void tearDown() throws Exception {
- for (WebAppMonitor monitor : webAppMonitors) {
- monitor.terminate();
- }
- if (executor != null) executor.shutdownNow();
- super.tearDown();
- }
-
- private WebAppMonitor newWebAppMonitor(String url) {
- WebAppMonitor monitor = new WebAppMonitor(url)
-// .delayMillis(0)
- .logFailures(LOG);
- webAppMonitors.add(monitor);
- executor.execute(monitor);
- return monitor;
- }
-
- @Test(groups = "Integration")
- public void testRebindsToRunningServer() throws Exception {
- // Start an app-server, and wait for it to be fully up
- JBoss7Server origServer = origApp.createAndManageChild(EntitySpec.create(JBoss7Server.class)
- .configure("war", warUrl.toString()));
-
- origApp.start(ImmutableList.of(localhostProvisioningLocation));
-
- HttpTestUtils.assertHttpStatusCodeEventuallyEquals(origServer.getAttribute(JBoss7Server.ROOT_URL), 200);
- WebAppMonitor monitor = newWebAppMonitor(origServer.getAttribute(JBoss7Server.ROOT_URL));
-
- // Rebind
- newApp = rebind(false, true);
- JBoss7Server newServer = (JBoss7Server) Iterables.find(newApp.getChildren(), Predicates.instanceOf(JBoss7Server.class));
- String newRootUrl = newServer.getAttribute(JBoss7Server.ROOT_URL);
-
- assertEquals(newRootUrl, origServer.getAttribute(JBoss7Server.ROOT_URL));
- assertEquals(newServer.getAttribute(JBoss7Server.MANAGEMENT_HTTP_PORT), origServer.getAttribute(JBoss7Server.MANAGEMENT_HTTP_PORT));
- assertEquals(newServer.getAttribute(JBoss7Server.DEPLOYED_WARS), origServer.getAttribute(JBoss7Server.DEPLOYED_WARS));
-
- EntityTestUtils.assertAttributeEqualsEventually(newServer, SoftwareProcess.SERVICE_UP, true);
- HttpTestUtils.assertHttpStatusCodeEventuallyEquals(newRootUrl, 200);
-
- // confirm that deploy() effector affects the correct jboss server
- newServer.deploy(warUrl.toString(), "myhello.war");
- HttpTestUtils.assertHttpStatusCodeEventuallyEquals(newRootUrl+"myhello", 200);
-
- // check we see evidence of the enrichers and sensor-feeds having an effect.
- // Relying on WebAppMonitor to cause these to change.
- EntityTestUtils.assertAttributeChangesEventually(newServer, JBoss7Server.REQUEST_COUNT);
- EntityTestUtils.assertAttributeChangesEventually(newServer, JBoss7Server.REQUESTS_PER_SECOND_IN_WINDOW);
- EntityTestUtils.assertAttributeChangesEventually(newServer, JBoss7Server.REQUESTS_PER_SECOND_IN_WINDOW);
- EntityTestUtils.assertAttributeChangesEventually(newServer, JBoss7Server.PROCESSING_TIME_FRACTION_IN_WINDOW);
-
- assertEquals(monitor.getFailures(), 0);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7ef195f0/software/webapp/src/test/java/brooklyn/entity/webapp/jboss/JbossServerWebAppFixtureIntegrationTest.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/test/java/brooklyn/entity/webapp/jboss/JbossServerWebAppFixtureIntegrationTest.java b/software/webapp/src/test/java/brooklyn/entity/webapp/jboss/JbossServerWebAppFixtureIntegrationTest.java
deleted file mode 100644
index 3b0bdf9..0000000
--- a/software/webapp/src/test/java/brooklyn/entity/webapp/jboss/JbossServerWebAppFixtureIntegrationTest.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * 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 brooklyn.entity.webapp.jboss;
-
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import brooklyn.entity.basic.SoftwareProcess;
-import brooklyn.entity.proxying.EntitySpec;
-import brooklyn.entity.webapp.AbstractWebAppFixtureIntegrationTest;
-import brooklyn.entity.webapp.JavaWebAppSoftwareProcess;
-import brooklyn.location.basic.PortRanges;
-import brooklyn.test.entity.TestApplication;
-
-public class JbossServerWebAppFixtureIntegrationTest extends AbstractWebAppFixtureIntegrationTest {
-
- @Test(groups = "Integration", dataProvider = "basicEntities")
- public void testReportsServiceDownWhenKilled(final SoftwareProcess entity) throws Exception {
- super.testReportsServiceDownWhenKilled(entity);
- }
-
- @DataProvider(name = "basicEntities")
- public Object[][] basicEntities() {
- TestApplication jboss6App = newTestApplication();
- JBoss6Server jboss6 = jboss6App.createAndManageChild(EntitySpec.create(JBoss6Server.class)
- .configure(JBoss6Server.PORT_INCREMENT, PORT_INCREMENT));
-
- TestApplication jboss7App = newTestApplication();
- JBoss7Server jboss7 = jboss7App.createAndManageChild(EntitySpec.create(JBoss7Server.class)
- .configure(JBoss7Server.HTTP_PORT, PortRanges.fromString(DEFAULT_HTTP_PORT)));
-
- return new JavaWebAppSoftwareProcess[][] {
- new JavaWebAppSoftwareProcess[] {jboss6},
- new JavaWebAppSoftwareProcess[] {jboss7}
-
- };
- }
-
- // to be able to test on this class in Eclipse IDE
- @Test(groups = "Integration", dataProvider = "basicEntities")
- public void canStartAndStop(final SoftwareProcess entity) {
- super.canStartAndStop(entity);
- }
-
-// @Override
-// // TODO override parent and add seam-booking-as{6,7}
-// @DataProvider(name = "entitiesWithWarAndURL")
-// public Object[][] entitiesWithWar() {
-// List<Object[]> result = Lists.newArrayList();
-//
-// for (Object[] entity : basicEntities()) {
-// result.add(new Object[] {
-// entity[0],
-// "hello-world.war",
-// "hello-world/",
-// "" // no sub-page path
-// });
-// }
-//
-// TestApplication tomcatApp = newTestApplication();
-// TomcatServer tomcat = tomcatApp.createAndManageChild(EntitySpec.create(TomcatServer.class)
-// .configure(TomcatServer.HTTP_PORT, PortRanges.fromString(DEFAULT_HTTP_PORT)));
-// result.add(new Object[] {
-// tomcat,
-// "swf-booking-mvc.war",
-// "swf-booking-mvc/",
-// "spring/intro",
-// });
-// // FIXME seam-booking does not work
-//// [ new JBoss6ServerImpl(parent:application, portIncrement:PORT_INCREMENT),
-//// "seam-booking-as6.war",
-//// "seam-booking-as6/",
-//// ],
-//// [ new JBoss7ServerImpl(parent:application, httpPort:DEFAULT_HTTP_PORT),
-//// "seam-booking-as7.war",
-//// "seam-booking-as7/",
-//// ],
-//
-// return result.toArray(new Object[][] {});
-// }
-
- public static void main(String ...args) throws Exception {
- JbossServerWebAppFixtureIntegrationTest t = new JbossServerWebAppFixtureIntegrationTest();
- t.setUp();
- t.testReportsServiceDownWhenKilled((SoftwareProcess) t.basicEntities()[0][0]);
- t.shutdownApp();
- t.shutdownMgmt();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7ef195f0/software/webapp/src/test/java/brooklyn/entity/webapp/tomcat/TomcatServerWebAppFixtureIntegrationTest.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/test/java/brooklyn/entity/webapp/tomcat/TomcatServerWebAppFixtureIntegrationTest.java b/software/webapp/src/test/java/brooklyn/entity/webapp/tomcat/TomcatServerWebAppFixtureIntegrationTest.java
index ff9ed93..39c775d 100644
--- a/software/webapp/src/test/java/brooklyn/entity/webapp/tomcat/TomcatServerWebAppFixtureIntegrationTest.java
+++ b/software/webapp/src/test/java/brooklyn/entity/webapp/tomcat/TomcatServerWebAppFixtureIntegrationTest.java
@@ -32,21 +32,21 @@ import org.slf4j.LoggerFactory;
import org.testng.Assert;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.DataProvider;
-
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Lists;
+import org.testng.annotations.Test;
import brooklyn.entity.basic.SoftwareProcess;
import brooklyn.entity.proxying.EntitySpec;
import brooklyn.entity.webapp.AbstractWebAppFixtureIntegrationTest;
import brooklyn.entity.webapp.HttpsSslConfig;
import brooklyn.entity.webapp.JavaWebAppSoftwareProcess;
-import brooklyn.entity.webapp.jboss.JBoss7Server;
import brooklyn.location.basic.PortRanges;
import brooklyn.test.entity.TestApplication;
import brooklyn.util.exceptions.Exceptions;
import brooklyn.util.repeat.Repeater;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Lists;
+
public class TomcatServerWebAppFixtureIntegrationTest extends AbstractWebAppFixtureIntegrationTest {
@SuppressWarnings("unused")
@@ -67,22 +67,27 @@ public class TomcatServerWebAppFixtureIntegrationTest extends AbstractWebAppFixt
throw Exceptions.propagate(e);
}
- TomcatServer httpsTomcat = tomcatApp.createAndManageChild(EntitySpec.create(TomcatServer.class)
- .configure(TomcatServer.HTTP_PORT, PortRanges.fromString(DEFAULT_HTTP_PORT))
+ TestApplication tomcatHttpsApp = newTestApplication();
+ TomcatServer httpsTomcat = tomcatHttpsApp.createAndManageChild(EntitySpec.create(TomcatServer.class)
.configure(TomcatServer.ENABLED_PROTOCOLS, ImmutableSet.of("https"))
.configure(TomcatServer.HTTPS_SSL_CONFIG,
new HttpsSslConfig().keyAlias("myname").keystorePassword("mypass").keystoreUrl(keystoreFile.getAbsolutePath())));
return new JavaWebAppSoftwareProcess[][] {
- new JavaWebAppSoftwareProcess[] { tomcat, httpsTomcat }
+ new JavaWebAppSoftwareProcess[] { tomcat },
+ new JavaWebAppSoftwareProcess[] { httpsTomcat }
};
}
-// // uncomment to be able to test on this class from GUI in Eclipse IDE
-// @Test(groups = "Integration", dataProvider = "basicEntities")
-// public void canStartAndStop(final SoftwareProcess entity) {
-// super.canStartAndStop(entity);
-// }
+ // exists to be able to test on this class from GUI in Eclipse IDE
+ @Test(groups = "Integration", dataProvider = "basicEntities")
+ public void canStartAndStop(final SoftwareProcess entity) {
+ super.canStartAndStop(entity);
+ }
+ @Test(groups = "Integration", dataProvider = "basicEntities")
+ public void testReportsServiceDownWhenKilled(final SoftwareProcess entity) throws Exception {
+ super.testReportsServiceDownWhenKilled(entity);
+ }
@Override
// as parent, but with spring travel
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/7ef195f0/usage/camp/src/test/resources/test-tomcat-https.yaml
----------------------------------------------------------------------
diff --git a/usage/camp/src/test/resources/test-tomcat-https.yaml b/usage/camp/src/test/resources/test-tomcat-https.yaml
new file mode 100644
index 0000000..88209a1
--- /dev/null
+++ b/usage/camp/src/test/resources/test-tomcat-https.yaml
@@ -0,0 +1,29 @@
+#
+# 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.
+#
+name: Test Tomcat HTTPS
+location: localhost
+services:
+- type: brooklyn.entity.webapp.tomcat.TomcatServer
+ war: http://search.maven.org/remotecontent?filepath=io/brooklyn/example/brooklyn-example-hello-world-sql-webapp/0.6.0/brooklyn-example-hello-world-sql-webapp-0.6.0.war
+ quorumSize: 2
+ enabledProtocols: [https]
+ httpsSsl:
+ url: classpath://brooklyn/entity/webapp/sample-java-keystore.jks
+ alias: myname
+ password: mypass