Package org.jolokia.client.request

Source Code of org.jolokia.client.request.AbstractJ4pIntegrationTest

package org.jolokia.client.request;

/*
* Copyright 2009-2013 Roland Huss
*
* Licensed 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.
*/

import org.jolokia.client.J4pClient;
import org.jolokia.client.BasicAuthenticator;
import org.jolokia.http.AgentServlet;
import org.jolokia.it.ItSetup;
import org.jolokia.test.util.EnvTestUtil;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.security.*;
import org.mortbay.jetty.servlet.Context;
import org.mortbay.jetty.servlet.ServletHolder;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;

/**
* @author roland
* @since Apr 26, 2010
*/
abstract public class AbstractJ4pIntegrationTest {

    private Server jettyServer;

    protected ItSetup itSetup;


    private String j4pUrl;

    // Client which can be used by subclasses for testing
    protected J4pClient j4pClient;

    @BeforeClass
    public void start() throws Exception {
        String testUrl = System.getProperty("j4p.url");
        itSetup = new ItSetup();
        if (testUrl == null) {

            int port = EnvTestUtil.getFreePort();
            jettyServer = new Server(port);
            Context jettyContext = new Context(jettyServer, "/");
            ServletHolder holder = new ServletHolder(new AgentServlet());
            holder.setInitParameter("dispatcherClasses", "org.jolokia.jsr160.Jsr160RequestDispatcher");
            jettyContext.addServlet(holder, "/j4p/*");

            SecurityHandler securityHandler = createSecurityHandler();
            jettyContext.addHandler(securityHandler);

            jettyServer.start();
            j4pUrl = "http://localhost:" + port + "/j4p";
            // Start the integration MBeans
            itSetup.start();
        } else {
            j4pUrl = testUrl;
        }
        j4pClient = createJ4pClient(j4pUrl);
  }

    private SecurityHandler createSecurityHandler() {
        Constraint constraint = new Constraint();
        constraint.setName(Constraint.__BASIC_AUTH);
        constraint.setRoles(new String[]{"jolokia"});
        constraint.setAuthenticate(true);

        ConstraintMapping cm = new ConstraintMapping();
        cm.setConstraint(constraint);
        cm.setPathSpec("/*");

        SecurityHandler securityHandler = new SecurityHandler();
        HashUserRealm realm = new HashUserRealm("Jolokia");
        realm.put("jolokia","jolokia");
        realm.addUserToRole("jolokia", "jolokia");
        securityHandler.setUserRealm(realm);
        securityHandler.setConstraintMappings(new ConstraintMapping[]{cm});
        return securityHandler;
    }

    protected J4pClient createJ4pClient(String url) {
        return J4pClient.url(url)
                .user("jolokia")
                .password("jolokia")
                .authenticator(new BasicAuthenticator().preemptive())
                .pooledConnections()
                .build();
    }


    protected void startWithoutAgent() throws Exception {
        String testUrl = System.getProperty("j4p.url");
        itSetup = new ItSetup();
        if (testUrl == null) {
            int port = EnvTestUtil.getFreePort();
            jettyServer = new Server(port);
            jettyServer.start();
            j4pUrl = "http://localhost:" + port + "/j4p";
            // Start the integration MBeans
            itSetup.start();
        } else {
            j4pUrl = testUrl;
        }
        j4pClient = new J4pClient(j4pUrl);
  }

    @AfterClass
  public void stop() throws Exception {
        if (itSetup != null) {
            itSetup.stop();
        }
    if (jettyServer != null) {
      jettyServer.stop();
    }
  }

    public String getJ4pUrl() {
        return j4pUrl;
    }

    public J4pTargetConfig getTargetProxyConfig() {
        return new J4pTargetConfig("service:jmx:rmi:///jndi/rmi://localhost:45888/jmxrmi",null,null);
    }
}
TOP

Related Classes of org.jolokia.client.request.AbstractJ4pIntegrationTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.