Update/Fix bugs the factory Mgt

factory-management
Rushdi Mohamed 1 year ago
parent 6f139a15d3
commit bbd42a6a6b

@ -31,7 +31,7 @@
<packaging>war</packaging>
<name>Entgra - Factory Management API</name>
<description>Entgra - Factory Management API</description>
<url>http://entgra.io</url>
<url>https://entgra.io</url>
<build>
<plugins>
@ -132,6 +132,10 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
@ -214,5 +218,27 @@
<version>5.0.27-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.ops4j.pax.logging</groupId>
<artifactId>pax-logging-api</artifactId>
<version>1.11.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
</dependency>
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
<version>2.0.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
</project>

@ -16,7 +16,7 @@
* under the License.
*/
package io.entgra.device.mgt.core.factory.mgt.api.common;
package io.entgra.device.mgt.core.factory.mgt.api.addons;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

@ -16,7 +16,7 @@
* under the License.
*/
package io.entgra.device.mgt.core.factory.mgt.api.exception;
package io.entgra.device.mgt.core.factory.mgt.api.addons;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@ -28,7 +28,9 @@ import org.apache.cxf.message.Message;
import org.apache.cxf.message.MessageContentsList;
import org.apache.cxf.phase.AbstractPhaseInterceptor;
import org.apache.cxf.phase.Phase;
import javax.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;

@ -1,55 +0,0 @@
/*
* Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. 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 io.entgra.device.mgt.core.factory.mgt.api.exception;
import io.entgra.device.mgt.core.factory.mgt.api.util.Constants;
import io.entgra.device.mgt.core.factory.mgt.api.util.DeviceMgtUtil;
import javax.validation.ConstraintViolation;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Response;
import java.util.Set;
public class ConstraintViolationException extends WebApplicationException {
private String message;
public <T> ConstraintViolationException(Set<ConstraintViolation<T>> violations) {
super(Response.status(Response.Status.BAD_REQUEST)
.entity(DeviceMgtUtil.getConstraintViolationErrorDTO(violations))
.header(Constants.DeviceConstants.HEADER_CONTENT_TYPE, Constants.DeviceConstants.APPLICATION_JSON)
.build());
//Set the error message
StringBuilder stringBuilder = new StringBuilder();
for (ConstraintViolation violation : violations) {
stringBuilder.append(violation.getRootBeanClass().getSimpleName());
stringBuilder.append(".");
stringBuilder.append(violation.getPropertyPath());
stringBuilder.append(": ");
stringBuilder.append(violation.getMessage());
stringBuilder.append(", ");
}
message = stringBuilder.toString();
}
@Override
public String getMessage() {
return message;
}
}

@ -17,7 +17,7 @@
*/
package io.entgra.device.mgt.core.factory.mgt.api.service;
import io.entgra.device.mgt.core.factory.mgt.api.util.FactoryManagementAPIConstants;
import io.entgra.device.mgt.core.factory.mgt.api.util.Constants;
import io.entgra.device.mgt.core.factory.mgt.common.wrapper.ProductionPlanWrapper;
import io.entgra.device.mgt.core.factory.mgt.api.beans.ErrorResponse;
import io.swagger.annotations.Api;
@ -107,7 +107,7 @@ public interface ProductionPlanAPIService {
extensions = {
@Extension(properties = {
@ExtensionProperty(
name = FactoryManagementAPIConstants.SCOPE,
name = Constants.SCOPE,
value = "perm:factory:production-plan:view"
)
})
@ -172,7 +172,7 @@ public interface ProductionPlanAPIService {
extensions = {
@Extension(properties = {
@ExtensionProperty(
name = FactoryManagementAPIConstants.SCOPE,
name = Constants.SCOPE,
value = "perm:factory:production-plan:add"
)
})
@ -228,7 +228,7 @@ public interface ProductionPlanAPIService {
extensions = {
@Extension(properties = {
@ExtensionProperty(
name = FactoryManagementAPIConstants.SCOPE,
name = Constants.SCOPE,
value = "perm:factory:production-plan:update"
)
})
@ -288,7 +288,7 @@ public interface ProductionPlanAPIService {
extensions = {
@Extension(properties = {
@ExtensionProperty(
name = FactoryManagementAPIConstants.SCOPE,
name = Constants.SCOPE,
value = "perm:factory:production-plan:delete"
)
})

@ -1,39 +1,26 @@
/*
* Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. 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 io.entgra.device.mgt.core.factory.mgt.api.util;
/**
* Holds the constants used by DeviceImpl Management Admin web application.
* Defines constants used in Factory management REST API bundle.
*/
public class Constants {
public static final String HEADER_CONTENT_TYPE = "Content-Type";
public static final String APPLICATION_JSON = "application/json";
public static final String SCOPE = "scope";
public final class ErrorMessages {
private ErrorMessages () { throw new AssertionError(); }
public static final String STATUS_BAD_REQUEST_MESSAGE_DEFAULT = "Bad Request";
}
public final class DeviceConstants {
private DeviceConstants () { throw new AssertionError(); }
public static final class CSVConstants {
public static final String CSV_HEADER_DATE = "date";
public static final String CSV_HEADER_TIME = "time";
public static final String CSV_HEADER_MACHINE_ID = "machineId";
public static final String CSV_HEADER_TARGET = "target";
public static final String CSV_HEADER_PRODUCT_ID = "productId";
public static final String CSV_FILE_SEPARATOR = ",";
}
public static final String APPLICATION_JSON = "application/json";
public static final String HEADER_CONTENT_TYPE = "Content-Type";
}
public final class DeviceConstants {
private DeviceConstants () { throw new AssertionError(); }
public static final String APPLICATION_JSON = "application/json";
public static final String HEADER_CONTENT_TYPE = "Content-Type";
}
}

@ -1,19 +0,0 @@
package io.entgra.device.mgt.core.factory.mgt.api.util;
/**
* Defines constants used in Factory management REST API bundle.
*/
public class FactoryManagementAPIConstants {
public static final String HEADER_CONTENT_TYPE = "Content-Type";
public static final String APPLICATION_JSON = "application/json";
public static final String SCOPE = "scope";
public static final class CSVConstants {
public static final String CSV_HEADER_DATE = "date";
public static final String CSV_HEADER_TIME = "time";
public static final String CSV_HEADER_MACHINE_ID = "machineId";
public static final String CSV_HEADER_TARGET = "target";
public static final String CSV_HEADER_PRODUCT_ID = "productId";
public static final String CSV_FILE_SEPARATOR = ",";
}
}

@ -1,35 +0,0 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
~ Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
~
~ Entgra (Pvt) Ltd. 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.
-->
<!--
This file defines class loading policy of the whole container. But this behaviour can be overridden by individual webapps by putting this file into the META-INF/ directory.
-->
<Classloading xmlns="http://wso2.org/projects/as/classloading">
<!-- Parent-first or child-first. Default behaviour is child-first.-->
<ParentFirst>false</ParentFirst>
<!--
Default environments that contains provides to all the webapps. This can be overridden by individual webapps by specifing required environments
Tomcat environment is the default and every webapps gets it even if they didn't specify it.
e.g. If a webapps requires CXF, they will get both Tomcat and CXF.
-->
<Environments>CXF3,Carbon</Environments>
</Classloading>

@ -34,12 +34,8 @@
</jaxrs:providers>
</jaxrs:server>
<bean id="swaggerWriter" class="io.swagger.jaxrs.listing.SwaggerSerializers" />
<bean id="swaggerResource" class="io.swagger.jaxrs.listing.ApiListingResource" />
<bean id="ValidationInterceptor" class="io.entgra.device.mgt.core.factory.mgt.api.exception.ValidationInterceptor"/>
<bean id="swaggerConfig" class="io.swagger.jaxrs.config.BeanConfig">
<property name="resourcePackage" value="io.entgra.device.mgt.core.factory.mgt.api"/>
<property name="resourcePackage" value="io.entgra.device.mgt.core.factory.mgt.api.service"/>
<property name="version" value="1.0"/>
<property name="host" value="localhost:9443"/>
<property name="schemes" value="https" />
@ -52,7 +48,10 @@
</bean>
<bean id="productionPlanAPIService" class="io.entgra.device.mgt.core.factory.mgt.api.service.impl.ProductionPlanAPIServiceImpl"/>
<bean id="jsonProvider" class="io.entgra.device.mgt.core.factory.mgt.api.common.GsonMessageBodyHandler"/>
<bean id="swaggerWriter" class="io.swagger.jaxrs.listing.SwaggerSerializers" />
<bean id="swaggerResource" class="io.swagger.jaxrs.listing.ApiListingResource" />
<bean id="jsonProvider" class="io.entgra.device.mgt.core.factory.mgt.api.addons.GsonMessageBodyHandler"/>
<bean id="ValidationInterceptor" class="io.entgra.device.mgt.core.factory.mgt.api.addons.ValidationInterceptor"/>
<cxf:bus>
<cxf:inInterceptors>

@ -16,9 +16,8 @@
~ specific language governing permissions and limitations
~ under the License.
-->
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<display-name>Factory-API-Webapp</display-name>
<display-name>Factory-Management-API-Webapp</display-name>
<servlet>
<description>JAX-WS/JAX-RS Factory API Management Endpoint</description>
<display-name>JAX-WS/JAX-RS Servlet</display-name>

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
~
@ -17,7 +18,7 @@
~ under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>io.entgra.device.mgt.core</groupId>
@ -29,9 +30,9 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>io.entgra.device.mgt.core.factory.mgt.common</artifactId>
<packaging>bundle</packaging>
<name>Entgra - Factory Management Commons</name>
<description>Entgra - Factory Management Commons</description>
<url>http://entgra.io</url>
<name>Entgra - Factory Management Common</name>
<description>Entgra - Factory Management Common</description>
<url>https://entgra.io</url>
<build>
<plugins>

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
~
@ -30,8 +31,8 @@
<artifactId>io.entgra.device.mgt.core.factory.mgt.core</artifactId>
<packaging>bundle</packaging>
<name>Entgra - Factory Management Core</name>
<description>Entgra - Factory API Handler Core</description>
<url>http://entgra.io</url>
<description>Entgra - Factory Management Core</description>
<url>https://entgra.io</url>
<build>
<plugins>
@ -78,16 +79,19 @@
<Private-Package>io.entgra.device.mgt.core.factory.mgt.core.internal</Private-Package>
<Import-Package>
io.entgra.device.mgt.core.factory.mgt.common.*,
javax.servlet.*,
javax.xml.parsers;version="${javax.xml.parsers.import.pkg.version}";resolution:=optional,
javax.xml.bind.annotation,
javax.xml.bind,
org.apache.commons.lang,
org.wso2.carbon,
org.wso2.carbon.ndatasource.core,
org.apache.axis2.*;version="${axis2.osgi.version.range}",
org.osgi.framework.*;version="${imp.package.version.osgi.framework}",
org.osgi.service.*;version="${imp.package.version.osgi.service}",
org.apache.commons.logging,
javax.xml.parsers;version="${javax.xml.parsers.import.pkg.version}";resolution:=optional,
javax.xml.bind.annotation,
javax.xml.bind,
org.apache.commons.collections;version="${commons-collections.version.range}",
org.apache.commons.codec.binary,
org.wso2.carbon,
org.apache.commons.codec.binary
</Import-Package>
<Export-Package>
!io.entgra.device.mgt.core.factory.mgt.core.internal,
@ -117,11 +121,22 @@
</build>
<dependencies>
<dependency>
<groupId>org.eclipse.osgi</groupId>
<artifactId>org.eclipse.osgi</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.osgi</groupId>
<artifactId>org.eclipse.osgi.services</artifactId>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.wso2.carbon</groupId>
@ -133,35 +148,19 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>osgi.cmpn</artifactId>
<version>6.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>commons-lang.wso2</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6.0.wso2v1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.wso2.carbon</groupId>
<artifactId>org.wso2.carbon.utils</artifactId>
<version>4.6.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.osgi</artifactId>
<version>3.14.0</version>
<scope>compile</scope>
<groupId>org.wso2.carbon</groupId>
<artifactId>org.wso2.carbon.logging</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.wso2.orbit.javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1.wso2v1</version>
<scope>compile</scope>
<groupId>org.wso2.carbon</groupId>
<artifactId>org.wso2.carbon.core</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>io.entgra.device.mgt.core</groupId>
@ -173,7 +172,13 @@
<version>${io.entgra.device.mgt.core.version}</version>
<scope>compile</scope>
</dependency>
<!-- <dependency>-->
<dependency>
<groupId>io.entgra.device.mgt.core</groupId>
<artifactId>io.entgra.device.mgt.core.factory.mgt.common</artifactId>
<version>5.0.27-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.testng</groupId>-->
<!-- <artifactId>testng</artifactId>-->
<!-- </dependency>-->

@ -1,41 +0,0 @@
/*
* Copyright (C) 2018 - 2021 Entgra (Pvt) Ltd, Inc - All Rights Reserved.
*
* Unauthorised copying/redistribution of this file, via any medium is strictly prohibited.
*
* Licensed under the Entgra Commercial License, Version 1.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://entgra.io/licenses/entgra-commercial/1.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 io.entgra.device.mgt.core.factory.mgt.core.config.datasource;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
/**
* Class for holding data source configuration in factory-mgt-config.xml at parsing with JAXB.
*/
@XmlRootElement(name = "DataSourceConfiguration")
public class DataSourceConfig {
private JNDILookupDefinition jndiLookupDefinition;
@XmlElement(name = "JndiLookupDefinition", required = true)
public JNDILookupDefinition getJndiLookupDefinition() {
return jndiLookupDefinition;
}
public void setJndiLookupDefinition(JNDILookupDefinition jndiLookupDefinition) {
this.jndiLookupDefinition = jndiLookupDefinition;
}
}

@ -1,79 +0,0 @@
/*
* Copyright (C) 2018 - 2023 Entgra (Pvt) Ltd, Inc - All Rights Reserved.
*
* Unauthorised copying/redistribution of this file, via any medium is strictly prohibited.
*
* Licensed under the Entgra Commercial License, Version 1.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://entgra.io/licenses/entgra-commercial/1.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 io.entgra.device.mgt.core.factory.mgt.core.config.datasource;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlValue;
import java.util.List;
@XmlRootElement(name = "JndiLookupDefinition")
public class JNDILookupDefinition {
private String jndiName;
private List<JNDIProperty> jndiProperties;
@XmlElement(name = "Name", nillable = false)
public String getJndiName() {
return jndiName;
}
public void setJndiName(String jndiName) {
this.jndiName = jndiName;
}
@XmlElementWrapper(name = "Environment", nillable = false)
@XmlElement(name = "Property", nillable = false)
public List<JNDIProperty> getJndiProperties() {
return jndiProperties;
}
public void setJndiProperties(List<JNDIProperty> jndiProperties) {
this.jndiProperties = jndiProperties;
}
@XmlRootElement(name = "Property")
public static class JNDIProperty {
private String name;
private String value;
@XmlAttribute(name = "Name")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@XmlValue
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
}

@ -21,6 +21,7 @@ package io.entgra.device.mgt.core.factory.mgt.core.config;
import io.entgra.device.mgt.core.factory.mgt.common.exception.FactoryMgtException;
import io.entgra.device.mgt.core.factory.mgt.common.util.FactoryMgtConstants;
import io.entgra.device.mgt.core.factory.mgt.core.util.FactoryMgtUtil;
import io.entgra.device.mgt.core.factory.mgt.core.config.datasource.DataSourceConfig;
import org.w3c.dom.Document;
import org.wso2.carbon.utils.CarbonUtils;
@ -30,12 +31,12 @@ import javax.xml.bind.Unmarshaller;
import java.io.File;
/**
* Class responsible for the factory mgt configuration initialization.
* Class responsible for the rss manager configuration initialization
*/
public class FactoryConfigurationManager {
private FactoryMgtConfig factoryMgtConfig;
private static volatile FactoryConfigurationManager factoryConfigurationManager;
private FactoryMgtConfig currentFactoryConfig;
private static FactoryConfigurationManager factoryConfigurationManager;
private static final String FACTORY_MGT_CONFIG_PATH =
CarbonUtils.getCarbonConfigDirPath() + File.separator +
@ -58,20 +59,17 @@ public class FactoryConfigurationManager {
Document doc = FactoryMgtUtil.convertToDocument(factoryMgtConfig);
JAXBContext cdmContext = JAXBContext.newInstance(FactoryMgtConfig.class);
Unmarshaller unmarshaller = cdmContext.createUnmarshaller();
this.factoryMgtConfig = (FactoryMgtConfig) unmarshaller.unmarshal(doc);
this.currentFactoryConfig = (FactoryMgtConfig) unmarshaller.unmarshal(doc);
} catch (JAXBException e) {
throw new FactoryMgtException("Error occurred while initializing Data Source config", e);
throw new FactoryMgtException("Error occurred while initializing factory mgt config", e);
}
}
public FactoryMgtConfig getFactoryMgtConfig() throws FactoryMgtException {
if (factoryMgtConfig == null) {
initConfig();
}
return factoryMgtConfig;
public FactoryMgtConfig getFactoryManagementConfig() {
return currentFactoryConfig;
}
public void setFactoryMgtConfig(FactoryMgtConfig factoryMgtConfig) {
this.factoryMgtConfig = factoryMgtConfig;
public DataSourceConfig getDataSourceConfig() {
return currentFactoryConfig.getFactoryManagementRepository().getDataSourceConfig();
}
}

@ -22,21 +22,20 @@ import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
/**
* Represents Factory Mgt configuration.
* Represents Device Mgt configuration.
*/
@XmlRootElement(name = "FactoryMgtConfiguration")
@SuppressWarnings("unused")
public final class FactoryMgtConfig {
private FactoryMgtConfigRepository factoryMgtConfigRepository;
public void setFactoryManagementRepository(FactoryMgtRepository factoryMgtRepository) {
this.factoryMgtRepository = factoryMgtRepository;
}
private FactoryMgtRepository factoryMgtRepository;
@XmlElement(name = "ManagementRepository", required = true)
public FactoryMgtConfigRepository getFactoryMgtConfigRepository() {
return factoryMgtConfigRepository;
public FactoryMgtRepository getFactoryManagementRepository() {
return factoryMgtRepository;
}
public void setFactoryMgtConfigRepository(FactoryMgtConfigRepository factoryMgtConfigRepository) {
this.factoryMgtConfigRepository = factoryMgtConfigRepository;
}
}

@ -27,7 +27,7 @@ import javax.xml.bind.annotation.XmlRootElement;
* Class for holding management repository data.
*/
@XmlRootElement(name = "ManagementRepository")
public class FactoryMgtConfigRepository {
public class FactoryMgtRepository {
private DataSourceConfig dataSourceConfig;

@ -0,0 +1,40 @@
/*
* Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. 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 io.entgra.device.mgt.core.factory.mgt.core.config.datasource;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
/**
* Holding data source configuration in factory-mgt-config.xml at parsing with JAXB
*/
@XmlRootElement(name = "DataSourceConfiguration")
public class DataSourceConfig {
private JNDILookupDefinition jndiLookupDefinition;
@XmlElement(name = "JndiLookupDefinition", nillable = true)
public JNDILookupDefinition getJndiLookupDefinition() {
return jndiLookupDefinition;
}
public void setJndiLookupDefinition(JNDILookupDefinition jndiLookupDefinition) {
this.jndiLookupDefinition = jndiLookupDefinition;
}
}

@ -0,0 +1,79 @@
/*
* Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Entgra (Pvt) Ltd. 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 io.entgra.device.mgt.core.factory.mgt.core.config.datasource;
import javax.xml.bind.annotation.*;
import java.util.List;
/**
* Class for hold JndiLookupDefinition of rss-manager.xml at parsing with JAXB
*/
@XmlRootElement(name = "JndiLookupDefinition")
public class JNDILookupDefinition {
private String jndiName;
private List<JNDIProperty> jndiProperties;
@XmlElement(name = "Name", nillable = false)
public String getJndiName() {
return jndiName;
}
public void setJndiName(String jndiName) {
this.jndiName = jndiName;
}
@XmlElementWrapper(name = "Environment", nillable = false)
@XmlElement(name = "Property", nillable = false)
public List<JNDIProperty> getJndiProperties() {
return jndiProperties;
}
public void setJndiProperties(List<JNDIProperty> jndiProperties) {
this.jndiProperties = jndiProperties;
}
@XmlRootElement(name = "Property")
public static class JNDIProperty {
private String name;
private String value;
@XmlAttribute(name = "Name")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@XmlValue
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
}

@ -22,7 +22,7 @@ import io.entgra.device.mgt.core.factory.mgt.common.spi.ProductionPlanService;
public class FactoryMgtDataHolder {
public static final FactoryMgtDataHolder thisInstance = new FactoryMgtDataHolder();
private static final FactoryMgtDataHolder thisInstance = new FactoryMgtDataHolder();
private ProductionPlanService productionPlanService;
private FactoryMgtDataHolder() {
@ -35,5 +35,4 @@ public class FactoryMgtDataHolder {
public void setProductionPlanService(ProductionPlanService productionPlanService) {
this.productionPlanService = productionPlanService;
}
}

@ -1,18 +1,17 @@
/*
* Copyright (C) 2018 - 2023 Entgra (Pvt) Ltd, Inc - All Rights Reserved.
* Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
*
* Unauthorised copying/redistribution of this file, via any medium is strictly prohibited.
*
* Licensed under the Entgra Commercial License, Version 1.0 (the "License");
* you may not use this file except in compliance with the License.
* Entgra (Pvt) Ltd. 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
*
* https://entgra.io/licenses/entgra-commercial/1.0
* 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
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
@ -22,12 +21,11 @@ package io.entgra.device.mgt.core.factory.mgt.core.internal;
import io.entgra.device.mgt.core.factory.mgt.common.spi.ProductionPlanService;
import io.entgra.device.mgt.core.factory.mgt.core.config.FactoryConfigurationManager;
import io.entgra.device.mgt.core.factory.mgt.core.config.FactoryMgtConfig;
import io.entgra.device.mgt.core.factory.mgt.core.config.datasource.DataSourceConfig;
import io.entgra.device.mgt.core.factory.mgt.core.dao.common.FactoryMgtDAOFactory;
import io.entgra.device.mgt.core.factory.mgt.core.service.impl.ProductionPlanServiceImpl;
import io.entgra.device.mgt.core.factory.mgt.core.config.datasource.DataSourceConfig;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.osgi.framework.BundleContext;
import org.osgi.service.component.ComponentContext;
import org.wso2.carbon.ndatasource.core.DataSourceService;
@ -41,33 +39,30 @@ import org.wso2.carbon.ndatasource.core.DataSourceService;
* unbind="unsetDataSourceService"
*/
@SuppressWarnings("unused")
public class FactoryMgtServiceComponent {
private static final Log log = LogFactory.getLog(FactoryMgtServiceComponent.class);
protected void activate(ComponentContext ctx) {
if (log.isDebugEnabled()) {
log.debug("Activating Factory Service Component");
}
protected void activate(ComponentContext componentContext) {
try {
FactoryMgtConfig factoryMgtConfig = FactoryConfigurationManager.getInstance().getFactoryMgtConfig();
DataSourceConfig dataSourceConfig = factoryMgtConfig.getFactoryMgtConfigRepository().getDataSourceConfig();
FactoryMgtDAOFactory.init(dataSourceConfig);
BundleContext bundleContext = ctx.getBundleContext();
FactoryConfigurationManager.getInstance().initConfig();
FactoryMgtConfig config = FactoryConfigurationManager.getInstance().getFactoryManagementConfig();
DataSourceConfig dsConfig = config.getFactoryManagementRepository().getDataSourceConfig();
FactoryMgtDAOFactory.init(dsConfig);
ProductionPlanService productionPlanService = new ProductionPlanServiceImpl();
componentContext.getBundleContext().registerService(
ProductionPlanService.class.getName(), productionPlanService, null);
FactoryMgtDataHolder.getInstance().setProductionPlanService(productionPlanService);
bundleContext.registerService(ProductionPlanService.class.getName(), productionPlanService, null);
if (log.isDebugEnabled()) {
log.debug("Factory Manager Service Component has been successfully activated");
}
} catch (Throwable e) {
log.error("Error occurred while activating Factory Manager Service Component", e);
} catch (Throwable t) {
log.error("Error occurred while initializing the Policy management core.", t);
}
}
@SuppressWarnings("unused")
protected void deactivate(ComponentContext componentContext) {
if (log.isDebugEnabled()) {
log.debug("De-activating Meter Request Service Component");
@ -83,7 +78,7 @@ public class FactoryMgtServiceComponent {
}
protected void setDataSourceService(DataSourceService dataSourceService) {
/* This is to avoid Task Manager Service Component getting initialized before the underlying datasources
/* This is to avoid Task Manager Service Component getting initialized before the underlying datasource's
are registered */
if (log.isDebugEnabled()) {
log.debug("Data source service set to Task Manager Service Component ");

@ -22,7 +22,6 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.w3c.dom.Document;
import javax.sql.DataSource;
import javax.xml.XMLConstants;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

@ -0,0 +1,119 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
~
~ Entgra (Pvt) Ltd. 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.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>io.entgra.device.mgt.core</groupId>
<artifactId>factory-mgt-feature</artifactId>
<version>5.0.27-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>io.entgra.device.mgt.core.factory.mgt.api.feature</artifactId>
<packaging>pom</packaging>
<name>Entgra - Factory Management API Feature</name>
<url>https://entgra.io</url>
<description>This feature contains the APIs required for Factory</description>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>factory-mgt-copy</id>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>io.entgra.device.mgt.core</groupId>
<artifactId>io.entgra.device.mgt.core.factory.mgt.api</artifactId>
<version>${project.version}</version>
<type>war</type>
<overWrite>true</overWrite>
<outputDirectory>
${project.build.directory}/maven-shared-archive-resources/webapps
</outputDirectory>
<destFileName>api#factory-mgt#v1.0.war</destFileName>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources</id>
<phase>generate-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>src/main/resources</outputDirectory>
<resources>
<resource>
<directory>resources</directory>
<includes>
<include>build.properties</include>
<include>p2.inf</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.wso2.maven</groupId>
<artifactId>carbon-p2-plugin</artifactId>
<executions>
<execution>
<id>p2-feature-generation</id>
<phase>package</phase>
<goals>
<goal>p2-feature-gen</goal>
</goals>
<configuration>
<id>io.entgra.device.mgt.core.factory.mgt.api</id>
<propertiesFile>../../etc/feature.properties
</propertiesFile>
<adviceFile>
<properties>
<propertyDef>org.wso2.carbon.p2.category.type:server
</propertyDef>
<propertyDef>org.eclipse.equinox.p2.type.group:false
</propertyDef>
</properties>
</adviceFile>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

@ -16,19 +16,4 @@
# under the License.
#
#
# This is the log4j configuration file used by WSO2 Carbon
#
# IMPORTANT : Please do not remove or change the names of any
# of the Appender defined here. The layout pattern & log file
# can be changed using the WSO2 Carbon Management Console, and those
# settings will override the settings in this file.
#
log4j.rootLogger=DEBUG, STD_OUT
# Redirect log messages to console
log4j.appender.STD_OUT=org.apache.log4j.ConsoleAppender
log4j.appender.STD_OUT.Target=System.out
log4j.appender.STD_OUT.layout=org.apache.log4j.PatternLayout
log4j.appender.STD_OUT.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
custom = true

@ -0,0 +1,3 @@
instructions.configure = \
org.eclipse.equinox.p2.touchpoint.natives.mkdir(path:${installFolder}/../../deployment/server/webapps/);\
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/io.entgra.device.mgt.core.factory.mgt.api_${feature.version}/webapps/api#factory-mgt#v1.0.war,target:${installFolder}/../../deployment/server/webapps/api#factory-mgt#v1.0.war,overwrite:true);\

@ -0,0 +1,138 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
~
~ Entgra (Pvt) Ltd. 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.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>io.entgra.device.mgt.core</groupId>
<artifactId>factory-mgt-feature</artifactId>
<version>5.0.27-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>io.entgra.device.mgt.core.factory.mgt.server.feature</artifactId>
<packaging>pom</packaging>
<name>Entgra - Factory Management Server Feature</name>
<url>https://entgra.io</url>
<description>This feature contains the core bundles required for Back-end Factory Management functionality
</description>
<dependencies>
<!-- <dependency>-->
<!-- <groupId>io.entgra.device.mgt.core</groupId>-->
<!-- <artifactId>io.entgra.device.mgt.core.factory.mgt.common</artifactId>-->
<!-- </dependency>-->
<dependency>
<groupId>io.entgra.device.mgt.core</groupId>
<artifactId>io.entgra.device.mgt.core.factory.mgt.core</artifactId>
</dependency>
<dependency>
<groupId>com.googlecode.plist</groupId>
<artifactId>dd-plist</artifactId>
<version>${googlecode.plist.version}</version>
</dependency>
<dependency>
<groupId>commons-validator</groupId>
<artifactId>commons-validator</artifactId>
<version>${commons-validator.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>com.h2database.wso2</groupId>
<artifactId>h2-database-engine</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>generate-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>src/main/resources</outputDirectory>
<resources>
<resource>
<directory>resources</directory>
<includes>
<include>build.properties</include>
<include>p2.inf</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.wso2.maven</groupId>
<artifactId>carbon-p2-plugin</artifactId>
<version>${carbon.p2.plugin.version}</version>
<executions>
<execution>
<id>p2-feature-generation</id>
<phase>package</phase>
<goals>
<goal>p2-feature-gen</goal>
</goals>
<configuration>
<id>io.entgra.device.mgt.core.factory.mgt.server</id>
<propertiesFile>../../etc/feature.properties</propertiesFile>
<adviceFile>
<properties>
<propertyDef>org.wso2.carbon.p2.category.type:server</propertyDef>
<propertyDef>org.eclipse.equinox.p2.type.group:false</propertyDef>
</properties>
</adviceFile>
<bundles>
<!-- <bundleDef>-->
<!-- io.entgra.device.mgt.core:io.entgra.device.mgt.core.factory.mgt.common:${io.entgra.device.mgt.core.version}-->
<!-- </bundleDef>-->
<bundleDef>
io.entgra.device.mgt.core:io.entgra.device.mgt.core.factory.mgt.core:${io.entgra.device.mgt.core.version}
</bundleDef>
<bundleDef>
com.googlecode.plist:dd-plist:${googlecode.plist.version}
</bundleDef>
<bundleDef>
commons-validator:commons-validator:${commons-validator.version}
</bundleDef>
</bundles>
<importBundles>
</importBundles>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<properties>
<commons-validator.version>1.6</commons-validator.version>
</properties>
</project>

@ -16,19 +16,4 @@
# under the License.
#
#
# This is the log4j configuration file used by Entgra Pvt. Ltd.
#
# IMPORTANT : Please do not remove or change the names of any
# of the Appenders defined here. The layout pattern & log file
# can be changed using the WSO2 Carbon Management Console, and those
# settings will override the settings in this file.
#
log4j.rootLogger=DEBUG, STD_OUT
# Redirect log messages to console
log4j.appender.STD_OUT=org.apache.log4j.ConsoleAppender
log4j.appender.STD_OUT.Target=System.out
log4j.appender.STD_OUT.layout=org.apache.log4j.PatternLayout
log4j.appender.STD_OUT.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
custom = true

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
~ Copyright (C) 2018 - 2023 Entgra (Pvt) Ltd, Inc - All Rights Reserved.
~
~ Unauthorised copying/redistribution of this file, via any medium is strictly prohibited.
~
~ Licensed under the Entgra Commercial License, Version 1.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ https://entgra.io/licenses/entgra-commercial/1.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.
-->
<FactoryMgtConfiguration>
<ManagementRepository>
<DataSourceConfiguration>
<JndiLookupDefinition>
<Name>jdbc/DM_DS</Name>
</JndiLookupDefinition>
</DataSourceConfiguration>
</ManagementRepository>
</FactoryMgtConfiguration>

@ -0,0 +1,4 @@
instructions.configure = \
org.eclipse.equinox.p2.touchpoint.natives.copy(source:${installFolder}/../features/io.entgra.device.mgt.core.factory.mgt.server_${feature.version}/conf/factory-mgt-config.xml,target:${installFolder}/../../conf/factory-mgt-config.xml,overwrite:true);\
instructions.unconfigure = \

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2018 - 2023, Entgra (Pvt) Ltd. (http://www.entgra.io) All Rights Reserved.
~
~ Entgra (Pvt) Ltd. 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.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>io.entgra.device.mgt.core</groupId>
<artifactId>io.entgra.device.mgt.core.parent</artifactId>
<version>5.0.27-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>factory-mgt-feature</artifactId>
<packaging>pom</packaging>
<name>Entgra - Factory Management Feature</name>
<url>http://entgra.io</url>
<modules>
<module>io.entgra.device.mgt.core.factory.mgt.server.feature</module>
<module>io.entgra.device.mgt.core.factory.mgt.api.feature</module>
</modules>
</project>

@ -69,7 +69,7 @@
<module>features/subtype-mgt</module>
<module>features/tenant-mgt</module>
<module>features/operation-template-mgt-plugin-feature</module>
<module>features/factory-mgt-feature</module>
</modules>
<dependencyManagement>
@ -338,6 +338,24 @@
</dependency>
<!-- Device Management dependencies -->
<!-- Factory Management dependencies -->
<dependency>
<groupId>io.entgra.device.mgt.core</groupId>
<artifactId>io.entgra.device.mgt.core.factory.mgt.api</artifactId>
<version>${io.entgra.device.mgt.core.version}</version>
</dependency>
<dependency>
<groupId>io.entgra.device.mgt.core</groupId>
<artifactId>io.entgra.device.mgt.core.factory.mgt.core</artifactId>
<version>${io.entgra.device.mgt.core.version}</version>
</dependency>
<dependency>
<groupId>io.entgra.device.mgt.core</groupId>
<artifactId>io.entgra.device.mgt.core.factory.mgt.common</artifactId>
<version>${io.entgra.device.mgt.core.version}</version>
</dependency>
<!-- End of Factory Management dependencies -->
<!-- Tenant Management dependencies -->
<dependency>
<groupId>io.entgra.device.mgt.core</groupId>
@ -376,14 +394,6 @@
</dependency>
<!-- End of SubType Management dependencies -->
<!-- Factory Management dependencies -->
<dependency>
<groupId>io.entgra.device.mgt.core</groupId>
<artifactId>io.entgra.device.mgt.core.factory.mgt</artifactId>
<version>${io.entgra.device.mgt.core.version}</version>
</dependency>
<!-- End of Factory Management dependencies -->
<!-- Operation Template Management dependencies -->
<dependency>
<groupId>io.entgra.device.mgt.core</groupId>

Loading…
Cancel
Save