You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by ma...@apache.org on 2018/05/25 20:08:31 UTC
[38/51] [partial] atlas git commit: ATLAS-2722: moved unused code
from branch-1.0
http://git-wip-us.apache.org/repos/asf/atlas/blob/b0ecc36a/omas-assetconsumer/src/main/java/org/apache/atlas/omas/assetconsumer/server/AssetConsumerRESTServices.java
----------------------------------------------------------------------
diff --git a/omas-assetconsumer/src/main/java/org/apache/atlas/omas/assetconsumer/server/AssetConsumerRESTServices.java b/omas-assetconsumer/src/main/java/org/apache/atlas/omas/assetconsumer/server/AssetConsumerRESTServices.java
deleted file mode 100644
index 967be5a..0000000
--- a/omas-assetconsumer/src/main/java/org/apache/atlas/omas/assetconsumer/server/AssetConsumerRESTServices.java
+++ /dev/null
@@ -1,1057 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF 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
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * 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.apache.atlas.omas.assetconsumer.server;
-
-
-import org.apache.atlas.ocf.properties.CommentType;
-import org.apache.atlas.omag.admin.server.OMAGAccessServiceRegistration;
-import org.apache.atlas.omag.configuration.registration.AccessServiceDescription;
-import org.apache.atlas.omag.configuration.registration.AccessServiceOperationalStatus;
-import org.apache.atlas.omag.configuration.registration.AccessServiceRegistration;
-import org.apache.atlas.omas.assetconsumer.admin.AssetConsumerAdmin;
-import org.apache.atlas.omas.assetconsumer.ffdc.AssetConsumerErrorCode;
-import org.apache.atlas.omas.assetconsumer.ffdc.exceptions.*;
-import org.apache.atlas.omas.assetconsumer.server.properties.AssetConsumerOMASAPIResponse;
-import org.apache.atlas.omas.assetconsumer.server.properties.ConnectionResponse;
-import org.apache.atlas.omas.assetconsumer.server.properties.GUIDResponse;
-import org.apache.atlas.omas.assetconsumer.server.properties.VoidResponse;
-import org.apache.atlas.ocf.properties.StarRating;
-import org.apache.atlas.omrs.metadatacollection.repositoryconnector.OMRSRepositoryConnector;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.web.bind.annotation.*;
-
-
-/**
- * The AssetConsumerRESTServices provides the server-side implementation of the AssetConsumer Open Metadata
- * Assess Service (OMAS). This interface provides connections to assets and APIs for adding feedback
- * on the asset.
- */
-@RestController
-@RequestMapping("/omag/omas/asset-consumer")
-public class AssetConsumerRESTServices
-{
- static private String accessServiceName = null;
- static private OMRSRepositoryConnector repositoryConnector = null;
-
- private static final Logger log = LoggerFactory.getLogger(AssetConsumerRESTServices.class);
-
- /**
- * Provide a connector to the REST Services.
- *
- * @param accessServiceName - name of this access service
- * @param repositoryConnector - OMRS Repository Connector to the property server.
- */
- static public void setRepositoryConnector(String accessServiceName,
- OMRSRepositoryConnector repositoryConnector)
- {
- AssetConsumerRESTServices.accessServiceName = accessServiceName;
- AssetConsumerRESTServices.repositoryConnector = repositoryConnector;
- }
-
- /**
- * Default constructor
- */
- public AssetConsumerRESTServices()
- {
- AccessServiceDescription myDescription = AccessServiceDescription.ASSET_CONSUMER_OMAS;
- AccessServiceRegistration myRegistration = new AccessServiceRegistration(myDescription.getAccessServiceCode(),
- myDescription.getAccessServiceName(),
- myDescription.getAccessServiceDescription(),
- myDescription.getAccessServiceWiki(),
- AccessServiceOperationalStatus.ENABLED,
- AssetConsumerAdmin.class.getName());
- OMAGAccessServiceRegistration.registerAccessService(myRegistration);
- }
-
-
-
- /**
- * Returns the connection object corresponding to the supplied connection name.
- *
- * @param userId - String - userId of user making request.
- * @param name - this may be the qualifiedName or displayName of the connection.
- *
- * @return ConnectionResponse or
- * InvalidParameterException - one of the parameters is null or invalid.
- * UnrecognizedConnectionNameException - there is no connection defined for this name.
- * AmbiguousConnectionNameException - there is more than one connection defined for this name.
- * PropertyServerException - there is a problem retrieving information from the property (metadata) server.
- * UserNotAuthorizedException - the requesting user is not authorized to issue this request.
- */
- @RequestMapping(method = RequestMethod.GET, path = "/{userId}/connections/by-name/{name}")
-
- ConnectionResponse getConnectionByName(@PathVariable String userId,
- @PathVariable String name)
- {
- final String methodName = "getConnectionByName";
-
- if (log.isDebugEnabled())
- {
- log.debug("Calling method: " + methodName);
- }
-
- ConnectionResponse response = new ConnectionResponse();
-
- try
- {
- this.validateInitialization(methodName);
-
- ConnectionHandler connectionHandler = new ConnectionHandler(accessServiceName,
- repositoryConnector);
-
- response.setConnection(connectionHandler.getConnectionByName(userId, name));
- }
- catch (InvalidParameterException error)
- {
- captureInvalidParameterException(response, error);
- }
- catch (PropertyServerException error)
- {
- capturePropertyServerException(response, error);
- }
- catch (UnrecognizedConnectionNameException error)
- {
- captureUnrecognizedConnectionNameException(response, error);
- }
- catch (AmbiguousConnectionNameException error)
- {
- captureAmbiguousConnectionNameException(response, error);
- }
- catch (UserNotAuthorizedException error)
- {
- captureUserNotAuthorizedException(response, error);
- }
-
- if (log.isDebugEnabled())
- {
- log.debug("Returning from method: " + methodName + " with response: " + response.toString());
- }
-
- return response;
- }
-
-
- /**
- * Returns the connection object corresponding to the supplied connection GUID.
- *
- * @param userId - String - userId of user making request.
- * @param guid - the unique id for the connection within the property server.
- *
- * @return ConnectionResponse or
- * InvalidParameterException - one of the parameters is null or invalid.
- * UnrecognizedConnectionGUIDException - the supplied GUID is not recognized by the metadata repository.
- * PropertyServerException - there is a problem retrieving information from the property (metadata) server.
- * UserNotAuthorizedException - the requesting user is not authorized to issue this request.
- */
- @RequestMapping(method = RequestMethod.GET, path = "/{userId}/connections/{guid}")
-
- public ConnectionResponse getConnectionByGUID(@PathVariable String userId,
- @PathVariable String guid)
- {
- final String methodName = "getConnectionByGUID";
-
- if (log.isDebugEnabled())
- {
- log.debug("Calling method: " + methodName);
- }
-
- ConnectionResponse response = new ConnectionResponse();
-
- try
- {
- this.validateInitialization(methodName);
-
- ConnectionHandler connectionHandler = new ConnectionHandler(accessServiceName,
- repositoryConnector);
-
- response.setConnection(connectionHandler.getConnectionByGUID(userId, guid));
- }
- catch (InvalidParameterException error)
- {
- captureInvalidParameterException(response, error);
- }
- catch (PropertyServerException error)
- {
- capturePropertyServerException(response, error);
- }
- catch (UnrecognizedConnectionGUIDException error)
- {
- captureUnrecognizedConnectionGUIDException(response, error);
- }
- catch (UserNotAuthorizedException error)
- {
- captureUserNotAuthorizedException(response, error);
- }
-
- if (log.isDebugEnabled())
- {
- log.debug("Returning from method: " + methodName + " with response: " + response.toString());
- }
-
- return response;
- }
-
-
- /**
- * Creates an Audit log record for the asset. This log record is stored in the Asset's Audit Log.
- *
- * @param userId - String - userId of user making request.
- * @param guid - String - unique id for the asset.
- * @param connectorInstanceId - String - (optional) id of connector in use (if any).
- * @param connectionName - String - (optional) name of the connection (extracted from the connector).
- * @param connectorType - String - (optional) type of connector in use (if any).
- * @param contextId - String - (optional) function name, or processId of the activity that the caller is performing.
- * @param message - log record content.
- *
- * @return VoidResponse or
- * InvalidParameterException - one of the parameters is null or invalid.
- * PropertyServerException - There is a problem adding the asset properties to
- * the metadata repository.
- * UserNotAuthorizedException - the requesting user is not authorized to issue this request.
- */
- @RequestMapping(method = RequestMethod.POST, path = "/{userId}/assets/{guid}/log-record")
-
- public VoidResponse addLogMessageToAsset(@PathVariable String userId,
- @PathVariable String guid,
- @RequestParam(required = false) String connectorInstanceId,
- @RequestParam(required = false) String connectionName,
- @RequestParam(required = false) String connectorType,
- @RequestParam(required = false) String contextId,
- @RequestParam(required = false) String message)
- {
- final String methodName = "addLogMessageToAsset";
-
- if (log.isDebugEnabled())
- {
- log.debug("Calling method: " + methodName);
- }
-
- VoidResponse response = new VoidResponse();
-
- try
- {
- this.validateInitialization(methodName);
-
- AuditLogHandler auditLogHandler = new AuditLogHandler(accessServiceName,
- repositoryConnector);
-
- auditLogHandler.addLogMessageToAsset(userId,
- guid,
- connectorInstanceId,
- connectionName,
- connectorType,
- contextId,
- message);
- }
- catch (InvalidParameterException error)
- {
- captureInvalidParameterException(response, error);
- }
- catch (PropertyServerException error)
- {
- capturePropertyServerException(response, error);
- }
- catch (UserNotAuthorizedException error)
- {
- captureUserNotAuthorizedException(response, error);
- }
-
- if (log.isDebugEnabled())
- {
- log.debug("Returning from method: " + methodName + " with response: " + response.toString());
- }
-
- return response;
- }
-
-
- /**
- * Adds a new public tag to the asset's properties.
- *
- * @param userId - String - userId of user making request.
- * @param guid - String - unique id for the asset.
- * @param tagName - String - name of the tag.
- * @param tagDescription - String - (optional) description of the tag. Setting a description, particularly in
- * a public tag makes the tag more valuable to other users and can act as an embryonic
- * glossary term.
- *
- * @return GUIDResponse or
- * InvalidParameterException - one of the parameters is null or invalid.
- * PropertyServerException - There is a problem adding the asset properties to
- * the metadata repository.
- * UserNotAuthorizedException - the requesting user is not authorized to issue this request.
- */
- @RequestMapping(method = RequestMethod.POST, path = "/{userId}/assets/{guid}/tags")
-
- public GUIDResponse addTagToAsset(@PathVariable String userId,
- @PathVariable String guid,
- @RequestParam String tagName,
- @RequestParam(required = false) String tagDescription)
- {
- final String methodName = "addTagToAsset";
-
- if (log.isDebugEnabled())
- {
- log.debug("Calling method: " + methodName);
- }
-
- GUIDResponse response = new GUIDResponse();
-
- try
- {
- this.validateInitialization(methodName);
-
- FeedbackHandler feedbackHandler = new FeedbackHandler(accessServiceName,
- repositoryConnector);
-
- feedbackHandler.addTagToAsset(userId, guid, tagName, tagDescription);
- }
- catch (InvalidParameterException error)
- {
- captureInvalidParameterException(response, error);
- }
- catch (PropertyServerException error)
- {
- capturePropertyServerException(response, error);
- }
- catch (UserNotAuthorizedException error)
- {
- captureUserNotAuthorizedException(response, error);
- }
-
- if (log.isDebugEnabled())
- {
- log.debug("Returning from method: " + methodName + " with response: " + response.toString());
- }
-
- return response;
- }
-
-
- /**
- * Adds a new private tag to the asset's properties.
- *
- * @param userId - String - userId of user making request.
- * @param guid - String - unique id for the asset.
- * @param tagName - String - name of the tag.
- * @param tagDescription - String - (optional) description of the tag. Setting a description, particularly in
- * a public tag makes the tag more valuable to other users and can act as an embryonic
- * glossary term.
- *
- * @return GUIDResponse or
- * InvalidParameterException - one of the parameters is null or invalid.
- * PropertyServerException - There is a problem adding the asset properties to
- * the metadata repository.
- * UserNotAuthorizedException - the requesting user is not authorized to issue this request.
- */
- @RequestMapping(method = RequestMethod.POST, path = "/{userId}/assets/{guid}/tags/private")
-
- public GUIDResponse addPrivateTagToAsset(@PathVariable String userId,
- @PathVariable String guid,
- @RequestParam String tagName,
- @RequestParam(required = false) String tagDescription)
- {
- final String methodName = "addPrivateTagToAsset";
-
- if (log.isDebugEnabled())
- {
- log.debug("Calling method: " + methodName);
- }
-
- GUIDResponse response = new GUIDResponse();
-
- try
- {
- this.validateInitialization(methodName);
-
- FeedbackHandler feedbackHandler = new FeedbackHandler(accessServiceName,
- repositoryConnector);
-
- feedbackHandler.addPrivateTagToAsset(userId, guid, tagName, tagDescription);
- }
- catch (InvalidParameterException error)
- {
- captureInvalidParameterException(response, error);
- }
- catch (PropertyServerException error)
- {
- capturePropertyServerException(response, error);
- }
- catch (UserNotAuthorizedException error)
- {
- captureUserNotAuthorizedException(response, error);
- }
-
- if (log.isDebugEnabled())
- {
- log.debug("Returning from method: " + methodName + " with response: " + response.toString());
- }
-
- return response;
- }
-
-
- /**
- * Adds a rating to the asset.
- *
- * @param userId - String - userId of user making request.
- * @param guid - String - unique id for the asset.
- * @param starRating - StarRating - enumeration for none, one to five stars.
- * @param review - String - user review of asset.
- *
- * @return GUIDResponse or
- * InvalidParameterException - one of the parameters is null or invalid.
- * PropertyServerException - There is a problem adding the asset properties to
- * the metadata repository.
- * UserNotAuthorizedException - the requesting user is not authorized to issue this request.
- */
- @RequestMapping(method = RequestMethod.POST, path = "/{userId}/assets/{guid}/ratings/")
-
- public GUIDResponse addRatingToAsset(@PathVariable String userId,
- @PathVariable String guid,
- @RequestParam StarRating starRating,
- @RequestParam String review)
- {
- final String methodName = "addRatingToAsset";
-
- if (log.isDebugEnabled())
- {
- log.debug("Calling method: " + methodName);
- }
-
- GUIDResponse response = new GUIDResponse();
-
- try
- {
- this.validateInitialization(methodName);
-
- FeedbackHandler feedbackHandler = new FeedbackHandler(accessServiceName,
- repositoryConnector);
-
- feedbackHandler.addRatingToAsset(userId, guid, starRating, review);
- }
- catch (InvalidParameterException error)
- {
- captureInvalidParameterException(response, error);
- }
- catch (PropertyServerException error)
- {
- capturePropertyServerException(response, error);
- }
- catch (UserNotAuthorizedException error)
- {
- captureUserNotAuthorizedException(response, error);
- }
-
- if (log.isDebugEnabled())
- {
- log.debug("Returning from method: " + methodName + " with response: " + response.toString());
- }
-
- return response;
- }
-
-
- /**
- * Adds a "Like" to the asset.
- *
- * @param userId - String - userId of user making request.
- * @param guid - String - unique id for the asset
- *
- * @return GUIDResponse or
- * InvalidParameterException - one of the parameters is null or invalid.
- * PropertyServerException - There is a problem adding the asset properties to
- * the metadata repository.
- * UserNotAuthorizedException - the requesting user is not authorized to issue this request.
- */
- @RequestMapping(method = RequestMethod.POST, path = "/{userId}/assets/{guid}/likes/")
-
- public GUIDResponse addLikeToAsset(@PathVariable String userId,
- @PathVariable String guid)
- {
- final String methodName = "addLikeToAsset";
-
- if (log.isDebugEnabled())
- {
- log.debug("Calling method: " + methodName);
- }
-
- GUIDResponse response = new GUIDResponse();
-
- try
- {
- this.validateInitialization(methodName);
-
- FeedbackHandler feedbackHandler = new FeedbackHandler(accessServiceName,
- repositoryConnector);
-
- feedbackHandler.addLikeToAsset(userId, guid);
- }
- catch (InvalidParameterException error)
- {
- captureInvalidParameterException(response, error);
- }
- catch (PropertyServerException error)
- {
- capturePropertyServerException(response, error);
- }
- catch (UserNotAuthorizedException error)
- {
- captureUserNotAuthorizedException(response, error);
- }
-
- if (log.isDebugEnabled())
- {
- log.debug("Returning from method: " + methodName + " with response: " + response.toString());
- }
-
- return response;
- }
-
-
- /**
- * Adds a comment to the asset.
- *
- * @param userId - String - userId of user making request.
- * @param guid - String - unique id for the asset.
- * @param commentType - type of comment enum.
- * @param commentText - String - the text of the comment.
- *
- * @return GUIDResponse or
- * InvalidParameterException - one of the parameters is null or invalid.
- * PropertyServerException - There is a problem adding the asset properties to
- * the metadata repository.
- * UserNotAuthorizedException - the requesting user is not authorized to issue this request.
- */
- @RequestMapping(method = RequestMethod.POST, path = "/{userId}/assets/{guid}/comments/")
-
- public GUIDResponse addCommentToAsset(@PathVariable String userId,
- @PathVariable String guid,
- @RequestParam CommentType commentType,
- @RequestParam String commentText)
- {
- final String methodName = "addCommentToAsset";
-
- if (log.isDebugEnabled())
- {
- log.debug("Calling method: " + methodName);
- }
-
- GUIDResponse response = new GUIDResponse();
-
- try
- {
- this.validateInitialization(methodName);
-
- FeedbackHandler feedbackHandler = new FeedbackHandler(accessServiceName,
- repositoryConnector);
-
- feedbackHandler.addCommentToAsset(userId, guid, commentType, commentText);
- }
- catch (InvalidParameterException error)
- {
- captureInvalidParameterException(response, error);
- }
- catch (PropertyServerException error)
- {
- capturePropertyServerException(response, error);
- }
- catch (UserNotAuthorizedException error)
- {
- captureUserNotAuthorizedException(response, error);
- }
-
- if (log.isDebugEnabled())
- {
- log.debug("Returning from method: " + methodName + " with response: " + response.toString());
- }
-
- return response;
- }
-
-
- /**
- * Adds a comment to the asset.
- *
- * @param userId - String - userId of user making request.
- * @param commentGUID - String - unique id for an existing comment. Used to add a reply to a comment.
- * @param commentType - type of comment enum.
- * @param commentText - String - the text of the comment.
- *
- * @return GUIDResponse or
- * InvalidParameterException - one of the parameters is null or invalid.
- * PropertyServerException - There is a problem adding the asset properties to
- * the metadata repository.
- * UserNotAuthorizedException - the requesting user is not authorized to issue this request.
- */
- @RequestMapping(method = RequestMethod.POST, path = "/{userId}/comments/{commentGUID}/reply")
-
- public GUIDResponse addCommentReply(@PathVariable String userId,
- @PathVariable String commentGUID,
- @RequestParam CommentType commentType,
- @RequestParam String commentText)
- {
- final String methodName = "addCommentReply";
-
- if (log.isDebugEnabled())
- {
- log.debug("Calling method: " + methodName);
- }
-
- GUIDResponse response = new GUIDResponse();
-
- try
- {
- this.validateInitialization(methodName);
-
- FeedbackHandler feedbackHandler = new FeedbackHandler(accessServiceName,
- repositoryConnector);
-
- feedbackHandler.addCommentReply(userId, commentGUID, commentType, commentText);
- }
- catch (InvalidParameterException error)
- {
- captureInvalidParameterException(response, error);
- }
- catch (PropertyServerException error)
- {
- capturePropertyServerException(response, error);
- }
- catch (UserNotAuthorizedException error)
- {
- captureUserNotAuthorizedException(response, error);
- }
-
- if (log.isDebugEnabled())
- {
- log.debug("Returning from method: " + methodName + " with response: " + response.toString());
- }
-
- return response;
- }
-
-
- /**
- * Removes a tag from the asset that was added by this user.
- *
- * @param userId - String - userId of user making request.
- * @param guid - String - unique id for the tag.
- *
- * @return VoidResponse or
- * InvalidParameterException - one of the parameters is null or invalid.
- * PropertyServerException - There is a problem updating the asset properties in
- * the metadata repository.
- * UserNotAuthorizedException - the requesting user is not authorized to issue this request.
- */
- @RequestMapping(method = RequestMethod.PATCH, path = "/{userId}/tags/{guid}/delete")
-
- public VoidResponse removeTag(@PathVariable String userId,
- @PathVariable String guid)
- {
- final String methodName = "removeTag";
-
- if (log.isDebugEnabled())
- {
- log.debug("Calling method: " + methodName);
- }
-
- VoidResponse response = new VoidResponse();
-
- try
- {
- this.validateInitialization(methodName);
-
- FeedbackHandler feedbackHandler = new FeedbackHandler(accessServiceName,
- repositoryConnector);
-
- feedbackHandler.removeTagFromAsset(userId, guid);
- }
- catch (InvalidParameterException error)
- {
- captureInvalidParameterException(response, error);
- }
- catch (PropertyServerException error)
- {
- capturePropertyServerException(response, error);
- }
- catch (UserNotAuthorizedException error)
- {
- captureUserNotAuthorizedException(response, error);
- }
-
- if (log.isDebugEnabled())
- {
- log.debug("Returning from method: " + methodName + " with response: " + response.toString());
- }
-
- return response;
- }
-
-
- /**
- * Removes a tag from the asset that was added by this user.
- *
- * @param userId - String - userId of user making request.
- * @param guid - String - unique id for the tag.
- *
- * @return VoidResponse or
- * InvalidParameterException - one of the parameters is null or invalid.
- * PropertyServerException - There is a problem updating the asset properties in
- * the metadata repository.
- * UserNotAuthorizedException - the requesting user is not authorized to issue this request.
- */
- @RequestMapping(method = RequestMethod.PATCH, path = "/{userId}/tags/private/{guid}/delete")
-
- public VoidResponse removePrivateTag(@PathVariable String userId,
- @PathVariable String guid)
- {
- final String methodName = "removePrivateTag";
-
- if (log.isDebugEnabled())
- {
- log.debug("Calling method: " + methodName);
- }
-
- VoidResponse response = new VoidResponse();
-
- try
- {
- this.validateInitialization(methodName);
-
- FeedbackHandler feedbackHandler = new FeedbackHandler(accessServiceName,
- repositoryConnector);
-
- feedbackHandler.removePrivateTagFromAsset(userId, guid);
- }
- catch (InvalidParameterException error)
- {
- captureInvalidParameterException(response, error);
- }
- catch (PropertyServerException error)
- {
- capturePropertyServerException(response, error);
- }
- catch (UserNotAuthorizedException error)
- {
- captureUserNotAuthorizedException(response, error);
- }
-
- if (log.isDebugEnabled())
- {
- log.debug("Returning from method: " + methodName + " with response: " + response.toString());
- }
-
- return response;
- }
-
-
- /**
- * Removes of a star rating that was added to the asset by this user.
- *
- * @param userId - String - userId of user making request.
- * @param guid - String - unique id for the rating object
- *
- * @return VoidResponse or
- * InvalidParameterException - one of the parameters is null or invalid.
- * PropertyServerException - There is a problem updating the asset properties in
- * the metadata repository.
- * UserNotAuthorizedException - the requesting user is not authorized to issue this request.
- */
- @RequestMapping(method = RequestMethod.PATCH, path = "/{userId}/ratings/{guid}/delete")
-
- public VoidResponse removeRating(@PathVariable String userId,
- @PathVariable String guid)
- {
- final String methodName = "removeRating";
-
- if (log.isDebugEnabled())
- {
- log.debug("Calling method: " + methodName);
- }
-
- VoidResponse response = new VoidResponse();
-
- try
- {
- this.validateInitialization(methodName);
-
- FeedbackHandler feedbackHandler = new FeedbackHandler(accessServiceName,
- repositoryConnector);
-
- feedbackHandler.removeRatingFromAsset(userId, guid);
- }
- catch (InvalidParameterException error)
- {
- captureInvalidParameterException(response, error);
- }
- catch (PropertyServerException error)
- {
- capturePropertyServerException(response, error);
- }
- catch (UserNotAuthorizedException error)
- {
- captureUserNotAuthorizedException(response, error);
- }
-
- if (log.isDebugEnabled())
- {
- log.debug("Returning from method: " + methodName + " with response: " + response.toString());
- }
-
- return response;
- }
-
-
- /**
- * Removes a "Like" added to the asset by this user.
- *
- * @param userId - String - userId of user making request.
- * @param guid - String - unique id for the like object
- * @return VoidResponse or
- * InvalidParameterException - one of the parameters is null or invalid.
- * PropertyServerException - There is a problem updating the asset properties in
- * the metadata repository.
- * UserNotAuthorizedException - the requesting user is not authorized to issue this request.
- */
- @RequestMapping(method = RequestMethod.PATCH, path = "/{userId}/likes/{guid}/delete")
-
- public VoidResponse removeLike(@PathVariable String userId,
- @PathVariable String guid)
- {
- final String methodName = "removeLike";
-
- if (log.isDebugEnabled())
- {
- log.debug("Calling method: " + methodName);
- }
-
- VoidResponse response = new VoidResponse();
-
- try
- {
- this.validateInitialization(methodName);
-
- FeedbackHandler feedbackHandler = new FeedbackHandler(accessServiceName,
- repositoryConnector);
-
- feedbackHandler.removeLikeFromAsset(userId, guid);
- }
- catch (InvalidParameterException error)
- {
- captureInvalidParameterException(response, error);
- }
- catch (PropertyServerException error)
- {
- capturePropertyServerException(response, error);
- }
- catch (UserNotAuthorizedException error)
- {
- captureUserNotAuthorizedException(response, error);
- }
-
- if (log.isDebugEnabled())
- {
- log.debug("Returning from method: " + methodName + " with response: " + response.toString());
- }
-
- return response;
- }
-
-
- /**
- * Removes a comment added to the asset by this user.
- *
- * @param userId - String - userId of user making request.
- * @param guid - String - unique id for the comment object
- * @return VoidResponse or
- * InvalidParameterException - one of the parameters is null or invalid.
- * PropertyServerException - There is a problem updating the asset properties in
- * the metadata repository.
- * UserNotAuthorizedException - the user does not have permission to perform this request.
- */
- @RequestMapping(method = RequestMethod.PATCH, path = "/{userId}/comments/{guid}/delete")
-
- public VoidResponse removeComment(@PathVariable String userId,
- @PathVariable String guid)
- {
- final String methodName = "removeComment";
-
- if (log.isDebugEnabled())
- {
- log.debug("Calling method: " + methodName);
- }
-
- VoidResponse response = new VoidResponse();
-
- try
- {
- this.validateInitialization(methodName);
-
- FeedbackHandler feedbackHandler = new FeedbackHandler(accessServiceName,
- repositoryConnector);
-
- feedbackHandler.removeCommentFromAsset(userId, guid);
- }
- catch (InvalidParameterException error)
- {
- captureInvalidParameterException(response, error);
- }
- catch (PropertyServerException error)
- {
- capturePropertyServerException(response, error);
- }
- catch (UserNotAuthorizedException error)
- {
- captureUserNotAuthorizedException(response, error);
- }
-
- if (log.isDebugEnabled())
- {
- log.debug("Returning from method: " + methodName + " with response: " + response.toString());
- }
-
- return response;
- }
-
- /* ==========================
- * Support methods
- * ==========================
- */
-
-
- /**
- * Set the exception information into the response.
- *
- * @param response - REST Response
- * @param error returned response.
- * @param exceptionClassName - class name of the exception to recreate
- */
- private void captureCheckedException(AssetConsumerOMASAPIResponse response,
- AssetConsumerCheckedExceptionBase error,
- String exceptionClassName)
- {
- response.setRelatedHTTPCode(error.getReportedHTTPCode());
- response.setExceptionClassName(exceptionClassName);
- response.setExceptionErrorMessage(error.getErrorMessage());
- response.setExceptionSystemAction(error.getReportedSystemAction());
- response.setExceptionUserAction(error.getReportedUserAction());
- }
-
-
- /**
- * Set the exception information into the response.
- *
- * @param response - REST Response
- * @param error returned response.
- */
- private void captureAmbiguousConnectionNameException(AssetConsumerOMASAPIResponse response,
- AmbiguousConnectionNameException error)
- {
- captureCheckedException(response, error, error.getClass().getName());
- }
-
-
- /**
- * Set the exception information into the response.
- *
- * @param response - REST Response
- * @param error returned response.
- */
- private void captureInvalidParameterException(AssetConsumerOMASAPIResponse response,
- InvalidParameterException error)
- {
- captureCheckedException(response, error, error.getClass().getName());
- }
-
-
- /**
- * Set the exception information into the response.
- *
- * @param response - REST Response
- * @param error returned response.
- */
- private void capturePropertyServerException(AssetConsumerOMASAPIResponse response,
- PropertyServerException error)
- {
- captureCheckedException(response, error, error.getClass().getName());
- }
-
-
- /**
- * Set the exception information into the response.
- *
- * @param response - REST Response
- * @param error returned response.
- */
- private void captureUnrecognizedConnectionGUIDException(AssetConsumerOMASAPIResponse response,
- UnrecognizedConnectionGUIDException error)
- {
- captureCheckedException(response, error, error.getClass().getName());
- }
-
-
- /**
- * Set the exception information into the response.
- *
- * @param response - REST Response
- * @param error returned response.
- */
- private void captureUnrecognizedConnectionNameException(AssetConsumerOMASAPIResponse response,
- UnrecognizedConnectionNameException error)
- {
- captureCheckedException(response, error, error.getClass().getName());
- }
-
-
- /**
- * Set the exception information into the response.
- *
- * @param response - REST Response
- * @param error returned response.
- */
- private void captureUserNotAuthorizedException(AssetConsumerOMASAPIResponse response,
- UserNotAuthorizedException error)
- {
- captureCheckedException(response, error, error.getClass().getName());
- }
-
-
- /**
- * Validate that this access service has been initialized before attempting to process a request.
- *
- * @param methodName - name of method called.
- * @throws PropertyServerException - not initialized
- */
- private void validateInitialization(String methodName) throws PropertyServerException
- {
- if (repositoryConnector == null)
- {
- AssetConsumerErrorCode errorCode = AssetConsumerErrorCode.SERVICE_NOT_INITIALIZED;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(methodName);
-
- throw new PropertyServerException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/atlas/blob/b0ecc36a/omas-assetconsumer/src/main/java/org/apache/atlas/omas/assetconsumer/server/AuditLogHandler.java
----------------------------------------------------------------------
diff --git a/omas-assetconsumer/src/main/java/org/apache/atlas/omas/assetconsumer/server/AuditLogHandler.java b/omas-assetconsumer/src/main/java/org/apache/atlas/omas/assetconsumer/server/AuditLogHandler.java
deleted file mode 100644
index 8f44e75..0000000
--- a/omas-assetconsumer/src/main/java/org/apache/atlas/omas/assetconsumer/server/AuditLogHandler.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF 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
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * 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.apache.atlas.omas.assetconsumer.server;
-
-import org.apache.atlas.omas.assetconsumer.ffdc.AssetConsumerErrorCode;
-import org.apache.atlas.omas.assetconsumer.ffdc.exceptions.InvalidParameterException;
-import org.apache.atlas.omas.assetconsumer.ffdc.exceptions.PropertyServerException;
-import org.apache.atlas.omas.assetconsumer.ffdc.exceptions.UserNotAuthorizedException;
-import org.apache.atlas.omrs.metadatacollection.OMRSMetadataCollection;
-import org.apache.atlas.omrs.metadatacollection.repositoryconnector.OMRSRepositoryConnector;
-
-/**
- * AuditLogHandler manages the logging of audit records for the asset.
- */
-public class AuditLogHandler
-{
- private String serviceName;
- private OMRSRepositoryConnector repositoryConnector;
-
-
-
- /**
- * Construct the audit log handler with a link to the property server's connector and this access service's
- * official name.
- *
- * @param serviceName - name of this service
- * @param repositoryConnector - connector to the property server.
- */
- public AuditLogHandler(String serviceName,
- OMRSRepositoryConnector repositoryConnector)
- {
- this.serviceName = serviceName;
- this.repositoryConnector = repositoryConnector;
- }
-
-
- /**
- * Creates an Audit log record for the asset. This log record is stored in the Asset's Audit Log.
- *
- * @param userId - String - userId of user making request.
- * @param assetGUID - String - unique id for the asset.
- * @param connectorInstanceId - String - (optional) id of connector in use (if any).
- * @param connectionName - String - (optional) name of the connection (extracted from the connector).
- * @param connectorType - String - (optional) type of connector in use (if any).
- * @param contextId - String - (optional) function name, or processId of the activity that the caller is performing.
- * @param message - log record content.
- *
- * @throws InvalidParameterException - one of the parameters is null or invalid.
- * @throws PropertyServerException - There is a problem adding the asset properties to
- * the property server.
- * @throws UserNotAuthorizedException - the requesting user is not authorized to issue this request.
- */
- public void addLogMessageToAsset(String userId,
- String assetGUID,
- String connectorInstanceId,
- String connectionName,
- String connectorType,
- String contextId,
- String message) throws InvalidParameterException,
- PropertyServerException,
- UserNotAuthorizedException
- {
- // todo
- }
-
-
- /**
- * Check that there is a repository connector.
- *
- * @param methodName - name of the method being called
- * @return metadata collection that provides access to the properties in the property server
- * @throws PropertyServerException - exception thrown if the repository connector
- */
- private OMRSMetadataCollection validateRepositoryConnector(String methodName) throws PropertyServerException
- {
- if (this.repositoryConnector == null)
- {
- AssetConsumerErrorCode errorCode = AssetConsumerErrorCode.OMRS_NOT_INITIALIZED;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(methodName);
-
- throw new PropertyServerException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
-
- }
-
- if (! this.repositoryConnector.isActive())
- {
- AssetConsumerErrorCode errorCode = AssetConsumerErrorCode.OMRS_NOT_AVAILABLE;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(methodName);
-
- throw new PropertyServerException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
-
- try
- {
- return repositoryConnector.getMetadataCollection();
- }
- catch (Throwable error)
- {
- AssetConsumerErrorCode errorCode = AssetConsumerErrorCode.NO_METADATA_COLLECTION;
- String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(methodName);
-
- throw new PropertyServerException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/atlas/blob/b0ecc36a/omas-assetconsumer/src/main/java/org/apache/atlas/omas/assetconsumer/server/ConnectionHandler.java
----------------------------------------------------------------------
diff --git a/omas-assetconsumer/src/main/java/org/apache/atlas/omas/assetconsumer/server/ConnectionHandler.java b/omas-assetconsumer/src/main/java/org/apache/atlas/omas/assetconsumer/server/ConnectionHandler.java
deleted file mode 100644
index 3454416..0000000
--- a/omas-assetconsumer/src/main/java/org/apache/atlas/omas/assetconsumer/server/ConnectionHandler.java
+++ /dev/null
@@ -1,645 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF 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
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
- * 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.apache.atlas.omas.assetconsumer.server;
-
-
-import org.apache.atlas.ocf.properties.ElementOrigin;
-import org.apache.atlas.ocf.properties.beans.*;
-import org.apache.atlas.omas.assetconsumer.ffdc.AssetConsumerErrorCode;
-import org.apache.atlas.omas.assetconsumer.ffdc.exceptions.*;
-import org.apache.atlas.omrs.localrepository.repositorycontentmanager.OMRSRepositoryHelper;
-import org.apache.atlas.omrs.metadatacollection.OMRSMetadataCollection;
-import org.apache.atlas.omrs.metadatacollection.properties.MatchCriteria;
-import org.apache.atlas.omrs.metadatacollection.properties.instances.*;
-import org.apache.atlas.omrs.metadatacollection.properties.typedefs.PrimitiveDefCategory;
-import org.apache.atlas.omrs.metadatacollection.repositoryconnector.OMRSRepositoryConnector;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-/**
- * ConnectionHandler retrieves Connection objects from the property server. It runs server-side in the AssetConsumer
- * OMAS and retrieves Connections through the OMRSRepositoryConnector.
- */
-public class ConnectionHandler
-{
- private static final String connectionTypeGUID = "114e9f8f-5ff3-4c32-bd37-a7eb42712253";
- private static final String connectionConnectorTypeRelationshipGUID = "e542cfc1-0b4b-42b9-9921-f0a5a88aaf96";
- private static final String connectionEndpointRelationshipGUID = "887a7132-d6bc-4b92-a483-e80b60c86fb2";
- private static final String qualifiedNamePropertyName = "qualifiedName";
- private static final String displayNamePropertyName = "displayName";
- private static final String additionalPropertiesName = "additionalProperties";
- private static final String securePropertiesName = "securedProperties";
- private static final String descriptionPropertyName = "description";
- private static final String connectorProviderPropertyName = "connectorProviderClassName";
- private static final String endpointPropertyName = "name";
- private static final String endpointAddressPropertyName = "networkAddress";
- private static final String endpointProtocolPropertyName = "protocol";
- private static final String endpointEncryptionPropertyName = "encryptionMethod";
-
- private String serviceName;
- private OMRSRepositoryHelper repositoryHelper = null;
- private String serverName = null;
- private ErrorHandler errorHandler = null;
-
- /**
- * Construct the connection handler with a link to the property server's connector and this access service's
- * official name.
- *
- * @param serviceName - name of this service
- * @param repositoryConnector - connector to the property server.
- */
- public ConnectionHandler(String serviceName,
- OMRSRepositoryConnector repositoryConnector)
- {
- this.serviceName = serviceName;
- if (repositoryConnector != null)
- {
- this.repositoryHelper = repositoryConnector.getRepositoryHelper();
- this.serverName = repositoryConnector.getServerName();
- errorHandler = new ErrorHandler(repositoryConnector);
- }
- }
-
-
- /**
- * Returns the connection object corresponding to the supplied connection name.
- *
- * @param userId - String - userId of user making request.
- * @param name - this may be the qualifiedName or displayName of the connection.
- *
- * @return Connection retrieved from property server
- * @throws InvalidParameterException - one of the parameters is null or invalid.
- * @throws UnrecognizedConnectionNameException - there is no connection defined for this name.
- * @throws AmbiguousConnectionNameException - there is more than one connection defined for this name.
- * @throws PropertyServerException - there is a problem retrieving information from the property (metadata) server.
- * @throws UserNotAuthorizedException - the requesting user is not authorized to issue this request.
- */
- Connection getConnectionByName(String userId,
- String name) throws InvalidParameterException,
- UnrecognizedConnectionNameException,
- AmbiguousConnectionNameException,
- PropertyServerException,
- UserNotAuthorizedException
- {
- final String methodName = "getConnectionByName";
- final String nameParameter = "name";
-
- errorHandler.validateUserId(userId, methodName);
- errorHandler.validateName(name, nameParameter, methodName);
-
- OMRSMetadataCollection metadataCollection = errorHandler.validateRepositoryConnector(methodName);
-
- try
- {
- InstanceProperties properties = null;
-
- properties = repositoryHelper.addStringPropertyToInstance(serviceName,
- properties,
- qualifiedNamePropertyName,
- name,
- methodName);
-
- properties = repositoryHelper.addStringPropertyToInstance(serviceName,
- properties,
- displayNamePropertyName,
- name,
- methodName);
-
- List<EntityDetail> connections = metadataCollection.findEntitiesByProperty(userId,
- connectionTypeGUID,
- properties,
- MatchCriteria.ANY,
- 0,
- null,
- null,
- null,
- null,
- null,
- 2);
-
- if (connections == null)
- {
- AssetConsumerErrorCode errorCode = AssetConsumerErrorCode.CONNECTION_NOT_FOUND;
- String errorMessage = errorCode.getErrorMessageId()
- + errorCode.getFormattedErrorMessage(name, serverName, null);
-
- throw new UnrecognizedConnectionNameException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
- else if (connections.isEmpty())
- {
- AssetConsumerErrorCode errorCode = AssetConsumerErrorCode.CONNECTION_NOT_FOUND;
- String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(name,
- serverName,
- null);
-
- throw new UnrecognizedConnectionNameException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
- else if (connections.size() > 1)
- {
- AssetConsumerErrorCode errorCode = AssetConsumerErrorCode.TOO_MANY_CONNECTIONS;
- String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(name,
- serverName,
- Integer.toString(connections.size()));
-
- throw new AmbiguousConnectionNameException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
- else
- {
- return this.getConnectionFromRepository(userId, metadataCollection, connections.get(0));
- }
- }
- catch (org.apache.atlas.omrs.ffdc.exception.UserNotAuthorizedException error)
- {
- errorHandler.handleUnauthorizedUser(userId,
- methodName,
- serverName,
- serviceName);
- }
- catch (AmbiguousConnectionNameException error)
- {
- throw error;
- }
- catch (UnrecognizedConnectionNameException error)
- {
- throw error;
- }
- catch (Throwable error)
- {
- errorHandler.handleRepositoryError(error,
- methodName,
- serverName,
- serviceName);
- }
-
- return null;
- }
-
-
- /**
- * Returns the connection object corresponding to the supplied connection GUID.
- *
- * @param userId - String - userId of user making request.
- * @param guid - the unique id for the connection within the property server.
- *
- * @return Connection retrieved from the property server
- * @throws InvalidParameterException - one of the parameters is null or invalid.
- * @throws UnrecognizedConnectionGUIDException - the supplied GUID is not recognized by the metadata repository.
- * @throws PropertyServerException - there is a problem retrieving information from the property (metadata) server.
- * @throws UserNotAuthorizedException - the requesting user is not authorized to issue this request.
- */
- public Connection getConnectionByGUID(String userId,
- String guid) throws InvalidParameterException,
- UnrecognizedConnectionGUIDException,
- PropertyServerException,
- UserNotAuthorizedException
- {
- final String methodName = "getConnectionByGUID";
- final String guidParameter = "guid";
-
- errorHandler.validateUserId(userId, methodName);
- errorHandler.validateGUID(guid, guidParameter, methodName);
-
- OMRSMetadataCollection metadataCollection = errorHandler.validateRepositoryConnector(methodName);
- EntityDetail connectionEntity = null;
-
- try
- {
- connectionEntity = metadataCollection.getEntityDetail(userId, guid);
- }
- catch (org.apache.atlas.omrs.ffdc.exception.EntityNotKnownException error)
- {
- AssetConsumerErrorCode errorCode = AssetConsumerErrorCode.CONNECTION_NOT_FOUND;
- String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(guid,
- serverName,
- error.getErrorMessage());
-
- throw new UnrecognizedConnectionGUIDException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
- catch (org.apache.atlas.omrs.ffdc.exception.EntityProxyOnlyException error)
- {
- AssetConsumerErrorCode errorCode = AssetConsumerErrorCode.PROXY_CONNECTION_FOUND;
- String errorMessage = errorCode.getErrorMessageId() + errorCode.getFormattedErrorMessage(guid,
- serverName,
- error.getErrorMessage());
-
- throw new UnrecognizedConnectionGUIDException(errorCode.getHTTPErrorCode(),
- this.getClass().getName(),
- methodName,
- errorMessage,
- errorCode.getSystemAction(),
- errorCode.getUserAction());
- }
- catch (org.apache.atlas.omrs.ffdc.exception.UserNotAuthorizedException error)
- {
- errorHandler.handleUnauthorizedUser(userId,
- methodName,
- serverName,
- serviceName); }
- catch (Throwable error)
- {
- errorHandler.handleRepositoryError(error,
- methodName,
- serverName,
- serviceName);
- }
-
- if (connectionEntity != null)
- {
- return this.getConnectionFromRepository(userId, metadataCollection, connectionEntity);
- }
-
- return null;
- }
-
-
-
-
- /**
- * Return a Connection bean filled with values retrieved from the property server.
- *
- * @param userId - name of user
- * @param metadataCollection - accessor object for the property server
- * @param connectionEntity - root entity object
- * @return Connection bean
- * @throws PropertyServerException - a problem communicating with the property server
- */
- private Connection getConnectionFromRepository(String userId,
- OMRSMetadataCollection metadataCollection,
- EntityDetail connectionEntity) throws PropertyServerException
- {
- final String methodName = "getConnectionFromRepository";
-
- ConnectorType connectorType = getConnectorTypeFromRepository(userId, metadataCollection, connectionEntity);
- Endpoint endpoint = getEndpointFromRepository(userId, metadataCollection, connectionEntity);
-
- Connection connection = new Connection();
-
- connection.setGUID(connectionEntity.getGUID());
- connection.setURL(connectionEntity.getInstanceURL());
- connection.setType(this.getElementType(connectionEntity));
- connection.setQualifiedName(repositoryHelper.getStringProperty(serviceName,
- qualifiedNamePropertyName,
- connectionEntity.getProperties(),
- methodName));
- connection.setDisplayName(repositoryHelper.getStringProperty(serviceName,
- displayNamePropertyName,
- connectionEntity.getProperties(),
- methodName));
-
- connection.setDescription(repositoryHelper.getStringProperty(serviceName,
- descriptionPropertyName,
- connectionEntity.getProperties(),
- methodName));
-
- connection.setConnectorType(connectorType);
- connection.setEndpoint(endpoint);
-
-
- connection.setAdditionalProperties(this.getAdditionalPropertiesFromEntity(additionalPropertiesName,
- connectionEntity.getProperties(),
- methodName));
-
- connection.setSecuredProperties(this.getAdditionalPropertiesFromEntity(securePropertiesName,
- connectionEntity.getProperties(),
- methodName));
-
- return connection;
- }
-
-
- /**
- * Return a ConnectorType bean filled with values retrieved from the property server for the connector type
- * associated with the supplied connection.
- *
- * @param userId - name of user
- * @param metadataCollection - accessor object for the property server
- * @param connectionEntity - root entity object
- * @return ConnectorType bean
- * @throws PropertyServerException - a problem communicating with the property server
- */
- private ConnectorType getConnectorTypeFromRepository(String userId,
- OMRSMetadataCollection metadataCollection,
- EntityDetail connectionEntity) throws PropertyServerException
- {
- final String methodName = "getConnectorTypeFromRepository";
-
- ConnectorType connectorType = null;
-
- EntityDetail endpointEntity = this.getEntityForRelationshipType(userId,
- connectionEntity,
- connectionConnectorTypeRelationshipGUID,
- metadataCollection,
- methodName);
-
- if (endpointEntity != null)
- {
- connectorType = new ConnectorType();
-
- connectorType.setGUID(connectionEntity.getGUID());
- connectorType.setURL(connectionEntity.getInstanceURL());
- connectorType.setType(this.getElementType(connectionEntity));
- connectorType.setQualifiedName(repositoryHelper.getStringProperty(serviceName,
- qualifiedNamePropertyName,
- connectionEntity.getProperties(),
- methodName));
- connectorType.setDisplayName(repositoryHelper.getStringProperty(serviceName,
- displayNamePropertyName,
- connectionEntity.getProperties(),
- methodName));
- connectorType.setDescription(repositoryHelper.getStringProperty(serviceName,
- descriptionPropertyName,
- connectionEntity.getProperties(),
- methodName));
- connectorType.setConnectorProviderClassName(repositoryHelper.getStringProperty(serviceName,
- connectorProviderPropertyName,
- connectionEntity.getProperties(),
- methodName));
-
- connectorType.setAdditionalProperties(this.getAdditionalPropertiesFromEntity(additionalPropertiesName,
- connectionEntity.getProperties(),
- methodName));
-
- }
-
-
-
-
- return connectorType;
- }
-
-
- /**
- * Return an Endpoint bean filled with values retrieved from the property server for the endpoint
- * associated with the supplied connection.
- *
- * @param userId - name of user
- * @param metadataCollection - accessor object for the property server
- * @param connectionEntity - root entity object
- * @return Endpoint bean
- * @throws PropertyServerException - a problem communicating with the property server
- */
- private Endpoint getEndpointFromRepository(String userId,
- OMRSMetadataCollection metadataCollection,
- EntityDetail connectionEntity) throws PropertyServerException
- {
- final String methodName = "getEndpointFromRepository";
-
- Endpoint endpoint = null;
-
- EntityDetail endpointEntity = this.getEntityForRelationshipType(userId,
- connectionEntity,
- connectionEndpointRelationshipGUID,
- metadataCollection,
- methodName);
-
- if (endpointEntity != null)
- {
- endpoint = new Endpoint();
-
- endpoint.setGUID(connectionEntity.getGUID());
- endpoint.setURL(connectionEntity.getInstanceURL());
- endpoint.setType(this.getElementType(connectionEntity));
- endpoint.setQualifiedName(repositoryHelper.getStringProperty(serviceName,
- qualifiedNamePropertyName,
- connectionEntity.getProperties(),
- methodName));
- endpoint.setDisplayName(repositoryHelper.getStringProperty(serviceName,
- endpointPropertyName,
- connectionEntity.getProperties(),
- methodName));
- endpoint.setDescription(repositoryHelper.getStringProperty(serviceName,
- descriptionPropertyName,
- connectionEntity.getProperties(),
- methodName));
- endpoint.setAddress(repositoryHelper.getStringProperty(serviceName,
- endpointAddressPropertyName,
- connectionEntity.getProperties(),
- methodName));
- endpoint.setProtocol(repositoryHelper.getStringProperty(serviceName,
- endpointProtocolPropertyName,
- connectionEntity.getProperties(),
- methodName));
- endpoint.setEncryptionMethod(repositoryHelper.getStringProperty(serviceName,
- endpointEncryptionPropertyName,
- connectionEntity.getProperties(),
- methodName));
- endpoint.setAdditionalProperties(this.getAdditionalPropertiesFromEntity(additionalPropertiesName,
- connectionEntity.getProperties(),
- methodName));
- }
-
- return endpoint;
- }
-
-
- /**
- * Create an ElementType by extracting relevant information from the supplied instance.
- *
- * @param instance - instance to extract properties from
- * @return resulting elementType
- */
- private ElementType getElementType(InstanceHeader instance)
- {
- ElementType elementType = null;
- InstanceType instanceType = instance.getType();
-
- if (instanceType != null)
- {
- elementType = new ElementType();
-
- elementType.setElementTypeId(instanceType.getTypeDefGUID());
- elementType.setElementTypeName(instanceType.getTypeDefName());
- elementType.setElementTypeDescription(instanceType.getTypeDefDescription());
- elementType.setElementTypeVersion(instanceType.getTypeDefVersion());
- elementType.setElementAccessServiceURL(serverName);
- elementType.setElementHomeMetadataCollectionId(instance.getMetadataCollectionId());
-
- switch (instance.getInstanceProvenanceType())
- {
- case UNKNOWN:
- elementType.setElementOrigin(null);
- break;
-
- case CONTENT_PACK:
- elementType.setElementOrigin(ElementOrigin.CONTENT_PACK);
- break;
-
- case LOCAL_COHORT:
- elementType.setElementOrigin(ElementOrigin.LOCAL_COHORT);
- break;
-
- case EXPORT_ARCHIVE:
- elementType.setElementOrigin(ElementOrigin.EXPORT_ARCHIVE);
- break;
-
- case DEREGISTERED_REPOSITORY:
- elementType.setElementOrigin(ElementOrigin.DEREGISTERED_REPOSITORY);
- break;
- }
- }
-
- return elementType;
- }
-
-
- /**
- * Extract an additional properties object from the instance properties within a map property value.
- *
- * @param propertyName - name of the property that is a map
- * @param properties - instance properties containing the map property
- * @param methodName - calling method
- * @return an AdditionalProperties object or null
- */
- private AdditionalProperties getAdditionalPropertiesFromEntity(String propertyName,
- InstanceProperties properties,
- String methodName)
- {
- /*
- * Extract the map property
- */
- InstanceProperties mapProperty = repositoryHelper.getMapProperty(serviceName,
- propertyName,
- properties,
- methodName);
-
- if (mapProperty != null)
- {
- /*
- * The contents should be primitives. Need to step through all of the property names
- * and add each primitive value to a map. This map is then used to set up the additional properties
- * object for return
- */
- Iterator<String> additionalPropertyNames = mapProperty.getPropertyNames();
-
- if (additionalPropertyNames != null)
- {
- Map<String,Object> additionalPropertiesMap = new HashMap<>();
-
- while (additionalPropertyNames.hasNext())
- {
- String additionalPropertyName = additionalPropertyNames.next();
- InstancePropertyValue additionalPropertyValue = mapProperty.getPropertyValue(additionalPropertyName);
-
- if (additionalPropertyValue != null)
- {
- /*
- * If the property is not primitive it is ignored.
- */
- if (additionalPropertyValue.getInstancePropertyCategory() == InstancePropertyCategory.PRIMITIVE)
- {
- PrimitivePropertyValue primitivePropertyValue = (PrimitivePropertyValue) additionalPropertyValue;
-
- additionalPropertiesMap.put(additionalPropertyName, primitivePropertyValue.getPrimitiveValue());
- }
- }
- }
-
- if (! additionalPropertiesMap.isEmpty())
- {
- AdditionalProperties additionalProperties = new AdditionalProperties();
-
- additionalProperties.setAdditionalProperties(additionalPropertiesMap);
- return additionalProperties;
- }
- }
- }
-
- return null;
- }
-
- /**
- * Return the entity a the other end of the requested relationship type. The assumption is that this is a 0..1
- * relationship so one entity (or null) is returned. If lots of relationships are found then the
- * PropertyServerException is thrown.
- *
- * @param userId - user making the request.
- * @param anchorEntity - starting entity.
- * @param relationshipTypeGUID - identifier for the relationship to follow
- * @param metadataCollection - metadata collection to retrieve instances from
- * @param methodName - name of calling method
- * @return retrieved entity or null
- * @throws PropertyServerException - problem access the property server
- */
- private EntityDetail getEntityForRelationshipType(String userId,
- EntityDetail anchorEntity,
- String relationshipTypeGUID,
- OMRSMetadataCollection metadataCollection,
- String methodName) throws PropertyServerException
- {
- try
- {
- List<Relationship> relationships = metadataCollection.getRelationshipsForEntity(userId,
- anchorEntity.getGUID(),
- relationshipTypeGUID,
- 0,
- null,
- null,
- null,
- null,
- 100);
-
- if (relationships != null)
- {
- if (relationships.size() == 1)
- {
- Relationship relationship = relationships.get(0);
-
- EntityProxy requiredEnd = relationship.getEntityOneProxy();
- if (anchorEntity.getGUID().equals(requiredEnd.getGUID()))
- {
- requiredEnd = relationship.getEntityTwoProxy();
- }
-
- return metadataCollection.getEntityDetail(userId, requiredEnd.getGUID());
- }
- }
- }
- catch (Throwable error)
- {
- errorHandler.handleRepositoryError(error,
- methodName,
- serverName,
- serviceName);
- }
-
- return null;
- }
-}