mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Adding platform manager first API.
This commit is contained in:
parent
b183ec3e89
commit
fe26352ec9
@ -24,6 +24,7 @@ import org.wso2.carbon.context.PrivilegedCarbonContext;
|
||||
import org.wso2.carbon.device.application.mgt.api.beans.ErrorResponse;
|
||||
import org.wso2.carbon.device.application.mgt.common.exception.ApplicationManagementException;
|
||||
import org.wso2.carbon.device.application.mgt.common.services.ApplicationManager;
|
||||
import org.wso2.carbon.device.application.mgt.common.services.PlatformManager;
|
||||
|
||||
import javax.ws.rs.core.Response;
|
||||
|
||||
@ -36,9 +37,9 @@ public class APIUtil {
|
||||
private static Log log = LogFactory.getLog(APIUtil.class);
|
||||
|
||||
private static ApplicationManager applicationManager;
|
||||
private static PlatformManager platformManager;
|
||||
|
||||
public static ApplicationManager getApplicationManager() {
|
||||
|
||||
if (applicationManager == null) {
|
||||
synchronized (APIUtil.class) {
|
||||
if (applicationManager == null) {
|
||||
@ -57,9 +58,25 @@ public class APIUtil {
|
||||
return applicationManager;
|
||||
}
|
||||
|
||||
public static Response getResponse(ApplicationManagementException ex, Response.Status status) {
|
||||
public static PlatformManager getPlatformManager() {
|
||||
if (platformManager == null) {
|
||||
synchronized (APIUtil.class) {
|
||||
if (platformManager == null) {
|
||||
PrivilegedCarbonContext ctx = PrivilegedCarbonContext.getThreadLocalCarbonContext();
|
||||
platformManager =
|
||||
(PlatformManager) ctx.getOSGiService(PlatformManager.class, null);
|
||||
if (platformManager == null) {
|
||||
String msg = "Platform Manager service has not initialized.";
|
||||
log.error(msg);
|
||||
throw new IllegalStateException(msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return platformManager;
|
||||
}
|
||||
|
||||
//TODO: check for exception type and set the response code.
|
||||
public static Response getResponse(ApplicationManagementException ex, Response.Status status) {
|
||||
ErrorResponse errorMessage = new ErrorResponse();
|
||||
errorMessage.setMessage(ex.getMessage());
|
||||
if (status == null) {
|
||||
@ -67,6 +84,5 @@ public class APIUtil {
|
||||
}
|
||||
errorMessage.setCode(status.getStatusCode());
|
||||
return Response.status(status).entity(errorMessage).build();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -26,8 +26,8 @@ import javax.ws.rs.*;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.core.Response;
|
||||
|
||||
@Api(value = "Application Management", description = "This API carries all device management related operations " +
|
||||
"such as get all the available devices, etc.")
|
||||
@Api(value = "Application Management", description = "This API carries all application management related operations " +
|
||||
"such as get all the applications, add application, etc.")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
public interface ApplicationManagementAPI {
|
||||
|
||||
@ -0,0 +1,82 @@
|
||||
package org.wso2.carbon.device.application.mgt.api.services;/*
|
||||
* Copyright (c) 2017, 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.
|
||||
*
|
||||
*/
|
||||
|
||||
import io.swagger.annotations.*;
|
||||
import org.wso2.carbon.device.application.mgt.api.beans.ErrorResponse;
|
||||
import org.wso2.carbon.device.application.mgt.common.ApplicationList;
|
||||
import org.wso2.carbon.device.application.mgt.common.Platform;
|
||||
|
||||
import javax.validation.constraints.Size;
|
||||
import javax.ws.rs.*;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.core.Response;
|
||||
|
||||
@Api(value = "Platform Management", description = "This API carries all platform management related operations " +
|
||||
"such as get all the available platform for a tenant, etc.")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
public interface PlatformManagementAPI {
|
||||
public final static String SCOPE = "scope";
|
||||
|
||||
@GET
|
||||
@Path("platforms")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
@ApiOperation(
|
||||
consumes = MediaType.APPLICATION_JSON,
|
||||
produces = MediaType.APPLICATION_JSON,
|
||||
httpMethod = "GET",
|
||||
value = "get all platforms",
|
||||
notes = "This will get all applications",
|
||||
tags = "Application Management",
|
||||
extensions = {
|
||||
@Extension(properties = {
|
||||
@ExtensionProperty(name = SCOPE, value = "perm:get-platforms")
|
||||
})
|
||||
}
|
||||
)
|
||||
@ApiResponses(
|
||||
value = {
|
||||
@ApiResponse(
|
||||
code = 200,
|
||||
message = "OK. \n Successfully got platforms list.",
|
||||
response = Platform.class,
|
||||
responseContainer = "List"),
|
||||
@ApiResponse(
|
||||
code = 304,
|
||||
message = "Not Modified. \n " +
|
||||
"Empty body because the client already has the latest version of the requested resource."),
|
||||
@ApiResponse(
|
||||
code = 500,
|
||||
message = "Internal Server Error. \n Error occurred while getting the platform list.",
|
||||
response = ErrorResponse.class)
|
||||
})
|
||||
Response getPlatforms(
|
||||
@ApiParam(
|
||||
name = "status",
|
||||
allowableValues = "ENABLED, DISABLED, ALL",
|
||||
value = "Provide the status of platform for that tenant:\n" +
|
||||
"- ENABLED: The platforms that are currently enabled for the tenant\n" +
|
||||
"- DISABLED: The platforms that can be used by the tenant but disabled to be used for tenant\n" +
|
||||
"- ALL: All the list of platforms that can be used by the tenant",
|
||||
required = false)
|
||||
@QueryParam("status")
|
||||
@Size(max = 45)
|
||||
String status
|
||||
);
|
||||
}
|
||||
@ -38,7 +38,6 @@ public class ApplicationManagementAPIImpl {
|
||||
|
||||
private static Log log = LogFactory.getLog(ApplicationManagementAPIImpl.class);
|
||||
|
||||
|
||||
@GET
|
||||
@Consumes("application/json")
|
||||
@Path("applications")
|
||||
|
||||
@ -0,0 +1,76 @@
|
||||
/*
|
||||
* Copyright (c) 2017, 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.application.mgt.api.services.impl;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.wso2.carbon.context.PrivilegedCarbonContext;
|
||||
import org.wso2.carbon.device.application.mgt.api.APIUtil;
|
||||
import org.wso2.carbon.device.application.mgt.api.services.PlatformManagementAPI;
|
||||
import org.wso2.carbon.device.application.mgt.common.Platform;
|
||||
import org.wso2.carbon.device.application.mgt.common.exception.PlatformManagementException;
|
||||
|
||||
import javax.ws.rs.QueryParam;
|
||||
import javax.ws.rs.core.Response;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class PlatformManagementAPIImpl implements PlatformManagementAPI {
|
||||
|
||||
private static final String ALL_STATUS = "ALL";
|
||||
private static final String ENABLED_STATUS = "ENABLED";
|
||||
private static final String DISABLED_STATUS = "DISABLED";
|
||||
|
||||
private static Log log = LogFactory.getLog(PlatformManagementAPIImpl.class);
|
||||
|
||||
@Override
|
||||
public Response getPlatforms(@QueryParam("status") String status) {
|
||||
String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain(true);
|
||||
try {
|
||||
List<Platform> platforms = APIUtil.getPlatformManager().getPlatforms(tenantDomain);
|
||||
List<Platform> results;
|
||||
if (status != null) {
|
||||
if (status.contentEquals(ALL_STATUS)) {
|
||||
results = platforms;
|
||||
} else if (status.contentEquals(ENABLED_STATUS)) {
|
||||
results = new ArrayList<>();
|
||||
for (Platform platform : platforms) {
|
||||
if (platform.isEnabled()) {
|
||||
results.add(platform);
|
||||
}
|
||||
}
|
||||
} else if (status.contentEquals(DISABLED_STATUS)) {
|
||||
results = new ArrayList<>();
|
||||
for (Platform platform : platforms) {
|
||||
if (!platform.isEnabled()) {
|
||||
results.add(platform);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
results = platforms;
|
||||
}
|
||||
} else {
|
||||
results = platforms;
|
||||
}
|
||||
return Response.status(Response.Status.OK).entity(results).build();
|
||||
} catch (PlatformManagementException e) {
|
||||
log.error("Error while getting the platforms for tenant - " + tenantDomain, e);
|
||||
return APIUtil.getResponse(e, Response.Status.INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -31,7 +31,6 @@ public class Filter {
|
||||
|
||||
private int offset;
|
||||
|
||||
//TODO:
|
||||
private String filter;
|
||||
|
||||
private List<FilterProperty> filterProperties;
|
||||
|
||||
@ -44,6 +44,10 @@ public class Platform implements Cloneable {
|
||||
|
||||
private List<Property> properties;
|
||||
|
||||
private boolean enabled;
|
||||
|
||||
private boolean defaultTenantMapping;
|
||||
|
||||
public Platform(Platform platform) {
|
||||
this.id = platform.getId();
|
||||
this.name = platform.getName();
|
||||
@ -145,6 +149,21 @@ public class Platform implements Cloneable {
|
||||
this.shared = shared;
|
||||
}
|
||||
|
||||
public boolean isEnabled() {
|
||||
return enabled;
|
||||
}
|
||||
|
||||
public void setEnabled(boolean enabled) {
|
||||
this.enabled = enabled;
|
||||
}
|
||||
|
||||
public boolean isDefaultTenantMapping() {
|
||||
return defaultTenantMapping;
|
||||
}
|
||||
|
||||
public void setDefaultTenantMapping(boolean defaultTenantMapping) {
|
||||
this.defaultTenantMapping = defaultTenantMapping;
|
||||
}
|
||||
|
||||
public static class Property implements Cloneable {
|
||||
|
||||
|
||||
@ -29,12 +29,16 @@ import java.util.List;
|
||||
*/
|
||||
public interface PlatformManager {
|
||||
|
||||
void initialize(String tenantDomain) throws PlatformManagementException;
|
||||
|
||||
List<Platform> getPlatforms(String tenantDomain) throws PlatformManagementException;
|
||||
|
||||
void register(String tenantDomain, Platform platform) throws PlatformManagementException;
|
||||
|
||||
void unregister(String tenantDomain, String platformCode, boolean isFileBased) throws PlatformManagementException;
|
||||
|
||||
void addMapping(String tenantDomain, List<String> platformCode) throws PlatformManagementException;
|
||||
|
||||
void addMapping(String tenantDomain, String platformCode) throws PlatformManagementException;
|
||||
|
||||
void removeMapping(String tenantDomain, String platformCode) throws PlatformManagementException;
|
||||
|
||||
@ -82,13 +82,6 @@
|
||||
</instructions>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
<!--<plugin>-->
|
||||
<!--<groupId>org.apache.maven.plugins</groupId>-->
|
||||
<!--<artifactId>maven-surefire-plugin</artifactId>-->
|
||||
<!--<version>2.18</version>-->
|
||||
<!--</plugin>-->
|
||||
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
|
||||
@ -29,7 +29,7 @@ public interface PlatformDAO {
|
||||
|
||||
void unregister(String tenantDomain, String platformCode) throws PlatformManagementDAOException;
|
||||
|
||||
void addMapping(String tenantDomain, String platformCode) throws PlatformManagementDAOException;
|
||||
void addMapping(String tenantDomain, List<String> platformCode) throws PlatformManagementDAOException;
|
||||
|
||||
void removeMapping(String tenantDomain, String platformCode) throws PlatformManagementDAOException;
|
||||
|
||||
|
||||
@ -148,22 +148,26 @@ public class PlatformDAOImpl implements PlatformDAO {
|
||||
}
|
||||
}
|
||||
|
||||
public void addMapping(String tenantDomain, String platformCode) throws PlatformManagementDAOException {
|
||||
public void addMapping(String tenantDomain, List<String> platformCodes) throws PlatformManagementDAOException {
|
||||
String insertMapping = "INSERT INTO APPM_PLATFORM_TENANT_MAPPING(TENANT_DOMAIN, PLATFORM_CODE) VALUES (?, ?)";
|
||||
try {
|
||||
ConnectionManagerUtil.beginTransaction();
|
||||
if (getTenantPlatformMapping(tenantDomain, platformCode) != -1) {
|
||||
Connection connection = ConnectionManagerUtil.getConnection();
|
||||
PreparedStatement preparedStatement = connection.prepareStatement(insertMapping);
|
||||
preparedStatement.execute();
|
||||
ConnectionManagerUtil.commitTransaction();
|
||||
} else {
|
||||
throw new PlatformManagementDAOException("Platform - " + platformCode + " is already assigned to tenant domain - " + tenantDomain);
|
||||
for (String platformCode : platformCodes) {
|
||||
if (getTenantPlatformMapping(tenantDomain, platformCode) != -1) {
|
||||
Connection connection = ConnectionManagerUtil.getConnection();
|
||||
PreparedStatement preparedStatement = connection.prepareStatement(insertMapping);
|
||||
preparedStatement.setString(1, tenantDomain);
|
||||
preparedStatement.setString(2, platformCode);
|
||||
preparedStatement.execute();
|
||||
} else {
|
||||
throw new PlatformManagementDAOException("Platform - " + platformCode + " is already assigned to tenant domain - " + tenantDomain);
|
||||
}
|
||||
}
|
||||
ConnectionManagerUtil.commitTransaction();
|
||||
} catch (TransactionManagementException e) {
|
||||
ConnectionManagerUtil.rollbackTransaction();
|
||||
throw new PlatformManagementDAOException("Error occured while trying to add the mapping of platform - "
|
||||
+ platformCode + " for tenant - " + tenantDomain, e);
|
||||
+ platformCodes.toString() + " for tenant - " + tenantDomain, e);
|
||||
} catch (DBConnectionException e) {
|
||||
ConnectionManagerUtil.rollbackTransaction();
|
||||
throw new PlatformManagementDAOException("Error occurred when getting the connection for the database. ", e);
|
||||
@ -232,15 +236,23 @@ public class PlatformDAOImpl implements PlatformDAO {
|
||||
|
||||
@Override
|
||||
public List<Platform> getPlatforms(String tenantDomain) throws PlatformManagementDAOException {
|
||||
String selectQuery = "SELECT PLATFORM_CODE FROM APPM_PLATFORM_TENANT_MAPPING WHERE TENANT_DOMAIN=?";
|
||||
String selectQuery = "SELECT * FROM (SELECT * FROM APPM_PLATFORM WHERE TENANT_DOMAIN=? OR IS_SHARED = TRUE) PLATFORM " +
|
||||
"LEFT JOIN APPM_PLATFORM_TENANT_MAPPING MAPPING ON PLATFORM.CODE = MAPPING.PLATFORM_CODE";
|
||||
try {
|
||||
Connection connection = ConnectionManagerUtil.openConnection();
|
||||
PreparedStatement preparedStatement = connection.prepareStatement(selectQuery);
|
||||
ResultSet resultSet = preparedStatement.executeQuery();
|
||||
List<Platform> platforms = new ArrayList<>();
|
||||
while (resultSet.next()) {
|
||||
String platformCode = resultSet.getString(1);
|
||||
platforms.add(getPlatform(tenantDomain, platformCode));
|
||||
String platformCode = resultSet.getString("PLATFORM.CODE");
|
||||
int mappingID = resultSet.getInt("MAPPING.ID");
|
||||
Platform platform = getPlatform(tenantDomain, platformCode);
|
||||
if (mappingID != 0) {
|
||||
platform.setEnabled(true);
|
||||
} else {
|
||||
platform.setEnabled(false);
|
||||
}
|
||||
platforms.add(platform);
|
||||
}
|
||||
return platforms;
|
||||
} catch (DBConnectionException e) {
|
||||
@ -253,13 +265,14 @@ public class PlatformDAOImpl implements PlatformDAO {
|
||||
}
|
||||
|
||||
private Platform getPlatform(String tenantDomain, String platformCode) throws PlatformManagementDAOException {
|
||||
String platformQuery = "SELECT * FROM (SELECT * FROM APPM_PLATFORM WHERE (TENANT_DOMAIN=? AND CODE=?) PLATFORM " +
|
||||
"LEFT JOIN APPM_PLATFORM_PROPERTIES PROPS ON PLATFORM.ID = PROPS.PLATFORM_ID ORDER BY PLATFORM.CODE DESC";
|
||||
String platformQuery = "SELECT * FROM (SELECT * FROM APPM_PLATFORM WHERE (TENANT_DOMAIN=? AND CODE=?) OR (IS_SHARED = TRUE AND CODE=?)) PLATFORM " +
|
||||
"LEFT JOIN APPM_PLATFORM_PROPERTIES PROPS ON PLATFORM.ID = PROPS.PLATFORM_ID";
|
||||
try {
|
||||
Connection connection = ConnectionManagerUtil.getConnection();
|
||||
PreparedStatement preparedStatement = connection.prepareStatement(platformQuery);
|
||||
preparedStatement.setString(1, tenantDomain);
|
||||
preparedStatement.setString(2, platformCode);
|
||||
preparedStatement.setString(3, platformCode);
|
||||
ResultSet resultSet = preparedStatement.executeQuery();
|
||||
Platform platform = new Platform();
|
||||
if (resultSet.next()) {
|
||||
@ -292,4 +305,5 @@ public class PlatformDAOImpl implements PlatformDAO {
|
||||
throw new PlatformManagementDAOException("Error in executing the query - " + platformQuery, e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -30,6 +30,7 @@ public class Platform {
|
||||
private String description;
|
||||
private String icon;
|
||||
private boolean shared;
|
||||
private boolean tenantMapping;
|
||||
private List<Property> properties;
|
||||
|
||||
@XmlAttribute(name = "id")
|
||||
@ -85,4 +86,13 @@ public class Platform {
|
||||
public void setShared(boolean shared) {
|
||||
this.shared = shared;
|
||||
}
|
||||
|
||||
@XmlAttribute(name = "tenantMapping")
|
||||
public boolean isTenantMapping() {
|
||||
return tenantMapping;
|
||||
}
|
||||
|
||||
public void setTenantMapping(boolean tenantMapping) {
|
||||
this.tenantMapping = tenantMapping;
|
||||
}
|
||||
}
|
||||
|
||||
@ -96,6 +96,8 @@ public class PlatformDeployer extends AbstractDeployer {
|
||||
platform.setIconName(platformConfig.getIcon());
|
||||
platform.setFileBased(true);
|
||||
platform.setShared(platformConfig.isShared());
|
||||
platform.setDefaultTenantMapping(platformConfig.isTenantMapping());
|
||||
platform.setEnabled(false);
|
||||
List<org.wso2.carbon.device.application.mgt.common.Platform.Property> properties = new ArrayList<>();
|
||||
for (Property propertyConfig : platformConfig.getProperties()) {
|
||||
org.wso2.carbon.device.application.mgt.common.Platform.Property property = new org.wso2.carbon.device.application.mgt.common.Platform.Property();
|
||||
|
||||
@ -21,8 +21,13 @@ import org.wso2.carbon.device.application.mgt.common.Platform;
|
||||
import org.wso2.carbon.device.application.mgt.common.services.PlatformManager;
|
||||
import org.wso2.carbon.device.application.mgt.common.exception.PlatformManagementException;
|
||||
import org.wso2.carbon.device.application.mgt.core.dao.common.DAOFactory;
|
||||
import org.wso2.carbon.device.application.mgt.core.internal.DataHolder;
|
||||
import org.wso2.carbon.user.api.Tenant;
|
||||
import org.wso2.carbon.user.api.TenantManager;
|
||||
import org.wso2.carbon.user.api.UserStoreException;
|
||||
import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@ -34,6 +39,17 @@ public class PlatformManagerImpl implements PlatformManager {
|
||||
this.inMemoryStore = new HashMap<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initialize(String tenantDomain) throws PlatformManagementException {
|
||||
List<Platform> platforms = DAOFactory.getPlatformDAO().getPlatforms(tenantDomain);
|
||||
List<String> platformCodes = new ArrayList<>();
|
||||
for (Platform platform : platforms) {
|
||||
if (!platform.isEnabled() & platform.isDefaultTenantMapping()) {
|
||||
platformCodes.add(platform.getCode());
|
||||
}
|
||||
}
|
||||
addMapping(tenantDomain, platformCodes);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Platform> getPlatforms(String tenantDomain) throws PlatformManagementException {
|
||||
@ -74,6 +90,20 @@ public class PlatformManagerImpl implements PlatformManager {
|
||||
} else {
|
||||
DAOFactory.getPlatformDAO().register(tenantDomain, platform);
|
||||
}
|
||||
if (platform.isDefaultTenantMapping()) {
|
||||
try {
|
||||
if (platform.isShared()) {
|
||||
TenantManager tenantManager = DataHolder.getInstance().getRealmService().getTenantManager();
|
||||
Tenant[] tenants = tenantManager.getAllTenants();
|
||||
for (Tenant tenant : tenants) {
|
||||
addMapping(tenant.getDomain(), platform.getCode());
|
||||
}
|
||||
}
|
||||
addMapping(tenantDomain, platform.getCode());
|
||||
} catch (UserStoreException e) {
|
||||
throw new PlatformManagementException("Error occured while assigning the platforms for tenants!", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -89,10 +119,17 @@ public class PlatformManagerImpl implements PlatformManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addMapping(String tenantDomain, String platformCode) throws PlatformManagementException {
|
||||
public void addMapping(String tenantDomain, List<String> platformCode) throws PlatformManagementException {
|
||||
DAOFactory.getPlatformDAO().addMapping(tenantDomain, platformCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addMapping(String tenantDomain, String platformCode) throws PlatformManagementException {
|
||||
List<String> codes = new ArrayList<>();
|
||||
codes.add(platformCode);
|
||||
DAOFactory.getPlatformDAO().addMapping(tenantDomain, codes);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeMapping(String tenantDomain, String platformCode) throws PlatformManagementException {
|
||||
DAOFactory.getPlatformDAO().removeMapping(tenantDomain, platformCode);
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<Platforms>
|
||||
<Platform id="android" name="Android" description="something...." icon="" isShared="true">
|
||||
<Platform id="android" name="Android" description="something...." icon="" isShared="true" tenantMapping="true">
|
||||
<Property optional="true">test</Property>
|
||||
<Property optional="false" default="xxxxx">number</Property>
|
||||
</Platform>
|
||||
|
||||
@ -22,7 +22,7 @@ PRIMARY KEY (ID, PLATFORM_ID, PROP_NAME)
|
||||
CREATE TABLE APPM_PLATFORM_TENANT_MAPPING (
|
||||
ID INT NOT NULL AUTO_INCREMENT,
|
||||
TENANT_DOMAIN VARCHAR (100) NOT NULL ,
|
||||
PLATFORM_CODE VARCHAR (100) NOT NULL
|
||||
PLATFORM_CODE VARCHAR (100) NOT NULL,
|
||||
FOREIGN KEY(PLATFORM_CODE) REFERENCES APPM_PLATFORM(CODE) ON DELETE CASCADE,
|
||||
PRIMARY KEY (ID, TENANT_DOMAIN, PLATFORM_CODE)
|
||||
)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user