// Path: components/application-mgt/org.wso2.carbon.application.mgt/src/main/java/org/wso2/carbon/application/mgt/internal/AppManagementServiceComponent.java
// @Component(
//         name = "application.mgt.dscomponent",
//         immediate = true)
// public class AppManagementServiceComponent {
// 
//     private static Log log = LogFactory.getLog(AppManagementServiceComponent.class);
// 
//     private static ApplicationManagerService applicationManager;
// 
//     @Activate
//     protected void activate(ComponentContext ctxt) {
// 
//         if (log.isDebugEnabled()) {
//             log.debug("Activated AppManagementServiceComponent");
//         }
//     }
// 
//     @Deactivate
//     protected void deactivate(ComponentContext ctxt) {
// 
//         if (log.isDebugEnabled()) {
//             log.debug("Deactivated AppManagementServiceComponent");
//         }
//     }
// 
//     @Reference(
//             name = "application.manager",
//             service = org.wso2.carbon.application.deployer.service.ApplicationManagerService.class,
//             cardinality = ReferenceCardinality.MANDATORY,
//             policy = ReferencePolicy.DYNAMIC,
//             unbind = "unsetAppManager")
//     protected void setAppManager(ApplicationManagerService appManager) {
// 
//         applicationManager = appManager;
//     }
// 
//     protected void unsetAppManager(ApplicationManagerService appManager) {
// 
//         applicationManager = null;
//     }
// 
//     public static ApplicationManagerService getAppManager() throws Exception {
// 
//         if (applicationManager == null) {
//             String msg = "Before activating App management service bundle, an instance of " + "ApplicationManager " +
//                     "should be in existance";
//             log.error(msg);
//             throw new Exception(msg);
//         }
//         return applicationManager;
//     }
// }


import org.apache.axis2.description.AxisService;
import org.apache.axis2.description.AxisServiceGroup;
import org.apache.axis2.description.Parameter;
import org.apache.axis2.engine.AxisConfiguration;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.CarbonException;
import org.wso2.carbon.application.deployer.AppDeployerConstants;
import org.wso2.carbon.application.deployer.AppDeployerUtils;
import org.wso2.carbon.application.deployer.CarbonApplication;
import org.wso2.carbon.application.deployer.config.Artifact;
import org.wso2.carbon.application.deployer.config.RegistryConfig;
import org.wso2.carbon.application.deployer.handler.DefaultAppDeployer;
import org.wso2.carbon.application.deployer.handler.RegistryResourceDeployer;
import org.wso2.carbon.application.deployer.persistence.CarbonAppPersistenceManager;
import org.wso2.carbon.application.mgt.internal.AppManagementServiceComponent;
import org.wso2.carbon.core.AbstractAdmin;
import org.wso2.carbon.core.util.SystemFilter;
import org.wso2.carbon.utils.ServerConstants;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import java.io.File;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.*;
/*
 * Copyright 2005-2007 WSO2, Inc. (http://wso2.com)
 *
 * 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.
 */

package org.wso2.carbon.application.mgt;



public class ApplicationAdmin extends AbstractAdmin {

    private static final Log log = LogFactory.getLog(ApplicationAdmin.class);
    private static final String DS_TYPE = "service/dataservice";

    /**
     * Give the names of all applications in the system
     * @return - names array
     * @throws Exception - error on getting carbon app service
     */
    public String[] listAllApplications() throws Exception {
        String tenantId = AppDeployerUtils.getTenantIdString(getAxisConfig());
        ArrayList<CarbonApplication> appList
// Path: components/application-mgt/org.wso2.carbon.application.mgt/src/main/java/org/wso2/carbon/application/mgt/internal/AppManagementServiceComponent.java
// @Component(
//         name = "application.mgt.dscomponent",
//         immediate = true)
// public class AppManagementServiceComponent {
// 
//     private static Log log = LogFactory.getLog(AppManagementServiceComponent.class);
// 
//     private static ApplicationManagerService applicationManager;
// 
//     @Activate
//     protected void activate(ComponentContext ctxt) {
// 
//         if (log.isDebugEnabled()) {
//             log.debug("Activated AppManagementServiceComponent");
//         }
//     }
// 
//     @Deactivate
//     protected void deactivate(ComponentContext ctxt) {
// 
//         if (log.isDebugEnabled()) {
//             log.debug("Deactivated AppManagementServiceComponent");
//         }
//     }
// 
//     @Reference(
//             name = "application.manager",
//             service = org.wso2.carbon.application.deployer.service.ApplicationManagerService.class,
//             cardinality = ReferenceCardinality.MANDATORY,
//             policy = ReferencePolicy.DYNAMIC,
//             unbind = "unsetAppManager")
//     protected void setAppManager(ApplicationManagerService appManager) {
// 
//         applicationManager = appManager;
//     }
// 
//     protected void unsetAppManager(ApplicationManagerService appManager) {
// 
//         applicationManager = null;
//     }
// 
//     public static ApplicationManagerService getAppManager() throws Exception {
// 
//         if (applicationManager == null) {
//             String msg = "Before activating App management service bundle, an instance of " + "ApplicationManager " +
//                     "should be in existance";
//             log.error(msg);
//             throw new Exception(msg);
//         }
//         return applicationManager;
//     }
// }


// Path: components/application-mgt/org.wso2.carbon.application.mgt/src/main/java/org/wso2/carbon/application/mgt/ApplicationAdmin.java
import org.apache.axis2.description.AxisService;
import org.apache.axis2.description.AxisServiceGroup;
import org.apache.axis2.description.Parameter;
import org.apache.axis2.engine.AxisConfiguration;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.wso2.carbon.CarbonException;
import org.wso2.carbon.application.deployer.AppDeployerConstants;
import org.wso2.carbon.application.deployer.AppDeployerUtils;
import org.wso2.carbon.application.deployer.CarbonApplication;
import org.wso2.carbon.application.deployer.config.Artifact;
import org.wso2.carbon.application.deployer.config.RegistryConfig;
import org.wso2.carbon.application.deployer.handler.DefaultAppDeployer;
import org.wso2.carbon.application.deployer.handler.RegistryResourceDeployer;
import org.wso2.carbon.application.deployer.persistence.CarbonAppPersistenceManager;
import org.wso2.carbon.application.mgt.internal.AppManagementServiceComponent;
import org.wso2.carbon.core.AbstractAdmin;
import org.wso2.carbon.core.util.SystemFilter;
import org.wso2.carbon.utils.ServerConstants;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import java.io.File;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.*;

/*
 * Copyright 2005-2007 WSO2, Inc. (http://wso2.com)
 *
 * 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.
 */

package org.wso2.carbon.application.mgt;



public class ApplicationAdmin extends AbstractAdmin {

    private static final Log log = LogFactory.getLog(ApplicationAdmin.class);
    private static final String DS_TYPE = "service/dataservice";

    /**
     * Give the names of all applications in the system
     * @return - names array
     * @throws Exception - error on getting carbon app service
     */
    public String[] listAllApplications() throws Exception {
        String tenantId = AppDeployerUtils.getTenantIdString(getAxisConfig());
        ArrayList<CarbonApplication> appList
                = AppManagementServiceComponent.getAppManager().getCarbonApps(tenantId);