package org.ebayopensource.turmeric.repository.v1.services.repositoryservice.impl; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import org.ebayopensource.turmeric.common.v1.types.AckValue; import org.ebayopensource.turmeric.common.v1.types.BaseResponse; import org.ebayopensource.turmeric.common.v1.types.CommonErrorData; import org.ebayopensource.turmeric.common.v1.types.ErrorMessage; import org.ebayopensource.turmeric.common.v1.types.ErrorParameter; import org.ebayopensource.turmeric.common.v1.types.ErrorSeverity; import org.ebayopensource.turmeric.errorlibrary.repository.ErrorConstants; import org.ebayopensource.turmeric.repository.v1.services.ApproveAssetRequest; import org.ebayopensource.turmeric.repository.v1.services.ApproveAssetResponse; import org.ebayopensource.turmeric.repository.v1.services.CreateAndSubmitAssetRequest; import org.ebayopensource.turmeric.repository.v1.services.CreateAndSubmitAssetResponse; import org.ebayopensource.turmeric.repository.v1.services.CreateAssetRequest; import org.ebayopensource.turmeric.repository.v1.services.CreateAssetResponse; import org.ebayopensource.turmeric.repository.v1.services.CreateCompleteAssetRequest; import org.ebayopensource.turmeric.repository.v1.services.CreateCompleteAssetResponse; import org.ebayopensource.turmeric.repository.v1.services.CreateServiceRequest; import org.ebayopensource.turmeric.repository.v1.services.CreateServiceResponse; import org.ebayopensource.turmeric.repository.v1.services.GetAllAssetsGroupedByCategoryRequest; import org.ebayopensource.turmeric.repository.v1.services.GetAllAssetsGroupedByCategoryResponse; import org.ebayopensource.turmeric.repository.v1.services.GetAllProjectsAndGroupsRequest; import org.ebayopensource.turmeric.repository.v1.services.GetAllProjectsAndGroupsResponse; import org.ebayopensource.turmeric.repository.v1.services.GetAssetDependenciesByGraphRequest; import org.ebayopensource.turmeric.repository.v1.services.GetAssetDependenciesByGraphResponse; import org.ebayopensource.turmeric.repository.v1.services.GetAssetDependenciesRequest; import org.ebayopensource.turmeric.repository.v1.services.GetAssetDependenciesResponse; import org.ebayopensource.turmeric.repository.v1.services.GetAssetInfoRequest; import org.ebayopensource.turmeric.repository.v1.services.GetAssetInfoResponse; import org.ebayopensource.turmeric.repository.v1.services.GetAssetLifeCycleStatesRequest; import org.ebayopensource.turmeric.repository.v1.services.GetAssetLifeCycleStatesResponse; import org.ebayopensource.turmeric.repository.v1.services.GetAssetStatusRequest; import org.ebayopensource.turmeric.repository.v1.services.GetAssetStatusResponse; import org.ebayopensource.turmeric.repository.v1.services.GetAssetSubmissionPropertiesRequest; import org.ebayopensource.turmeric.repository.v1.services.GetAssetSubmissionPropertiesResponse; import org.ebayopensource.turmeric.repository.v1.services.GetAssetTreeByAttributesRequest; import org.ebayopensource.turmeric.repository.v1.services.GetAssetTreeByAttributesResponse; import org.ebayopensource.turmeric.repository.v1.services.GetAssetTypesRequest; import org.ebayopensource.turmeric.repository.v1.services.GetAssetTypesResponse; import org.ebayopensource.turmeric.repository.v1.services.GetAssetVersionsRequest; import org.ebayopensource.turmeric.repository.v1.services.GetAssetVersionsResponse; import org.ebayopensource.turmeric.repository.v1.services.GetBasicAssetInfoRequest; import org.ebayopensource.turmeric.repository.v1.services.GetBasicAssetInfoResponse; import org.ebayopensource.turmeric.repository.v1.services.GetCatalogAssetInfoRequest; import org.ebayopensource.turmeric.repository.v1.services.GetCatalogAssetInfoResponse; import org.ebayopensource.turmeric.repository.v1.services.GetLibraryListRequest; import org.ebayopensource.turmeric.repository.v1.services.GetLibraryListResponse; import org.ebayopensource.turmeric.repository.v1.services.GetServiceRequest; import org.ebayopensource.turmeric.repository.v1.services.GetServiceResponse; import org.ebayopensource.turmeric.repository.v1.services.GetSubscriptionRequest; import org.ebayopensource.turmeric.repository.v1.services.GetSubscriptionResponse; import org.ebayopensource.turmeric.repository.v1.services.GetUsersProjectsAndGroupsRequest; import org.ebayopensource.turmeric.repository.v1.services.GetUsersProjectsAndGroupsResponse; import org.ebayopensource.turmeric.repository.v1.services.LockAssetRequest; import org.ebayopensource.turmeric.repository.v1.services.LockAssetResponse; import org.ebayopensource.turmeric.repository.v1.services.RejectAssetRequest; import org.ebayopensource.turmeric.repository.v1.services.RejectAssetResponse; import org.ebayopensource.turmeric.repository.v1.services.RemoveAssetRequest; import org.ebayopensource.turmeric.repository.v1.services.RemoveAssetResponse; import org.ebayopensource.turmeric.repository.v1.services.SearchAssetsDetailedRequest; import org.ebayopensource.turmeric.repository.v1.services.SearchAssetsDetailedResponse; import org.ebayopensource.turmeric.repository.v1.services.SearchAssetsRequest; import org.ebayopensource.turmeric.repository.v1.services.SearchAssetsResponse; import org.ebayopensource.turmeric.repository.v1.services.SubmitForPublishingRequest; import org.ebayopensource.turmeric.repository.v1.services.SubmitForPublishingResponse; import org.ebayopensource.turmeric.repository.v1.services.SubscribeRequest; import org.ebayopensource.turmeric.repository.v1.services.SubscribeResponse; import org.ebayopensource.turmeric.repository.v1.services.UnlockAssetRequest; import org.ebayopensource.turmeric.repository.v1.services.UnlockAssetResponse; import org.ebayopensource.turmeric.repository.v1.services.UnsubscribeRequest; import org.ebayopensource.turmeric.repository.v1.services.UnsubscribeResponse; import org.ebayopensource.turmeric.repository.v1.services.UpdateAssetArtifactsRequest; import org.ebayopensource.turmeric.repository.v1.services.UpdateAssetArtifactsResponse; import org.ebayopensource.turmeric.repository.v1.services.UpdateAssetAttributesRequest; import org.ebayopensource.turmeric.repository.v1.services.UpdateAssetAttributesResponse; import org.ebayopensource.turmeric.repository.v1.services.UpdateAssetDependenciesByGraphRequest; import org.ebayopensource.turmeric.repository.v1.services.UpdateAssetDependenciesByGraphResponse; import org.ebayopensource.turmeric.repository.v1.services.UpdateAssetDependenciesRequest; import org.ebayopensource.turmeric.repository.v1.services.UpdateAssetDependenciesResponse; import org.ebayopensource.turmeric.repository.v1.services.UpdateAssetRequest; import org.ebayopensource.turmeric.repository.v1.services.UpdateAssetResponse; import org.ebayopensource.turmeric.repository.v1.services.UpdateCompleteAssetRequest; import org.ebayopensource.turmeric.repository.v1.services.UpdateCompleteAssetResponse; import org.ebayopensource.turmeric.repository.v1.services.UpdateServiceRequest; import org.ebayopensource.turmeric.repository.v1.services.UpdateServiceResponse; import org.ebayopensource.turmeric.repository.v1.services.UpdateSubscriptionRequest; import org.ebayopensource.turmeric.repository.v1.services.UpdateSubscriptionResponse; import org.ebayopensource.turmeric.repository.v1.services.ValidateAssetRequest; import org.ebayopensource.turmeric.repository.v1.services.ValidateAssetResponse; import org.ebayopensource.turmeric.repository.v1.services.repositoryservice.TurmericRSV1; import org.ebayopensource.turmeric.runtime.common.exceptions.ErrorDataFactory; import org.ebayopensource.turmeric.services.repositoryservice.impl.RepositoryServiceConstants; import org.ebayopensource.turmeric.services.repositoryservice.impl.RepositoryServiceProvider; import org.ebayopensource.turmeric.services.repositoryservice.impl.RepositoryServiceProviderFactory; import org.ebayopensource.turmeric.services.repositoryservice.impl.RepositoryServiceValidateUtil; import org.ebayopensource.turmeric.services.repositoryservice.impl.ServiceProviderException; public class TurmericRSV1Impl implements TurmericRSV1 { private static Logger s_logger = Logger.getLogger(TurmericRSV1Impl.class); private volatile static RepositoryServiceProvider repositoryServiceProvider; public static void populateProvider() throws ServiceProviderException { if (repositoryServiceProvider == null) { synchronized (TurmericRSV1Impl.class) { if (repositoryServiceProvider == null) repositoryServiceProvider = RepositoryServiceProviderFactory.getInstance(); } } if(repositoryServiceProvider == null) { String message = " Requested Service Provider is not properly configured in the " + "xml file "+RepositoryServiceConstants.s_providerConfigXml; s_logger.error(message); throw new ServiceProviderException(message); } } public ApproveAssetResponse approveAsset( ApproveAssetRequest approveAssetRequest) { ApproveAssetResponse approveAssetResponse = new ApproveAssetResponse(); try { List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); populateProvider(); if (RepositoryServiceValidateUtil.validate(approveAssetRequest, errorDataList)) { approveAssetResponse = repositoryServiceProvider.approveAsset(approveAssetRequest); if (approveAssetResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, approveAssetResponse); } else { setSuccessResponse(approveAssetResponse); } } else { addErrorsToResponse(errorDataList, approveAssetResponse); } } catch(ServiceProviderException e) { handleException(e,approveAssetResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, approveAssetResponse); } return approveAssetResponse; } public CreateAndSubmitAssetResponse createAndSubmitAsset( CreateAndSubmitAssetRequest createAndSubmitAssetRequest) { CreateAndSubmitAssetResponse createAndSubmitAssetResponse = new CreateAndSubmitAssetResponse(); try { List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); populateProvider(); if (RepositoryServiceValidateUtil.validate(createAndSubmitAssetRequest, errorDataList)) { createAndSubmitAssetResponse = repositoryServiceProvider.createAndSubmitAsset(createAndSubmitAssetRequest); if (createAndSubmitAssetResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, createAndSubmitAssetResponse); } else { setSuccessResponse(createAndSubmitAssetResponse); } } else { addErrorsToResponse(errorDataList, createAndSubmitAssetResponse); } } catch(ServiceProviderException e) { handleException(e,createAndSubmitAssetResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, createAndSubmitAssetResponse); } return createAndSubmitAssetResponse; } public CreateAssetResponse createAsset(CreateAssetRequest createAssetRequest) { CreateAssetResponse createAssetResponse = new CreateAssetResponse(); try { List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); populateProvider(); if (RepositoryServiceValidateUtil.validate(createAssetRequest, errorDataList)) { createAssetResponse = repositoryServiceProvider.createAsset(createAssetRequest); if (createAssetResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, createAssetResponse); } else { setSuccessResponse(createAssetResponse); } } else { addErrorsToResponse(errorDataList, createAssetResponse); } } catch(ServiceProviderException e) { handleException(e,createAssetResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, createAssetResponse); } return createAssetResponse; } public CreateCompleteAssetResponse createCompleteAsset( CreateCompleteAssetRequest createCompleteAssetRequest) { CreateCompleteAssetResponse createCompleteAssetResponse = new CreateCompleteAssetResponse(); try { List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); populateProvider(); if (RepositoryServiceValidateUtil.validate(createCompleteAssetRequest, errorDataList)) { createCompleteAssetResponse = repositoryServiceProvider .createCompleteAsset(createCompleteAssetRequest); if (createCompleteAssetResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, createCompleteAssetResponse); } else { setSuccessResponse(createCompleteAssetResponse); } } else { addErrorsToResponse(errorDataList, createCompleteAssetResponse); createCompleteAssetResponse.setAck(AckValue.FAILURE); } } catch(ServiceProviderException e) { handleException(e,createCompleteAssetResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, createCompleteAssetResponse); } return createCompleteAssetResponse; } public CreateServiceResponse createService( CreateServiceRequest createServiceRequest) { CreateServiceResponse createServiceResponse = new CreateServiceResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(createServiceRequest, errorDataList)) { createServiceResponse = repositoryServiceProvider.createService(createServiceRequest); if (createServiceResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, createServiceResponse); } else { setSuccessResponse(createServiceResponse); } } else { addErrorsToResponse(errorDataList, createServiceResponse); } } catch(ServiceProviderException e) { handleException(e,createServiceResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, createServiceResponse); } return createServiceResponse; } public GetAllAssetsGroupedByCategoryResponse getAllAssetsGroupedByCategory( GetAllAssetsGroupedByCategoryRequest getAllAssetsGroupedByCategoryRequest) { GetAllAssetsGroupedByCategoryResponse getAllAssetsGroupedByCategoryResponse = new GetAllAssetsGroupedByCategoryResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(getAllAssetsGroupedByCategoryRequest, errorDataList)) { getAllAssetsGroupedByCategoryResponse = repositoryServiceProvider .getAllAssetsGroupedByCategory(getAllAssetsGroupedByCategoryRequest); if (getAllAssetsGroupedByCategoryResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, getAllAssetsGroupedByCategoryResponse); } else { setSuccessResponse(getAllAssetsGroupedByCategoryResponse); } } else { addErrorsToResponse(errorDataList, getAllAssetsGroupedByCategoryResponse); } } catch(ServiceProviderException e) { handleException(e,getAllAssetsGroupedByCategoryResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, getAllAssetsGroupedByCategoryResponse); } return getAllAssetsGroupedByCategoryResponse; } public GetAllProjectsAndGroupsResponse getAllProjectsAndGroups( GetAllProjectsAndGroupsRequest getAllProjectsAndGroupsRequest) { GetAllProjectsAndGroupsResponse getAllProjectsAndGroupsResponse = new GetAllProjectsAndGroupsResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(getAllProjectsAndGroupsRequest, errorDataList)) { getAllProjectsAndGroupsResponse = repositoryServiceProvider .getAllProjectsAndGroups(getAllProjectsAndGroupsRequest); if (getAllProjectsAndGroupsResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, getAllProjectsAndGroupsResponse); } else { setSuccessResponse(getAllProjectsAndGroupsResponse); } } else { addErrorsToResponse(errorDataList, getAllProjectsAndGroupsResponse); } } catch(ServiceProviderException e) { handleException(e,getAllProjectsAndGroupsResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, getAllProjectsAndGroupsResponse); } return getAllProjectsAndGroupsResponse; } public GetAssetDependenciesResponse getAssetDependencies( GetAssetDependenciesRequest getAssetDependenciesRequest) { GetAssetDependenciesResponse getAssetDependenciesResponse = new GetAssetDependenciesResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(getAssetDependenciesRequest, errorDataList)) { getAssetDependenciesResponse = repositoryServiceProvider .getAssetDependencies(getAssetDependenciesRequest); if (getAssetDependenciesResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, getAssetDependenciesResponse); } else { setSuccessResponse(getAssetDependenciesResponse); } } else { addErrorsToResponse(errorDataList, getAssetDependenciesResponse); } } catch(ServiceProviderException e) { handleException(e,getAssetDependenciesResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, getAssetDependenciesResponse); } return getAssetDependenciesResponse; } public GetAssetDependenciesByGraphResponse getAssetDependenciesByGraph( GetAssetDependenciesByGraphRequest getAssetDependenciesByGraphRequest) { GetAssetDependenciesByGraphResponse getAssetDependenciesByGraphResponse = new GetAssetDependenciesByGraphResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(getAssetDependenciesByGraphRequest, errorDataList)) { getAssetDependenciesByGraphResponse = repositoryServiceProvider .getAssetDependenciesByGraph(getAssetDependenciesByGraphRequest); if (getAssetDependenciesByGraphResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, getAssetDependenciesByGraphResponse); } else { setSuccessResponse(getAssetDependenciesByGraphResponse); } } else { addErrorsToResponse(errorDataList, getAssetDependenciesByGraphResponse); } } catch(ServiceProviderException e) { handleException(e,getAssetDependenciesByGraphResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, getAssetDependenciesByGraphResponse); } return getAssetDependenciesByGraphResponse; } public GetAssetInfoResponse getAssetInfo( GetAssetInfoRequest getAssetInfoRequest) { GetAssetInfoResponse getAssetInfoResponse = new GetAssetInfoResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(getAssetInfoRequest, errorDataList)) { getAssetInfoResponse = repositoryServiceProvider.getAssetInfo(getAssetInfoRequest); if (getAssetInfoResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, getAssetInfoResponse); } else { setSuccessResponse(getAssetInfoResponse); } } else { addErrorsToResponse(errorDataList, getAssetInfoResponse); } } catch(ServiceProviderException e) { handleException(e,getAssetInfoResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, getAssetInfoResponse); } return getAssetInfoResponse; } public GetAssetLifeCycleStatesResponse getAssetLifeCycleStates( GetAssetLifeCycleStatesRequest getAssetLifeCycleStatesRequest) { GetAssetLifeCycleStatesResponse getAssetLifeCycleStatesResponse = new GetAssetLifeCycleStatesResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(getAssetLifeCycleStatesRequest, errorDataList)) { getAssetLifeCycleStatesResponse = repositoryServiceProvider .getAssetLifeCycleStates(getAssetLifeCycleStatesRequest); if (getAssetLifeCycleStatesResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, getAssetLifeCycleStatesResponse); } else { setSuccessResponse(getAssetLifeCycleStatesResponse); } } else { addErrorsToResponse(errorDataList, getAssetLifeCycleStatesResponse); } } catch(ServiceProviderException e) { handleException(e,getAssetLifeCycleStatesResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, getAssetLifeCycleStatesResponse); } return getAssetLifeCycleStatesResponse; } public GetAssetStatusResponse getAssetStatus( GetAssetStatusRequest getAssetStatusRequest) { GetAssetStatusResponse getAssetStatusResponse = new GetAssetStatusResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(getAssetStatusRequest, errorDataList)) { getAssetStatusResponse = repositoryServiceProvider.getAssetStatus(getAssetStatusRequest); if (getAssetStatusResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, getAssetStatusResponse); } else { setSuccessResponse(getAssetStatusResponse); } } else { addErrorsToResponse(errorDataList, getAssetStatusResponse); } } catch(ServiceProviderException e) { handleException(e,getAssetStatusResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, getAssetStatusResponse); } return getAssetStatusResponse; } public GetAssetSubmissionPropertiesResponse getAssetSubmissionProperties( GetAssetSubmissionPropertiesRequest getAssetSubmissionPropertiesRequest) { GetAssetSubmissionPropertiesResponse getAssetSubmissionPropertiesResponse = new GetAssetSubmissionPropertiesResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(getAssetSubmissionPropertiesRequest, errorDataList)) { getAssetSubmissionPropertiesResponse = repositoryServiceProvider .getAssetSubmissionProperties(getAssetSubmissionPropertiesRequest); if (getAssetSubmissionPropertiesResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, getAssetSubmissionPropertiesResponse); } else { setSuccessResponse(getAssetSubmissionPropertiesResponse); } } else { addErrorsToResponse(errorDataList, getAssetSubmissionPropertiesResponse); } } catch(ServiceProviderException e) { handleException(e,getAssetSubmissionPropertiesResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, getAssetSubmissionPropertiesResponse); } return getAssetSubmissionPropertiesResponse; } public GetAssetTreeByAttributesResponse getAssetTreeByAttributes( GetAssetTreeByAttributesRequest getAssetTreeByAttributesRequest) { GetAssetTreeByAttributesResponse getAssetTreeByAttributesResponse = new GetAssetTreeByAttributesResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(getAssetTreeByAttributesRequest, errorDataList)) { getAssetTreeByAttributesResponse = repositoryServiceProvider .getAssetTreeByAttributes(getAssetTreeByAttributesRequest); if (getAssetTreeByAttributesResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, getAssetTreeByAttributesResponse); } else { setSuccessResponse(getAssetTreeByAttributesResponse); } } else { addErrorsToResponse(errorDataList, getAssetTreeByAttributesResponse); } } catch(ServiceProviderException e) { handleException(e,getAssetTreeByAttributesResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, getAssetTreeByAttributesResponse); } return getAssetTreeByAttributesResponse; } public GetAssetTypesResponse getAssetTypes( GetAssetTypesRequest getAssetTypesRequest) { GetAssetTypesResponse getAssetTypesResponse = new GetAssetTypesResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(getAssetTypesRequest, errorDataList)) { getAssetTypesResponse = repositoryServiceProvider.getAssetTypes(getAssetTypesRequest); if (getAssetTypesResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, getAssetTypesResponse); } else { setSuccessResponse(getAssetTypesResponse); } } else { addErrorsToResponse(errorDataList, getAssetTypesResponse); } } catch(ServiceProviderException e) { handleException(e,getAssetTypesResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, getAssetTypesResponse); } return getAssetTypesResponse; } public GetAssetVersionsResponse getAssetVersions( GetAssetVersionsRequest getAssetVersionsRequest) { GetAssetVersionsResponse getAssetVersionsResponse = new GetAssetVersionsResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(getAssetVersionsRequest, errorDataList)) { getAssetVersionsResponse = repositoryServiceProvider.getAssetVersions(getAssetVersionsRequest); if (getAssetVersionsResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, getAssetVersionsResponse); } else { setSuccessResponse(getAssetVersionsResponse); } } else { addErrorsToResponse(errorDataList, getAssetVersionsResponse); } } catch(ServiceProviderException e) { handleException(e,getAssetVersionsResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, getAssetVersionsResponse); } return getAssetVersionsResponse; } public GetBasicAssetInfoResponse getBasicAssetInfo( GetBasicAssetInfoRequest getBasicAssetInfoRequest) { GetBasicAssetInfoResponse getBasicAssetInfoResponse = new GetBasicAssetInfoResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(getBasicAssetInfoRequest, errorDataList)) { getBasicAssetInfoResponse = repositoryServiceProvider.getBasicAssetInfo(getBasicAssetInfoRequest); if (getBasicAssetInfoResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, getBasicAssetInfoResponse); } else { setSuccessResponse(getBasicAssetInfoResponse); } } else { addErrorsToResponse(errorDataList, getBasicAssetInfoResponse); } } catch(ServiceProviderException e) { handleException(e,getBasicAssetInfoResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, getBasicAssetInfoResponse); } return getBasicAssetInfoResponse; } public GetCatalogAssetInfoResponse getCatalogAssetInfo( GetCatalogAssetInfoRequest getCatalogAssetInfoRequest) { GetCatalogAssetInfoResponse getCatalogAssetInfoResponse = new GetCatalogAssetInfoResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(getCatalogAssetInfoRequest, errorDataList)) { getCatalogAssetInfoResponse = repositoryServiceProvider .getCatalogAssetInfo(getCatalogAssetInfoRequest); if (getCatalogAssetInfoResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, getCatalogAssetInfoResponse); } else { setSuccessResponse(getCatalogAssetInfoResponse); } } else { addErrorsToResponse(errorDataList, getCatalogAssetInfoResponse); } } catch(ServiceProviderException e) { handleException(e,getCatalogAssetInfoResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, getCatalogAssetInfoResponse); } return getCatalogAssetInfoResponse; } public GetLibraryListResponse getLibraryList( GetLibraryListRequest getLibraryListRequest) { GetLibraryListResponse getLibraryListResponse = new GetLibraryListResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(getLibraryListRequest, errorDataList)) { getLibraryListResponse = repositoryServiceProvider.getLibraryList(getLibraryListRequest); if (getLibraryListResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, getLibraryListResponse); } else { setSuccessResponse(getLibraryListResponse); } } else { addErrorsToResponse(errorDataList, getLibraryListResponse); } } catch(ServiceProviderException e) { handleException(e,getLibraryListResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, getLibraryListResponse); } return getLibraryListResponse; } public GetServiceResponse getService(GetServiceRequest getServiceRequest) { GetServiceResponse getServiceResponse = new GetServiceResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(getServiceRequest, errorDataList)) { getServiceResponse = repositoryServiceProvider.getService(getServiceRequest); if (getServiceResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, getServiceResponse); } else { setSuccessResponse(getServiceResponse); } } else { addErrorsToResponse(errorDataList, getServiceResponse); } } catch(ServiceProviderException e) { handleException(e,getServiceResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, getServiceResponse); } return getServiceResponse; } public GetSubscriptionResponse getSubscription( GetSubscriptionRequest getSubscriptionRequest) { // Yet to implement return null; } public GetUsersProjectsAndGroupsResponse getUsersProjectsAndGroups( GetUsersProjectsAndGroupsRequest getUsersProjectsAndGroupsRequest) { GetUsersProjectsAndGroupsResponse getUsersProjectsAndGroupsResponse = new GetUsersProjectsAndGroupsResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(getUsersProjectsAndGroupsRequest, errorDataList)) { getUsersProjectsAndGroupsResponse = repositoryServiceProvider .getUsersProjectsAndGroups(getUsersProjectsAndGroupsRequest); if (getUsersProjectsAndGroupsResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, getUsersProjectsAndGroupsResponse); } else { setSuccessResponse(getUsersProjectsAndGroupsResponse); } } else { addErrorsToResponse(errorDataList, getUsersProjectsAndGroupsResponse); } } catch(ServiceProviderException e) { handleException(e,getUsersProjectsAndGroupsResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, getUsersProjectsAndGroupsResponse); } return getUsersProjectsAndGroupsResponse; } public LockAssetResponse lockAsset(LockAssetRequest lockAssetRequest) { LockAssetResponse lockAssetResponse = new LockAssetResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(lockAssetRequest, errorDataList)) { lockAssetResponse = repositoryServiceProvider.lockAsset(lockAssetRequest); if (lockAssetResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, lockAssetResponse); } else { setSuccessResponse(lockAssetResponse); } } else { addErrorsToResponse(errorDataList, lockAssetResponse); } } catch(ServiceProviderException e) { handleException(e,lockAssetResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, lockAssetResponse); } return lockAssetResponse; } public RejectAssetResponse rejectAsset(RejectAssetRequest rejectAssetRequest) { RejectAssetResponse rejectAssetResponse = new RejectAssetResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(rejectAssetRequest, errorDataList)) { rejectAssetResponse = repositoryServiceProvider.rejectAsset(rejectAssetRequest); if (rejectAssetResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, rejectAssetResponse); } else { setSuccessResponse(rejectAssetResponse); } } else { addErrorsToResponse(errorDataList, rejectAssetResponse); } } catch(ServiceProviderException e) { handleException(e,rejectAssetResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, rejectAssetResponse); } return rejectAssetResponse; } public RemoveAssetResponse removeAsset(RemoveAssetRequest removeAssetRequest) { RemoveAssetResponse removeAssetResponse = new RemoveAssetResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(removeAssetRequest, errorDataList)) { removeAssetResponse = repositoryServiceProvider.removeAsset(removeAssetRequest); if (removeAssetResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, removeAssetResponse); } else { setSuccessResponse(removeAssetResponse); } } else { addErrorsToResponse(errorDataList, removeAssetResponse); } } catch(ServiceProviderException e) { handleException(e,removeAssetResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, removeAssetResponse); } return removeAssetResponse; } public SearchAssetsResponse searchAssets( SearchAssetsRequest searchAssetsRequest) { SearchAssetsResponse searchAssetsResponse = new SearchAssetsResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(searchAssetsRequest, errorDataList)) { searchAssetsResponse = repositoryServiceProvider.searchAssets(searchAssetsRequest); if (searchAssetsResponse.getErrorMessage() != null) { // errorDataList.addAll(updateAssetArtifactsResponse.getErrorMessage().getError()); addErrorsToResponse(errorDataList, searchAssetsResponse); } else { setSuccessResponse(searchAssetsResponse); } } else { addErrorsToResponse(errorDataList, searchAssetsResponse); } } catch(ServiceProviderException e) { handleException(e,searchAssetsResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, searchAssetsResponse); } return searchAssetsResponse; } public SearchAssetsDetailedResponse searchAssetsDetailed( SearchAssetsDetailedRequest searchAssetsDetailedRequest) { SearchAssetsDetailedResponse searchAssetsDetailedResponse = new SearchAssetsDetailedResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(searchAssetsDetailedRequest, errorDataList)) { searchAssetsDetailedResponse = repositoryServiceProvider .searchAssetsDetailed(searchAssetsDetailedRequest); if (searchAssetsDetailedResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, searchAssetsDetailedResponse); } else { setSuccessResponse(searchAssetsDetailedResponse); } } else { addErrorsToResponse(errorDataList, searchAssetsDetailedResponse); } } catch(ServiceProviderException e) { handleException(e,searchAssetsDetailedResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, searchAssetsDetailedResponse); } return searchAssetsDetailedResponse; } public SubmitForPublishingResponse submitForPublishing( SubmitForPublishingRequest submitForPublishingRequest) { SubmitForPublishingResponse submitForPublishingResponse = new SubmitForPublishingResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(submitForPublishingRequest, errorDataList)) { submitForPublishingResponse = repositoryServiceProvider .submitForPublishing(submitForPublishingRequest); if (submitForPublishingResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, submitForPublishingResponse); } else { if(errorDataList.size()>0) { addErrorsToResponse(errorDataList, submitForPublishingResponse); boolean isError = false; boolean isWarning = false; for(CommonErrorData errorData:errorDataList) { if(ErrorSeverity.ERROR.equals(errorData.getSeverity())) { isError = true; } else if(ErrorSeverity.WARNING.equals(errorData.getSeverity())) { isWarning = true; } } if(isError) { submitForPublishingResponse.setAck(AckValue.FAILURE); } else if(isWarning && !AckValue.FAILURE.equals(submitForPublishingResponse.getAck()) && !AckValue.PARTIAL_FAILURE.equals(submitForPublishingResponse.getAck())) { submitForPublishingResponse.setAck(AckValue.WARNING); } } setSuccessResponse(submitForPublishingResponse); } } else { addErrorsToResponse(errorDataList, submitForPublishingResponse); } } catch(ServiceProviderException e) { handleException(e,submitForPublishingResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, submitForPublishingResponse); } return submitForPublishingResponse; } public SubscribeResponse subscribe(SubscribeRequest subscribeRequest) { // Yet to implement return null; } public UnlockAssetResponse unlockAsset(UnlockAssetRequest unlockAssetRequest) { UnlockAssetResponse unlockAssetResponse = new UnlockAssetResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(unlockAssetRequest, errorDataList)) { unlockAssetResponse = repositoryServiceProvider.unlockAsset(unlockAssetRequest); if (unlockAssetResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, unlockAssetResponse); } else { setSuccessResponse(unlockAssetResponse); } } else { addErrorsToResponse(errorDataList, unlockAssetResponse); } } catch(ServiceProviderException e) { handleException(e,unlockAssetResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, unlockAssetResponse); } return unlockAssetResponse; } public UnsubscribeResponse unsubscribe(UnsubscribeRequest unsubscribeRequest) { // Yet to implement return null; } public UpdateAssetResponse updateAsset(UpdateAssetRequest updateAssetRequest) { UpdateAssetResponse updateAssetResponse = new UpdateAssetResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(updateAssetRequest, errorDataList)) { updateAssetResponse = repositoryServiceProvider.updateAsset(updateAssetRequest); if (updateAssetResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, updateAssetResponse); } else { setSuccessResponse(updateAssetResponse); } } else { addErrorsToResponse(errorDataList, updateAssetResponse); } } catch(ServiceProviderException e) { handleException(e,updateAssetResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, updateAssetResponse); } return updateAssetResponse; } public UpdateAssetArtifactsResponse updateAssetArtifacts( UpdateAssetArtifactsRequest updateAssetArtifactsRequest) { UpdateAssetArtifactsResponse updateAssetArtifactsResponse = new UpdateAssetArtifactsResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(updateAssetArtifactsRequest, errorDataList)) { updateAssetArtifactsResponse = repositoryServiceProvider .updateAssetArtifacts(updateAssetArtifactsRequest); if (updateAssetArtifactsResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, updateAssetArtifactsResponse); } else { setSuccessResponse(updateAssetArtifactsResponse); } } else { addErrorsToResponse(errorDataList, updateAssetArtifactsResponse); } } catch(ServiceProviderException e) { handleException(e,updateAssetArtifactsResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, updateAssetArtifactsResponse); } return updateAssetArtifactsResponse; } public UpdateAssetAttributesResponse updateAssetAttributes( UpdateAssetAttributesRequest updateAssetAttributesRequest) { UpdateAssetAttributesResponse updateAssetAttributesResponse = new UpdateAssetAttributesResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(updateAssetAttributesRequest, errorDataList)) { updateAssetAttributesResponse = repositoryServiceProvider .updateAssetAttributes(updateAssetAttributesRequest); if (updateAssetAttributesResponse.getErrorMessage() != null) { //List<ErrorData> errorDataList =updateAssetAttributesResponse.getErrorMessage().getError(); addErrorsToResponse(errorDataList, updateAssetAttributesResponse); } else { setSuccessResponse(updateAssetAttributesResponse); } } else { addErrorsToResponse(errorDataList, updateAssetAttributesResponse); } } catch(ServiceProviderException e) { handleException(e,updateAssetAttributesResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, updateAssetAttributesResponse); } return updateAssetAttributesResponse; } public UpdateAssetDependenciesResponse updateAssetDependencies( UpdateAssetDependenciesRequest updateAssetDependenciesRequest) { UpdateAssetDependenciesResponse updateAssetDependenciesResponse = new UpdateAssetDependenciesResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(updateAssetDependenciesRequest, errorDataList)) { updateAssetDependenciesResponse = repositoryServiceProvider .updateAssetDependencies(updateAssetDependenciesRequest); if (updateAssetDependenciesResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, updateAssetDependenciesResponse); } else { setSuccessResponse(updateAssetDependenciesResponse); } } else { addErrorsToResponse(errorDataList, updateAssetDependenciesResponse); } } catch(ServiceProviderException e) { handleException(e,updateAssetDependenciesResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, updateAssetDependenciesResponse); } return updateAssetDependenciesResponse; } public UpdateAssetDependenciesByGraphResponse updateAssetDependenciesByGraph( UpdateAssetDependenciesByGraphRequest updateAssetDependenciesByGraphRequest) { UpdateAssetDependenciesByGraphResponse updateAssetDependenciesByGraphResponse = new UpdateAssetDependenciesByGraphResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(updateAssetDependenciesByGraphRequest, errorDataList)) { updateAssetDependenciesByGraphResponse = repositoryServiceProvider .updateAssetDependenciesByGraph(updateAssetDependenciesByGraphRequest); if (updateAssetDependenciesByGraphResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, updateAssetDependenciesByGraphResponse); } else { setSuccessResponse(updateAssetDependenciesByGraphResponse); } } else { addErrorsToResponse(errorDataList, updateAssetDependenciesByGraphResponse); } } catch(ServiceProviderException e) { handleException(e,updateAssetDependenciesByGraphResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, updateAssetDependenciesByGraphResponse); } return updateAssetDependenciesByGraphResponse; } public UpdateCompleteAssetResponse updateCompleteAsset( UpdateCompleteAssetRequest updateCompleteAssetRequest) { UpdateCompleteAssetResponse updateCompleteAssetResponse = new UpdateCompleteAssetResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(updateCompleteAssetRequest, errorDataList)) { updateCompleteAssetResponse = repositoryServiceProvider .updateCompleteAsset(updateCompleteAssetRequest); if (updateCompleteAssetResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, updateCompleteAssetResponse); } else { setSuccessResponse(updateCompleteAssetResponse); } } else { addErrorsToResponse(errorDataList, updateCompleteAssetResponse); updateCompleteAssetResponse.setAck(AckValue.FAILURE); } } catch(ServiceProviderException e) { handleException(e,updateCompleteAssetResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, updateCompleteAssetResponse); } return updateCompleteAssetResponse; } public UpdateServiceResponse updateService( UpdateServiceRequest updateServiceRequest) { UpdateServiceResponse updateServiceResponse = new UpdateServiceResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(updateServiceRequest, errorDataList)) { updateServiceResponse = repositoryServiceProvider.updateService(updateServiceRequest); if (updateServiceResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, updateServiceResponse); } else { setSuccessResponse(updateServiceResponse); } } else { addErrorsToResponse(errorDataList, updateServiceResponse); } } catch(ServiceProviderException e) { handleException(e,updateServiceResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, updateServiceResponse); } return updateServiceResponse; } public UpdateSubscriptionResponse updateSubscription( UpdateSubscriptionRequest updateSubscriptionRequest) { // Yet to implement return null; } public ValidateAssetResponse validateAsset( ValidateAssetRequest validateAssetRequest) { ValidateAssetResponse validateAssetResponse = new ValidateAssetResponse(); try { populateProvider(); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); if (RepositoryServiceValidateUtil.validate(validateAssetRequest, errorDataList)) { validateAssetResponse = repositoryServiceProvider.validateAsset(validateAssetRequest); if (validateAssetResponse.getErrorMessage() != null) { addErrorsToResponse(errorDataList, validateAssetResponse); } else { setSuccessResponse(validateAssetResponse); } } else { addErrorsToResponse(errorDataList, validateAssetResponse); } } catch(ServiceProviderException e) { handleException(e,validateAssetResponse,ErrorConstants.SERVICE_PROVIDER_EXCEPTION); } catch (Exception exception) { s_logger.error("Uncaught Exception Occured : ", exception); setExceptionMessageToResponse(exception, validateAssetResponse); } return validateAssetResponse; } public void addErrorsToResponse(List<CommonErrorData> errors, BaseResponse response) { if(errors != null && !errors.isEmpty() && response != null) { if(response.getErrorMessage() == null) { response.setErrorMessage(new ErrorMessage()); } response.getErrorMessage().getError().addAll(errors); response.setAck(AckValue.FAILURE); } } public void setSuccessResponse(BaseResponse response) { if(response != null) response.setAck(AckValue.SUCCESS); } protected void setExceptionMessageToResponse(Exception exception, BaseResponse response) { if(response!= null) { response.setAck(AckValue.FAILURE); if(response.getErrorMessage() == null) { ErrorMessage errorMessage = new ErrorMessage(); response.setErrorMessage(errorMessage); } response.getErrorMessage().getError().add(parseGeneralExceptionMessage(exception)); } } /** * @author csubhash * @param exception * @return returns a message parsed error data object */ public static CommonErrorData parseGeneralExceptionMessage(Exception exception) { StackTraceElement[] stackTraceElements = exception.getStackTrace(); int index = 0; String exceptionClass = exception.getClass().getCanonicalName(); String fileName = stackTraceElements[index].getFileName(); String className = stackTraceElements[index].getClassName(); String methodName = stackTraceElements[index].getMethodName(); String lineNo = new Integer(stackTraceElements[index].getLineNumber()).toString(); String message = exception.getMessage(); String[] params = new String[]{exceptionClass,fileName,className,methodName,lineNo,message}; CommonErrorData errorData = ErrorDataFactory.createErrorData(ErrorConstants.UNKNOWN_EXCEPTION, ErrorConstants.ERRORDOMAIN, params); return errorData; } private void handleException(Exception exception,BaseResponse baseResponse, String errorName) { baseResponse.setAck(AckValue.FAILURE); ErrorParameter errorParameter = new ErrorParameter(); errorParameter.setName("Error Message"); errorParameter.setValue(exception.getMessage()); List<CommonErrorData> errorDataList = new ArrayList<CommonErrorData>(); //TODO: Need to use ErrorLib errorDataList.add(ErrorDataFactory.createErrorData(errorName, ErrorConstants.ERRORDOMAIN)); //errorDataList.add(errorDescriptor.newError(errorParameter)); if(baseResponse.getErrorMessage() == null) { baseResponse.setErrorMessage(new ErrorMessage()); } baseResponse.getErrorMessage().getError().addAll(errorDataList); } }