/*
*Copyright (c) 2005-2010, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
*WSO2 Inc. 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 org.wso2.esb.integration.common.utils.servers;
import org.testng.Assert;
import org.wso2.carbon.automation.engine.annotations.ExecutionEnvironment;
import org.wso2.carbon.automation.engine.annotations.SetEnvironment;
import org.wso2.carbon.automation.engine.context.AutomationContext;
import org.wso2.carbon.automation.engine.context.TestUserMode;
import org.wso2.carbon.automation.extensions.servers.jmsserver.controller.JMSBrokerController;
import org.wso2.carbon.automation.extensions.servers.jmsserver.controller.config.JMSBrokerConfiguration;
import org.wso2.carbon.automation.extensions.servers.jmsserver.controller.config.JMSBrokerConfigurationProvider;
import org.wso2.carbon.integration.common.utils.mgt.ServerConfigurationManager;
import org.wso2.esb.integration.common.utils.ESBIntegrationTest;
import org.wso2.esb.integration.common.utils.common.TestConfigurationProvider;
import java.io.File;
import static org.testng.Assert.assertTrue;
public class ActiveMQServer extends ESBIntegrationTest {
private JMSBrokerController activeMqBroker;
private ServerConfigurationManager serverManager = null;
private final String ACTIVEMQ_BROKER = "activemq-broker-5.9.1.jar";
private final String GERONIMO_J2EE_MANAGEMENT = "geronimo-j2ee-management_1.1_spec-1.0.1.jar";
private final String GERONIMO_JMS = "geronimo-jms_1.1_spec-1.1.1.jar";
private final String HAWTBUF = "hawtbuf-1.9.jar";
private final String ACTIVEMQ_CLIENT = "activemq-client-5.9.1.jar";
public void startJMSBrokerAndConfigureESB() throws Exception {
context = new AutomationContext("ESB", TestUserMode.SUPER_TENANT_ADMIN);
serverManager = new ServerConfigurationManager(context);
activeMqBroker = new JMSBrokerController("localhost", getJMSBrokerConfiguration());
if (!JMSBrokerController.isBrokerStarted()) {
Assert.assertTrue(activeMqBroker.start(), "JMS Broker(ActiveMQ) stating failed");
}
//coppingAxisServiceClient dependency jms jar files to component/lib
serverManager.copyToComponentLib(new File(TestConfigurationProvider.getResourceLocation() + File.separator + "artifacts" + File.separator + "ESB" + File.separator + "jar" + File.separator + ACTIVEMQ_BROKER));
serverManager.copyToComponentLib(new File(TestConfigurationProvider.getResourceLocation() + File.separator + "artifacts" + File.separator + "ESB"
+ File.separator + "jar" + File.separator + GERONIMO_J2EE_MANAGEMENT));
serverManager.copyToComponentLib(new File(TestConfigurationProvider.getResourceLocation() + File.separator + "artifacts" + File.separator + "ESB"
+ File.separator + "jar" + File.separator + GERONIMO_JMS));
serverManager.copyToComponentLib(new File(TestConfigurationProvider.getResourceLocation() + File.separator + "artifacts" + File.separator + "ESB"
+ File.separator + "jar" + File.separator + HAWTBUF));
serverManager.copyToComponentLib(new File(TestConfigurationProvider.getResourceLocation() + File.separator + "artifacts" + File.separator + "ESB"
+ File.separator + "jar" + File.separator + ACTIVEMQ_CLIENT));
//enabling jms transport with ActiveMQ
serverManager.applyConfiguration(new File(TestConfigurationProvider.getResourceLocation() + File.separator + "artifacts" + File.separator + "ESB"
+ File.separator + "jms" + File.separator + "transport"
+ File.separator + "axis2config" + File.separator
+ "activemq" + File.separator + "axis2.xml"));
}
public void stopJMSBrokerRevertESBConfiguration() throws Exception {
try {
//reverting the changes done to esb sever
Thread.sleep(10000); //let server to clear the artifact undeployment
if (serverManager != null) {
serverManager.removeFromComponentLib(ACTIVEMQ_BROKER);
serverManager.removeFromComponentLib(GERONIMO_J2EE_MANAGEMENT);
serverManager.removeFromComponentLib(GERONIMO_JMS);
serverManager.removeFromComponentLib(HAWTBUF);
serverManager.removeFromComponentLib(ACTIVEMQ_CLIENT);
serverManager.restoreToLastConfiguration();
}
} finally {
if (activeMqBroker != null) {
assertTrue(activeMqBroker.stop(), "JMS Broker(ActiveMQ) Stopping failed");
}
}
}
private JMSBrokerConfiguration getJMSBrokerConfiguration() {
return JMSBrokerConfigurationProvider.getInstance().getBrokerConfiguration();
}
}