forked from community/device-mgt-core
Merge branch 'master' of https://github.com/wso2/carbon-device-mgt
commit
7c39871feb
@ -0,0 +1,60 @@
|
||||
/*
|
||||
* Copyright (c) 2015 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.carbon.device.mgt.core.app.mgt;
|
||||
|
||||
/**
|
||||
* Handles the exceptions related to Application management.
|
||||
*/
|
||||
public class AppManagementException extends Exception {
|
||||
|
||||
private static final long serialVersionUID = -8933142342423122660L;
|
||||
private String errorMessage;
|
||||
|
||||
public String getErrorMessage() {
|
||||
return errorMessage;
|
||||
}
|
||||
|
||||
public void setErrorMessage(String errorMessage) {
|
||||
this.errorMessage = errorMessage;
|
||||
}
|
||||
|
||||
public AppManagementException(String msg, Exception nestedEx) {
|
||||
super(msg, nestedEx);
|
||||
setErrorMessage(msg);
|
||||
}
|
||||
|
||||
public AppManagementException(String message, Throwable cause) {
|
||||
super(message, cause);
|
||||
setErrorMessage(message);
|
||||
}
|
||||
|
||||
public AppManagementException(String msg) {
|
||||
super(msg);
|
||||
setErrorMessage(msg);
|
||||
}
|
||||
|
||||
public AppManagementException() {
|
||||
super();
|
||||
}
|
||||
|
||||
public AppManagementException(Throwable cause) {
|
||||
super(cause);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,132 @@
|
||||
/*
|
||||
* Copyright (c) 2015 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.carbon.device.mgt.core.app.mgt;
|
||||
|
||||
import org.apache.axis2.AxisFault;
|
||||
import org.apache.axis2.context.ConfigurationContext;
|
||||
import org.apache.axis2.context.ConfigurationContextFactory;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||
import org.wso2.carbon.device.mgt.core.DeviceManagementConstants;
|
||||
import org.wso2.carbon.device.mgt.core.app.mgt.oauth.ServiceAuthenticator;
|
||||
import org.wso2.carbon.device.mgt.core.app.mgt.oauth.dto.Credential;
|
||||
import org.wso2.carbon.device.mgt.core.app.mgt.config.AppManagementConfig;
|
||||
import org.wso2.carbon.device.mgt.core.config.DeviceConfigurationManager;
|
||||
import org.wso2.carbon.device.mgt.core.config.identity.IdentityConfigurations;
|
||||
import org.wso2.carbon.device.mgt.core.dto.Application;
|
||||
import org.wso2.carbon.device.mgt.core.service.AppManager;
|
||||
import org.wso2.carbon.identity.oauth.stub.OAuthAdminServiceException;
|
||||
import org.wso2.carbon.identity.oauth.stub.OAuthAdminServiceStub;
|
||||
import org.wso2.carbon.identity.oauth.stub.dto.OAuthConsumerAppDTO;
|
||||
|
||||
import java.rmi.RemoteException;
|
||||
|
||||
/**
|
||||
* Implements AppManager interface
|
||||
*/
|
||||
public class AppManagerImplHttp implements AppManager {
|
||||
|
||||
private static Log log = LogFactory.getLog(AppManagerImplHttp.class);
|
||||
private static AppManagementConfig appManagementConfig;
|
||||
private static final String GET_APP_LIST_URL =
|
||||
"store/apis/assets/mobileapp?domain=carbon.super&page=1";
|
||||
private static String appManagerUrl;
|
||||
private static String consumerKey;
|
||||
private static String consumerSecret;
|
||||
|
||||
public AppManagerImplHttp(AppManagementConfig appManagementConfig) {
|
||||
this.appManagementConfig = appManagementConfig;
|
||||
this.appManagerUrl = appManagementConfig.getAppManagerUrl();
|
||||
this.consumerKey = appManagementConfig.getConsumerKey();
|
||||
this.consumerSecret = appManagementConfig.getConsumerSecret();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Application[] getApplicationList(String domain, int pageNumber, int size)
|
||||
throws AppManagementException {
|
||||
return new Application[0];
|
||||
}
|
||||
|
||||
@Override public void updateApplicationStatusOnDevice(DeviceIdentifier deviceId,
|
||||
Application application, String status) {
|
||||
|
||||
}
|
||||
|
||||
@Override public String getApplicationStatusOnDevice(DeviceIdentifier deviceId,
|
||||
Application application) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override public Credential getClientCredentials() throws AppManagementException {
|
||||
OAuthAdminServiceStub oAuthAdminServiceStub;
|
||||
OAuthConsumerAppDTO appDTO = new OAuthConsumerAppDTO();
|
||||
appDTO.setApplicationName(DeviceManagementConstants.AppManagement.OAUTH_APPLICATION_NAME);
|
||||
appDTO.setGrantTypes(
|
||||
DeviceManagementConstants.AppManagement.OAUTH2_GRANT_TYPE_CLIENT_CREDENTIALS);
|
||||
appDTO.setOAuthVersion(DeviceManagementConstants.AppManagement.OAUTH_VERSION_2);
|
||||
IdentityConfigurations identityConfigurations =
|
||||
DeviceConfigurationManager.getInstance().getDeviceManagementConfig()
|
||||
.getDeviceManagementConfigRepository()
|
||||
.getIdentityConfigurations();
|
||||
String serverUrl = identityConfigurations.getServerUrl();
|
||||
String username = identityConfigurations.getAdminUsername();
|
||||
String password = identityConfigurations.getAdminPassword();
|
||||
String oauthAdminServiceUrl = serverUrl +
|
||||
DeviceManagementConstants.AppManagement.OAUTH_ADMIN_SERVICE;
|
||||
|
||||
try {
|
||||
ConfigurationContext configContext = ConfigurationContextFactory
|
||||
.createConfigurationContextFromFileSystem(null, null);
|
||||
oAuthAdminServiceStub = new OAuthAdminServiceStub(configContext, oauthAdminServiceUrl);
|
||||
|
||||
ServiceAuthenticator authenticator = ServiceAuthenticator.getInstance();
|
||||
authenticator.setAccessUsername(username);
|
||||
authenticator.setAccessPassword(password);
|
||||
authenticator.authenticate(oAuthAdminServiceStub._getServiceClient());
|
||||
|
||||
OAuthConsumerAppDTO createdAppData = null;
|
||||
try {
|
||||
createdAppData = oAuthAdminServiceStub.getOAuthApplicationDataByAppName(
|
||||
DeviceManagementConstants.AppManagement.OAUTH_APPLICATION_NAME);
|
||||
}
|
||||
//application doesn't exist. Due to the way getOAuthApplicationDataByAppName has been
|
||||
//implemented, it throws an AxisFault if the App doesn't exist. Hence the catch.
|
||||
catch (AxisFault fault) {
|
||||
oAuthAdminServiceStub.registerOAuthApplicationData(appDTO);
|
||||
createdAppData = oAuthAdminServiceStub.getOAuthApplicationDataByAppName(
|
||||
DeviceManagementConstants.AppManagement.OAUTH_APPLICATION_NAME);
|
||||
}
|
||||
|
||||
Credential credential = new Credential();
|
||||
credential.setConsumerKey(createdAppData.getOauthConsumerKey());
|
||||
credential.setConsumerSecret(createdAppData.getOauthConsumerSecret());
|
||||
return credential;
|
||||
} catch (RemoteException e) {
|
||||
String msg = "Error while registering a new application.";
|
||||
log.error(msg, e);
|
||||
throw new AppManagementException(msg, e);
|
||||
} catch (OAuthAdminServiceException e) {
|
||||
String msg = "Error while working with oauth admin services stub.";
|
||||
log.error(msg, e);
|
||||
throw new AppManagementException(msg, e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,68 @@
|
||||
/*
|
||||
* Copyright (c) 2015 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.carbon.device.mgt.core.app.mgt.config;
|
||||
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
||||
@XmlRootElement(name = "AppManagementConfig")
|
||||
public class AppManagementConfig {
|
||||
|
||||
private boolean enabled;
|
||||
private String appManagerUrl;
|
||||
private String consumerKey;
|
||||
private String consumerSecret;
|
||||
|
||||
@XmlElement(name = "ConsumerKey", required = true)
|
||||
public String getConsumerKey() {
|
||||
return consumerKey;
|
||||
}
|
||||
|
||||
public void setConsumerKey(String consumerKey) {
|
||||
this.consumerKey = consumerKey;
|
||||
}
|
||||
|
||||
@XmlElement(name = "ConsumerSecret", required = true)
|
||||
public String getConsumerSecret() {
|
||||
return consumerSecret;
|
||||
}
|
||||
|
||||
public void setConsumerSecret(String consumerSecret) {
|
||||
this.consumerSecret = consumerSecret;
|
||||
}
|
||||
|
||||
@XmlElement(name = "Enabled", required = true)
|
||||
public boolean isEnabled() {
|
||||
return enabled;
|
||||
}
|
||||
|
||||
public void setEnabled(boolean enabled) {
|
||||
this.enabled = enabled;
|
||||
}
|
||||
|
||||
@XmlElement(name = "AppManagerUrl", required = false)
|
||||
public String getAppManagerUrl() {
|
||||
return appManagerUrl;
|
||||
}
|
||||
|
||||
public void setAppManagerUrl(String appManagerUrl) {
|
||||
this.appManagerUrl = appManagerUrl;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,72 @@
|
||||
/*
|
||||
* Copyright (c) 2015 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.carbon.device.mgt.core.app.mgt.config;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
import org.wso2.carbon.device.mgt.core.app.mgt.AppManagementException;
|
||||
import org.wso2.carbon.device.mgt.core.util.DeviceManagerUtil;
|
||||
import org.wso2.carbon.utils.CarbonUtils;
|
||||
|
||||
import javax.xml.bind.JAXBContext;
|
||||
import javax.xml.bind.Unmarshaller;
|
||||
import java.io.File;
|
||||
|
||||
public class AppManagementConfigurationManager {
|
||||
|
||||
private AppManagementConfig appManagementConfig;
|
||||
private static AppManagementConfigurationManager appManagementConfigManager;
|
||||
|
||||
private static final String APP_MANAGER_CONFIG_FILE = "app-management-config.xml";
|
||||
private static final String APP_MANAGER_CONFIG_PATH =
|
||||
CarbonUtils.getEtcCarbonConfigDirPath() + File.separator + APP_MANAGER_CONFIG_FILE;
|
||||
|
||||
public static AppManagementConfigurationManager getInstance() {
|
||||
if (appManagementConfigManager == null) {
|
||||
synchronized (AppManagementConfigurationManager.class) {
|
||||
if (appManagementConfigManager == null) {
|
||||
appManagementConfigManager = new AppManagementConfigurationManager();
|
||||
}
|
||||
}
|
||||
}
|
||||
return appManagementConfigManager;
|
||||
}
|
||||
|
||||
public synchronized void initConfig() throws AppManagementException {
|
||||
try {
|
||||
File appManagementConfig =
|
||||
new File(AppManagementConfigurationManager.APP_MANAGER_CONFIG_PATH);
|
||||
Document doc = DeviceManagerUtil.convertToDocument(appManagementConfig);
|
||||
|
||||
/* Un-marshaling App Management configuration */
|
||||
JAXBContext cdmContext = JAXBContext.newInstance(AppManagementConfig.class);
|
||||
Unmarshaller unmarshaller = cdmContext.createUnmarshaller();
|
||||
this.appManagementConfig = (AppManagementConfig) unmarshaller.unmarshal(doc);
|
||||
} catch (Exception e) {
|
||||
/* Catches generic exception as there's no specific task to be carried out catching a particular
|
||||
exception */
|
||||
throw new AppManagementException(
|
||||
"Error occurred while initializing application management Configurations", e);
|
||||
}
|
||||
}
|
||||
|
||||
public AppManagementConfig getAppManagementConfig() {
|
||||
return appManagementConfig;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,74 @@
|
||||
/*
|
||||
* Copyright (c) 2015, 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.carbon.device.mgt.core.app.mgt.oauth;
|
||||
|
||||
|
||||
import org.apache.axis2.client.Options;
|
||||
import org.apache.axis2.client.ServiceClient;
|
||||
import org.apache.axis2.transport.http.HttpTransportProperties;
|
||||
import org.wso2.carbon.device.mgt.core.app.mgt.AppManagementException;
|
||||
|
||||
/**
|
||||
* Authenticate a given service client.
|
||||
*/
|
||||
public class ServiceAuthenticator {
|
||||
|
||||
private static ServiceAuthenticator instance = null;
|
||||
private String accessUsername = null;
|
||||
private String accessPassword = null;
|
||||
|
||||
private ServiceAuthenticator() {
|
||||
}
|
||||
|
||||
public static ServiceAuthenticator getInstance() {
|
||||
|
||||
if (instance != null) {
|
||||
return instance;
|
||||
} else {
|
||||
instance = new ServiceAuthenticator();
|
||||
return instance;
|
||||
}
|
||||
}
|
||||
|
||||
public void authenticate(ServiceClient client) throws AppManagementException {
|
||||
|
||||
if (accessUsername != null && accessPassword != null) {
|
||||
Options option = client.getOptions();
|
||||
HttpTransportProperties.Authenticator auth = new HttpTransportProperties.Authenticator();
|
||||
auth.setUsername(accessUsername);
|
||||
auth.setPassword(accessPassword);
|
||||
auth.setPreemptiveAuthentication(true);
|
||||
option.setProperty(org.apache.axis2.transport.http.HTTPConstants.AUTHENTICATE, auth);
|
||||
option.setManageSession(true);
|
||||
|
||||
} else {
|
||||
throw new AppManagementException("Authentication username or password not set");
|
||||
}
|
||||
}
|
||||
|
||||
public void setAccessUsername(String accessUsername) {
|
||||
this.accessUsername = accessUsername;
|
||||
}
|
||||
|
||||
public void setAccessPassword(String accessPassword) {
|
||||
this.accessPassword = accessPassword;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,43 @@
|
||||
/*
|
||||
* Copyright (c) 2015, 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.carbon.device.mgt.core.app.mgt.oauth.dto;
|
||||
|
||||
/**
|
||||
* DTO of the consumer key and secret
|
||||
*/
|
||||
public class Credential {
|
||||
String consumerKey;
|
||||
String consumerSecret;
|
||||
|
||||
public String getConsumerKey() {
|
||||
return consumerKey;
|
||||
}
|
||||
|
||||
public void setConsumerKey(String consumerKey) {
|
||||
this.consumerKey = consumerKey;
|
||||
}
|
||||
|
||||
public String getConsumerSecret() {
|
||||
return consumerSecret;
|
||||
}
|
||||
|
||||
public void setConsumerSecret(String consumerSecret) {
|
||||
this.consumerSecret = consumerSecret;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Copyright (c) 2014, 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.carbon.device.mgt.core.config.identity;
|
||||
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
||||
/**
|
||||
* Configurations related to identity management.
|
||||
*/
|
||||
@XmlRootElement(name = "IdentityConfiguration")
|
||||
public class IdentityConfigurations {
|
||||
private String serverUrl;
|
||||
private String adminUsername;
|
||||
private String adminPassword;
|
||||
|
||||
@XmlElement(name = "AdminUsername", required = true)
|
||||
public String getAdminUsername() {
|
||||
return adminUsername;
|
||||
}
|
||||
|
||||
public void setAdminUsername(String adminUsername) {
|
||||
this.adminUsername = adminUsername;
|
||||
}
|
||||
|
||||
@XmlElement(name = "AdminPassword", required = true)
|
||||
public String getAdminPassword() {
|
||||
return adminPassword;
|
||||
}
|
||||
|
||||
public void setAdminPassword(String adminPassword) {
|
||||
this.adminPassword = adminPassword;
|
||||
}
|
||||
|
||||
@XmlElement(name = "ServerUrl", required = true)
|
||||
public String getServerUrl() {
|
||||
return serverUrl;
|
||||
}
|
||||
|
||||
public void setServerUrl(String serverUrl) {
|
||||
this.serverUrl = serverUrl;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,101 @@
|
||||
/*
|
||||
* Copyright (c) 2015 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.carbon.device.mgt.core.dto;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* Holds data about an application that can be installed on a device.
|
||||
*/
|
||||
public class Application implements Serializable {
|
||||
private static final long serialVersionUID = -81011063453453455L;
|
||||
String id;
|
||||
String name;
|
||||
String packageName;
|
||||
String platform;
|
||||
String fileUrl;
|
||||
String applicationType;
|
||||
String category;
|
||||
|
||||
public String getApplicationType() {
|
||||
return applicationType;
|
||||
}
|
||||
|
||||
public void setApplicationType(String applicationType) {
|
||||
this.applicationType = applicationType;
|
||||
}
|
||||
|
||||
public String getCategory() {
|
||||
return category;
|
||||
}
|
||||
|
||||
public void setCategory(String category) {
|
||||
this.category = category;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getPackageName() {
|
||||
return packageName;
|
||||
}
|
||||
|
||||
public void setPackageName(String packageName) {
|
||||
this.packageName = packageName;
|
||||
}
|
||||
|
||||
public String getPlatform() {
|
||||
return platform;
|
||||
}
|
||||
|
||||
public void setPlatform(String platform) {
|
||||
this.platform = platform;
|
||||
}
|
||||
|
||||
public String getFileUrl() {
|
||||
return fileUrl;
|
||||
}
|
||||
|
||||
public void setFileUrl(String fileUrl) {
|
||||
this.fileUrl = fileUrl;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
String type;
|
||||
}
|
@ -0,0 +1,48 @@
|
||||
/*
|
||||
* Copyright (c) 2015 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.carbon.device.mgt.core.service;
|
||||
|
||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||
import org.wso2.carbon.device.mgt.core.app.mgt.AppManagementException;
|
||||
import org.wso2.carbon.device.mgt.core.app.mgt.oauth.dto.Credential;
|
||||
import org.wso2.carbon.device.mgt.core.dto.Application;
|
||||
import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
|
||||
|
||||
public class AppManagementServiceImpl implements AppManager {
|
||||
@Override public Application[] getApplicationList(String domain, int pageNumber, int size)
|
||||
throws AppManagementException {
|
||||
return DeviceManagementDataHolder.getInstance().getAppManager()
|
||||
.getApplicationList(domain, pageNumber, size);
|
||||
}
|
||||
|
||||
@Override public void updateApplicationStatusOnDevice(DeviceIdentifier deviceId,
|
||||
Application application, String status) {
|
||||
DeviceManagementDataHolder.getInstance().getAppManager()
|
||||
.updateApplicationStatusOnDevice(deviceId, application, status);
|
||||
|
||||
}
|
||||
|
||||
@Override public String getApplicationStatusOnDevice(DeviceIdentifier deviceId,
|
||||
Application application) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override public Credential getClientCredentials() throws AppManagementException{
|
||||
return DeviceManagementDataHolder.getInstance().getAppManager().getClientCredentials();
|
||||
}
|
||||
}
|
@ -0,0 +1,69 @@
|
||||
/*
|
||||
* Copyright (c) 2015 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.carbon.device.mgt.core.service;
|
||||
|
||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||
import org.wso2.carbon.device.mgt.core.app.mgt.oauth.dto.Credential;
|
||||
import org.wso2.carbon.device.mgt.core.dto.Application;
|
||||
import org.wso2.carbon.device.mgt.core.app.mgt.AppManagementException;
|
||||
|
||||
/**
|
||||
* This will handle the Application management side of MDM by acting a bridge between
|
||||
* MDM and App manager product.
|
||||
*/
|
||||
public interface AppManager {
|
||||
|
||||
/**
|
||||
* This will communicate with App manager and retrieve the list of apps in the store, when
|
||||
* the domain is given. The list is broken down into pages and retrieved.
|
||||
* @param domain Tenant domain of the app list to be retrieved.
|
||||
* @param pageNumber Page number of the list.
|
||||
* @param size Number of items in one page.
|
||||
* @return The list of applications belongs to a domain.
|
||||
* @throws AppManagementException
|
||||
*/
|
||||
|
||||
Application [] getApplicationList(String domain, int pageNumber, int size)
|
||||
throws AppManagementException;
|
||||
|
||||
|
||||
/**
|
||||
* Updates the application, install/uninstall status of the a certain application, on a device.
|
||||
* @param deviceId Device id of the device that the status belongs to.
|
||||
* @param application Application details of the app being updated.
|
||||
* @param status Installed/Uninstalled
|
||||
*/
|
||||
void updateApplicationStatusOnDevice(DeviceIdentifier deviceId, Application application,
|
||||
String status);
|
||||
|
||||
/**
|
||||
* Retrieve the status of an application on a device. Whether it is installed or not.
|
||||
* @param deviceId Device id of the device that the status belongs to.
|
||||
* @param application Application details of the app being searched.
|
||||
* @return Status of the application on the device.
|
||||
*/
|
||||
String getApplicationStatusOnDevice(DeviceIdentifier deviceId, Application application);
|
||||
|
||||
/**
|
||||
* Create a new application and return client Id and secret.
|
||||
* @return consumer Id and consumer key.
|
||||
* * @throws AppManagementException
|
||||
*/
|
||||
Credential getClientCredentials() throws AppManagementException;
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright (c) 2015, 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.
|
||||
-->
|
||||
|
||||
<AppManagementConfig>
|
||||
<Enabled>true</Enabled>
|
||||
<AppManagerUrl>http:/www.google.com</AppManagerUrl>
|
||||
</AppManagementConfig>
|
Loading…
Reference in new issue