You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by da...@apache.org on 2018/04/06 08:28:29 UTC
[25/31] atlas git commit: ATLAS-2122 OMAG Server Application and OMRS
APIs
http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/omrs/src/main/java/org/apache/atlas/omrs/admin/OMRSOperationalServices.java
----------------------------------------------------------------------
diff --git a/omrs/src/main/java/org/apache/atlas/omrs/admin/OMRSOperationalServices.java b/omrs/src/main/java/org/apache/atlas/omrs/admin/OMRSOperationalServices.java
index 8a47945..60b4704 100644
--- a/omrs/src/main/java/org/apache/atlas/omrs/admin/OMRSOperationalServices.java
+++ b/omrs/src/main/java/org/apache/atlas/omrs/admin/OMRSOperationalServices.java
@@ -19,13 +19,13 @@ package org.apache.atlas.omrs.admin;
import org.apache.atlas.ocf.Connector;
import org.apache.atlas.ocf.ConnectorBroker;
-import org.apache.atlas.ocf.properties.Connection;
+import org.apache.atlas.ocf.properties.beans.Connection;
import org.apache.atlas.omrs.admin.properties.CohortConfig;
import org.apache.atlas.omrs.admin.properties.EnterpriseAccessConfig;
import org.apache.atlas.omrs.admin.properties.LocalRepositoryConfig;
import org.apache.atlas.omrs.admin.properties.RepositoryServicesConfig;
import org.apache.atlas.omrs.archivemanager.OMRSArchiveManager;
-import org.apache.atlas.omrs.archivemanager.store.OpenMetadataArchiveStore;
+import org.apache.atlas.omrs.archivemanager.store.OpenMetadataArchiveStoreConnector;
import org.apache.atlas.omrs.auditlog.OMRSAuditCode;
import org.apache.atlas.omrs.auditlog.OMRSAuditLog;
import org.apache.atlas.omrs.auditlog.OMRSAuditingComponent;
@@ -34,7 +34,7 @@ import org.apache.atlas.omrs.enterprise.connectormanager.OMRSConnectionConsumer;
import org.apache.atlas.omrs.enterprise.connectormanager.OMRSEnterpriseConnectorManager;
import org.apache.atlas.omrs.eventmanagement.OMRSRepositoryEventExchangeRule;
import org.apache.atlas.omrs.eventmanagement.OMRSRepositoryEventManager;
-import org.apache.atlas.omrs.eventmanagement.repositoryeventmapper.OMRSRepositoryEventMapper;
+import org.apache.atlas.omrs.eventmanagement.repositoryeventmapper.OMRSRepositoryEventMapperConnector;
import org.apache.atlas.omrs.ffdc.exception.OMRSConfigErrorException;
import org.apache.atlas.omrs.ffdc.OMRSErrorCode;
import org.apache.atlas.omrs.ffdc.exception.OMRSLogicErrorException;
@@ -53,6 +53,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
+import java.util.List;
/**
* OMRSOperationalServices provides the OMAG Server with access to the OMRS capabilities.
@@ -80,9 +81,12 @@ public class OMRSOperationalServices
private static final OMRSAuditLog auditLog = new OMRSAuditLog(OMRSAuditingComponent.OPERATIONAL_SERVICES);
- private String localServerName = null;
- private String localServerType = null;
- private String localOrganizationName = null;
+ private String localServerName; /* Initialized in constructor */
+ private String localServerType; /* Initialized in constructor */
+ private String localOrganizationName; /* Initialized in constructor */
+ private String localServerURL; /* Initialized in constructor */
+ private int maxPageSize; /* Initialized in constructor */
+
private String localMetadataCollectionId = null;
private OMRSRepositoryContentManager localRepositoryContentManager = null;
@@ -100,10 +104,13 @@ public class OMRSOperationalServices
* @param localServerName - name of the local server
* @param localServerType - type of the local server
* @param organizationName - name of the organization that owns the local server
+ * @param localServerURL - URL root for this server.
*/
public OMRSOperationalServices(String localServerName,
String localServerType,
- String organizationName)
+ String organizationName,
+ String localServerURL,
+ int maxPageSize)
{
/*
* Save details about the local server
@@ -111,6 +118,8 @@ public class OMRSOperationalServices
this.localServerName = localServerName;
this.localServerType = localServerType;
this.localOrganizationName = organizationName;
+ this.localServerURL = localServerURL;
+ this.maxPageSize = maxPageSize;
}
@@ -122,7 +131,7 @@ public class OMRSOperationalServices
*/
public void initialize(RepositoryServicesConfig repositoryServicesConfig)
{
- final String actionDescription = "Initialize Repository Operational Services";
+ final String actionDescription = "Initialize Open Metadata Repository Operational Services";
final String methodName = "initialize()";
OMRSAuditCode auditCode = null;
@@ -150,7 +159,7 @@ public class OMRSOperationalServices
OMRSAuditLog.initialize(localServerName,
localServerType,
localOrganizationName,
- getAuditLogStore(repositoryServicesConfig.getAuditLogConnection()));
+ getAuditLogStores(repositoryServicesConfig.getAuditLogConnections()));
/*
* Log that the OMRS is starting. There is another Audit log message logged at the end of this method
@@ -171,7 +180,7 @@ public class OMRSOperationalServices
*/
EnterpriseAccessConfig enterpriseAccessConfig = repositoryServicesConfig.getEnterpriseAccessConfig();
LocalRepositoryConfig localRepositoryConfig = repositoryServicesConfig.getLocalRepositoryConfig();
- ArrayList<CohortConfig> cohortConfigList = repositoryServicesConfig.getCohortConfigList();
+ List<CohortConfig> cohortConfigList = repositoryServicesConfig.getCohortConfigList();
/*
* Begin with the enterprise repository services. They are always needed since the
@@ -185,13 +194,13 @@ public class OMRSOperationalServices
* repository services will use. The OMRS Topic is used to publish events from these repositories to support the
* OMASs' event notifications.
*/
- enterpriseConnectorManager = initializeEnterpriseConnectorManager(enterpriseAccessConfig);
+ enterpriseConnectorManager = initializeEnterpriseConnectorManager(enterpriseAccessConfig, maxPageSize);
enterpriseOMRSTopicConnector = initializeEnterpriseOMRSTopicConnector(enterpriseAccessConfig);
/*
* The archive manager loads pre-defined types and instances that are stored in open metadata archives.
*/
- archiveManager = initializeOpenMetadataArchives(repositoryServicesConfig.getOpenMetadataArchiveConnectionList());
+ archiveManager = initializeOpenMetadataArchives(repositoryServicesConfig.getOpenMetadataArchiveConnections());
/*
* The local repository is optional. However, the repository content manager is still
@@ -230,7 +239,8 @@ public class OMRSOperationalServices
new OMRSRepositoryEventExchangeRule("Local Repository Events to Send",
localRepositoryContentManager,
localRepositoryConfig.getEventsToSendRule(),
- localRepositoryConfig.getSelectedTypesToSend()));
+ localRepositoryConfig.getSelectedTypesToSend()),
+ new OMRSRepositoryValidator(localRepositoryContentManager));
/*
* Pass the local metadata collectionId to the AuditLog
@@ -240,11 +250,32 @@ public class OMRSOperationalServices
localRepositoryConnector = initializeLocalRepository(localRepositoryConfig);
/*
- * Set up the OMRS REST Services with the local repository
+ * Start processing of events for the local repository.
+ */
+ try
+ {
+ localRepositoryConnector.start();
+ }
+ catch (Throwable error)
+ {
+ auditCode = OMRSAuditCode.LOCAL_REPOSITORY_FAILED_TO_START;
+ auditLog.logRecord(actionDescription,
+ auditCode.getLogMessageId(),
+ auditCode.getSeverity(),
+ auditCode.getFormattedLogMessage(error.getMessage()),
+ null,
+ auditCode.getSystemAction(),
+ auditCode.getUserAction());
+ }
+
+ /*
+ * Set up the OMRS REST Services with the local repository so it is able to process incoming REST
+ * calls.
*/
- OMRSRepositoryRESTServices.setLocalRepository(localRepositoryConnector);
+ OMRSRepositoryRESTServices.setLocalRepository(localRepositoryConnector, localServerURL);
}
+
/*
* This is the point at which the open metadata archives will be processed. The archives are processed
* using the same mechanisms as TypeDef/Instance events received from other members of the cohort. This
@@ -277,7 +308,7 @@ public class OMRSOperationalServices
}
/*
- * local operation is ready, now connect to the metadata highway.
+ * Local operation is ready, now connect to the metadata highway.
*/
if (cohortConfigList != null)
{
@@ -342,12 +373,15 @@ public class OMRSOperationalServices
/**
* Initialize the OMRSEnterpriseConnectorManager and the EnterpriseOMRSConnector class. If the
- * enterprise access configuration
+ * enterprise access configuration is null it means federation is not enabled. However, the enterprise
+ * connector manager is still initialized to pass the local repository information to the Enterprise
+ * OMRS repository connectors.
*
* @param enterpriseAccessConfig - enterprise access configuration from the OMAG server
* @return initialized OMRSEnterpriseConnectorManager object
*/
- private OMRSEnterpriseConnectorManager initializeEnterpriseConnectorManager(EnterpriseAccessConfig enterpriseAccessConfig)
+ private OMRSEnterpriseConnectorManager initializeEnterpriseConnectorManager(EnterpriseAccessConfig enterpriseAccessConfig,
+ int maxPageSize)
{
OMRSEnterpriseConnectorManager enterpriseConnectorManager = null;
@@ -356,13 +390,17 @@ public class OMRSOperationalServices
/*
* Federation is not enabled in this server
*/
- enterpriseConnectorManager = new OMRSEnterpriseConnectorManager(false);
+ enterpriseConnectorManager = new OMRSEnterpriseConnectorManager(false, maxPageSize);
/*
* Pass the address of the enterprise connector manager to the OMRSEnterpriseConnectorProvider class as
* the connector manager is needed by each instance of the EnterpriseOMRSConnector.
*/
EnterpriseOMRSConnectorProvider.initialize(enterpriseConnectorManager,
+ localRepositoryContentManager,
+ localServerName,
+ localServerType,
+ localOrganizationName,
null,
null);
}
@@ -382,13 +420,17 @@ public class OMRSOperationalServices
auditCode.getSystemAction(),
auditCode.getUserAction());
- enterpriseConnectorManager = new OMRSEnterpriseConnectorManager(true);
+ enterpriseConnectorManager = new OMRSEnterpriseConnectorManager(true, maxPageSize);
/*
* Pass the address of the enterprise connector manager to the OMRSEnterpriseConnectorProvider class as
* the connector manager is needed by each instance of the EnterpriseOMRSConnector.
*/
EnterpriseOMRSConnectorProvider.initialize(enterpriseConnectorManager,
+ localRepositoryContentManager,
+ localServerName,
+ localServerType,
+ localOrganizationName,
enterpriseAccessConfig.getEnterpriseMetadataCollectionId(),
enterpriseAccessConfig.getEnterpriseMetadataCollectionName());
}
@@ -425,9 +467,6 @@ public class OMRSOperationalServices
LocalOMRSConnectorProvider localConnectorProvider =
new LocalOMRSConnectorProvider(localMetadataCollectionId,
localRepositoryConfig.getLocalRepositoryRemoteConnection(),
- localServerName,
- localServerType,
- localOrganizationName,
getLocalRepositoryEventMapper(localRepositoryConfig.getEventMapperConnection()),
localRepositoryEventManager,
localRepositoryContentManager,
@@ -441,7 +480,7 @@ public class OMRSOperationalServices
* Create the local repository's connector. If there is no locally optimized connection, the
* remote connection is used.
*/
- Connection localRepositoryConnection = null;
+ Connection localRepositoryConnection;
if (localRepositoryConfig.getLocalRepositoryLocalConnection() != null)
{
@@ -465,9 +504,9 @@ public class OMRSOperationalServices
* @param openMetadataArchiveConnections - connections to the open metadata archive stores
* @return OMRS archive manager
*/
- private OMRSArchiveManager initializeOpenMetadataArchives(ArrayList<Connection> openMetadataArchiveConnections)
+ private OMRSArchiveManager initializeOpenMetadataArchives(List<Connection> openMetadataArchiveConnections)
{
- ArrayList<OpenMetadataArchiveStore> openMetadataArchives = null;
+ ArrayList<OpenMetadataArchiveStoreConnector> openMetadataArchives = null;
if (openMetadataArchiveConnections != null)
{
@@ -501,9 +540,7 @@ public class OMRSOperationalServices
* This value flows in OMRS Events.
* @param localRepositoryConnector - the local repository connector is supplied if there is a local repository
* for this server.
- * @param localTypeDefValidator - the TypeDef validator validates the TypeDefs sent by the other members of
- * the cohort(s). It is looking for conflicting TypeDefs that may cause
- * metadata integrity issues as the metadata is exchanged between the servers.
+ * @param localRepositoryContentManager - repository content manager for this server
* @param connectionConsumer - the connection consumer is from the enterprise repository services. It
* receives connection information about the other members of the cohort(s)
* to enable enterprise access.
@@ -517,10 +554,10 @@ public class OMRSOperationalServices
String localServerType,
String localOrganizationName,
LocalOMRSRepositoryConnector localRepositoryConnector,
- OMRSTypeDefValidator localTypeDefValidator,
+ OMRSRepositoryContentManager localRepositoryContentManager,
OMRSConnectionConsumer connectionConsumer,
OMRSTopicConnector enterpriseTopicConnector,
- ArrayList<CohortConfig> cohortConfigList)
+ List<CohortConfig> cohortConfigList)
{
/*
* The metadata highway manager is constructed with the values that are the same for every cohort.
@@ -529,7 +566,7 @@ public class OMRSOperationalServices
localServerType,
localOrganizationName,
localRepositoryConnector,
- localTypeDefValidator,
+ localRepositoryContentManager,
connectionConsumer,
enterpriseTopicConnector);
@@ -578,7 +615,14 @@ public class OMRSOperationalServices
}
catch (Throwable error)
{
- // TODO
+ auditCode = OMRSAuditCode.ENTERPRISE_TOPIC_DISCONNECT_ERROR;
+ auditLog.logRecord(actionDescription,
+ auditCode.getLogMessageId(),
+ auditCode.getSeverity(),
+ auditCode.getFormattedLogMessage(error.getMessage()),
+ null,
+ auditCode.getSystemAction(),
+ auditCode.getUserAction());
}
}
@@ -595,7 +639,14 @@ public class OMRSOperationalServices
}
catch (Throwable error)
{
-
+ auditCode = OMRSAuditCode.LOCAL_REPOSITORY_FAILED_TO_DISCONNECT;
+ auditLog.logRecord(actionDescription,
+ auditCode.getLogMessageId(),
+ auditCode.getSeverity(),
+ auditCode.getFormattedLogMessage(error.getMessage()),
+ null,
+ auditCode.getSystemAction(),
+ auditCode.getUserAction());
}
}
@@ -618,13 +669,39 @@ public class OMRSOperationalServices
/**
- * Return the connector to the AuditLog store using the connection information supplied. If there is a
+ * Return the connectors to the AuditLog store using the connection information supplied. If there is a
* problem with the connection information that means a connector can not be created, an exception is thrown.
*
- * @param auditLogStoreConnection - properties for the audit log
+ * @param auditLogStoreConnections - properties for the audit log stores
* @return audit log store connector
*/
- private OMRSAuditLogStore getAuditLogStore(Connection auditLogStoreConnection)
+ private List<OMRSAuditLogStore> getAuditLogStores(List<Connection> auditLogStoreConnections)
+ {
+ List<OMRSAuditLogStore> auditLogStores = new ArrayList<>();
+
+ for (Connection auditLogStoreConnection : auditLogStoreConnections)
+ {
+ auditLogStores.add(getAuditLogStore(auditLogStoreConnection));
+ }
+
+ if (auditLogStores.isEmpty())
+ {
+ return null;
+ }
+ else
+ {
+ return auditLogStores;
+ }
+ }
+
+
+ /**
+ * Return a connector to an audit log store.
+ *
+ * @param auditLogStoreConnection - connection with the parameters of the audit log store
+ * @return connector for audit log store.
+ */
+ private OMRSAuditLogStore getAuditLogStore(Connection auditLogStoreConnection)
{
try
{
@@ -647,7 +724,7 @@ public class OMRSOperationalServices
*/
OMRSErrorCode errorCode = OMRSErrorCode.NULL_AUDIT_LOG_STORE;
String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(localServerName);
+ + errorCode.getFormattedErrorMessage(localServerName);
throw new OMRSConfigErrorException(errorCode.getHTTPErrorCode(),
this.getClass().getName(),
@@ -660,7 +737,6 @@ public class OMRSOperationalServices
}
-
/**
* Creates a topic connector using information from the supplied topic connection. This connector supported
* the Open Connector Framework (OCF) so it is possible to configure different connector implementations for
@@ -714,14 +790,14 @@ public class OMRSOperationalServices
* @param openMetadataArchiveStoreConnection - properties used to create the connection
* @return open metadata archive connector
*/
- private OpenMetadataArchiveStore getOpenMetadataArchiveStore(Connection openMetadataArchiveStoreConnection)
+ private OpenMetadataArchiveStoreConnector getOpenMetadataArchiveStore(Connection openMetadataArchiveStoreConnection)
{
try
{
ConnectorBroker connectorBroker = new ConnectorBroker();
Connector connector = connectorBroker.getConnector(openMetadataArchiveStoreConnection);
- return (OpenMetadataArchiveStore)connector;
+ return (OpenMetadataArchiveStoreConnector)connector;
}
catch (Throwable error)
{
@@ -758,7 +834,7 @@ public class OMRSOperationalServices
* @param localRepositoryEventMapperConnection - connection to the local repository's event mapper.
* @return local repository's event mapper
*/
- private OMRSRepositoryEventMapper getLocalRepositoryEventMapper(Connection localRepositoryEventMapperConnection)
+ private OMRSRepositoryEventMapperConnector getLocalRepositoryEventMapper(Connection localRepositoryEventMapperConnection)
{
/*
* If the event mapper is null it means the local repository does not need an event mapper.
@@ -778,7 +854,7 @@ public class OMRSOperationalServices
ConnectorBroker connectorBroker = new ConnectorBroker();
Connector connector = connectorBroker.getConnector(localRepositoryEventMapperConnection);
- return (OMRSRepositoryEventMapper)connector;
+ return (OMRSRepositoryEventMapperConnector)connector;
}
catch (Throwable error)
{
@@ -830,7 +906,17 @@ public class OMRSOperationalServices
*/
try
{
- return (LocalOMRSRepositoryConnector)connectorProvider.getConnector(connection);
+ LocalOMRSRepositoryConnector localRepositoryConnector = (LocalOMRSRepositoryConnector)connectorProvider.getConnector(connection);
+
+ localRepositoryConnector.setMaxPageSize(maxPageSize);
+ localRepositoryConnector.setServerName(localServerName);
+ localRepositoryConnector.setServerType(localServerType);
+ localRepositoryConnector.setOrganizationName(localOrganizationName);
+ localRepositoryConnector.setRepositoryHelper(new OMRSRepositoryHelper(localRepositoryContentManager));
+ localRepositoryConnector.setRepositoryValidator(new OMRSRepositoryValidator(localRepositoryContentManager));
+ localRepositoryConnector.setMetadataCollectionId(localMetadataCollectionId);
+
+ return localRepositoryConnector;
}
catch (Throwable error)
{
http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/CohortConfig.java
----------------------------------------------------------------------
diff --git a/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/CohortConfig.java b/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/CohortConfig.java
index 5fc5983..0e6a458 100644
--- a/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/CohortConfig.java
+++ b/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/CohortConfig.java
@@ -18,10 +18,18 @@
package org.apache.atlas.omrs.admin.properties;
-import org.apache.atlas.ocf.properties.Connection;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+import org.apache.atlas.ocf.properties.beans.Connection;
import org.apache.atlas.omrs.metadatacollection.properties.typedefs.TypeDefSummary;
import java.util.ArrayList;
+import java.util.List;
+
+import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE;
+import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY;
/**
* CohortConfig provides the configuration properties used to connect to an open metadata repository cohort.
@@ -56,6 +64,9 @@ import java.util.ArrayList;
* </li>
* </ul>
*/
+@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE)
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(ignoreUnknown=true)
public class CohortConfig
{
private String cohortName = null;
@@ -214,9 +225,16 @@ public class CohortConfig
*
* @return list of TypeDefs that determine which metadata instances to process
*/
- public ArrayList<TypeDefSummary> getSelectedTypesToProcess()
+ public List<TypeDefSummary> getSelectedTypesToProcess()
{
- return selectedTypesToProcess;
+ if (selectedTypesToProcess == null)
+ {
+ return null;
+ }
+ else
+ {
+ return selectedTypesToProcess;
+ }
}
@@ -226,8 +244,15 @@ public class CohortConfig
*
* @param selectedTypesToProcess - list of TypeDefs that determine which metadata instances to process
*/
- public void setSelectedTypesToProcess(ArrayList<TypeDefSummary> selectedTypesToProcess)
+ public void setSelectedTypesToProcess(List<TypeDefSummary> selectedTypesToProcess)
{
- this.selectedTypesToProcess = selectedTypesToProcess;
+ if (selectedTypesToProcess == null)
+ {
+ this.selectedTypesToProcess = null;
+ }
+ else
+ {
+ this.selectedTypesToProcess = new ArrayList<>(selectedTypesToProcess);
+ }
}
}
http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/EnterpriseAccessConfig.java
----------------------------------------------------------------------
diff --git a/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/EnterpriseAccessConfig.java b/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/EnterpriseAccessConfig.java
index 72e84af..76576d4 100644
--- a/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/EnterpriseAccessConfig.java
+++ b/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/EnterpriseAccessConfig.java
@@ -17,7 +17,14 @@
*/
package org.apache.atlas.omrs.admin.properties;
-import org.apache.atlas.ocf.properties.Connection;
+import org.apache.atlas.ocf.properties.beans.Connection;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE;
+import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY;
/**
* EnterpriseAccessConfig describes the properties that control the enterprise access services that the
@@ -36,6 +43,9 @@ import org.apache.atlas.ocf.properties.Connection;
* </li>
* </ul>
*/
+@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE)
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(ignoreUnknown=true)
public class EnterpriseAccessConfig
{
private String enterpriseMetadataCollectionName = null;
http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/LocalRepositoryConfig.java
----------------------------------------------------------------------
diff --git a/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/LocalRepositoryConfig.java b/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/LocalRepositoryConfig.java
index d35b788..25ad601 100644
--- a/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/LocalRepositoryConfig.java
+++ b/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/LocalRepositoryConfig.java
@@ -17,11 +17,18 @@
*/
package org.apache.atlas.omrs.admin.properties;
-import org.apache.atlas.ocf.properties.Connection;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE;
+import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY;
+
+import org.apache.atlas.ocf.properties.beans.Connection;
import org.apache.atlas.omrs.metadatacollection.properties.typedefs.TypeDefSummary;
import java.util.ArrayList;
-
+import java.util.List;
/**
* LocalRepositoryConfig provides the properties to control the behavior of the metadata repository associated with
@@ -62,6 +69,9 @@ import java.util.ArrayList;
* </li>
* </ul>
*/
+@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE)
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(ignoreUnknown=true)
public class LocalRepositoryConfig
{
private String metadataCollectionId = null;
@@ -94,18 +104,18 @@ public class LocalRepositoryConfig
Connection localRepositoryLocalConnection,
Connection localRepositoryRemoteConnection,
OpenMetadataExchangeRule eventsToSaveRule,
- ArrayList<TypeDefSummary> selectedTypesToSave,
+ List<TypeDefSummary> selectedTypesToSave,
OpenMetadataExchangeRule eventsToSendRule,
- ArrayList<TypeDefSummary> selectedTypesToSend,
+ List<TypeDefSummary> selectedTypesToSend,
Connection eventMapperConnection)
{
this.metadataCollectionId = metadataCollectionId;
this.localRepositoryLocalConnection = localRepositoryLocalConnection;
this.localRepositoryRemoteConnection = localRepositoryRemoteConnection;
this.eventsToSaveRule = eventsToSaveRule;
- this.selectedTypesToSave = selectedTypesToSave;
+ this.setSelectedTypesToSave(selectedTypesToSave);
this.eventsToSendRule = eventsToSendRule;
- this.selectedTypesToSend = selectedTypesToSend;
+ this.setSelectedTypesToSend(selectedTypesToSend);
this.eventMapperConnection = eventMapperConnection;
}
@@ -218,9 +228,16 @@ public class LocalRepositoryConfig
*
* @return list of types
*/
- public ArrayList<TypeDefSummary> getSelectedTypesToSave()
+ public List<TypeDefSummary> getSelectedTypesToSave()
{
- return selectedTypesToSave;
+ if (selectedTypesToSave == null)
+ {
+ return null;
+ }
+ else
+ {
+ return selectedTypesToSave;
+ }
}
@@ -229,9 +246,16 @@ public class LocalRepositoryConfig
*
* @param selectedTypesToSave - list of types
*/
- public void setSelectedTypesToSave(ArrayList<TypeDefSummary> selectedTypesToSave)
+ public void setSelectedTypesToSave(List<TypeDefSummary> selectedTypesToSave)
{
- this.selectedTypesToSave = selectedTypesToSave;
+ if (selectedTypesToSave == null)
+ {
+ this.selectedTypesToSave = null;
+ }
+ else
+ {
+ this.selectedTypesToSave = new ArrayList<>(selectedTypesToSave);
+ }
}
@@ -264,9 +288,16 @@ public class LocalRepositoryConfig
*
* @return list of types
*/
- public ArrayList<TypeDefSummary> getSelectedTypesToSend()
+ public List<TypeDefSummary> getSelectedTypesToSend()
{
- return selectedTypesToSend;
+ if (selectedTypesToSend == null)
+ {
+ return null;
+ }
+ else
+ {
+ return selectedTypesToSend;
+ }
}
@@ -275,9 +306,16 @@ public class LocalRepositoryConfig
*
* @param selectedTypesToSend - list of types
*/
- public void setSelectedTypesToSend(ArrayList<TypeDefSummary> selectedTypesToSend)
+ public void setSelectedTypesToSend(List<TypeDefSummary> selectedTypesToSend)
{
- this.selectedTypesToSend = selectedTypesToSend;
+ if (selectedTypesToSend == null)
+ {
+ this.selectedTypesToSend = null;
+ }
+ else
+ {
+ this.selectedTypesToSend = new ArrayList<>(selectedTypesToSend);
+ }
}
http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/OpenMetadataEventProtocolVersion.java
----------------------------------------------------------------------
diff --git a/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/OpenMetadataEventProtocolVersion.java b/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/OpenMetadataEventProtocolVersion.java
index 301a589..03674d6 100644
--- a/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/OpenMetadataEventProtocolVersion.java
+++ b/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/OpenMetadataEventProtocolVersion.java
@@ -17,11 +17,20 @@
*/
package org.apache.atlas.omrs.admin.properties;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE;
+import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY;
/**
* OpenMetadataEventProtocolVersion provides the identifier for the version number of the event payload. There is
* only one version at the moment which is why it looks a little sad.
*/
+@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE)
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(ignoreUnknown=true)
public enum OpenMetadataEventProtocolVersion
{
V1
http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/OpenMetadataExchangeRule.java
----------------------------------------------------------------------
diff --git a/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/OpenMetadataExchangeRule.java b/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/OpenMetadataExchangeRule.java
index 2bcc087..c49e5fc 100644
--- a/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/OpenMetadataExchangeRule.java
+++ b/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/OpenMetadataExchangeRule.java
@@ -18,6 +18,13 @@
package org.apache.atlas.omrs.admin.properties;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE;
+import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY;
+
/**
* OpenMetadataExchangeRule controls the sending/receiving of metadata instances on the metadata highway.
* <ul>
@@ -41,6 +48,9 @@ package org.apache.atlas.omrs.admin.properties;
* </li>
* </ul>
*/
+@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE)
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(ignoreUnknown=true)
public enum OpenMetadataExchangeRule
{
REGISTRATION_ONLY (0, "Registration Only", "Only registration exchange; no TypeDefs or metadata instances."),
http://git-wip-us.apache.org/repos/asf/atlas/blob/a1fd4068/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/RepositoryServicesConfig.java
----------------------------------------------------------------------
diff --git a/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/RepositoryServicesConfig.java b/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/RepositoryServicesConfig.java
index f7e303c..3b68afd 100644
--- a/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/RepositoryServicesConfig.java
+++ b/omrs/src/main/java/org/apache/atlas/omrs/admin/properties/RepositoryServicesConfig.java
@@ -17,9 +17,18 @@
*/
package org.apache.atlas.omrs.admin.properties;
-import org.apache.atlas.ocf.properties.Connection;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE;
+import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_ONLY;
+
+import org.apache.atlas.ocf.properties.beans.Connection;
import java.util.ArrayList;
+import java.util.List;
+
/**
* RepositoryServicesConfig provides the configuration properties that are needed by the OMRS components
@@ -31,7 +40,7 @@ import java.util.ArrayList;
* component should use.
* </li>
* <li>
- * openMetadataArchiveConnectionList is a list of Open Metadata Archive Connections.
+ * openMetadataArchiveConnections is a list of Open Metadata Archive Connections.
* An open metadata archive connection provides properties needed to create a connector to manage
* an open metadata archive. This contains pre-built TypeDefs and metadata instance.
* The archives are managed by the OMRSArchiveManager.
@@ -49,13 +58,16 @@ import java.util.ArrayList;
* </li>
* </ul>
*/
+@JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE)
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@JsonIgnoreProperties(ignoreUnknown=true)
public class RepositoryServicesConfig
{
- private Connection auditLogConnection = null;
- private ArrayList<Connection> openMetadataArchiveConnectionList = new ArrayList<>();
- private LocalRepositoryConfig localRepositoryConfig = null;
- private EnterpriseAccessConfig enterpriseAccessConfig = null;
- private ArrayList<CohortConfig> cohortConfigList = new ArrayList<>();
+ private ArrayList<Connection> auditLogConnections = new ArrayList<>();
+ private ArrayList<Connection> openMetadataArchiveConnections = new ArrayList<>();
+ private LocalRepositoryConfig localRepositoryConfig = null;
+ private EnterpriseAccessConfig enterpriseAccessConfig = null;
+ private ArrayList<CohortConfig> cohortConfigList = new ArrayList<>();
/**
@@ -69,24 +81,24 @@ public class RepositoryServicesConfig
/**
* Constructor to set all properties.
*
- * @param auditLogConnection - connection to the audit log.
- * @param openMetadataArchiveConnectionList - list of open metadata archive files to load.
+ * @param auditLogConnections - connections to copies of the audit log.
+ * @param openMetadataArchiveConnections - list of open metadata archive files to load.
* @param localRepositoryConfig - properties to configure the behavior of the local repository.
* @param enterpriseAccessConfig - properties to configure the behavior of the federation services provided
* to the Open Metadata Access Services (OMASs).
* @param cohortConfigList - properties about the open metadata repository clusters that this server connects to.
*/
- public RepositoryServicesConfig(Connection auditLogConnection,
- ArrayList<Connection> openMetadataArchiveConnectionList,
+ public RepositoryServicesConfig(List<Connection> auditLogConnections,
+ List<Connection> openMetadataArchiveConnections,
LocalRepositoryConfig localRepositoryConfig,
EnterpriseAccessConfig enterpriseAccessConfig,
- ArrayList<CohortConfig> cohortConfigList)
+ List<CohortConfig> cohortConfigList)
{
- this.auditLogConnection = auditLogConnection;
- this.openMetadataArchiveConnectionList = openMetadataArchiveConnectionList;
- this.localRepositoryConfig = localRepositoryConfig;
- this.enterpriseAccessConfig = enterpriseAccessConfig;
- this.cohortConfigList = cohortConfigList;
+ this.setAuditLogConnections(auditLogConnections);
+ this.setOpenMetadataArchiveConnections(openMetadataArchiveConnections);
+ this.setLocalRepositoryConfig(localRepositoryConfig);
+ this.setEnterpriseAccessConfig(enterpriseAccessConfig);
+ this.setCohortConfigList(cohortConfigList);
}
@@ -95,20 +107,34 @@ public class RepositoryServicesConfig
*
* @return Connection object
*/
- public Connection getAuditLogConnection()
+ public List<Connection> getAuditLogConnections()
{
- return auditLogConnection;
+ if (auditLogConnections == null)
+ {
+ return null;
+ }
+ else
+ {
+ return auditLogConnections;
+ }
}
/**
* Set up the Connection properties used to create an OCF Connector to the AuditLog.
*
- * @param auditLogConnection - Connection object
+ * @param auditLogConnections - list of Connection objects
*/
- public void setAuditLogConnection(Connection auditLogConnection)
+ public void setAuditLogConnections(List<Connection> auditLogConnections)
{
- this.auditLogConnection = auditLogConnection;
+ if (auditLogConnections == null)
+ {
+ this.auditLogConnections = null;
+ }
+ else
+ {
+ this.auditLogConnections = new ArrayList<>(auditLogConnections);
+ }
}
@@ -118,9 +144,16 @@ public class RepositoryServicesConfig
*
* @return list of Connection objects
*/
- public ArrayList<Connection> getOpenMetadataArchiveConnectionList()
+ public List<Connection> getOpenMetadataArchiveConnections()
{
- return openMetadataArchiveConnectionList;
+ if (openMetadataArchiveConnections == null)
+ {
+ return null;
+ }
+ else
+ {
+ return openMetadataArchiveConnections;
+ }
}
@@ -128,11 +161,18 @@ public class RepositoryServicesConfig
* Set up the list of Connection object, each of which is used to create the Connector to an Open Metadata
* Archive. Open Metadata Archive contains pre-built metadata types and instances.
*
- * @param openMetadataArchiveConnectionList - list of Connection objects
+ * @param openMetadataArchiveConnections - list of Connection objects
*/
- public void setOpenMetadataArchiveConnectionList(ArrayList<Connection> openMetadataArchiveConnectionList)
+ public void setOpenMetadataArchiveConnections(List<Connection> openMetadataArchiveConnections)
{
- this.openMetadataArchiveConnectionList = openMetadataArchiveConnectionList;
+ if (openMetadataArchiveConnections == null)
+ {
+ this.openMetadataArchiveConnections = null;
+ }
+ else
+ {
+ this.openMetadataArchiveConnections = new ArrayList<>(openMetadataArchiveConnections);
+ }
}
@@ -188,9 +228,16 @@ public class RepositoryServicesConfig
*
* @return list of cluster configuration properties
*/
- public ArrayList<CohortConfig> getCohortConfigList()
+ public List<CohortConfig> getCohortConfigList()
{
- return cohortConfigList;
+ if (cohortConfigList == null)
+ {
+ return null;
+ }
+ else
+ {
+ return cohortConfigList;
+ }
}
@@ -200,8 +247,15 @@ public class RepositoryServicesConfig
*
* @param cohortConfigList - list of cluster configuration properties
*/
- public void setCohortConfigList(ArrayList<CohortConfig> cohortConfigList)
+ public void setCohortConfigList(List<CohortConfig> cohortConfigList)
{
- this.cohortConfigList = cohortConfigList;
+ if (cohortConfigList == null)
+ {
+ this.cohortConfigList = null;
+ }
+ else
+ {
+ this.cohortConfigList = new ArrayList<>(cohortConfigList);
+ }
}
}