JBoss Tools SVN: r30531 - in workspace/adietish: org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/ide/eclipse/as7/deployment/tests and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2011-04-12 15:05:17 -0400 (Tue, 12 Apr 2011)
New Revision: 30531
Modified:
workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/ide/eclipse/as7/deployment/tests/StandaloneDeployerIntegrationTest.java
workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/StandaloneDeployer.java
Log:
Modified: workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/StandaloneDeployer.java
===================================================================
--- workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/StandaloneDeployer.java 2011-04-12 18:38:41 UTC (rev 30530)
+++ workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/StandaloneDeployer.java 2011-04-12 19:05:17 UTC (rev 30531)
@@ -49,12 +49,10 @@
/**
* Used to deploy/undeploy deployments to a running <b>standalone</b> application server
*
- * TODO Use the real deployment API once that is complete
- *
* @author <a href="kabir.khan(a)jboss.com">Kabir Khan</a>
- * @version $Revision: 1.1 $
+ * @author <a href="adietish(a)redhat.com">André Dietisheim</a>
*/
-public class StandaloneDeployer implements Closeable {
+public class StandaloneDeployer {
public static final long DEFAULT_TIMEOUT = 15000;
@@ -68,7 +66,7 @@
manager = ServerDeploymentManager.Factory.create(client);
}
- public synchronized void addWarDeployment(File file) {
+ public synchronized void addWar(File file) {
deployments.add(new WarDeployable(file));
}
@@ -123,8 +121,7 @@
this.timeout = timeout;
}
- @Override
- public void close() throws IOException {
+ public void dispose() {
safeClose(client);
}
Modified: workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/ide/eclipse/as7/deployment/tests/StandaloneDeployerIntegrationTest.java
===================================================================
--- workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/ide/eclipse/as7/deployment/tests/StandaloneDeployerIntegrationTest.java 2011-04-12 18:38:41 UTC (rev 30530)
+++ workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/ide/eclipse/as7/deployment/tests/StandaloneDeployerIntegrationTest.java 2011-04-12 19:05:17 UTC (rev 30531)
@@ -21,7 +21,6 @@
*/
package org.jboss.ide.eclipse.as7.deployment.tests;
-import static org.jboss.as.protocol.StreamUtils.safeClose;
import static org.junit.Assert.assertTrue;
import java.io.BufferedInputStream;
@@ -37,6 +36,7 @@
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Platform;
import org.jboss.ide.eclipse.as7.deployment.StandaloneDeployer;
+import org.junit.Before;
import org.junit.Test;
import org.osgi.framework.Bundle;
@@ -55,14 +55,20 @@
private static final String HOST = "localhost";
private static final int WEB_PORT = 8080;
+ @Before
+ public void setUp() {
+
+ }
+
+
@Test
public void canDeployUsingDeploymentUtils() throws Exception {
- StandaloneDeployer utils = null;
+ StandaloneDeployer deployer = null;
try {
- utils = new StandaloneDeployer();
+ deployer = new StandaloneDeployer();
File warFile = getWarFile("minimalistic.war");
- utils.addWarDeployment(warFile);
- utils.deploy();
+ deployer.addWar(warFile);
+ deployer.deploy();
String response = getServerResponse(new URL(
MessageFormat.format("http://{0}:{1}/{2}",
@@ -70,8 +76,8 @@
assertTrue(response.indexOf("minimalistic") >= 0);
} finally {
- utils.undeploy();
- safeClose(utils);
+ deployer.undeploy();
+ deployer.dispose();
}
}
15 years
JBoss Tools SVN: r30529 - in workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests: wars and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2011-04-12 14:22:12 -0400 (Tue, 12 Apr 2011)
New Revision: 30529
Added:
workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/wars/
workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/wars/gwt-helloworld.war
workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/wars/minimalistic.war
Log:
added again
Added: workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/wars/gwt-helloworld.war
===================================================================
(Binary files differ)
Property changes on: workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/wars/gwt-helloworld.war
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/wars/minimalistic.war
===================================================================
(Binary files differ)
Property changes on: workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/wars/minimalistic.war
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
15 years
JBoss Tools SVN: r30525 - workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2011-04-12 14:02:49 -0400 (Tue, 12 Apr 2011)
New Revision: 30525
Added:
workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/DeployerException.java
Removed:
workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/DeploymentException.java
workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/Session.java
workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/StandaloneDeployment.java
Modified:
workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/Deployable.java
workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/StandaloneDeployer.java
Log:
Modified: workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/Deployable.java
===================================================================
--- workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/Deployable.java 2011-04-12 17:48:37 UTC (rev 30524)
+++ workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/Deployable.java 2011-04-12 18:02:49 UTC (rev 30525)
@@ -41,7 +41,7 @@
return name;
}
- public IStatus getStatus() throws DeploymentException {
+ public IStatus getStatus() throws DeployerException {
if (resultFuture == null
|| action == null) {
return null;
@@ -51,7 +51,7 @@
ServerDeploymentActionResult actionResult = result.getDeploymentActionResult(action.getId());
return createStatus(action, actionResult);
} catch (Exception e) {
- throw new DeploymentException(e);
+ throw new DeployerException(e);
}
}
Copied: workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/DeployerException.java (from rev 30467, workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/DeploymentException.java)
===================================================================
--- workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/DeployerException.java (rev 0)
+++ workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/DeployerException.java 2011-04-12 18:02:49 UTC (rev 30525)
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Red Hat Inc..
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat Incorporated - initial API and implementation
+ *******************************************************************************/
+package org.jboss.ide.eclipse.as7.deployment;
+
+/**
+ * @author André Dietisheim
+ */
+public class DeployerException extends Exception {
+
+ private static final long serialVersionUID = 1L;
+
+ public DeployerException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public DeployerException(Throwable cause) {
+ super(cause);
+ }
+
+ public DeployerException(String message) {
+ super(message);
+ }
+
+}
Property changes on: workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/DeployerException.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Deleted: workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/DeploymentException.java
===================================================================
--- workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/DeploymentException.java 2011-04-12 17:48:37 UTC (rev 30524)
+++ workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/DeploymentException.java 2011-04-12 18:02:49 UTC (rev 30525)
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Red Hat Inc..
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Red Hat Incorporated - initial API and implementation
- *******************************************************************************/
-package org.jboss.ide.eclipse.as7.deployment;
-
-/**
- * @author André Dietisheim
- */
-public class DeploymentException extends Exception {
-
- private static final long serialVersionUID = 1L;
-
- public DeploymentException(String message, Throwable cause) {
- super(message, cause);
- }
-
- public DeploymentException(Throwable cause) {
- super(cause);
- }
-
- public DeploymentException(String message) {
- super(message);
- }
-
-}
Deleted: workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/Session.java
===================================================================
--- workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/Session.java 2011-04-12 17:48:37 UTC (rev 30524)
+++ workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/Session.java 2011-04-12 18:02:49 UTC (rev 30525)
@@ -1,55 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2010, Red Hat, Inc., and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.ide.eclipse.as7.deployment;
-
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-
-import org.jboss.as.controller.client.ModelControllerClient;
-import org.jboss.as.controller.client.helpers.standalone.ServerDeploymentManager;
-import org.jboss.as.protocol.StreamUtils;
-
-/**
- * @author André Dietisheim
- */
-public class Session {
-
- protected ServerDeploymentManager getManager() {
- return manager;
- }
-
- private ModelControllerClient client;
- private ServerDeploymentManager manager;
-
- public Session(String host, int port) throws UnknownHostException {
- this.client = ModelControllerClient.Factory.create(InetAddress.getByName(host), port);
- this.manager = ServerDeploymentManager.Factory.create(client);
- }
-
- public StandaloneDeployment newStandaloneDeployment() {
- return new StandaloneDeployment(this);
- }
-
- public void close() {
- StreamUtils.safeClose(client);
- }
-}
Modified: workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/StandaloneDeployer.java
===================================================================
--- workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/StandaloneDeployer.java 2011-04-12 17:48:37 UTC (rev 30524)
+++ workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/StandaloneDeployer.java 2011-04-12 18:02:49 UTC (rev 30525)
@@ -68,10 +68,14 @@
manager = ServerDeploymentManager.Factory.create(client);
}
- public synchronized void addWarFileDeployment(File file) {
+ public synchronized void addWarDeployment(File file) {
deployments.add(new WarDeployable(file));
}
+ public synchronized void addWarDeployment(String name, File file) {
+ deployments.add(new WarDeployable(name,file));
+ }
+
public synchronized void deploy() throws DuplicateDeploymentNameException, IOException, ExecutionException, InterruptedException, TimeoutException {
DeploymentPlanBuilder builder = manager.newDeploymentPlan();
for (AbstractDeployable deployment : deployments) {
@@ -127,28 +131,36 @@
private abstract class AbstractDeployable{
private boolean deployed;
- private String name;
- public synchronized DeploymentPlanBuilder addDeployment(DeploymentPlanBuilder builder) throws DuplicateDeploymentNameException, IOException, ExecutionException, InterruptedException {
- this.name = getFile().getName();
+ public synchronized DeploymentPlanBuilder addDeployment(DeploymentPlanBuilder builder) throws DuplicateDeploymentNameException, IOException, ExecutionException, InterruptedException {
+ String name = getName();
return builder.add(name, getFile()).deploy(name);
}
public synchronized DeploymentPlanBuilder removeDeployment(DeploymentPlanBuilder builder) {
- if (deployed) {
+ String name = getName();
+ if (deployed) {
return builder.undeploy(name).remove(name);
}
else {
return builder;
}
}
-
+
+ protected abstract String getName();
+
protected abstract File getFile();
}
private class WarDeployable extends AbstractDeployable {
private File file;
+ private String name;
+
+ public WarDeployable(String name, File file) {
+ this(file);
+ this.name = name;
+ }
public WarDeployable(File file) {
this.file = file;
@@ -158,6 +170,15 @@
protected File getFile() {
return file;
}
+
+ @Override
+ protected String getName() {
+ if (name != null) {
+ return name;
+ } else {
+ return file.getName();
+ }
+ }
}
}
Deleted: workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/StandaloneDeployment.java
===================================================================
--- workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/StandaloneDeployment.java 2011-04-12 17:48:37 UTC (rev 30524)
+++ workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/StandaloneDeployment.java 2011-04-12 18:02:49 UTC (rev 30525)
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Red Hat Inc..
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Red Hat Incorporated - initial API and implementation
- *******************************************************************************/
-package org.jboss.ide.eclipse.as7.deployment;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.Future;
-
-import org.jboss.as.controller.client.helpers.standalone.DeploymentPlan;
-import org.jboss.as.controller.client.helpers.standalone.DeploymentPlanBuilder;
-import org.jboss.as.controller.client.helpers.standalone.InitialDeploymentPlanBuilder;
-import org.jboss.as.controller.client.helpers.standalone.ServerDeploymentManager;
-import org.jboss.as.controller.client.helpers.standalone.ServerDeploymentPlanResult;
-
-/**
- * @author André Dietisheim
- */
-public class StandaloneDeployment {
-
- public static final long DEFAULT_TIMEOUT = 30 * 1000;
-
- private final List<Deployable> deployables = new ArrayList<Deployable>();
- private long timeout = DEFAULT_TIMEOUT;
- private Session session;
-
- protected StandaloneDeployment(Session session) {
- this.session = session;
- }
-
- public StandaloneDeployment add(String name, File file) {
- deployables.add(new Deployable(name, file, timeout));
- return this;
- }
-
- public StandaloneDeployment add(File file) {
- return add(file.getName(), file);
- }
-
- public StandaloneDeployment setTimeout(long timeout) {
- this.timeout = timeout;
- return this;
- }
-
- public List<Deployable> deploy() throws DeploymentException {
- if (deployables.isEmpty()) {
- throw new DeploymentException("no files to deploy.");
- }
-
- ServerDeploymentManager manager = session.getManager();
- InitialDeploymentPlanBuilder builder = manager.newDeploymentPlan();
- try {
- addToBuilder(deployables, builder);
- DeploymentPlan plan = builder.build();
- Future<ServerDeploymentPlanResult> planResult = manager.execute(plan);
- setResult(planResult, deployables);
- return deployables;
- } catch (Exception e) {
- throw new DeploymentException(e);
- }
- }
-
- private void setResult(Future<ServerDeploymentPlanResult> planResult, List<Deployable> deployables) {
- for (Deployable deployable : deployables) {
- deployable.setResultFuture(planResult);
- }
- }
-
- private void addToBuilder(List<Deployable> deployables, DeploymentPlanBuilder builder) throws IOException {
- for (int i = 0; i < deployables.size(); i++) {
- Deployable deployable = deployables.get(i);
- builder = builder.add(deployable.getName(), deployable.getFile()).andDeploy();
- deployable.setDeploymentAction(builder.getLastAction());
- }
- }
-}
15 years
JBoss Tools SVN: r30524 - in workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss: ide/eclipse/as7/deployment/tests and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2011-04-12 13:48:37 -0400 (Tue, 12 Apr 2011)
New Revision: 30524
Added:
workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/ide/eclipse/as7/deployment/tests/StandaloneDeployerIntegrationTest.java
Removed:
workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/as/demos/war/runner/StandaloneDeployerIntegrationTest.java
workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/ide/eclipse/as7/deployment/tests/StandaloneDeploymentIntegrationTest.java
Log:
Deleted: workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/as/demos/war/runner/StandaloneDeployerIntegrationTest.java
===================================================================
--- workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/as/demos/war/runner/StandaloneDeployerIntegrationTest.java 2011-04-12 17:31:57 UTC (rev 30523)
+++ workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/as/demos/war/runner/StandaloneDeployerIntegrationTest.java 2011-04-12 17:48:37 UTC (rev 30524)
@@ -1,103 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2010, Red Hat, Inc., and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.as.demos.war.runner;
-
-import static org.jboss.as.protocol.StreamUtils.safeClose;
-import static org.junit.Assert.assertTrue;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.StringWriter;
-import java.net.HttpURLConnection;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.text.MessageFormat;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Platform;
-import org.jboss.ide.eclipse.as7.deployment.StandaloneDeployer;
-import org.junit.Test;
-import org.osgi.framework.Bundle;
-
-/**
- *
- * @author <a href="kabir.khan(a)jboss.com">Kabir Khan</a>
- * @version $Revision: 1.1 $
- */
-public class StandaloneDeployerIntegrationTest {
-
- private static final String WAR_FOLDER = "/wars/";
- private static final String BUNDLE_ID = "org.jboss.ide.eclipse.as7.deployment.tests";
-
- private static final int WEBAPP_RESPONSE_TIMEOUT = 10 * 1024;
-
- private static final String HOST = "localhost";
- private static final int WEB_PORT = 8080;
-
- @Test
- public void canDeployUsingDeploymentUtils() throws Exception {
- StandaloneDeployer utils = null;
- try {
- utils = new StandaloneDeployer();
- File warFile = getWarFile("minimalistic.war");
- utils.addWarFileDeployment(warFile);
- utils.deploy();
-
- String response = getServerResponse(new URL(
- MessageFormat.format("http://{0}:{1}/{2}",
- HOST, String.valueOf(WEB_PORT), "minimalistic")));
- assertTrue(response.indexOf("minimalistic") >= 0);
-
- } finally {
- utils.undeploy();
- safeClose(utils);
- }
- }
-
- private File getWarFile(String name) throws URISyntaxException, IOException {
- Bundle bundle = Platform.getBundle(BUNDLE_ID);
- URL entryUrl = bundle.getEntry(WAR_FOLDER + name);
- return new File(FileLocator.resolve(entryUrl).toURI());
- }
-
- private String getServerResponse(URL url) throws IOException {
- HttpURLConnection connection = (HttpURLConnection) url.openConnection();
- connection.setUseCaches(false);
- connection.setDoInput(true);
- connection.setAllowUserInteraction(false);
- connection.setConnectTimeout(WEBAPP_RESPONSE_TIMEOUT);
- connection.setInstanceFollowRedirects(true);
- connection.setDoOutput(false);
- BufferedInputStream in = new BufferedInputStream(connection.getInputStream());
- return toString(in);
- }
-
- private String toString(InputStream in) throws IOException {
- StringWriter writer = new StringWriter();
- for (int data = -1; ((data = in.read()) != -1);) {
- writer.write(data);
- }
- return writer.toString();
- }
-}
Copied: workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/ide/eclipse/as7/deployment/tests/StandaloneDeployerIntegrationTest.java (from rev 30522, workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/as/demos/war/runner/StandaloneDeployerIntegrationTest.java)
===================================================================
--- workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/ide/eclipse/as7/deployment/tests/StandaloneDeployerIntegrationTest.java (rev 0)
+++ workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/ide/eclipse/as7/deployment/tests/StandaloneDeployerIntegrationTest.java 2011-04-12 17:48:37 UTC (rev 30524)
@@ -0,0 +1,103 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat, Inc., and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ide.eclipse.as7.deployment.tests;
+
+import static org.jboss.as.protocol.StreamUtils.safeClose;
+import static org.junit.Assert.assertTrue;
+
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.StringWriter;
+import java.net.HttpURLConnection;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.text.MessageFormat;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.Platform;
+import org.jboss.ide.eclipse.as7.deployment.StandaloneDeployer;
+import org.junit.Test;
+import org.osgi.framework.Bundle;
+
+/**
+ *
+ * @author <a href="kabir.khan(a)jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class StandaloneDeployerIntegrationTest {
+
+ private static final String WAR_FOLDER = "/wars/";
+ private static final String BUNDLE_ID = "org.jboss.ide.eclipse.as7.deployment.tests";
+
+ private static final int WEBAPP_RESPONSE_TIMEOUT = 10 * 1024;
+
+ private static final String HOST = "localhost";
+ private static final int WEB_PORT = 8080;
+
+ @Test
+ public void canDeployUsingDeploymentUtils() throws Exception {
+ StandaloneDeployer utils = null;
+ try {
+ utils = new StandaloneDeployer();
+ File warFile = getWarFile("minimalistic.war");
+ utils.addWarDeployment(warFile);
+ utils.deploy();
+
+ String response = getServerResponse(new URL(
+ MessageFormat.format("http://{0}:{1}/{2}",
+ HOST, String.valueOf(WEB_PORT), "minimalistic")));
+ assertTrue(response.indexOf("minimalistic") >= 0);
+
+ } finally {
+ utils.undeploy();
+ safeClose(utils);
+ }
+ }
+
+ private File getWarFile(String name) throws URISyntaxException, IOException {
+ Bundle bundle = Platform.getBundle(BUNDLE_ID);
+ URL entryUrl = bundle.getEntry(WAR_FOLDER + name);
+ return new File(FileLocator.resolve(entryUrl).toURI());
+ }
+
+ private String getServerResponse(URL url) throws IOException {
+ HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+ connection.setUseCaches(false);
+ connection.setDoInput(true);
+ connection.setAllowUserInteraction(false);
+ connection.setConnectTimeout(WEBAPP_RESPONSE_TIMEOUT);
+ connection.setInstanceFollowRedirects(true);
+ connection.setDoOutput(false);
+ BufferedInputStream in = new BufferedInputStream(connection.getInputStream());
+ return toString(in);
+ }
+
+ private String toString(InputStream in) throws IOException {
+ StringWriter writer = new StringWriter();
+ for (int data = -1; ((data = in.read()) != -1);) {
+ writer.write(data);
+ }
+ return writer.toString();
+ }
+}
Property changes on: workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/ide/eclipse/as7/deployment/tests/StandaloneDeployerIntegrationTest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Deleted: workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/ide/eclipse/as7/deployment/tests/StandaloneDeploymentIntegrationTest.java
===================================================================
--- workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/ide/eclipse/as7/deployment/tests/StandaloneDeploymentIntegrationTest.java 2011-04-12 17:31:57 UTC (rev 30523)
+++ workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/ide/eclipse/as7/deployment/tests/StandaloneDeploymentIntegrationTest.java 2011-04-12 17:48:37 UTC (rev 30524)
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Red Hat Inc..
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Red Hat Incorporated - initial API and implementation
- *******************************************************************************/
-package org.jboss.ide.eclipse.as7.deployment.tests;
-
-import static junit.framework.Assert.assertEquals;
-import static junit.framework.Assert.fail;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.StringWriter;
-import java.net.ConnectException;
-import java.net.HttpURLConnection;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.net.UnknownHostException;
-import java.text.MessageFormat;
-import java.util.List;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Platform;
-import org.jboss.ide.eclipse.as7.deployment.Deployable;
-import org.jboss.ide.eclipse.as7.deployment.DeploymentException;
-import org.jboss.ide.eclipse.as7.deployment.Session;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.osgi.framework.Bundle;
-
-/**
- * @author André Dietisheim
- */
-public class StandaloneDeploymentIntegrationTest {
-
- private static final String WAR_FOLDER = "/wars/";
- private static final String BUNDLE_ID = "org.jboss.ide.eclipse.as7.deployment.tests";
- private static final int WEBAPP_RESPONSE_TIMEOUT = 10 * 1024;
-
- private static final String HOST = "localhost";
- private static final int MGMT_PORT = 9999;
- private static final int WEB_PORT = 8080;
- private Session session;
-
- @Before
- public void setUp() throws UnknownHostException, IOException {
- assertAs7IsRunning();
- this.session = new Session(HOST, MGMT_PORT);
- }
-
- public void tearDown() {
- session.close();
- }
-
- private void assertAs7IsRunning() throws UnknownHostException, IOException {
- try {
- Socket socket = new Socket();
- socket.connect(new InetSocketAddress(HOST, MGMT_PORT));
- socket.close();
- } catch (ConnectException e) {
- fail("JBoss as7 seems not to run on " + HOST + ", test cannot access it's management API on port "
- + MGMT_PORT);
- }
- }
-
- @Ignore
- @Test
- public void canDeploy() throws DeploymentException, URISyntaxException, IOException {
- File file = getWarFile("minimalistic.war");
- session.newStandaloneDeployment().add(file).deploy();
- }
-
- @Ignore
- @Test
- public void returnsDeployables() throws DeploymentException, URISyntaxException, IOException {
- String warName = "minimalistic.war";
- File file = getWarFile(warName);
- List<Deployable> deployables = session.newStandaloneDeployment().add(file).deploy();
- assertEquals(1, deployables.size());
- assertEquals(warName, deployables.get(0).getName());
- }
-
- @Test
- public void canGetDeploymentStatus() throws DeploymentException, URISyntaxException, IOException {
- File file = getWarFile("minimalistic.war");
- List<Deployable> deployables = session.newStandaloneDeployment().add(file).deploy();
- Deployable deployable = deployables.get(0);
- assertNotNull(deployable.getStatus());
- }
-
- @Test
- public void isDeployed() throws DeploymentException, URISyntaxException, IOException {
- String warName = "minimalistic.war";
- File file = getWarFile(warName);
- Session session = new Session(HOST, MGMT_PORT);
- List<Deployable> deployables = session.newStandaloneDeployment().add(file).deploy();
- Deployable deployable = deployables.get(0);
- deployable.getStatus(); // wait for deployment to have finished
- String response = getServerResponse(new URL(
- MessageFormat.format("http://{0}:{1}/{2}",
- HOST,
- String.valueOf(WEB_PORT),
- getWebappname(deployable.getName()))));
- assertTrue(response.indexOf("minimalistic") >= 0);
- }
-
- /**
- * cuts off the .war suffix
- * @param deployableName
- * @return
- */
- private String getWebappname(String deployableName) {
- int suffixIndex = deployableName.indexOf('.');
- if (suffixIndex < 0) {
- return deployableName;
- }
- return deployableName.substring(0, suffixIndex);
- }
-
- private File getWarFile(String name) throws URISyntaxException, IOException {
- Bundle bundle = Platform.getBundle(BUNDLE_ID);
- URL entryUrl = bundle.getEntry(WAR_FOLDER + name);
- return new File(FileLocator.resolve(entryUrl).toURI());
- }
-
- private String getServerResponse(URL url) throws IOException {
- HttpURLConnection connection = (HttpURLConnection) url.openConnection();
- connection.setUseCaches(false);
- connection.setDoInput(true);
- connection.setAllowUserInteraction(false);
- connection.setConnectTimeout(WEBAPP_RESPONSE_TIMEOUT);
- connection.setInstanceFollowRedirects(true);
- connection.setDoOutput(false);
- BufferedInputStream in = new BufferedInputStream(connection.getInputStream());
- return toString(in);
- }
-
- private String toString(BufferedInputStream in) throws IOException {
- StringWriter writer = new StringWriter();
- for (int data = -1; ((data = in.read()) != -1);) {
- writer.write(data);
- }
- return writer.toString();
- }
-}
15 years
JBoss Tools SVN: r30523 - workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2011-04-12 13:31:57 -0400 (Tue, 12 Apr 2011)
New Revision: 30523
Removed:
workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/jboss-servlet-api_3.0_spec-1.0.0.Final.jar
Log:
removed uneeded jar
Deleted: workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/jboss-servlet-api_3.0_spec-1.0.0.Final.jar
===================================================================
(Binary files differ)
15 years
JBoss Tools SVN: r30522 - in workspace/adietish: org.jboss.ide.eclipse.as7.deployment.tests and 3 other directories.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2011-04-12 13:26:48 -0400 (Tue, 12 Apr 2011)
New Revision: 30522
Added:
workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/as/demos/war/runner/StandaloneDeployerIntegrationTest.java
workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/StandaloneDeployer.java
Removed:
workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/as/demos/war/runner/DeploymentUtilsIntegrationTest.java
workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/ide/eclipse/as7/deployment/tests/DeploymentUtils.java
Modified:
workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/.classpath
workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/META-INF/MANIFEST.MF
workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/build.properties
Log:
Copied: workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/StandaloneDeployer.java (from rev 30521, workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/ide/eclipse/as7/deployment/tests/DeploymentUtils.java)
===================================================================
--- workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/StandaloneDeployer.java (rev 0)
+++ workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/StandaloneDeployer.java 2011-04-12 17:26:48 UTC (rev 30522)
@@ -0,0 +1,163 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat, Inc., and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.ide.eclipse.as7.deployment;
+
+import static org.jboss.as.protocol.StreamUtils.safeClose;
+
+import java.io.Closeable;
+import java.io.File;
+import java.io.IOException;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+
+import javax.management.MBeanServerConnection;
+import javax.management.ObjectName;
+import javax.management.remote.JMXConnectorFactory;
+import javax.management.remote.JMXServiceURL;
+
+import org.jboss.as.controller.client.ModelControllerClient;
+import org.jboss.as.controller.client.helpers.standalone.DeploymentPlan;
+import org.jboss.as.controller.client.helpers.standalone.DeploymentPlanBuilder;
+import org.jboss.as.controller.client.helpers.standalone.DuplicateDeploymentNameException;
+import org.jboss.as.controller.client.helpers.standalone.ServerDeploymentManager;
+
+/**
+ * Used to deploy/undeploy deployments to a running <b>standalone</b> application server
+ *
+ * TODO Use the real deployment API once that is complete
+ *
+ * @author <a href="kabir.khan(a)jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class StandaloneDeployer implements Closeable {
+
+ public static final long DEFAULT_TIMEOUT = 15000;
+
+ private final List<AbstractDeployable> deployments = new ArrayList<AbstractDeployable>();
+ private final ModelControllerClient client;
+ private final ServerDeploymentManager manager;
+ private long timeout = DEFAULT_TIMEOUT;
+
+ public StandaloneDeployer() throws UnknownHostException {
+ client = ModelControllerClient.Factory.create(InetAddress.getByName("localhost"), 9999);
+ manager = ServerDeploymentManager.Factory.create(client);
+ }
+
+ public synchronized void addWarFileDeployment(File file) {
+ deployments.add(new WarDeployable(file));
+ }
+
+ public synchronized void deploy() throws DuplicateDeploymentNameException, IOException, ExecutionException, InterruptedException, TimeoutException {
+ DeploymentPlanBuilder builder = manager.newDeploymentPlan();
+ for (AbstractDeployable deployment : deployments) {
+ builder = deployment.addDeployment(builder);
+ }
+
+ try {
+ manager.execute(builder.build()).get(timeout, TimeUnit.MILLISECONDS);
+ } finally {
+ markDeploymentsDeployed();
+ }
+ }
+
+ private void markDeploymentsDeployed() {
+ for (AbstractDeployable deployment : deployments) {
+ deployment.deployed = true;
+ }
+ }
+
+ public synchronized void undeploy() throws ExecutionException, InterruptedException, TimeoutException {
+ DeploymentPlanBuilder builder = manager.newDeploymentPlan();
+ for (AbstractDeployable deployment : deployments) {
+ builder = deployment.removeDeployment(builder);
+ }
+ DeploymentPlan plan = builder.build();
+ if (plan.getDeploymentActions().size() > 0) {
+ manager.execute(builder.build()).get(timeout, TimeUnit.MILLISECONDS);
+ }
+ }
+
+ public MBeanServerConnection getConnection() throws Exception {
+ return JMXConnectorFactory.connect(new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:1090/jmxrmi"),
+ new HashMap<String, Object>()).getMBeanServerConnection();
+ }
+
+ public String showJndi() throws Exception {
+ return (String)getConnection().invoke(new ObjectName("jboss:type=JNDIView"), "list", new Object[] {true}, new String[] {"boolean"});
+ }
+
+ public long getTimeout() {
+ return timeout;
+ }
+
+ public void setTimeout(long timeout) {
+ this.timeout = timeout;
+ }
+
+ @Override
+ public void close() throws IOException {
+ safeClose(client);
+ }
+
+ private abstract class AbstractDeployable{
+
+ private boolean deployed;
+ private String name;
+
+ public synchronized DeploymentPlanBuilder addDeployment(DeploymentPlanBuilder builder) throws DuplicateDeploymentNameException, IOException, ExecutionException, InterruptedException {
+ this.name = getFile().getName();
+ return builder.add(name, getFile()).deploy(name);
+ }
+
+ public synchronized DeploymentPlanBuilder removeDeployment(DeploymentPlanBuilder builder) {
+ if (deployed) {
+ return builder.undeploy(name).remove(name);
+ }
+ else {
+ return builder;
+ }
+ }
+
+ protected abstract File getFile();
+ }
+
+ private class WarDeployable extends AbstractDeployable {
+
+ private File file;
+
+ public WarDeployable(File file) {
+ this.file = file;
+ }
+
+ @Override
+ protected File getFile() {
+ return file;
+ }
+
+ }
+}
Property changes on: workspace/adietish/org.jboss.ide.eclipse.as7.deployment/src/org/jboss/ide/eclipse/as7/deployment/StandaloneDeployer.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/.classpath
===================================================================
--- workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/.classpath 2011-04-12 16:23:19 UTC (rev 30521)
+++ workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/.classpath 2011-04-12 17:26:48 UTC (rev 30522)
@@ -10,6 +10,5 @@
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="wars"/>
- <classpathentry kind="lib" path="jboss-servlet-api_3.0_spec-1.0.0.Final.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
Modified: workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/META-INF/MANIFEST.MF
===================================================================
--- workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/META-INF/MANIFEST.MF 2011-04-12 16:23:19 UTC (rev 30521)
+++ workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/META-INF/MANIFEST.MF 2011-04-12 17:26:48 UTC (rev 30522)
@@ -14,5 +14,4 @@
shrinkwrap-impl-base-1.0.0-alpha-12-sources.jar,
shrinkwrap-impl-base-1.0.0-alpha-12.jar,
shrinkwrap-spi-1.0.0-alpha-12-sources.jar,
- shrinkwrap-spi-1.0.0-alpha-12.jar,
- jboss-servlet-api_3.0_spec-1.0.0.Final.jar
+ shrinkwrap-spi-1.0.0-alpha-12.jar
Modified: workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/build.properties
===================================================================
--- workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/build.properties 2011-04-12 16:23:19 UTC (rev 30521)
+++ workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/build.properties 2011-04-12 17:26:48 UTC (rev 30522)
@@ -8,5 +8,4 @@
shrinkwrap-impl-base-1.0.0-alpha-12-sources.jar,\
shrinkwrap-impl-base-1.0.0-alpha-12.jar,\
shrinkwrap-spi-1.0.0-alpha-12-sources.jar,\
- shrinkwrap-spi-1.0.0-alpha-12.jar,\
- jboss-servlet-api_3.0_spec-1.0.0.Final.jar
+ shrinkwrap-spi-1.0.0-alpha-12.jar
Deleted: workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/as/demos/war/runner/DeploymentUtilsIntegrationTest.java
===================================================================
--- workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/as/demos/war/runner/DeploymentUtilsIntegrationTest.java 2011-04-12 16:23:19 UTC (rev 30521)
+++ workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/as/demos/war/runner/DeploymentUtilsIntegrationTest.java 2011-04-12 17:26:48 UTC (rev 30522)
@@ -1,113 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2010, Red Hat, Inc., and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.as.demos.war.runner;
-
-import static org.jboss.as.protocol.StreamUtils.safeClose;
-import static org.junit.Assert.assertTrue;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.StringWriter;
-import java.net.HttpURLConnection;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.text.MessageFormat;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Platform;
-import org.jboss.ide.eclipse.as7.deployment.tests.DeploymentUtils;
-import org.junit.Test;
-import org.osgi.framework.Bundle;
-
-/**
- *
- * @author <a href="kabir.khan(a)jboss.com">Kabir Khan</a>
- * @version $Revision: 1.1 $
- */
-public class DeploymentUtilsIntegrationTest {
-
- private static final String WAR_FOLDER = "/wars/";
- private static final String BUNDLE_ID = "org.jboss.ide.eclipse.as7.deployment.tests";
-
- private static final int WEBAPP_RESPONSE_TIMEOUT = 10 * 1024;
-
- private static final String HOST = "localhost";
- private static final int WEB_PORT = 8080;
-
- @Test
- public void canDeployUsingDeploymentUtils() throws Exception {
- DeploymentUtils utils = null;
- try {
- utils = new DeploymentUtils();
-// File warFile = nonOsgiGetWarFile("minimalistic.war");
- File warFile = osgiGetWarFile("minimalistic.war");
- utils.addWarFileDeployment(warFile);
- utils.deploy();
-
- String response = getServerResponse(new URL(
- MessageFormat.format("http://{0}:{1}/{2}",
- HOST,
- String.valueOf(WEB_PORT),
- "minimalistic")));
- assertTrue(response.indexOf("minimalistic") >= 0);
-
- } finally {
- utils.undeploy();
- safeClose(utils);
- }
- }
-
- private File osgiGetWarFile(String name) throws URISyntaxException, IOException {
- Bundle bundle = Platform.getBundle(BUNDLE_ID);
- URL entryUrl = bundle.getEntry(WAR_FOLDER + name);
- return new File(FileLocator.resolve(entryUrl).toURI());
- }
-
- private static File nonOsgiGetWarFile(String path) {
- URL url = Thread.currentThread().getContextClassLoader().getResource(path);
- return new File(url.getFile());
- }
-
- private String getServerResponse(URL url) throws IOException {
- HttpURLConnection connection = (HttpURLConnection) url.openConnection();
- connection.setUseCaches(false);
- connection.setDoInput(true);
- connection.setAllowUserInteraction(false);
- connection.setConnectTimeout(WEBAPP_RESPONSE_TIMEOUT);
- connection.setInstanceFollowRedirects(true);
- connection.setDoOutput(false);
- BufferedInputStream in = new BufferedInputStream(connection.getInputStream());
- return toString(in);
- }
-
- private String toString(BufferedInputStream in) throws IOException {
- StringWriter writer = new StringWriter();
- for (int data = -1; ((data = in.read()) != -1);) {
- writer.write(data);
- }
- return writer.toString();
- }
-
-
-}
-
Copied: workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/as/demos/war/runner/StandaloneDeployerIntegrationTest.java (from rev 30521, workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/as/demos/war/runner/DeploymentUtilsIntegrationTest.java)
===================================================================
--- workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/as/demos/war/runner/StandaloneDeployerIntegrationTest.java (rev 0)
+++ workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/as/demos/war/runner/StandaloneDeployerIntegrationTest.java 2011-04-12 17:26:48 UTC (rev 30522)
@@ -0,0 +1,103 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, Red Hat, Inc., and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.as.demos.war.runner;
+
+import static org.jboss.as.protocol.StreamUtils.safeClose;
+import static org.junit.Assert.assertTrue;
+
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.StringWriter;
+import java.net.HttpURLConnection;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.text.MessageFormat;
+
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.Platform;
+import org.jboss.ide.eclipse.as7.deployment.StandaloneDeployer;
+import org.junit.Test;
+import org.osgi.framework.Bundle;
+
+/**
+ *
+ * @author <a href="kabir.khan(a)jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class StandaloneDeployerIntegrationTest {
+
+ private static final String WAR_FOLDER = "/wars/";
+ private static final String BUNDLE_ID = "org.jboss.ide.eclipse.as7.deployment.tests";
+
+ private static final int WEBAPP_RESPONSE_TIMEOUT = 10 * 1024;
+
+ private static final String HOST = "localhost";
+ private static final int WEB_PORT = 8080;
+
+ @Test
+ public void canDeployUsingDeploymentUtils() throws Exception {
+ StandaloneDeployer utils = null;
+ try {
+ utils = new StandaloneDeployer();
+ File warFile = getWarFile("minimalistic.war");
+ utils.addWarFileDeployment(warFile);
+ utils.deploy();
+
+ String response = getServerResponse(new URL(
+ MessageFormat.format("http://{0}:{1}/{2}",
+ HOST, String.valueOf(WEB_PORT), "minimalistic")));
+ assertTrue(response.indexOf("minimalistic") >= 0);
+
+ } finally {
+ utils.undeploy();
+ safeClose(utils);
+ }
+ }
+
+ private File getWarFile(String name) throws URISyntaxException, IOException {
+ Bundle bundle = Platform.getBundle(BUNDLE_ID);
+ URL entryUrl = bundle.getEntry(WAR_FOLDER + name);
+ return new File(FileLocator.resolve(entryUrl).toURI());
+ }
+
+ private String getServerResponse(URL url) throws IOException {
+ HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+ connection.setUseCaches(false);
+ connection.setDoInput(true);
+ connection.setAllowUserInteraction(false);
+ connection.setConnectTimeout(WEBAPP_RESPONSE_TIMEOUT);
+ connection.setInstanceFollowRedirects(true);
+ connection.setDoOutput(false);
+ BufferedInputStream in = new BufferedInputStream(connection.getInputStream());
+ return toString(in);
+ }
+
+ private String toString(InputStream in) throws IOException {
+ StringWriter writer = new StringWriter();
+ for (int data = -1; ((data = in.read()) != -1);) {
+ writer.write(data);
+ }
+ return writer.toString();
+ }
+}
Property changes on: workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/as/demos/war/runner/StandaloneDeployerIntegrationTest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Deleted: workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/ide/eclipse/as7/deployment/tests/DeploymentUtils.java
===================================================================
--- workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/ide/eclipse/as7/deployment/tests/DeploymentUtils.java 2011-04-12 16:23:19 UTC (rev 30521)
+++ workspace/adietish/org.jboss.ide.eclipse.as7.deployment.tests/src/org/jboss/ide/eclipse/as7/deployment/tests/DeploymentUtils.java 2011-04-12 17:26:48 UTC (rev 30522)
@@ -1,345 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2010, Red Hat, Inc., and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.ide.eclipse.as7.deployment.tests;
-
-import static org.jboss.as.protocol.StreamUtils.safeClose;
-
-import java.io.Closeable;
-import java.io.File;
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.net.UnknownHostException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-
-import javax.management.MBeanServerConnection;
-import javax.management.ObjectName;
-import javax.management.remote.JMXConnectorFactory;
-import javax.management.remote.JMXServiceURL;
-
-import org.jboss.as.controller.client.ModelControllerClient;
-import org.jboss.as.controller.client.helpers.standalone.DeploymentPlan;
-import org.jboss.as.controller.client.helpers.standalone.DeploymentPlanBuilder;
-import org.jboss.as.controller.client.helpers.standalone.DuplicateDeploymentNameException;
-import org.jboss.as.controller.client.helpers.standalone.ServerDeploymentManager;
-import org.jboss.shrinkwrap.api.Archive;
-import org.jboss.shrinkwrap.api.ArchivePath;
-import org.jboss.shrinkwrap.api.ArchivePaths;
-import org.jboss.shrinkwrap.api.ShrinkWrap;
-import org.jboss.shrinkwrap.api.container.ResourceContainer;
-import org.jboss.shrinkwrap.api.exporter.ZipExporter;
-import org.jboss.shrinkwrap.api.spec.JavaArchive;
-import org.jboss.shrinkwrap.api.spec.WebArchive;
-
-/**
- * Used to deploy/undeploy deployments to a running <b>standalone</b> application server
- *
- * TODO Use the real deployment API once that is complete
- *
- * @author <a href="kabir.khan(a)jboss.com">Kabir Khan</a>
- * @version $Revision: 1.1 $
- */
-public class DeploymentUtils implements Closeable {
-
- public static final long DEFAULT_TIMEOUT = 15000;
-
- private final List<AbstractDeployment> deployments = new ArrayList<AbstractDeployment>();
- private final ModelControllerClient client;
- private final ServerDeploymentManager manager;
- private long timeout = DEFAULT_TIMEOUT;
-
- public DeploymentUtils() throws UnknownHostException {
- client = ModelControllerClient.Factory.create(InetAddress.getByName("localhost"), 9999);
- manager = ServerDeploymentManager.Factory.create(client);
- }
-
- public DeploymentUtils(String archiveName, Package... pkg) throws UnknownHostException {
- this();
- addDeployment(archiveName, pkg);
- }
-
- public DeploymentUtils(Archive<?> archive) throws UnknownHostException {
- this();
- deployments.add(new ArbitraryDeployment(archive,false));
- }
-
- public DeploymentUtils(String archiveName, boolean show, Package... pkgs) throws UnknownHostException {
- this();
- addDeployment(archiveName, show, pkgs);
- }
-
- public synchronized void addDeployment(String archiveName, Package... pkgs) {
- addDeployment(archiveName, false, pkgs);
- }
-
- public synchronized void addDeployment(String archiveName, boolean show, Package... pkgs) {
- deployments.add(new Deployment(archiveName, pkgs, show));
- }
-
- public synchronized void addWarDeployment(String archiveName, Package... pkgs) {
- addWarDeployment(archiveName, false, pkgs);
- }
-
- public synchronized void addWarDeployment(String archiveName, boolean show, Package... pkgs) {
- deployments.add(new WarDeployment(archiveName, pkgs, show));
- }
-
- public synchronized void addWarFileDeployment(File file) {
- deployments.add(new WarFileDeployment(file));
- }
-
- public synchronized void deploy() throws DuplicateDeploymentNameException, IOException, ExecutionException, InterruptedException, TimeoutException {
- DeploymentPlanBuilder builder = manager.newDeploymentPlan().withRollback();
- for (AbstractDeployment deployment : deployments) {
- builder = deployment.addDeployment(manager, builder);
- }
-
- try {
- manager.execute(builder.build()).get(timeout, TimeUnit.MILLISECONDS);
- } finally {
- markDeploymentsDeployed();
- }
- }
-
- private void markDeploymentsDeployed() {
- for (AbstractDeployment deployment : deployments) {
- deployment.deployed = true;
- }
- }
-
- public synchronized void undeploy() throws ExecutionException, InterruptedException, TimeoutException {
- DeploymentPlanBuilder builder = manager.newDeploymentPlan();
- for (AbstractDeployment deployment : deployments) {
- builder = deployment.removeDeployment(builder);
- }
- DeploymentPlan plan = builder.build();
- if (plan.getDeploymentActions().size() > 0) {
- manager.execute(builder.build()).get(timeout, TimeUnit.MILLISECONDS);
- }
- }
-
- public MBeanServerConnection getConnection() throws Exception {
- return JMXConnectorFactory.connect(new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:1090/jmxrmi"),
- new HashMap<String, Object>()).getMBeanServerConnection();
- }
-
- public String showJndi() throws Exception {
- return (String)getConnection().invoke(new ObjectName("jboss:type=JNDIView"), "list", new Object[] {true}, new String[] {"boolean"});
- }
-
- public long getTimeout() {
- return timeout;
- }
-
- public void setTimeout(long timeout) {
- this.timeout = timeout;
- }
-
- @Override
- public void close() throws IOException {
- safeClose(client);
- }
-
- private abstract class AbstractDeployment{
-
- boolean deployed;
- String deployment;
-
- public synchronized DeploymentPlanBuilder addDeployment(ServerDeploymentManager manager, DeploymentPlanBuilder builder) throws DuplicateDeploymentNameException, IOException, ExecutionException, InterruptedException {
- deployment = getRealArchive().getName();
- System.out.println("Deploying " + deployment);
- return builder.add(deployment, getRealArchive()).deploy(deployment);
- }
-
- public synchronized DeploymentPlanBuilder removeDeployment(DeploymentPlanBuilder builder) {
- if (deployed) {
- System.out.println("Undeploying " + deployment);
- return builder.undeploy(deployment).remove(deployment);
- }
- else {
- return builder;
- }
- }
-
- protected void addFiles(ResourceContainer<?> archive, File dir, ArchivePath dest) {
- for (String name : dir.list()) {
- File file = new File(dir, name);
- if (file.isDirectory()) {
- addFiles(archive, file, ArchivePaths.create(dest, name));
- } else {
- archive.addAsResource(file, ArchivePaths.create(dest, name));
- }
- }
- }
-
- protected File getSourceMetaInfDir(String archiveName) {
- String name = "archives/" + archiveName + "/META-INF/MANIFEST.MF";
-
- URL url = Thread.currentThread().getContextClassLoader().getResource(name);
- if (url == null) {
- throw new IllegalArgumentException("No resource called " + name);
- }
- try {
- File file = new File(url.toURI());
- return file.getParentFile();
- } catch (URISyntaxException e) {
- throw new RuntimeException("Could not get file for " + url);
- }
- }
-
- protected File getSourceWebInfDir(String archiveName) {
- String name = "archives/" + archiveName + "/WEB-INF";
-
- URL url = Thread.currentThread().getContextClassLoader().getResource(name);
- if (url == null) {
- return null;
- }
- try {
- return new File(url.toURI());
- } catch (URISyntaxException e) {
- throw new RuntimeException("Could not get file for " + url);
- }
- }
-
- protected File getOutputDir() {
- File file = new File("target");
- if (!file.exists()) {
- throw new IllegalStateException("target/ does not exist");
- }
- if (!file.isDirectory()) {
- throw new IllegalStateException("target/ is not a directory");
- }
- file = new File(file, "archives");
- if (file.exists()) {
- if (!file.isDirectory()) {
- throw new IllegalStateException("target/archives/ already exists and is not a directory");
- }
- } else {
- file.mkdir();
- }
- return file.getAbsoluteFile();
- }
-
- protected File createArchive(Archive<?> archive) {
- File realArchive = new File(getOutputDir(), archive.getName());
- archive.as(ZipExporter.class).exportZip(realArchive, true);
- return realArchive;
- }
-
- protected abstract File getRealArchive();
- }
-
- private class Deployment extends AbstractDeployment {
- final File realArchive;
-
- public Deployment(String archiveName, Package[] pkgs, boolean show) {
-
- ArchivePath metaInf = ArchivePaths.create("META-INF");
-
- JavaArchive archive = ShrinkWrap.create(JavaArchive.class, archiveName);
- for(Package pkg : pkgs) {
- archive.addPackage(pkg);
- }
-
- File sourceMetaInf = getSourceMetaInfDir(archiveName);
- addFiles(archive, sourceMetaInf, metaInf);
-
- System.out.println(archive.toString(show));
- realArchive = createArchive(archive);
- }
-
- @Override
- protected File getRealArchive() {
- return realArchive;
- }
- }
-
-
- private class WarDeployment extends AbstractDeployment {
- final File realArchive;
-
- public WarDeployment(String archiveName, Package[] pkgs, boolean show) {
-
- ArchivePath metaInf = ArchivePaths.create("META-INF");
-
-
- WebArchive archive = ShrinkWrap.create(WebArchive.class, archiveName);
- for(Package pkg : pkgs) {
- archive.addPackage(pkg);
- }
-
- File sourceMetaInf = getSourceMetaInfDir(archiveName);
- addFiles(archive, sourceMetaInf, metaInf);
-
- File sourceWebInf = getSourceWebInfDir(archiveName);
- if (sourceWebInf != null) {
- addFiles(archive, sourceWebInf, ArchivePaths.create("WEB-INF"));
- }
-
- System.out.println(archive.toString(show));
- realArchive = createArchive(archive);
- }
-
- @Override
- protected File getRealArchive() {
- return realArchive;
- }
- }
-
- private class ArbitraryDeployment extends AbstractDeployment {
- final File realArchive;
-
- public ArbitraryDeployment(Archive archive, boolean show) {
-
- ArchivePath metaInf = ArchivePaths.create("META-INF");
-
- System.out.println(archive.toString(show));
- realArchive = createArchive(archive);
- }
-
- @Override
- protected File getRealArchive() {
- return realArchive;
- }
- }
-
- private class WarFileDeployment extends AbstractDeployment {
-
- private File file;
-
- public WarFileDeployment(File file) {
- this.file = file;
- }
-
- @Override
- protected File getRealArchive() {
- return file;
- }
-
- }
-}
15 years