mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Merge pull request #953 from sinthuja/application-mgt
Adding visibility support for applications.
This commit is contained in:
commit
3d337ed537
@ -35,8 +35,6 @@ public class Application {
|
|||||||
|
|
||||||
private String uuid;
|
private String uuid;
|
||||||
|
|
||||||
private String identifier;
|
|
||||||
|
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
private String shortDescription;
|
private String shortDescription;
|
||||||
@ -119,14 +117,6 @@ public class Application {
|
|||||||
this.uuid = uuid;
|
this.uuid = uuid;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getIdentifier() {
|
|
||||||
return identifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setIdentifier(String identifier) {
|
|
||||||
this.identifier = identifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
@ -233,7 +223,7 @@ public class Application {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "UUID : " + uuid + "\tIdentifier : " + identifier + "\tName : " + name + "\tShort Description : "
|
return "UUID : " + uuid + "\tName : " + name + "\tShort Description : "
|
||||||
+ shortDescription + "\tLifecycle State : " + currentLifecycle.getLifecycleState();
|
+ shortDescription + "\tLifecycle State : " + currentLifecycle.getLifecycleState();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,6 +18,8 @@
|
|||||||
*/
|
*/
|
||||||
package org.wso2.carbon.device.application.mgt.common;
|
package org.wso2.carbon.device.application.mgt.common;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class represents the visibility details of an Application.
|
* This class represents the visibility details of an Application.
|
||||||
*/
|
*/
|
||||||
@ -25,19 +27,7 @@ public class Visibility {
|
|||||||
|
|
||||||
private Type type;
|
private Type type;
|
||||||
|
|
||||||
private String value;
|
private List<String> allowedList;
|
||||||
|
|
||||||
private Application application;
|
|
||||||
|
|
||||||
private ApplicationRelease applicationRelease;
|
|
||||||
|
|
||||||
public String getValue() {
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setValue(String value) {
|
|
||||||
this.value = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Type getType() {
|
public Type getType() {
|
||||||
return type;
|
return type;
|
||||||
@ -47,55 +37,18 @@ public class Visibility {
|
|||||||
this.type = type;
|
this.type = type;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Application getApplication() {
|
public List<String> getAllowedList() {
|
||||||
return application;
|
return allowedList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setApplication(Application application) {
|
public void setAllowedList(List<String> allowedList) {
|
||||||
this.application = application;
|
this.allowedList = allowedList;
|
||||||
}
|
|
||||||
|
|
||||||
public ApplicationRelease getApplicationRelease() {
|
|
||||||
return applicationRelease;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setApplicationRelease(ApplicationRelease applicationRelease) {
|
|
||||||
this.applicationRelease = applicationRelease;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Type of the visibility of the application.
|
* Type of the visibility of the application.
|
||||||
*/
|
*/
|
||||||
public class Type {
|
public enum Type {
|
||||||
|
PUBLIC, ROLES, DEVICE_GROUPS
|
||||||
private String id;
|
|
||||||
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
private String description;
|
|
||||||
|
|
||||||
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 getDescription() {
|
|
||||||
return description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDescription(String description) {
|
|
||||||
this.description = description;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,9 +15,23 @@
|
|||||||
* under the License.
|
* under the License.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
package org.wso2.carbon.device.application.mgt.core.impl;
|
package org.wso2.carbon.device.application.mgt.common.exception;
|
||||||
|
|
||||||
import org.wso2.carbon.device.application.mgt.common.services.VisibilityTypeManager;
|
/**
|
||||||
|
* This specialized exception is thrown by the Visibility Manager during unexpected behaviour
|
||||||
|
* or unsupported parameters.
|
||||||
|
*/
|
||||||
|
public class VisibilityManagementException extends ApplicationManagementException {
|
||||||
|
|
||||||
public class VisibilityTypeManagerImpl implements VisibilityTypeManager {
|
public VisibilityManagementException(String msg, Exception nestedEx) {
|
||||||
|
super(msg, nestedEx);
|
||||||
|
}
|
||||||
|
|
||||||
|
public VisibilityManagementException(String message, Throwable cause) {
|
||||||
|
super(message, cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
public VisibilityManagementException(String msg) {
|
||||||
|
super(msg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -37,7 +37,7 @@ public interface ApplicationManager {
|
|||||||
* @return Created application
|
* @return Created application
|
||||||
* @throws ApplicationManagementException Application Management Exception
|
* @throws ApplicationManagementException Application Management Exception
|
||||||
*/
|
*/
|
||||||
public Application createApplication(Application application) throws ApplicationManagementException;
|
Application createApplication(Application application) throws ApplicationManagementException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Updates an already existing application.
|
* Updates an already existing application.
|
||||||
@ -45,14 +45,14 @@ public interface ApplicationManager {
|
|||||||
* @return Updated Application
|
* @return Updated Application
|
||||||
* @throws ApplicationManagementException Application Management Exception
|
* @throws ApplicationManagementException Application Management Exception
|
||||||
*/
|
*/
|
||||||
public Application editApplication(Application application) throws ApplicationManagementException;
|
Application editApplication(Application application) throws ApplicationManagementException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete an application identified by the unique ID.
|
* Delete an application identified by the unique ID.
|
||||||
* @param uuid Unique ID for tha application
|
* @param uuid Unique ID for tha application
|
||||||
* @throws ApplicationManagementException Application Management Exception
|
* @throws ApplicationManagementException Application Management Exception
|
||||||
*/
|
*/
|
||||||
public void deleteApplication(String uuid) throws ApplicationManagementException;
|
void deleteApplication(String uuid) throws ApplicationManagementException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* To get the applications based on the search filter.
|
* To get the applications based on the search filter.
|
||||||
@ -60,7 +60,7 @@ public interface ApplicationManager {
|
|||||||
* @return Applications that matches the given filter criteria.
|
* @return Applications that matches the given filter criteria.
|
||||||
* @throws ApplicationManagementException Application Management Exception
|
* @throws ApplicationManagementException Application Management Exception
|
||||||
*/
|
*/
|
||||||
public ApplicationList getApplications(Filter filter) throws ApplicationManagementException;
|
ApplicationList getApplications(Filter filter) throws ApplicationManagementException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* To change the lifecycle of the Application.
|
* To change the lifecycle of the Application.
|
||||||
@ -69,7 +69,7 @@ public interface ApplicationManager {
|
|||||||
* @param lifecycleIdentifier New life-cycle that need to be changed.
|
* @param lifecycleIdentifier New life-cycle that need to be changed.
|
||||||
* @throws ApplicationManagementException Application Management Exception.
|
* @throws ApplicationManagementException Application Management Exception.
|
||||||
*/
|
*/
|
||||||
public void changeLifecycle(String applicationUuid, String lifecycleIdentifier) throws
|
void changeLifecycle(String applicationUuid, String lifecycleIdentifier) throws
|
||||||
ApplicationManagementException;
|
ApplicationManagementException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -79,7 +79,7 @@ public interface ApplicationManager {
|
|||||||
* @return the List of possible states
|
* @return the List of possible states
|
||||||
* @throws ApplicationManagementException Application Management Exception
|
* @throws ApplicationManagementException Application Management Exception
|
||||||
*/
|
*/
|
||||||
public List<LifecycleStateTransition> getLifeCycleStates(String applicationUUID)
|
List<LifecycleStateTransition> getLifeCycleStates(String applicationUUID)
|
||||||
throws ApplicationManagementException;
|
throws ApplicationManagementException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -89,7 +89,5 @@ public interface ApplicationManager {
|
|||||||
* @return the Application identified by the UUID
|
* @return the Application identified by the UUID
|
||||||
* @throws ApplicationManagementException Application Management Exception.
|
* @throws ApplicationManagementException Application Management Exception.
|
||||||
*/
|
*/
|
||||||
public Application getApplication(String uuid) throws ApplicationManagementException;
|
Application getApplication(String uuid) throws ApplicationManagementException;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,9 +18,40 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.device.application.mgt.common.services;
|
package org.wso2.carbon.device.application.mgt.common.services;
|
||||||
|
|
||||||
|
import org.wso2.carbon.device.application.mgt.common.Visibility;
|
||||||
|
import org.wso2.carbon.device.application.mgt.common.exception.VisibilityManagementException;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This interface manages all the operations related with Application Visibility.
|
* This interface manages all the operations related with Application Visibility.
|
||||||
|
* This will be invoking the necessary backend calls for the data bases layer
|
||||||
|
* and provide the functional implementation.
|
||||||
*/
|
*/
|
||||||
public interface VisibilityManager {
|
public interface VisibilityManager {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add (if there is no visibility configuration for the application) or
|
||||||
|
* Update (if there is already existing configuration for the application)
|
||||||
|
* the visibility related configuration for the application
|
||||||
|
*
|
||||||
|
* @param applicationID The ID of the application
|
||||||
|
* @param visibility The visibility configuration for the particular application.
|
||||||
|
*/
|
||||||
|
Visibility put(int applicationID, Visibility visibility) throws VisibilityManagementException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the Visibility configuration of the provided applicationUUID.
|
||||||
|
*
|
||||||
|
* @param applicationID The ID of the application
|
||||||
|
* @return Visibility configuration
|
||||||
|
*/
|
||||||
|
Visibility get(int applicationID) throws VisibilityManagementException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the visibility configuration mapping for the provided application.
|
||||||
|
*
|
||||||
|
* @param applicationID The ID of the application
|
||||||
|
*/
|
||||||
|
void remove(int applicationID) throws VisibilityManagementException;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,26 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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.common.services;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* VisibilityTypeManager is responsible for handling all the operations related to VisibilityType, this includes
|
|
||||||
* creating, updating and viewing the {@link org.wso2.carbon.device.application.mgt.common.Visibility.Type}
|
|
||||||
*/
|
|
||||||
public interface VisibilityTypeManager {
|
|
||||||
}
|
|
||||||
@ -18,5 +18,8 @@
|
|||||||
*/
|
*/
|
||||||
package org.wso2.carbon.device.application.mgt.core.dao;
|
package org.wso2.carbon.device.application.mgt.core.dao;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This interface specifies the database access operations performed for comments.
|
||||||
|
*/
|
||||||
public interface CommentDAO {
|
public interface CommentDAO {
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,22 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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.core.dao;
|
|
||||||
|
|
||||||
public interface ResourceTypeDAO {
|
|
||||||
}
|
|
||||||
@ -18,5 +18,9 @@
|
|||||||
*/
|
*/
|
||||||
package org.wso2.carbon.device.application.mgt.core.dao;
|
package org.wso2.carbon.device.application.mgt.core.dao;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This interface provides the list of operations that are supported with subscription database.
|
||||||
|
*
|
||||||
|
*/
|
||||||
public interface SubscriptionDAO {
|
public interface SubscriptionDAO {
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,5 +18,25 @@
|
|||||||
*/
|
*/
|
||||||
package org.wso2.carbon.device.application.mgt.core.dao;
|
package org.wso2.carbon.device.application.mgt.core.dao;
|
||||||
|
|
||||||
|
import org.wso2.carbon.device.application.mgt.common.Visibility;
|
||||||
|
import org.wso2.carbon.device.application.mgt.core.exception.VisibilityManagementDAOException;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This interface provides the list of operations that are performed in the database
|
||||||
|
* layer with respect to the visibility.
|
||||||
|
*
|
||||||
|
*/
|
||||||
public interface VisibilityDAO {
|
public interface VisibilityDAO {
|
||||||
|
|
||||||
|
int getVisibilityID(Visibility.Type visibilityType) throws VisibilityManagementDAOException;
|
||||||
|
|
||||||
|
void add(int applicationID, int visibilityTypeID, List<String> allowedList)
|
||||||
|
throws VisibilityManagementDAOException;
|
||||||
|
|
||||||
|
void delete(int applicationId) throws VisibilityManagementDAOException;
|
||||||
|
|
||||||
|
Visibility get(int applicationID) throws VisibilityManagementDAOException;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -26,12 +26,14 @@ import org.wso2.carbon.device.application.mgt.core.dao.ApplicationDAO;
|
|||||||
import org.wso2.carbon.device.application.mgt.core.dao.ApplicationReleaseDAO;
|
import org.wso2.carbon.device.application.mgt.core.dao.ApplicationReleaseDAO;
|
||||||
import org.wso2.carbon.device.application.mgt.core.dao.LifecycleStateDAO;
|
import org.wso2.carbon.device.application.mgt.core.dao.LifecycleStateDAO;
|
||||||
import org.wso2.carbon.device.application.mgt.core.dao.PlatformDAO;
|
import org.wso2.carbon.device.application.mgt.core.dao.PlatformDAO;
|
||||||
|
import org.wso2.carbon.device.application.mgt.core.dao.VisibilityDAO;
|
||||||
import org.wso2.carbon.device.application.mgt.core.dao.impl.application.GenericApplicationDAOImpl;
|
import org.wso2.carbon.device.application.mgt.core.dao.impl.application.GenericApplicationDAOImpl;
|
||||||
import org.wso2.carbon.device.application.mgt.core.dao.impl.application.release.GenericApplicationReleaseDAOImpl;
|
import org.wso2.carbon.device.application.mgt.core.dao.impl.application.release.GenericApplicationReleaseDAOImpl;
|
||||||
import org.wso2.carbon.device.application.mgt.core.dao.impl.application.release.OracleApplicationDAOImpl;
|
import org.wso2.carbon.device.application.mgt.core.dao.impl.application.release.OracleApplicationDAOImpl;
|
||||||
import org.wso2.carbon.device.application.mgt.core.dao.impl.lifecyclestate.GenericLifecycleStateImpl;
|
import org.wso2.carbon.device.application.mgt.core.dao.impl.lifecyclestate.GenericLifecycleStateImpl;
|
||||||
import org.wso2.carbon.device.application.mgt.core.dao.impl.platform.GenericPlatformDAOImpl;
|
import org.wso2.carbon.device.application.mgt.core.dao.impl.platform.GenericPlatformDAOImpl;
|
||||||
import org.wso2.carbon.device.application.mgt.core.dao.impl.platform.OracleMsSQLPlatformDAOImpl;
|
import org.wso2.carbon.device.application.mgt.core.dao.impl.platform.OracleMsSQLPlatformDAOImpl;
|
||||||
|
import org.wso2.carbon.device.application.mgt.core.dao.impl.visibility.GenericVisibilityDAOImpl;
|
||||||
import org.wso2.carbon.device.application.mgt.core.exception.ApplicationManagementDAOException;
|
import org.wso2.carbon.device.application.mgt.core.exception.ApplicationManagementDAOException;
|
||||||
import org.wso2.carbon.device.application.mgt.core.util.ApplicationMgtDatabaseCreator;
|
import org.wso2.carbon.device.application.mgt.core.util.ApplicationMgtDatabaseCreator;
|
||||||
import org.wso2.carbon.device.application.mgt.core.util.ConnectionManagerUtil;
|
import org.wso2.carbon.device.application.mgt.core.util.ConnectionManagerUtil;
|
||||||
@ -106,6 +108,7 @@ public class DAOFactory {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* To get the instance of ApplicationReleaseDAOImplementation of the particular database engine.
|
* To get the instance of ApplicationReleaseDAOImplementation of the particular database engine.
|
||||||
|
*
|
||||||
* @return specific ApplicationReleaseDAOImplementation
|
* @return specific ApplicationReleaseDAOImplementation
|
||||||
*/
|
*/
|
||||||
public static ApplicationReleaseDAO getApplicationReleaseDAO() {
|
public static ApplicationReleaseDAO getApplicationReleaseDAO() {
|
||||||
@ -123,6 +126,24 @@ public class DAOFactory {
|
|||||||
throw new IllegalStateException("Database engine has not initialized properly.");
|
throw new IllegalStateException("Database engine has not initialized properly.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* To get the instance of VisibilityDAOImplementation of the particular database engine.
|
||||||
|
*
|
||||||
|
* @return specific VisibilityDAOImplementation
|
||||||
|
*/
|
||||||
|
public static VisibilityDAO getVisibilityDAO() {
|
||||||
|
if (databaseEngine != null) {
|
||||||
|
switch (databaseEngine) {
|
||||||
|
case Constants.DataBaseTypes.DB_TYPE_H2:
|
||||||
|
case Constants.DataBaseTypes.DB_TYPE_MYSQL:
|
||||||
|
return new GenericVisibilityDAOImpl();
|
||||||
|
default:
|
||||||
|
throw new UnsupportedDatabaseEngineException("Unsupported database engine : " + databaseEngine);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new IllegalStateException("Database engine has not initialized properly.");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method initializes the databases by creating the database.
|
* This method initializes the databases by creating the database.
|
||||||
*
|
*
|
||||||
|
|||||||
@ -59,7 +59,6 @@ public class Util {
|
|||||||
application.setId(rs.getInt("ID"));
|
application.setId(rs.getInt("ID"));
|
||||||
application.setName(rs.getString("NAME"));
|
application.setName(rs.getString("NAME"));
|
||||||
application.setUuid(rs.getString("UUID"));
|
application.setUuid(rs.getString("UUID"));
|
||||||
application.setIdentifier(rs.getString("IDENTIFIER"));
|
|
||||||
application.setShortDescription(rs.getString("SHORT_DESCRIPTION"));
|
application.setShortDescription(rs.getString("SHORT_DESCRIPTION"));
|
||||||
application.setDescription(rs.getString("DESCRIPTION"));
|
application.setDescription(rs.getString("DESCRIPTION"));
|
||||||
application.setScreenShotCount(rs.getInt("SCREEN_SHOT_COUNT"));
|
application.setScreenShotCount(rs.getInt("SCREEN_SHOT_COUNT"));
|
||||||
|
|||||||
@ -31,9 +31,4 @@ public abstract class AbstractDAOImpl {
|
|||||||
protected Connection getDBConnection() throws DBConnectionException {
|
protected Connection getDBConnection() throws DBConnectionException {
|
||||||
return ConnectionManagerUtil.getDBConnection();
|
return ConnectionManagerUtil.getDBConnection();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
protected Connection getConnection() throws DBConnectionException {
|
|
||||||
return ConnectionManagerUtil.getConnection();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -39,7 +39,6 @@ import java.sql.Date;
|
|||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.sql.Statement;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -68,15 +67,14 @@ public class GenericApplicationDAOImpl extends AbstractDAOImpl implements Applic
|
|||||||
int index = 0;
|
int index = 0;
|
||||||
try {
|
try {
|
||||||
conn = this.getDBConnection();
|
conn = this.getDBConnection();
|
||||||
sql += "INSERT INTO APPM_APPLICATION (UUID, IDENTIFIER, NAME, SHORT_DESCRIPTION, DESCRIPTION, "
|
sql += "INSERT INTO APPM_APPLICATION (UUID, NAME, SHORT_DESCRIPTION, DESCRIPTION, "
|
||||||
+ "VIDEO_NAME, SCREEN_SHOT_COUNT, CREATED_BY, CREATED_AT, MODIFIED_AT, "
|
+ "VIDEO_NAME, SCREEN_SHOT_COUNT, CREATED_BY, CREATED_AT, MODIFIED_AT, "
|
||||||
+ "APPLICATION_CATEGORY_ID, PLATFORM_ID, TENANT_ID, LIFECYCLE_STATE_ID, "
|
+ "APPLICATION_CATEGORY_ID, PLATFORM_ID, TENANT_ID, LIFECYCLE_STATE_ID, "
|
||||||
+ "LIFECYCLE_STATE_MODIFIED_AT, LIFECYCLE_STATE_MODIFIED_BY) VALUES "
|
+ "LIFECYCLE_STATE_MODIFIED_AT, LIFECYCLE_STATE_MODIFIED_BY) VALUES "
|
||||||
+ "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
+ "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
||||||
|
|
||||||
stmt = conn.prepareStatement(sql, generatedColumns);
|
stmt = conn.prepareStatement(sql, generatedColumns);
|
||||||
stmt.setString(++index, application.getUuid());
|
stmt.setString(++index, application.getUuid());
|
||||||
stmt.setString(++index, application.getIdentifier());
|
|
||||||
stmt.setString(++index, application.getName());
|
stmt.setString(++index, application.getName());
|
||||||
stmt.setString(++index, application.getShortDescription());
|
stmt.setString(++index, application.getShortDescription());
|
||||||
stmt.setString(++index, application.getDescription());
|
stmt.setString(++index, application.getDescription());
|
||||||
@ -240,7 +238,7 @@ public class GenericApplicationDAOImpl extends AbstractDAOImpl implements Applic
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
conn = this.getConnection();
|
conn = this.getDBConnection();
|
||||||
sql += "SELECT COUNT(APP.ID) AS APP_COUNT ";
|
sql += "SELECT COUNT(APP.ID) AS APP_COUNT ";
|
||||||
sql += "FROM APPM_APPLICATION AS APP ";
|
sql += "FROM APPM_APPLICATION AS APP ";
|
||||||
sql += "INNER JOIN APPM_PLATFORM AS APL ON APP.PLATFORM_ID = APL.ID ";
|
sql += "INNER JOIN APPM_PLATFORM AS APL ON APP.PLATFORM_ID = APL.ID ";
|
||||||
|
|||||||
@ -32,7 +32,6 @@ import java.sql.Date;
|
|||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.sql.Statement;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -56,7 +55,7 @@ public class GenericApplicationReleaseDAOImpl extends AbstractDAOImpl implements
|
|||||||
String sql = "insert into APPM_APPLICATION_RELEASE(VERSION_NAME, RELEASE_RESOURCE, RELEASE_CHANNEL ,"
|
String sql = "insert into APPM_APPLICATION_RELEASE(VERSION_NAME, RELEASE_RESOURCE, RELEASE_CHANNEL ,"
|
||||||
+ "RELEASE_DETAILS, CREATED_AT, APPM_APPLICATION_ID, IS_DEFAULT) values (?, ?, ?, ?, ?, ?, ?)";
|
+ "RELEASE_DETAILS, CREATED_AT, APPM_APPLICATION_ID, IS_DEFAULT) values (?, ?, ?, ?, ?, ?, ?)";
|
||||||
int index = 0;
|
int index = 0;
|
||||||
String generatedColumns[] = { "ID" };
|
String generatedColumns[] = {"ID"};
|
||||||
try {
|
try {
|
||||||
connection = this.getDBConnection();
|
connection = this.getDBConnection();
|
||||||
statement = connection.prepareStatement(sql, generatedColumns);
|
statement = connection.prepareStatement(sql, generatedColumns);
|
||||||
@ -199,9 +198,9 @@ public class GenericApplicationReleaseDAOImpl extends AbstractDAOImpl implements
|
|||||||
throws ApplicationManagementDAOException {
|
throws ApplicationManagementDAOException {
|
||||||
Connection connection;
|
Connection connection;
|
||||||
PreparedStatement statement = null;
|
PreparedStatement statement = null;
|
||||||
String sql = "UPDATE APPM_APPLICATION_RELEASE SET RELEASE_RESOURCE = IFNULL (?, RELEASE_RESOURCE), RELEASE_CHANNEL = IFNULL "
|
String sql = "UPDATE APPM_APPLICATION_RELEASE SET RELEASE_RESOURCE = IFNULL (?, RELEASE_RESOURCE)," +
|
||||||
+ "(?, RELEASE_CHANNEL), RELEASE_DETAILS = IFNULL (?, RELEASE_DETAILS), IS_DEFAULT = IFNULL "
|
" RELEASE_CHANNEL = IFNULL (?, RELEASE_CHANNEL), RELEASE_DETAILS = IFNULL (?, RELEASE_DETAILS), " +
|
||||||
+ "(?, IS_DEFAULT) WHERE APPM_APPLICATION_ID = ? AND VERSION_NAME = ?";
|
"IS_DEFAULT = IFNULL (?, IS_DEFAULT) WHERE APPM_APPLICATION_ID = ? AND VERSION_NAME = ?";
|
||||||
try {
|
try {
|
||||||
connection = this.getDBConnection();
|
connection = this.getDBConnection();
|
||||||
statement = connection.prepareStatement(sql);
|
statement = connection.prepareStatement(sql);
|
||||||
@ -311,6 +310,7 @@ public class GenericApplicationReleaseDAOImpl extends AbstractDAOImpl implements
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* To insert the application release properties.
|
* To insert the application release properties.
|
||||||
|
*
|
||||||
* @param connection Database Connection
|
* @param connection Database Connection
|
||||||
* @param applicationRelease Application Release the properties of which that need to be inserted.
|
* @param applicationRelease Application Release the properties of which that need to be inserted.
|
||||||
* @throws SQLException SQL Exception.
|
* @throws SQLException SQL Exception.
|
||||||
|
|||||||
@ -44,11 +44,9 @@ public class GenericLifecycleStateImpl extends AbstractDAOImpl implements Lifecy
|
|||||||
Connection conn = null;
|
Connection conn = null;
|
||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
ResultSet rs = null;
|
ResultSet rs = null;
|
||||||
String sql = "";
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
conn = this.getDBConnection();
|
conn = this.getDBConnection();
|
||||||
sql += "SELECT * FROM APPM_LIFECYCLE_STATE WHERE IDENTIFIER = ? ";
|
String sql = "SELECT * FROM APPM_LIFECYCLE_STATE WHERE IDENTIFIER = ? ";
|
||||||
|
|
||||||
stmt = conn.prepareStatement(sql);
|
stmt = conn.prepareStatement(sql);
|
||||||
stmt.setString(1, identifier);
|
stmt.setString(1, identifier);
|
||||||
|
|||||||
@ -0,0 +1,156 @@
|
|||||||
|
/*
|
||||||
|
* 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.core.dao.impl.visibility;
|
||||||
|
|
||||||
|
import org.wso2.carbon.device.application.mgt.common.Visibility;
|
||||||
|
import org.wso2.carbon.device.application.mgt.common.exception.DBConnectionException;
|
||||||
|
import org.wso2.carbon.device.application.mgt.core.dao.VisibilityDAO;
|
||||||
|
import org.wso2.carbon.device.application.mgt.core.dao.common.Util;
|
||||||
|
import org.wso2.carbon.device.application.mgt.core.dao.impl.AbstractDAOImpl;
|
||||||
|
import org.wso2.carbon.device.application.mgt.core.exception.VisibilityManagementDAOException;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generic database level implementation for the DAO which can be used by different databases.
|
||||||
|
*/
|
||||||
|
public class GenericVisibilityDAOImpl extends AbstractDAOImpl implements VisibilityDAO {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getVisibilityID(Visibility.Type visibilityType) throws VisibilityManagementDAOException {
|
||||||
|
PreparedStatement stmt = null;
|
||||||
|
ResultSet resultSet = null;
|
||||||
|
try {
|
||||||
|
Connection connection = getDBConnection();
|
||||||
|
String sql = "SELECT ID FROM APPM_RESOURCE_TYPE WHERE NAME = ?";
|
||||||
|
stmt = connection.prepareStatement(sql);
|
||||||
|
stmt.setString(1, visibilityType.toString().toUpperCase());
|
||||||
|
resultSet = stmt.executeQuery();
|
||||||
|
if (resultSet.next()) {
|
||||||
|
return resultSet.getInt("ID");
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
} catch (DBConnectionException e) {
|
||||||
|
throw new VisibilityManagementDAOException("Error occurred while obtaining the connection " +
|
||||||
|
"for the visibility management of applications", e);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new VisibilityManagementDAOException("Error occurred when trying to get the ID of the" +
|
||||||
|
" visibility type - " + visibilityType.toString(), e);
|
||||||
|
} finally {
|
||||||
|
Util.cleanupResources(stmt, resultSet);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void add(int applicationID, int visibilityTypeID, List<String> allowedList)
|
||||||
|
throws VisibilityManagementDAOException {
|
||||||
|
PreparedStatement stmt = null;
|
||||||
|
try {
|
||||||
|
Connection connection = getDBConnection();
|
||||||
|
String sql = "INSERT INTO APPM_VISIBILITY (VALUE, RESOURCE_TYPE_ID, APPLICATION_ID) VALUES (?, ?, ?)";
|
||||||
|
stmt = connection.prepareStatement(sql);
|
||||||
|
if (allowedList == null) {
|
||||||
|
stmt.setString(1, null);
|
||||||
|
stmt.setInt(2, visibilityTypeID);
|
||||||
|
stmt.setInt(3, applicationID);
|
||||||
|
stmt.execute();
|
||||||
|
} else {
|
||||||
|
for (String allowed : allowedList) {
|
||||||
|
stmt.setString(1, allowed);
|
||||||
|
stmt.setInt(2, visibilityTypeID);
|
||||||
|
stmt.setInt(3, applicationID);
|
||||||
|
stmt.addBatch();
|
||||||
|
}
|
||||||
|
stmt.executeBatch();
|
||||||
|
}
|
||||||
|
} catch (DBConnectionException e) {
|
||||||
|
throw new VisibilityManagementDAOException("Error occurred while obtaining the connection " +
|
||||||
|
"for adding the visibility mapping for the application ID - " + applicationID, e);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new VisibilityManagementDAOException("Error occurred while adding the visibility mapping " +
|
||||||
|
"for the application ID - " + applicationID, e);
|
||||||
|
} finally {
|
||||||
|
Util.cleanupResources(stmt, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void delete(int applicationId) throws VisibilityManagementDAOException {
|
||||||
|
PreparedStatement stmt = null;
|
||||||
|
try {
|
||||||
|
Connection connection = getDBConnection();
|
||||||
|
String sql = "DELETE FROM APPM_VISIBILITY WHERE APPLICATION_ID = ?";
|
||||||
|
stmt = connection.prepareStatement(sql);
|
||||||
|
stmt.setInt(1, applicationId);
|
||||||
|
stmt.execute();
|
||||||
|
} catch (DBConnectionException e) {
|
||||||
|
throw new VisibilityManagementDAOException("Error occurred while obtaining the connection " +
|
||||||
|
"for deleting the visibility mapping for the application ID - " + applicationId, e);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new VisibilityManagementDAOException("Error occurred while deleting the visibility mapping " +
|
||||||
|
"for the application ID - " + applicationId, e);
|
||||||
|
} finally {
|
||||||
|
Util.cleanupResources(stmt, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Visibility get(int applicationId) throws VisibilityManagementDAOException {
|
||||||
|
PreparedStatement stmt = null;
|
||||||
|
ResultSet resultSet = null;
|
||||||
|
final String visibilityTypeColumn = "VISIBILITY_TYPE";
|
||||||
|
final String allowedValColumn = "ALLOWED_VAL";
|
||||||
|
try {
|
||||||
|
Connection connection = getDBConnection();
|
||||||
|
String sql = "SELECT APPM_VISIBILITY.VALUE as " + allowedValColumn + ", APPM_RESOURCE_TYPE.NAME AS " +
|
||||||
|
visibilityTypeColumn + " FROM APPM_VISIBILITY JOIN APPM_RESOURCE_TYPE " +
|
||||||
|
"ON APPM_VISIBILITY.RESOURCE_TYPE_ID = APPM_RESOURCE_TYPE.ID " +
|
||||||
|
"WHERE APPM_VISIBILITY.APPLICATION_ID = ?";
|
||||||
|
stmt = connection.prepareStatement(sql);
|
||||||
|
stmt.setInt(1, applicationId);
|
||||||
|
resultSet = stmt.executeQuery();
|
||||||
|
Visibility visibility = new Visibility();
|
||||||
|
List<String> allowedVal = new ArrayList<>();
|
||||||
|
while (resultSet.next()) {
|
||||||
|
if (visibility.getType() == null) {
|
||||||
|
visibility.setType(Visibility.Type.valueOf(resultSet.getString(visibilityTypeColumn)));
|
||||||
|
}
|
||||||
|
String val = resultSet.getString(allowedValColumn);
|
||||||
|
if (val != null) {
|
||||||
|
allowedVal.add(val);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!allowedVal.isEmpty()) {
|
||||||
|
visibility.setAllowedList(allowedVal);
|
||||||
|
}
|
||||||
|
return visibility;
|
||||||
|
} catch (DBConnectionException e) {
|
||||||
|
throw new VisibilityManagementDAOException("Error occurred while obtaining the connection " +
|
||||||
|
"for getting the visibility mapping for the application ID - " + applicationId, e);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new VisibilityManagementDAOException("Error occurred while getting the visibility mapping " +
|
||||||
|
"for the application ID - " + applicationId, e);
|
||||||
|
} finally {
|
||||||
|
Util.cleanupResources(stmt, resultSet);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,35 @@
|
|||||||
|
/*
|
||||||
|
* 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.core.exception;
|
||||||
|
|
||||||
|
import org.wso2.carbon.device.application.mgt.common.exception.ApplicationManagementException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the specialized exception which is thrown when there are database level problems encountered
|
||||||
|
* when performing the visibility management
|
||||||
|
*/
|
||||||
|
public class VisibilityManagementDAOException extends ApplicationManagementException {
|
||||||
|
|
||||||
|
public VisibilityManagementDAOException(String message, Throwable throwable) {
|
||||||
|
super(message, throwable);
|
||||||
|
}
|
||||||
|
|
||||||
|
public VisibilityManagementDAOException(String message) {
|
||||||
|
super(message, new Exception());
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -30,11 +30,11 @@ import org.wso2.carbon.device.application.mgt.common.LifecycleState;
|
|||||||
import org.wso2.carbon.device.application.mgt.common.LifecycleStateTransition;
|
import org.wso2.carbon.device.application.mgt.common.LifecycleStateTransition;
|
||||||
import org.wso2.carbon.device.application.mgt.common.Platform;
|
import org.wso2.carbon.device.application.mgt.common.Platform;
|
||||||
import org.wso2.carbon.device.application.mgt.common.User;
|
import org.wso2.carbon.device.application.mgt.common.User;
|
||||||
|
import org.wso2.carbon.device.application.mgt.common.Visibility;
|
||||||
import org.wso2.carbon.device.application.mgt.common.exception.ApplicationManagementException;
|
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.ApplicationManager;
|
||||||
import org.wso2.carbon.device.application.mgt.core.dao.ApplicationDAO;
|
import org.wso2.carbon.device.application.mgt.core.dao.ApplicationDAO;
|
||||||
import org.wso2.carbon.device.application.mgt.core.dao.LifecycleStateDAO;
|
import org.wso2.carbon.device.application.mgt.core.dao.LifecycleStateDAO;
|
||||||
import org.wso2.carbon.device.application.mgt.core.dao.PlatformDAO;
|
|
||||||
import org.wso2.carbon.device.application.mgt.core.dao.common.DAOFactory;
|
import org.wso2.carbon.device.application.mgt.core.dao.common.DAOFactory;
|
||||||
import org.wso2.carbon.device.application.mgt.core.exception.ApplicationManagementDAOException;
|
import org.wso2.carbon.device.application.mgt.core.exception.ApplicationManagementDAOException;
|
||||||
import org.wso2.carbon.device.application.mgt.core.exception.NotFoundException;
|
import org.wso2.carbon.device.application.mgt.core.exception.NotFoundException;
|
||||||
@ -71,14 +71,15 @@ public class ApplicationManagerImpl implements ApplicationManager {
|
|||||||
application.setCreatedAt(new Date());
|
application.setCreatedAt(new Date());
|
||||||
application.setModifiedAt(new Date());
|
application.setModifiedAt(new Date());
|
||||||
try {
|
try {
|
||||||
ConnectionManagerUtil.beginDBTransaction();
|
Platform platform = DataHolder.getInstance().getPlatformManager().getPlatform(application.getUser()
|
||||||
|
.getTenantId(), application.getPlatform().getIdentifier());
|
||||||
|
|
||||||
// Validating the platform
|
|
||||||
Platform platform = DAOFactory.getPlatformDAO()
|
|
||||||
.getPlatform(application.getUser().getTenantId(), application.getPlatform().getIdentifier());
|
|
||||||
if (platform == null) {
|
if (platform == null) {
|
||||||
throw new NotFoundException("Invalid platform");
|
throw new NotFoundException("Invalid platform");
|
||||||
}
|
}
|
||||||
|
ConnectionManagerUtil.beginDBTransaction();
|
||||||
|
|
||||||
|
// Validating the platform
|
||||||
application.setPlatform(platform);
|
application.setPlatform(platform);
|
||||||
if (log.isDebugEnabled()) {
|
if (log.isDebugEnabled()) {
|
||||||
log.debug("Application creation pre-conditions are met and the platform mentioned by identifier "
|
log.debug("Application creation pre-conditions are met and the platform mentioned by identifier "
|
||||||
@ -97,6 +98,7 @@ public class ApplicationManagerImpl implements ApplicationManager {
|
|||||||
application.setCurrentLifecycle(lifecycle);
|
application.setCurrentLifecycle(lifecycle);
|
||||||
|
|
||||||
application = DAOFactory.getApplicationDAO().createApplication(application);
|
application = DAOFactory.getApplicationDAO().createApplication(application);
|
||||||
|
DataHolder.getInstance().getVisibilityManager().put(application.getId(), application.getVisibility());
|
||||||
ConnectionManagerUtil.commitDBTransaction();
|
ConnectionManagerUtil.commitDBTransaction();
|
||||||
return application;
|
return application;
|
||||||
} catch (ApplicationManagementException e) {
|
} catch (ApplicationManagementException e) {
|
||||||
@ -120,24 +122,27 @@ public class ApplicationManagerImpl implements ApplicationManager {
|
|||||||
+ "application with the UUID " + application.getUuid());
|
+ "application with the UUID " + application.getUuid());
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
ConnectionManagerUtil.beginDBTransaction();
|
|
||||||
if (application.getPlatform() != null && application.getPlatform().getIdentifier() != null) {
|
if (application.getPlatform() != null && application.getPlatform().getIdentifier() != null) {
|
||||||
PlatformDAO platformDAO = DAOFactory.getPlatformDAO();
|
Platform platform = DataHolder.getInstance().getPlatformManager()
|
||||||
Platform platform = platformDAO
|
|
||||||
.getPlatform(tenantId, application.getPlatform().getIdentifier());
|
.getPlatform(tenantId, application.getPlatform().getIdentifier());
|
||||||
if (platform == null) {
|
if (platform == null) {
|
||||||
ConnectionManagerUtil.commitDBTransaction();
|
|
||||||
throw new NotFoundException(
|
throw new NotFoundException(
|
||||||
"Platform specified by identifier " + application.getPlatform().getIdentifier()
|
"Platform specified by identifier " + application.getPlatform().getIdentifier()
|
||||||
+ " is not found. Please give a valid platform identifier.");
|
+ " is not found. Please give a valid platform identifier.");
|
||||||
}
|
}
|
||||||
application.setPlatform(platform);
|
application.setPlatform(platform);
|
||||||
}
|
ConnectionManagerUtil.beginDBTransaction();
|
||||||
ApplicationDAO applicationDAO = DAOFactory.getApplicationDAO();
|
ApplicationDAO applicationDAO = DAOFactory.getApplicationDAO();
|
||||||
application.setModifiedAt(new Date());
|
application.setModifiedAt(new Date());
|
||||||
Application modifiedApplication = applicationDAO.editApplication(application, tenantId);
|
Application modifiedApplication = applicationDAO.editApplication(application, tenantId);
|
||||||
|
Visibility visibility = DataHolder.getInstance().getVisibilityManager().put(application.getId(),
|
||||||
|
application.getVisibility());
|
||||||
|
modifiedApplication.setVisibility(visibility);
|
||||||
ConnectionManagerUtil.commitDBTransaction();
|
ConnectionManagerUtil.commitDBTransaction();
|
||||||
return modifiedApplication;
|
return modifiedApplication;
|
||||||
|
} else {
|
||||||
|
throw new NotFoundException("Platform information not available with the application!");
|
||||||
|
}
|
||||||
} catch (ApplicationManagementDAOException e) {
|
} catch (ApplicationManagementDAOException e) {
|
||||||
ConnectionManagerUtil.rollbackDBTransaction();
|
ConnectionManagerUtil.rollbackDBTransaction();
|
||||||
throw e;
|
throw e;
|
||||||
@ -160,6 +165,7 @@ public class ApplicationManagerImpl implements ApplicationManager {
|
|||||||
int appId = applicationDAO.getApplicationId(uuid, tenantId);
|
int appId = applicationDAO.getApplicationId(uuid, tenantId);
|
||||||
applicationDAO.deleteTags(appId);
|
applicationDAO.deleteTags(appId);
|
||||||
applicationDAO.deleteProperties(appId);
|
applicationDAO.deleteProperties(appId);
|
||||||
|
DataHolder.getInstance().getVisibilityManager().remove(appId);
|
||||||
applicationDAO.deleteApplication(uuid, tenantId);
|
applicationDAO.deleteApplication(uuid, tenantId);
|
||||||
ConnectionManagerUtil.commitDBTransaction();
|
ConnectionManagerUtil.commitDBTransaction();
|
||||||
} catch (ApplicationManagementDAOException e) {
|
} catch (ApplicationManagementDAOException e) {
|
||||||
@ -189,7 +195,11 @@ public class ApplicationManagerImpl implements ApplicationManager {
|
|||||||
try {
|
try {
|
||||||
ConnectionManagerUtil.openDBConnection();
|
ConnectionManagerUtil.openDBConnection();
|
||||||
ApplicationDAO applicationDAO = DAOFactory.getApplicationDAO();
|
ApplicationDAO applicationDAO = DAOFactory.getApplicationDAO();
|
||||||
return applicationDAO.getApplications(filter, tenantId);
|
ApplicationList applicationList = applicationDAO.getApplications(filter, tenantId);
|
||||||
|
for (Application application : applicationList.getApplications()) {
|
||||||
|
application.setVisibility(DataHolder.getInstance().getVisibilityManager().get(application.getId()));
|
||||||
|
}
|
||||||
|
return applicationList;
|
||||||
} finally {
|
} finally {
|
||||||
ConnectionManagerUtil.closeDBConnection();
|
ConnectionManagerUtil.closeDBConnection();
|
||||||
}
|
}
|
||||||
@ -302,7 +312,11 @@ public class ApplicationManagerImpl implements ApplicationManager {
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
ConnectionManagerUtil.openDBConnection();
|
ConnectionManagerUtil.openDBConnection();
|
||||||
return DAOFactory.getApplicationDAO().getApplication(uuid, tenantId, userName);
|
Application application = DAOFactory.getApplicationDAO().getApplication(uuid, tenantId, userName);
|
||||||
|
if (application != null) {
|
||||||
|
application.setVisibility(DataHolder.getInstance().getVisibilityManager().get(application.getId()));
|
||||||
|
}
|
||||||
|
return application;
|
||||||
} finally {
|
} finally {
|
||||||
ConnectionManagerUtil.closeDBConnection();
|
ConnectionManagerUtil.closeDBConnection();
|
||||||
}
|
}
|
||||||
@ -344,12 +358,13 @@ public class ApplicationManagerImpl implements ApplicationManager {
|
|||||||
* @return true if the current user has the permission, otherwise false.
|
* @return true if the current user has the permission, otherwise false.
|
||||||
* @throws UserStoreException UserStoreException
|
* @throws UserStoreException UserStoreException
|
||||||
*/
|
*/
|
||||||
private boolean isAuthorized (String username, int tenantId, String permission) throws UserStoreException {
|
private boolean isAuthorized(String username, int tenantId, String permission) throws UserStoreException {
|
||||||
UserRealm userRealm = DataHolder.getInstance().getRealmService().getTenantUserRealm(tenantId);
|
UserRealm userRealm = DataHolder.getInstance().getRealmService().getTenantUserRealm(tenantId);
|
||||||
return userRealm != null && userRealm.getAuthorizationManager() != null && userRealm.getAuthorizationManager()
|
return userRealm != null && userRealm.getAuthorizationManager() != null && userRealm.getAuthorizationManager()
|
||||||
.isUserAuthorized(MultitenantUtils.getTenantAwareUsername(username),
|
.isUserAuthorized(MultitenantUtils.getTenantAwareUsername(username),
|
||||||
permission, CarbonConstants.UI_PERMISSION_ACTION);
|
permission, CarbonConstants.UI_PERMISSION_ACTION);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* To validate the application
|
* To validate the application
|
||||||
*
|
*
|
||||||
|
|||||||
@ -22,6 +22,10 @@ import org.wso2.carbon.device.application.mgt.common.Filter;
|
|||||||
import org.wso2.carbon.device.application.mgt.common.exception.ApplicationManagementException;
|
import org.wso2.carbon.device.application.mgt.common.exception.ApplicationManagementException;
|
||||||
import org.wso2.carbon.device.application.mgt.common.services.CategoryManager;
|
import org.wso2.carbon.device.application.mgt.common.services.CategoryManager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class is the default implementation for the CategoryManager.
|
||||||
|
*
|
||||||
|
*/
|
||||||
public class CategoryManagerImpl implements CategoryManager {
|
public class CategoryManagerImpl implements CategoryManager {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -19,5 +19,8 @@ package org.wso2.carbon.device.application.mgt.core.impl;
|
|||||||
|
|
||||||
import org.wso2.carbon.device.application.mgt.common.services.CommentsManager;
|
import org.wso2.carbon.device.application.mgt.common.services.CommentsManager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class is the default implementation for the Managing the comments.
|
||||||
|
*/
|
||||||
public class CommentsManagerImpl implements CommentsManager {
|
public class CommentsManagerImpl implements CommentsManager {
|
||||||
}
|
}
|
||||||
|
|||||||
@ -25,12 +25,17 @@ import org.wso2.carbon.device.application.mgt.common.services.SubscriptionManage
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the default implementation for the Subscription Manager.
|
||||||
|
*/
|
||||||
public class SubscriptionManagerImpl implements SubscriptionManager {
|
public class SubscriptionManagerImpl implements SubscriptionManager {
|
||||||
|
|
||||||
private static final Log log = LogFactory.getLog(SubscriptionManagerImpl.class);
|
private static final Log log = LogFactory.getLog(SubscriptionManagerImpl.class);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<DeviceIdentifier> installApplicationForDevices(String applicationUUID, List<DeviceIdentifier> deviceList) throws ApplicationManagementException {
|
public List<DeviceIdentifier> installApplicationForDevices(String applicationUUID,
|
||||||
|
List<DeviceIdentifier> deviceList)
|
||||||
|
throws ApplicationManagementException {
|
||||||
log.info("Install application: " + applicationUUID + " to: " + deviceList.size() + " devices.");
|
log.info("Install application: " + applicationUUID + " to: " + deviceList.size() + " devices.");
|
||||||
for (DeviceIdentifier device : deviceList) {
|
for (DeviceIdentifier device : deviceList) {
|
||||||
String deviceId = device.getId();
|
String deviceId = device.getId();
|
||||||
@ -42,7 +47,8 @@ public class SubscriptionManagerImpl implements SubscriptionManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> installApplicationForUsers(String applicationUUID, List<String> userList) throws ApplicationManagementException {
|
public List<String> installApplicationForUsers(String applicationUUID, List<String> userList)
|
||||||
|
throws ApplicationManagementException {
|
||||||
log.info("Install application: " + applicationUUID + " to: " + userList.size() + " users.");
|
log.info("Install application: " + applicationUUID + " to: " + userList.size() + " users.");
|
||||||
for (String user : userList) {
|
for (String user : userList) {
|
||||||
//Todo: implementation
|
//Todo: implementation
|
||||||
@ -51,7 +57,8 @@ public class SubscriptionManagerImpl implements SubscriptionManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> installApplicationForRoles(String applicationUUID, List<String> roleList) throws ApplicationManagementException {
|
public List<String> installApplicationForRoles(String applicationUUID, List<String> roleList)
|
||||||
|
throws ApplicationManagementException {
|
||||||
log.info("Install application: " + applicationUUID + " to: " + roleList.size() + " users.");
|
log.info("Install application: " + applicationUUID + " to: " + roleList.size() + " users.");
|
||||||
for (String role : roleList) {
|
for (String role : roleList) {
|
||||||
//Todo: implementation
|
//Todo: implementation
|
||||||
@ -60,7 +67,9 @@ public class SubscriptionManagerImpl implements SubscriptionManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<DeviceIdentifier> uninstallApplication(String applicationUUID, List<DeviceIdentifier> deviceList) throws ApplicationManagementException {
|
public List<DeviceIdentifier> uninstallApplication(String applicationUUID,
|
||||||
|
List<DeviceIdentifier> deviceList)
|
||||||
|
throws ApplicationManagementException {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,7 +17,96 @@
|
|||||||
*/
|
*/
|
||||||
package org.wso2.carbon.device.application.mgt.core.impl;
|
package org.wso2.carbon.device.application.mgt.core.impl;
|
||||||
|
|
||||||
|
import org.wso2.carbon.device.application.mgt.common.Visibility;
|
||||||
|
import org.wso2.carbon.device.application.mgt.common.exception.ApplicationManagementException;
|
||||||
|
import org.wso2.carbon.device.application.mgt.common.exception.VisibilityManagementException;
|
||||||
import org.wso2.carbon.device.application.mgt.common.services.VisibilityManager;
|
import org.wso2.carbon.device.application.mgt.common.services.VisibilityManager;
|
||||||
|
import org.wso2.carbon.device.application.mgt.core.dao.VisibilityDAO;
|
||||||
|
import org.wso2.carbon.device.application.mgt.core.dao.common.DAOFactory;
|
||||||
|
import org.wso2.carbon.device.application.mgt.core.util.ConnectionManagerUtil;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the default implementation for the visibility manager.
|
||||||
|
*/
|
||||||
|
public class VisibilityManagerImpl implements VisibilityManager {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Visibility put(int applicationID, Visibility visibility) throws VisibilityManagementException {
|
||||||
|
if (visibility == null) {
|
||||||
|
visibility = new Visibility();
|
||||||
|
visibility.setType(Visibility.Type.PUBLIC);
|
||||||
|
}
|
||||||
|
if (visibility.getAllowedList() == null && !visibility.getType().equals(Visibility.Type.PUBLIC)) {
|
||||||
|
throw new VisibilityManagementException("Visibility is configured for '" + visibility.getType()
|
||||||
|
+ "' but doesn't have any allowed list provided!");
|
||||||
|
}
|
||||||
|
boolean isTransactionStarted = false;
|
||||||
|
try {
|
||||||
|
isTransactionStarted = ConnectionManagerUtil.isTransactionStarted();
|
||||||
|
if (!isTransactionStarted) {
|
||||||
|
ConnectionManagerUtil.beginDBTransaction();
|
||||||
|
}
|
||||||
|
VisibilityDAO visibilityDAO = DAOFactory.getVisibilityDAO();
|
||||||
|
int visibilityTypeId = visibilityDAO.getVisibilityID(visibility.getType());
|
||||||
|
visibilityDAO.delete(applicationID);
|
||||||
|
visibilityDAO.add(applicationID, visibilityTypeId, visibility.getAllowedList());
|
||||||
|
if (!isTransactionStarted) {
|
||||||
|
ConnectionManagerUtil.commitDBTransaction();
|
||||||
|
}
|
||||||
|
return visibility;
|
||||||
|
} catch (ApplicationManagementException e) {
|
||||||
|
if (!isTransactionStarted) {
|
||||||
|
ConnectionManagerUtil.rollbackDBTransaction();
|
||||||
|
}
|
||||||
|
throw new VisibilityManagementException("Problem occured when trying to fetch the application with ID - "
|
||||||
|
+ applicationID, e);
|
||||||
|
} finally {
|
||||||
|
if (!isTransactionStarted) {
|
||||||
|
ConnectionManagerUtil.closeDBConnection();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Visibility get(int applicationID) throws VisibilityManagementException {
|
||||||
|
try {
|
||||||
|
VisibilityDAO visibilityDAO = DAOFactory.getVisibilityDAO();
|
||||||
|
Visibility visibility = visibilityDAO.get(applicationID);
|
||||||
|
if (visibility.getType() == null && (visibility.getAllowedList() == null ||
|
||||||
|
visibility.getAllowedList().isEmpty())) {
|
||||||
|
visibility.setType(Visibility.Type.PUBLIC);
|
||||||
|
}
|
||||||
|
return visibility;
|
||||||
|
} catch (ApplicationManagementException e) {
|
||||||
|
throw new VisibilityManagementException("Problem occured when trying to fetch the application with ID - "
|
||||||
|
+ applicationID, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void remove(int applicationID) throws VisibilityManagementException {
|
||||||
|
boolean isTransactionStarted = false;
|
||||||
|
try {
|
||||||
|
isTransactionStarted = ConnectionManagerUtil.isTransactionStarted();
|
||||||
|
if (!isTransactionStarted) {
|
||||||
|
ConnectionManagerUtil.beginDBTransaction();
|
||||||
|
}
|
||||||
|
VisibilityDAO visibilityDAO = DAOFactory.getVisibilityDAO();
|
||||||
|
visibilityDAO.delete(applicationID);
|
||||||
|
if (!isTransactionStarted) {
|
||||||
|
ConnectionManagerUtil.commitDBTransaction();
|
||||||
|
}
|
||||||
|
} catch (ApplicationManagementException e) {
|
||||||
|
if (!isTransactionStarted) {
|
||||||
|
ConnectionManagerUtil.rollbackDBTransaction();
|
||||||
|
}
|
||||||
|
throw new VisibilityManagementException("Problem occurred when trying to fetch the application with ID - "
|
||||||
|
+ applicationID, e);
|
||||||
|
} finally {
|
||||||
|
if (!isTransactionStarted) {
|
||||||
|
ConnectionManagerUtil.closeDBConnection();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class VisibilityManagerImpl implements VisibilityManager{
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,7 +27,6 @@ import org.wso2.carbon.device.application.mgt.common.services.LifecycleStateMana
|
|||||||
import org.wso2.carbon.device.application.mgt.common.services.PlatformManager;
|
import org.wso2.carbon.device.application.mgt.common.services.PlatformManager;
|
||||||
import org.wso2.carbon.device.application.mgt.common.services.SubscriptionManager;
|
import org.wso2.carbon.device.application.mgt.common.services.SubscriptionManager;
|
||||||
import org.wso2.carbon.device.application.mgt.common.services.VisibilityManager;
|
import org.wso2.carbon.device.application.mgt.common.services.VisibilityManager;
|
||||||
import org.wso2.carbon.device.application.mgt.common.services.VisibilityTypeManager;
|
|
||||||
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
|
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
|
||||||
import org.wso2.carbon.user.core.service.RealmService;
|
import org.wso2.carbon.user.core.service.RealmService;
|
||||||
|
|
||||||
@ -52,8 +51,6 @@ public class DataHolder {
|
|||||||
|
|
||||||
private PlatformManager platformManager;
|
private PlatformManager platformManager;
|
||||||
|
|
||||||
private VisibilityTypeManager visibilityTypeManager;
|
|
||||||
|
|
||||||
private SubscriptionManager subscriptionManager;
|
private SubscriptionManager subscriptionManager;
|
||||||
|
|
||||||
private VisibilityManager visibilityManager;
|
private VisibilityManager visibilityManager;
|
||||||
@ -126,14 +123,6 @@ public class DataHolder {
|
|||||||
this.platformManager = platformManager;
|
this.platformManager = platformManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
public VisibilityTypeManager getVisibilityTypeManager() {
|
|
||||||
return visibilityTypeManager;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setVisibilityTypeManager(VisibilityTypeManager visibilityTypeManager) {
|
|
||||||
this.visibilityTypeManager = visibilityTypeManager;
|
|
||||||
}
|
|
||||||
|
|
||||||
public SubscriptionManager getSubscriptionManager() {
|
public SubscriptionManager getSubscriptionManager() {
|
||||||
return subscriptionManager;
|
return subscriptionManager;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -32,7 +32,6 @@ import org.wso2.carbon.device.application.mgt.common.services.LifecycleStateMana
|
|||||||
import org.wso2.carbon.device.application.mgt.common.services.PlatformManager;
|
import org.wso2.carbon.device.application.mgt.common.services.PlatformManager;
|
||||||
import org.wso2.carbon.device.application.mgt.common.services.SubscriptionManager;
|
import org.wso2.carbon.device.application.mgt.common.services.SubscriptionManager;
|
||||||
import org.wso2.carbon.device.application.mgt.common.services.VisibilityManager;
|
import org.wso2.carbon.device.application.mgt.common.services.VisibilityManager;
|
||||||
import org.wso2.carbon.device.application.mgt.common.services.VisibilityTypeManager;
|
|
||||||
import org.wso2.carbon.device.application.mgt.core.config.ConfigurationManager;
|
import org.wso2.carbon.device.application.mgt.core.config.ConfigurationManager;
|
||||||
import org.wso2.carbon.device.application.mgt.core.dao.common.DAOFactory;
|
import org.wso2.carbon.device.application.mgt.core.dao.common.DAOFactory;
|
||||||
import org.wso2.carbon.device.application.mgt.core.exception.ApplicationManagementDAOException;
|
import org.wso2.carbon.device.application.mgt.core.exception.ApplicationManagementDAOException;
|
||||||
@ -113,10 +112,6 @@ public class ServiceComponent {
|
|||||||
DataHolder.getInstance().setVisibilityManager(visibilityManager);
|
DataHolder.getInstance().setVisibilityManager(visibilityManager);
|
||||||
bundleContext.registerService(VisibilityManager.class.getName(), visibilityManager, null);
|
bundleContext.registerService(VisibilityManager.class.getName(), visibilityManager, null);
|
||||||
|
|
||||||
VisibilityTypeManager visibilityTypeManager = ApplicationManagementUtil.getVisibilityTypeManagerInstance();
|
|
||||||
DataHolder.getInstance().setVisibilityTypeManager(visibilityTypeManager);
|
|
||||||
bundleContext.registerService(VisibilityTypeManager.class.getName(), visibilityTypeManager, null);
|
|
||||||
|
|
||||||
ApplicationStorageManager applicationStorageManager = ApplicationManagementUtil
|
ApplicationStorageManager applicationStorageManager = ApplicationManagementUtil
|
||||||
.getApplicationStorageManagerInstance();
|
.getApplicationStorageManagerInstance();
|
||||||
DataHolder.getInstance().setApplicationStorageManager(applicationStorageManager);
|
DataHolder.getInstance().setApplicationStorageManager(applicationStorageManager);
|
||||||
|
|||||||
@ -30,7 +30,6 @@ import org.wso2.carbon.device.application.mgt.common.services.LifecycleStateMana
|
|||||||
import org.wso2.carbon.device.application.mgt.common.services.PlatformManager;
|
import org.wso2.carbon.device.application.mgt.common.services.PlatformManager;
|
||||||
import org.wso2.carbon.device.application.mgt.common.services.SubscriptionManager;
|
import org.wso2.carbon.device.application.mgt.common.services.SubscriptionManager;
|
||||||
import org.wso2.carbon.device.application.mgt.common.services.VisibilityManager;
|
import org.wso2.carbon.device.application.mgt.common.services.VisibilityManager;
|
||||||
import org.wso2.carbon.device.application.mgt.common.services.VisibilityTypeManager;
|
|
||||||
import org.wso2.carbon.device.application.mgt.core.config.ConfigurationManager;
|
import org.wso2.carbon.device.application.mgt.core.config.ConfigurationManager;
|
||||||
import org.wso2.carbon.device.application.mgt.core.config.Extension;
|
import org.wso2.carbon.device.application.mgt.core.config.Extension;
|
||||||
|
|
||||||
@ -81,12 +80,6 @@ public class ApplicationManagementUtil {
|
|||||||
return getInstance(extension, PlatformManager.class);
|
return getInstance(extension, PlatformManager.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static VisibilityTypeManager getVisibilityTypeManagerInstance() throws InvalidConfigurationException {
|
|
||||||
ConfigurationManager configurationManager = ConfigurationManager.getInstance();
|
|
||||||
Extension extension = configurationManager.getExtension(Extension.Name.VisibilityTypeManager);
|
|
||||||
return getInstance(extension, VisibilityTypeManager.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static VisibilityManager getVisibilityManagerInstance() throws InvalidConfigurationException {
|
public static VisibilityManager getVisibilityManagerInstance() throws InvalidConfigurationException {
|
||||||
ConfigurationManager configurationManager = ConfigurationManager.getInstance();
|
ConfigurationManager configurationManager = ConfigurationManager.getInstance();
|
||||||
Extension extension = configurationManager.getExtension(Extension.Name.VisibilityManager);
|
Extension extension = configurationManager.getExtension(Extension.Name.VisibilityManager);
|
||||||
|
|||||||
@ -161,6 +161,11 @@ public class ConnectionManagerUtil {
|
|||||||
return inTransaction;
|
return inTransaction;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isTransactionStarted() throws DBConnectionException {
|
||||||
|
Connection connection = getDBConnection();
|
||||||
|
return inTransaction(connection);
|
||||||
|
}
|
||||||
|
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public static ThreadLocal<Connection> getCurrentConnection() {
|
public static ThreadLocal<Connection> getCurrentConnection() {
|
||||||
return currentConnection;
|
return currentConnection;
|
||||||
|
|||||||
@ -15,9 +15,10 @@ DESCRIPTION LONGVARCHAR,
|
|||||||
IS_SHARED BOOLEAN,
|
IS_SHARED BOOLEAN,
|
||||||
IS_DEFAULT_TENANT_MAPPING BOOLEAN,
|
IS_DEFAULT_TENANT_MAPPING BOOLEAN,
|
||||||
ICON_NAME VARCHAR (100),
|
ICON_NAME VARCHAR (100),
|
||||||
PRIMARY KEY (IDENTIFIER, TENANT_ID)
|
PRIMARY KEY (ID)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS APPM_PLATFORM_PROPERTIES (
|
CREATE TABLE IF NOT EXISTS APPM_PLATFORM_PROPERTIES (
|
||||||
ID INT NOT NULL AUTO_INCREMENT,
|
ID INT NOT NULL AUTO_INCREMENT,
|
||||||
PLATFORM_ID INT NOT NULL,
|
PLATFORM_ID INT NOT NULL,
|
||||||
@ -121,7 +122,6 @@ INSERT INTO APPM_LC_STATE_TRANSITION(INITIAL_STATE, NEXT_STATE, PERMISSION, DESC
|
|||||||
CREATE TABLE IF NOT EXISTS `APPM_APPLICATION` (
|
CREATE TABLE IF NOT EXISTS `APPM_APPLICATION` (
|
||||||
`ID` INT NOT NULL AUTO_INCREMENT,
|
`ID` INT NOT NULL AUTO_INCREMENT,
|
||||||
`UUID` VARCHAR(100) NOT NULL,
|
`UUID` VARCHAR(100) NOT NULL,
|
||||||
`IDENTIFIER` VARCHAR(255) NULL,
|
|
||||||
`NAME` VARCHAR(100) NOT NULL,
|
`NAME` VARCHAR(100) NOT NULL,
|
||||||
`SHORT_DESCRIPTION` VARCHAR(255) NULL,
|
`SHORT_DESCRIPTION` VARCHAR(255) NULL,
|
||||||
`DESCRIPTION` TEXT NULL,
|
`DESCRIPTION` TEXT NULL,
|
||||||
@ -220,6 +220,13 @@ CREATE TABLE IF NOT EXISTS APPM_RESOURCE_TYPE (
|
|||||||
DESCRIPTION TEXT NULL,
|
DESCRIPTION TEXT NULL,
|
||||||
PRIMARY KEY (ID));
|
PRIMARY KEY (ID));
|
||||||
|
|
||||||
|
INSERT INTO APPM_RESOURCE_TYPE (NAME , DESCRIPTION) VALUES ('PUBLIC', 'OPEN VISIBILITY, CAN BE VIEWED BY ALL LOGGED IN USERS');
|
||||||
|
INSERT INTO APPM_RESOURCE_TYPE (NAME , DESCRIPTION) VALUES ('ROLES', 'ROLE BASED RESTRICTION, CAN BE VIEWED BY ONLY GIVEN
|
||||||
|
SET OF USER WHO HAVE THE SPECIFIED ROLE');
|
||||||
|
INSERT INTO APPM_RESOURCE_TYPE (NAME , DESCRIPTION) VALUES ('DEVICE_GROUPS', 'DEVICE GROUP LEVEL RESTRICTION,
|
||||||
|
CAN BE VIEWED BY THE DEVICES/ROLES BELONG TO THE GROUP');
|
||||||
|
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
-- Table APPM_SUBSCRIPTION
|
-- Table APPM_SUBSCRIPTION
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
@ -310,29 +317,22 @@ CREATE INDEX FK_APPLICATION_TAG_APPLICATION ON APPM_APPLICATION_TAG(APPLICATION_
|
|||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
CREATE TABLE IF NOT EXISTS APPM_VISIBILITY (
|
CREATE TABLE IF NOT EXISTS APPM_VISIBILITY (
|
||||||
ID INT NOT NULL AUTO_INCREMENT,
|
ID INT NOT NULL AUTO_INCREMENT,
|
||||||
VALUE VARCHAR(255) NOT NULL,
|
VALUE VARCHAR(255),
|
||||||
RESOURCE_TYPE_ID INT NOT NULL,
|
RESOURCE_TYPE_ID INT NOT NULL,
|
||||||
APPLICATION_RELEASE_ID INT NULL,
|
|
||||||
APPLICATION_ID INT NULL,
|
APPLICATION_ID INT NULL,
|
||||||
PRIMARY KEY (ID, RESOURCE_TYPE_ID),
|
PRIMARY KEY (ID),
|
||||||
CONSTRAINT fk_APPM_VISIBILITY_APPM_RESOURCE_TYPE1
|
CONSTRAINT fk_APPM_VISIBILITY_APPM_RESOURCE_TYPE1
|
||||||
FOREIGN KEY (RESOURCE_TYPE_ID)
|
FOREIGN KEY (RESOURCE_TYPE_ID)
|
||||||
REFERENCES APPM_RESOURCE_TYPE (ID)
|
REFERENCES APPM_RESOURCE_TYPE (ID)
|
||||||
ON DELETE NO ACTION
|
ON DELETE NO ACTION
|
||||||
ON UPDATE NO ACTION,
|
ON UPDATE NO ACTION,
|
||||||
CONSTRAINT fk_APPM_VISIBILITY_APPM_APPLICATION_RELEASE1
|
|
||||||
FOREIGN KEY (APPLICATION_RELEASE_ID)
|
|
||||||
REFERENCES APPM_APPLICATION_RELEASE (ID)
|
|
||||||
ON DELETE NO ACTION
|
|
||||||
ON UPDATE NO ACTION,
|
|
||||||
CONSTRAINT fk_APPM_VISIBILITY_APPM_APPLICATION1
|
CONSTRAINT fk_APPM_VISIBILITY_APPM_APPLICATION1
|
||||||
FOREIGN KEY (APPLICATION_ID)
|
FOREIGN KEY (APPLICATION_ID)
|
||||||
REFERENCES APPM_APPLICATION (ID)
|
REFERENCES APPM_APPLICATION (ID)
|
||||||
ON DELETE NO ACTION
|
ON DELETE CASCADE
|
||||||
ON UPDATE NO ACTION);
|
ON UPDATE CASCADE);
|
||||||
|
|
||||||
CREATE INDEX FK_APPM_VISIBILITY_RESOURCE_TYPE ON APPM_VISIBILITY(RESOURCE_TYPE_ID ASC);
|
CREATE INDEX FK_APPM_VISIBILITY_RESOURCE_TYPE ON APPM_VISIBILITY(RESOURCE_TYPE_ID ASC);
|
||||||
CREATE INDEX FK_VISIBILITY_APPLICATION_RELEASE ON APPM_VISIBILITY(APPLICATION_RELEASE_ID ASC);
|
|
||||||
CREATE INDEX FK_VISIBILITY_APPLICATION ON APPM_VISIBILITY(APPLICATION_ID ASC);
|
CREATE INDEX FK_VISIBILITY_APPLICATION ON APPM_VISIBILITY(APPLICATION_ID ASC);
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
|
|||||||
@ -9,7 +9,7 @@ CREATE TABLE APPM_PLATFORM (
|
|||||||
IS_SHARED BIT,
|
IS_SHARED BIT,
|
||||||
IS_DEFAULT_TENANT_MAPPING BIT,
|
IS_DEFAULT_TENANT_MAPPING BIT,
|
||||||
ICON_NAME VARCHAR (100),
|
ICON_NAME VARCHAR (100),
|
||||||
PRIMARY KEY (IDENTIFIER, TENANT_ID)
|
PRIMARY KEY (ID)
|
||||||
);
|
);
|
||||||
|
|
||||||
IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[APPM_PLATFORM_PROPERTIES]') AND TYPE IN (N'U'))
|
IF NOT EXISTS (SELECT * FROM SYS.OBJECTS WHERE OBJECT_ID = OBJECT_ID(N'[DBO].[APPM_PLATFORM_PROPERTIES]') AND TYPE IN (N'U'))
|
||||||
|
|||||||
@ -24,7 +24,7 @@ DESCRIPTION VARCHAR (2048),
|
|||||||
IS_SHARED BOOLEAN,
|
IS_SHARED BOOLEAN,
|
||||||
IS_DEFAULT_TENANT_MAPPING BOOLEAN,
|
IS_DEFAULT_TENANT_MAPPING BOOLEAN,
|
||||||
ICON_NAME VARCHAR (100),
|
ICON_NAME VARCHAR (100),
|
||||||
PRIMARY KEY (IDENTIFIER, TENANT_ID)
|
PRIMARY KEY (ID)
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS APPM_PLATFORM_PROPERTIES (
|
CREATE TABLE IF NOT EXISTS APPM_PLATFORM_PROPERTIES (
|
||||||
@ -140,7 +140,6 @@ INSERT INTO APPM_LC_STATE_TRANSITION(INITIAL_STATE, NEXT_STATE, PERMISSION, DESC
|
|||||||
CREATE TABLE IF NOT EXISTS `APPM_APPLICATION` (
|
CREATE TABLE IF NOT EXISTS `APPM_APPLICATION` (
|
||||||
`ID` INT NOT NULL AUTO_INCREMENT,
|
`ID` INT NOT NULL AUTO_INCREMENT,
|
||||||
`UUID` VARCHAR(100) NOT NULL,
|
`UUID` VARCHAR(100) NOT NULL,
|
||||||
`IDENTIFIER` VARCHAR(255) NULL,
|
|
||||||
`NAME` VARCHAR(100) NOT NULL,
|
`NAME` VARCHAR(100) NOT NULL,
|
||||||
`SHORT_DESCRIPTION` VARCHAR(255) NULL,
|
`SHORT_DESCRIPTION` VARCHAR(255) NULL,
|
||||||
`DESCRIPTION` TEXT NULL,
|
`DESCRIPTION` TEXT NULL,
|
||||||
@ -251,6 +250,12 @@ CREATE TABLE IF NOT EXISTS `APPM_RESOURCE_TYPE` (
|
|||||||
PRIMARY KEY (`ID`))
|
PRIMARY KEY (`ID`))
|
||||||
ENGINE = InnoDB;
|
ENGINE = InnoDB;
|
||||||
|
|
||||||
|
INSERT INTO APPM_RESOURCE_TYPE (NAME , DESCRIPTION) VALUES ('PUBLIC', 'OPEN VISIBILITY, CAN BE VIEWED BY ALL LOGGED IN USERS');
|
||||||
|
INSERT INTO APPM_RESOURCE_TYPE (NAME , DESCRIPTION) VALUES ('ROLES', 'ROLE BASED RESTRICTION, CAN BE VIEWED BY ONLY GIVEN
|
||||||
|
SET OF USER WHO HAVE THE SPECIFIED ROLE');
|
||||||
|
INSERT INTO APPM_RESOURCE_TYPE (NAME , DESCRIPTION) VALUES ('DEVICE_GROUPS', 'DEVICE GROUP LEVEL RESTRICTION,
|
||||||
|
CAN BE VIEWED BY THE DEVICES/ROLES BELONG TO THE GROUP');
|
||||||
|
|
||||||
|
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
-- Table `APPM_SUBSCRIPTION`
|
-- Table `APPM_SUBSCRIPTION`
|
||||||
@ -350,29 +355,22 @@ CREATE TABLE IF NOT EXISTS `APPM_APPLICATION_TAG` (
|
|||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
CREATE TABLE IF NOT EXISTS `APPM_VISIBILITY` (
|
CREATE TABLE IF NOT EXISTS `APPM_VISIBILITY` (
|
||||||
`ID` INT NOT NULL AUTO_INCREMENT,
|
`ID` INT NOT NULL AUTO_INCREMENT,
|
||||||
`VALUE` VARCHAR(255) NOT NULL,
|
`VALUE` VARCHAR(255),
|
||||||
`RESOURCE_TYPE_ID` INT NOT NULL,
|
`RESOURCE_TYPE_ID` INT NOT NULL,
|
||||||
`APPLICATION_RELEASE_ID` INT NULL,
|
|
||||||
`APPLICATION_ID` INT NULL,
|
`APPLICATION_ID` INT NULL,
|
||||||
PRIMARY KEY (`ID`, `RESOURCE_TYPE_ID`),
|
PRIMARY KEY (`ID`),
|
||||||
INDEX `FK_APPM_VISIBILITY_RESOURCE_TYPE` (`RESOURCE_TYPE_ID` ASC),
|
INDEX `FK_APPM_VISIBILITY_RESOURCE_TYPE` (`RESOURCE_TYPE_ID` ASC),
|
||||||
INDEX `FK_VISIBILITY_APPLICATION_RELEASE` (`APPLICATION_RELEASE_ID` ASC),
|
|
||||||
INDEX `FK_VISIBILITY_APPLICATION` (`APPLICATION_ID` ASC),
|
INDEX `FK_VISIBILITY_APPLICATION` (`APPLICATION_ID` ASC),
|
||||||
CONSTRAINT `fk_APPM_VISIBILITY_APPM_RESOURCE_TYPE1`
|
CONSTRAINT `fk_APPM_VISIBILITY_APPM_RESOURCE_TYPE1`
|
||||||
FOREIGN KEY (`RESOURCE_TYPE_ID`)
|
FOREIGN KEY (`RESOURCE_TYPE_ID`)
|
||||||
REFERENCES `APPM_RESOURCE_TYPE` (`ID`)
|
REFERENCES `APPM_RESOURCE_TYPE` (`ID`)
|
||||||
ON DELETE NO ACTION
|
ON DELETE NO ACTION
|
||||||
ON UPDATE NO ACTION,
|
ON UPDATE NO ACTION,
|
||||||
CONSTRAINT `fk_APPM_VISIBILITY_APPM_APPLICATION_RELEASE1`
|
|
||||||
FOREIGN KEY (`APPLICATION_RELEASE_ID`)
|
|
||||||
REFERENCES `APPM_APPLICATION_RELEASE` (`ID`)
|
|
||||||
ON DELETE NO ACTION
|
|
||||||
ON UPDATE NO ACTION,
|
|
||||||
CONSTRAINT `fk_APPM_VISIBILITY_APPM_APPLICATION1`
|
CONSTRAINT `fk_APPM_VISIBILITY_APPM_APPLICATION1`
|
||||||
FOREIGN KEY (`APPLICATION_ID`)
|
FOREIGN KEY (`APPLICATION_ID`)
|
||||||
REFERENCES `APPM_APPLICATION` (`ID`)
|
REFERENCES `APPM_APPLICATION` (`ID`)
|
||||||
ON DELETE NO ACTION
|
ON DELETE CASCADE
|
||||||
ON UPDATE NO ACTION)
|
ON UPDATE CASCADE )
|
||||||
ENGINE = InnoDB;
|
ENGINE = InnoDB;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -15,7 +15,7 @@ DESCRIPTION VARCHAR (2048),
|
|||||||
IS_SHARED NUMBER (1),
|
IS_SHARED NUMBER (1),
|
||||||
IS_DEFAULT_TENANT_MAPPING NUMBER (1),
|
IS_DEFAULT_TENANT_MAPPING NUMBER (1),
|
||||||
ICON_NAME VARCHAR (100),
|
ICON_NAME VARCHAR (100),
|
||||||
PRIMARY KEY (IDENTIFIER, TENANT_ID)
|
PRIMARY KEY (ID)
|
||||||
)
|
)
|
||||||
/
|
/
|
||||||
|
|
||||||
|
|||||||
@ -12,7 +12,7 @@ DESCRIPTION VARCHAR(2048),
|
|||||||
IS_SHARED BOOLEAN,
|
IS_SHARED BOOLEAN,
|
||||||
IS_DEFAULT_TENANT_MAPPING BOOLEAN,
|
IS_DEFAULT_TENANT_MAPPING BOOLEAN,
|
||||||
ICON_NAME VARCHAR (100),
|
ICON_NAME VARCHAR (100),
|
||||||
PRIMARY KEY (IDENTIFIER, TENANT_ID)
|
PRIMARY KEY (ID)
|
||||||
);
|
);
|
||||||
|
|
||||||
DROP TABLE IF EXISTS APPM_PLATFORM_PROPERTIES;
|
DROP TABLE IF EXISTS APPM_PLATFORM_PROPERTIES;
|
||||||
@ -138,7 +138,6 @@ CREATE SEQUENCE APPM_APPLICATION_PK_SEQ;
|
|||||||
CREATE TABLE IF NOT EXISTS APPM_APPLICATION (
|
CREATE TABLE IF NOT EXISTS APPM_APPLICATION (
|
||||||
ID INT DEFAULT NEXTVAL('APPM_APPLICATION_PK_SEQ') UNIQUE,
|
ID INT DEFAULT NEXTVAL('APPM_APPLICATION_PK_SEQ') UNIQUE,
|
||||||
UUID VARCHAR(100) NOT NULL,
|
UUID VARCHAR(100) NOT NULL,
|
||||||
IDENTIFIER VARCHAR(255) NULL,
|
|
||||||
NAME VARCHAR(100) NOT NULL,
|
NAME VARCHAR(100) NOT NULL,
|
||||||
SHORT_DESCRIPTION VARCHAR(255) NULL,
|
SHORT_DESCRIPTION VARCHAR(255) NULL,
|
||||||
DESCRIPTION TEXT NULL,
|
DESCRIPTION TEXT NULL,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user