Java tutorial
/* *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.jaggeryjs.integration.common.clients; import org.apache.axis2.AxisFault; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.wso2.carbon.service.mgt.stub.ServiceAdminException; import org.wso2.carbon.service.mgt.stub.ServiceAdminStub; import org.wso2.carbon.service.mgt.stub.types.carbon.FaultyService; import org.wso2.carbon.service.mgt.stub.types.carbon.FaultyServicesWrapper; import org.wso2.carbon.service.mgt.stub.types.carbon.ServiceMetaData; import org.wso2.carbon.service.mgt.stub.types.carbon.ServiceMetaDataWrapper; import java.rmi.RemoteException; public class ServiceAdminClient { private static final Log log = LogFactory.getLog(ServiceAdminClient.class); private final String serviceName = "ServiceAdmin"; private ServiceAdminStub serviceAdminStub; public ServiceAdminClient(String backEndUrl, String sessionCookie) throws AxisFault { String endPoint = backEndUrl + serviceName; serviceAdminStub = new ServiceAdminStub(endPoint); AuthenticateStubUtil.authenticateStub(sessionCookie, serviceAdminStub); } public ServiceAdminClient(String backEndUrl, String userName, String password) throws AxisFault { String endPoint = backEndUrl + serviceName; serviceAdminStub = new ServiceAdminStub(endPoint); AuthenticateStubUtil.authenticateStub(userName, password, serviceAdminStub); } public void deleteService(String[] serviceGroup) throws RemoteException { serviceAdminStub.deleteServiceGroups(serviceGroup); } public boolean deleteFaultyService(String archiveName) throws RemoteException { try { return serviceAdminStub.deleteFaultyServiceGroup(archiveName); } catch (RemoteException e) { log.error("Faulty service deletion fails", e); throw new RemoteException("Faulty service deletion fails", e); } } public boolean deleteFaultyServiceByServiceName(String serviceName) throws RemoteException { try { return serviceAdminStub.deleteFaultyServiceGroup(getFaultyData(serviceName).getArtifact()); } catch (RemoteException e) { log.error("Faulty service deletion fails", e); throw new RemoteException("Faulty service deletion fails", e); } } public void deleteAllNonAdminServiceGroups() throws RemoteException { serviceAdminStub.deleteAllNonAdminServiceGroups(); } public ServiceMetaDataWrapper listServices(String serviceName) throws RemoteException { ServiceMetaDataWrapper serviceMetaDataWrapper; serviceMetaDataWrapper = serviceAdminStub.listServices("ALL", serviceName, 0); serviceAdminStub.getFaultyServiceArchives(0); return serviceMetaDataWrapper; } public ServiceMetaDataWrapper listServices(String serviceName, String filerType) throws RemoteException { ServiceMetaDataWrapper serviceMetaDataWrapper; serviceMetaDataWrapper = serviceAdminStub.listServices(filerType, serviceName, 0); serviceAdminStub.getFaultyServiceArchives(0); return serviceMetaDataWrapper; } public FaultyServicesWrapper getFaultyServiceArchives(int pageNumber) throws RemoteException { FaultyServicesWrapper faultyServicesWrapper; try { faultyServicesWrapper = serviceAdminStub.getFaultyServiceArchives(pageNumber); } catch (RemoteException e) { log.error("Unable to get faulty service Archives", e); throw new RemoteException("Unable to get faulty service Archives", e); } return faultyServicesWrapper; } public FaultyServicesWrapper listFaultyServices() throws RemoteException { FaultyServicesWrapper faultyServicesWrapper; faultyServicesWrapper = serviceAdminStub.getFaultyServiceArchives(0); return faultyServicesWrapper; } public boolean isServiceExists(String serviceName) throws RemoteException { boolean serviceState = false; ServiceMetaDataWrapper serviceMetaDataWrapper; ServiceMetaData[] serviceMetaDataList; serviceMetaDataWrapper = listServices(serviceName); serviceMetaDataList = serviceMetaDataWrapper.getServices(); if (serviceMetaDataList == null || serviceMetaDataList.length == 0) { serviceState = false; } else { for (ServiceMetaData serviceData : serviceMetaDataList) { if (serviceData != null && serviceData.getName().equalsIgnoreCase(serviceName)) { return true; } } } return serviceState; } public void deleteMatchingServiceByGroup(String serviceFileName) throws RemoteException { String matchingServiceName = getMatchingServiceName(serviceFileName); if (matchingServiceName != null) { String serviceGroup[] = { getServiceGroup(matchingServiceName) }; log.info("Service group name " + serviceGroup[0]); serviceAdminStub.deleteServiceGroups(serviceGroup); } else { log.error("Service group name cannot be null"); } } public String deleteAllServicesByType(String type) throws RemoteException { ServiceMetaDataWrapper serviceMetaDataWrapper; serviceMetaDataWrapper = serviceAdminStub.listServices("ALL", null, 0); ServiceMetaData[] serviceMetaDataList; if (serviceMetaDataWrapper != null) { serviceMetaDataList = serviceMetaDataWrapper.getServices(); String[] serviceGroup; if (serviceMetaDataList != null && serviceMetaDataList.length > 0) { for (ServiceMetaData serviceData : serviceMetaDataList) { if (serviceData.getServiceType().equalsIgnoreCase(type)) { serviceGroup = new String[] { serviceData.getServiceGroupName() }; deleteService(serviceGroup); } } } } return null; } public String getMatchingServiceName(String serviceFileName) throws RemoteException { ServiceMetaDataWrapper serviceMetaDataWrapper; serviceMetaDataWrapper = serviceAdminStub.listServices("ALL", serviceFileName, 0); ServiceMetaData[] serviceMetaDataList; if (serviceMetaDataWrapper != null) { serviceMetaDataList = serviceMetaDataWrapper.getServices(); if (serviceMetaDataList != null && serviceMetaDataList.length > 0) { for (ServiceMetaData serviceData : serviceMetaDataList) { if (serviceData != null && serviceData.getName().contains(serviceFileName)) { return serviceData.getName(); } } } } return null; } public String getServiceGroup(String serviceName) throws RemoteException { ServiceMetaDataWrapper serviceMetaDataWrapper; ServiceMetaData[] serviceMetaDataList; serviceMetaDataWrapper = listServices(serviceName); serviceMetaDataList = serviceMetaDataWrapper.getServices(); if (serviceMetaDataList != null && serviceMetaDataList.length > 0) { for (ServiceMetaData serviceData : serviceMetaDataList) { if (serviceData != null && serviceData.getName().equalsIgnoreCase(serviceName)) { return serviceData.getServiceGroupName(); } } } return null; } public boolean isServiceFaulty(String serviceName) throws RemoteException { boolean serviceState = false; FaultyServicesWrapper faultyServicesWrapper; FaultyService[] faultyServiceList; faultyServicesWrapper = listFaultyServices(); if (faultyServicesWrapper != null) { faultyServiceList = faultyServicesWrapper.getFaultyServices(); if (faultyServiceList == null || faultyServiceList.length == 0) { serviceState = false; } else { for (FaultyService faultyServiceData : faultyServiceList) { if (faultyServiceData != null && faultyServiceData.getServiceName().equalsIgnoreCase(serviceName)) { return true; } } } } return serviceState; } public FaultyService getFaultyData(String serviceName) throws RemoteException { FaultyService faultyService = null; FaultyServicesWrapper faultyServicesWrapper; FaultyService[] faultyServiceList; faultyServicesWrapper = listFaultyServices(); if (faultyServicesWrapper != null) { faultyServiceList = faultyServicesWrapper.getFaultyServices(); if (faultyServiceList == null || faultyServiceList.length == 0) { throw new RuntimeException("Service not found in faulty service list"); } else { for (FaultyService faultyServiceData : faultyServiceList) { if (faultyServiceData != null && faultyServiceData.getServiceName().equalsIgnoreCase(serviceName)) { faultyService = faultyServiceData; } } } } if (faultyService == null) { throw new RuntimeException("Service not found in faulty service list " + faultyService); } return faultyService; } public ServiceMetaData getServicesData(String serviceName) throws ServiceAdminException, RemoteException { return serviceAdminStub.getServiceData(serviceName); } public void startService(String serviceName) throws ServiceAdminException, RemoteException { serviceAdminStub.startService(serviceName); log.info("Service Started"); } public void stopService(String serviceName) throws ServiceAdminException, RemoteException { serviceAdminStub.stopService(serviceName); log.info("Service Stopped"); } /** * * @param serviceName * @return * @throws ServiceAdminException * @throws RemoteException */ public String[] getExposedTransports(String serviceName) throws ServiceAdminException, RemoteException { return serviceAdminStub.getExposedTransports(serviceName); } }