Search in sources :

Example 46 with CommandRunner

use of org.glassfish.embeddable.CommandRunner in project Payara by payara.

the class BookStoreTest method test.

@Test
public void test() throws Exception {
    // 1. Bootstrap GlassFish DAS in embedded mode.
    GlassFishProperties glassFishProperties = new GlassFishProperties();
    glassFishProperties.setInstanceRoot(System.getenv("S1AS_HOME") + "/domains/domain1");
    glassFishProperties.setConfigFileReadOnly(false);
    GlassFish glassfish = GlassFishRuntime.bootstrap().newGlassFish(glassFishProperties);
    PrintStream sysout = System.out;
    glassfish.start();
    System.setOut(sysout);
    // 2. Deploy the PaaS-bookstore application.
    File archive = new File(System.getProperty("basedir") + // TODO :: use mvn apis to get the
    "/target/bookstore2.war");
    // archive location.
    Assert.assertTrue(archive.exists());
    Deployer deployer = null;
    String appName = null;
    CommandRunner commandRunner = glassfish.getCommandRunner();
    try {
        // Create Java EE shared service.
        CommandResult createSharedServiceResult = commandRunner.run("create-shared-service", "--characteristics", "service-type=JavaEE", "--configuration", "min.clustersize=2:max.clustersize=4", "--servicetype", "JavaEE", "JavaEE_Shared_Service");
        System.out.println("\ncreate-shared-service command output [ " + createSharedServiceResult.getOutput() + "]");
        // List services to check for the shared service
        CommandResult listSharedServicesResult = commandRunner.run("list-services", "--scope", "shared", "--output", "service-name, state");
        System.out.println("\nlist-services command output [ " + listSharedServicesResult.getOutput() + "]");
        deployer = glassfish.getDeployer();
        appName = deployer.deploy(archive);
        System.err.println("Deployed [" + appName + "]");
        Assert.assertNotNull(appName);
        CommandResult result = commandRunner.run("list-services");
        System.out.println("\nlist-services command output [ " + result.getOutput() + "]");
        // 3. Access the app to make sure PaaS-bookstore app is correctly
        // provisioned.
        String HTTP_PORT = (System.getProperty("http.port") != null) ? System.getProperty("http.port") : "28080";
        String instanceIP = getLBIPAddress(glassfish);
        get("http://" + instanceIP + ":" + HTTP_PORT + "/bookstore2/BookStoreServlet", "Please wait while accessing the bookstore database.....");
        get("http://" + instanceIP + ":" + HTTP_PORT + "/bookstore2/BookStoreServlet?title=Advanced+guide+for+developing+PaaS+components&authors=Shalini+M&price=100%24", "Here are the list of books available in our store:");
        get("http://" + instanceIP + ":" + HTTP_PORT + "/bookstore2/BookStoreServlet", "Advanced guide for developing PaaS components");
    // 4. Undeploy the Bookstore application .
    } finally {
        if (appName != null) {
            deployer.undeploy(appName);
            System.err.println("Undeployed [" + appName + "]");
            CommandResult deleteResult = commandRunner.run("delete-shared-service", "JavaEE_Shared_Service");
            System.out.println("\ndelete-shared-service command output [" + deleteResult.getOutput() + "]");
            try {
                boolean undeployClean = false;
                CommandResult commandResult = glassfish.getCommandRunner().run("list-services");
                if (commandResult.getOutput().contains("Nothing to list.")) {
                    undeployClean = true;
                }
                Assert.assertTrue(undeployClean);
            } catch (Exception e) {
                System.err.println("Couldn't varify whether undeploy succeeded");
            }
        }
    }
}
Also used : PrintStream(java.io.PrintStream) GlassFish(org.glassfish.embeddable.GlassFish) File(java.io.File) CommandRunner(org.glassfish.embeddable.CommandRunner) GlassFishProperties(org.glassfish.embeddable.GlassFishProperties) Deployer(org.glassfish.embeddable.Deployer) CommandResult(org.glassfish.embeddable.CommandResult) Test(org.junit.Test)

Example 47 with CommandRunner

use of org.glassfish.embeddable.CommandRunner in project Payara by payara.

the class MQSharedServiceTest method test.

@Test
public void test() throws Exception {
    // 1. Bootstrap GlassFish DAS in embedded mode.
    GlassFishProperties glassFishProperties = new GlassFishProperties();
    glassFishProperties.setInstanceRoot(System.getenv("S1AS_HOME") + "/domains/domain1");
    glassFishProperties.setConfigFileReadOnly(false);
    GlassFish glassfish = GlassFishRuntime.bootstrap().newGlassFish(glassFishProperties);
    PrintStream sysout = System.out;
    glassfish.start();
    System.setOut(sysout);
    // 2. Deploy the PaaS-bookstore application.
    // TODO :: use mvn apis to get the
    File archive = new File("/tmp/ejb30-hello-mdb-ear.ear");
    // archive location.
    org.junit.Assert.assertTrue(archive.exists());
    Deployer deployer = null;
    String appName = null;
    try {
        // Create the shared services first, as these services will be referenced by the application
        createSharedServices();
        deployer = glassfish.getDeployer();
        System.out.println("Deployer: " + deployer);
        System.out.println("archive: " + archive);
        appName = deployer.deploy(archive);
        System.err.println("Deployed [" + appName + "]");
        Assert.assertNotNull(appName);
        CommandRunner commandRunner = glassfish.getCommandRunner();
        CommandResult result = commandRunner.run("list-services");
        System.out.println("\nlist-services command output [ " + result.getOutput() + "]");
        // 3. Access the app to make sure mq-shared-service-test app is correctly
        // provisioned.
        String HTTP_PORT = (System.getProperty("http.port") != null) ? System.getProperty("http.port") : "28080";
        String instanceIP = getLBIPAddress(glassfish);
        System.out.println("HTTP_PORT : " + HTTP_PORT);
        get("http://" + instanceIP + ":" + HTTP_PORT + "/web/mdbtest", "filterMessage=nulltestattribute=null, initParams:");
    // 4. Undeploy the MQ application .
    } finally {
        if (appName != null) {
            deployer.undeploy(appName);
            System.err.println("Undeployed [" + appName + "]");
            deleteSharedService();
            try {
                boolean undeployClean = false;
                CommandResult commandResult = glassfish.getCommandRunner().run("list-services");
                System.out.println(commandResult.getOutput().toString());
                if (commandResult.getOutput().contains("Nothing to list")) {
                    undeployClean = true;
                }
                Assert.assertTrue(undeployClean);
            } catch (Exception e) {
                System.err.println("Couldn't varify whether undeploy succeeded");
            }
        }
    }
}
Also used : PrintStream(java.io.PrintStream) GlassFish(org.glassfish.embeddable.GlassFish) File(java.io.File) CommandRunner(org.glassfish.embeddable.CommandRunner) GlassFishProperties(org.glassfish.embeddable.GlassFishProperties) Deployer(org.glassfish.embeddable.Deployer) CommandResult(org.glassfish.embeddable.CommandResult) Test(org.junit.Test)

Example 48 with CommandRunner

use of org.glassfish.embeddable.CommandRunner in project Payara by payara.

the class MQSharedServiceTest method deleteSharedService.

private void deleteSharedService() {
    ServiceLocator habitat = Globals.getDefaultHabitat();
    org.glassfish.api.admin.CommandRunner commandRunner = habitat.getService(org.glassfish.api.admin.CommandRunner.class);
    ActionReport report = habitat.getService(ActionReport.class);
    org.glassfish.api.admin.CommandRunner.CommandInvocation invocation = commandRunner.getCommandInvocation("delete-shared-service", report);
    ParameterMap parameterMap = new ParameterMap();
    parameterMap.add("DEFAULT", "my-shared-mq-service");
    invocation.parameters(parameterMap).execute();
    parameterMap = new ParameterMap();
    parameterMap.add("DEFAULT", "my-shared-lb-service");
    invocation.parameters(parameterMap).execute();
    Assert.assertFalse(report.hasFailures());
}
Also used : ServiceLocator(org.glassfish.hk2.api.ServiceLocator) ParameterMap(org.glassfish.api.admin.ParameterMap) ActionReport(org.glassfish.api.ActionReport) CommandRunner(org.glassfish.embeddable.CommandRunner)

Example 49 with CommandRunner

use of org.glassfish.embeddable.CommandRunner in project Payara by payara.

the class MQSharedServiceTest method createSharedServices.

private void createSharedServices() {
    System.out.println("################### Trying to Create Shared Services #######################");
    ServiceLocator habitat = Globals.getDefaultHabitat();
    org.glassfish.api.admin.CommandRunner commandRunner = habitat.getService(org.glassfish.api.admin.CommandRunner.class);
    ActionReport report = habitat.getService(ActionReport.class);
    org.glassfish.api.admin.CommandRunner.CommandInvocation invocation = commandRunner.getCommandInvocation("create-shared-service", report);
    ParameterMap parameterMap = new ParameterMap();
    parameterMap.add("servicetype", "MQ");
    parameterMap.add("characteristics", "service-type=MQ");
    parameterMap.add("configuration", "mq.service.name=my-shared-mq-service");
    parameterMap.add("DEFAULT", "my-shared-mq-service");
    invocation.parameters(parameterMap).execute();
    System.out.println("Created shared service 'my-shared-mq-service' :" + !report.hasFailures());
    Assert.assertFalse(report.hasFailures());
    parameterMap = new ParameterMap();
    parameterMap.add("servicetype", "LB");
    parameterMap.add("characteristics", "service-type=LB");
    parameterMap.add("configuration", "http-port=50080:https-port=50081:ssl-enabled=true");
    parameterMap.add("DEFAULT", "my-shared-lb-service");
    invocation.parameters(parameterMap).execute();
    System.out.println("Created shared service 'my-shared-lb-service' :" + !report.hasFailures());
    Assert.assertFalse(report.hasFailures());
    // List the services and check the status of both the services - it should be 'RUNNING'
    invocation = commandRunner.getCommandInvocation("list-services", report);
    parameterMap = new ParameterMap();
    parameterMap.add("scope", "shared");
    parameterMap.add("output", "service-name,state");
    invocation.parameters(parameterMap).execute();
    boolean sharedServiceStarted = false;
    List<Map<String, String>> list = (List<Map<String, String>>) report.getExtraProperties().get("list");
    for (Map<String, String> map : list) {
        sharedServiceStarted = false;
        String state = map.get("STATE");
        if ("RUNNING".equalsIgnoreCase(state)) {
            sharedServiceStarted = true;
        } else {
            break;
        }
    }
    // check if the shared services are started.
    Assert.assertTrue(sharedServiceStarted);
}
Also used : ParameterMap(org.glassfish.api.admin.ParameterMap) ActionReport(org.glassfish.api.ActionReport) ServiceLocator(org.glassfish.hk2.api.ServiceLocator) List(java.util.List) CommandRunner(org.glassfish.embeddable.CommandRunner) ParameterMap(org.glassfish.api.admin.ParameterMap) Map(java.util.Map)

Example 50 with CommandRunner

use of org.glassfish.embeddable.CommandRunner in project Payara by payara.

the class MQSharedServiceTest method getLBIPAddress.

private String getLBIPAddress(GlassFish glassfish) {
    String lbIP = null;
    String IPAddressPattern = "IP-ADDRESS\\s*\n*(.*)\\s*\n(([01]?\\d*|2[0-4]\\d|25[0-5])\\." + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + "([0-9]?\\d\\d?|2[0-4]\\d|25[0-5]))";
    try {
        CommandRunner commandRunner = glassfish.getCommandRunner();
        String result = commandRunner.run("list-services", "--type", "LB", "--output", "IP-ADDRESS").getOutput().toString();
        if (result.contains("Nothing to list.")) {
            result = commandRunner.run("list-services", "--type", "JavaEE", "--output", "IP-ADDRESS").getOutput().toString();
            Pattern p = Pattern.compile(IPAddressPattern);
            Matcher m = p.matcher(result);
            if (m.find()) {
                lbIP = m.group(2);
            } else {
                lbIP = "localhost";
            }
        } else {
            Pattern p = Pattern.compile(IPAddressPattern);
            Matcher m = p.matcher(result);
            if (m.find()) {
                lbIP = m.group(2);
            } else {
                lbIP = "localhost";
            }
        }
    } catch (Exception e) {
        System.out.println("Regex has thrown an exception " + e.getMessage());
        return "localhost";
    }
    return lbIP;
}
Also used : Pattern(java.util.regex.Pattern) Matcher(java.util.regex.Matcher) CommandRunner(org.glassfish.embeddable.CommandRunner)

Aggregations

CommandRunner (org.glassfish.embeddable.CommandRunner)60 CommandResult (org.glassfish.embeddable.CommandResult)26 File (java.io.File)22 Deployer (org.glassfish.embeddable.Deployer)22 GlassFish (org.glassfish.embeddable.GlassFish)18 GlassFishProperties (org.glassfish.embeddable.GlassFishProperties)18 Test (org.junit.Test)18 Matcher (java.util.regex.Matcher)17 Pattern (java.util.regex.Pattern)17 PrintStream (java.io.PrintStream)16 ServiceLocator (org.glassfish.hk2.api.ServiceLocator)16 ActionReport (org.glassfish.api.ActionReport)15 ParameterMap (org.glassfish.api.admin.ParameterMap)15 IOException (java.io.IOException)12 JarFile (java.util.jar.JarFile)9 List (java.util.List)6 Map (java.util.Map)6 ArrayList (java.util.ArrayList)3 ExecException (com.sun.enterprise.util.ExecException)2 Exception (java.lang.Exception)2