You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juddi.apache.org by al...@apache.org on 2014/12/09 04:13:24 UTC
[03/28] juddi git commit: JUDDI-241 working change journal NOJIRA
removing a number of unnecessary TODO statements
http://git-wip-us.apache.org/repos/asf/juddi/blob/8b95902b/juddi-core/src/main/java/org/apache/juddi/mapping/MappingApiToModel.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/mapping/MappingApiToModel.java b/juddi-core/src/main/java/org/apache/juddi/mapping/MappingApiToModel.java
index 2148827..a271d7e 100644
--- a/juddi-core/src/main/java/org/apache/juddi/mapping/MappingApiToModel.java
+++ b/juddi-core/src/main/java/org/apache/juddi/mapping/MappingApiToModel.java
@@ -16,36 +16,55 @@
*/
package org.apache.juddi.mapping;
+import java.io.StringWriter;
+import java.io.UnsupportedEncodingException;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.GregorianCalendar;
+import java.util.HashSet;
import java.util.List;
+import javax.persistence.EntityManager;
import javax.xml.bind.JAXB;
import javax.xml.bind.JAXBElement;
import javax.xml.transform.dom.DOMResult;
-
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.juddi.jaxb.JAXBMarshaller;
+import org.apache.juddi.model.Address;
import org.apache.juddi.model.BindingTemplate;
import org.apache.juddi.model.BusinessService;
import org.apache.juddi.model.CanonicalizationMethod;
+import org.apache.juddi.model.CommunicationGraph;
+import org.apache.juddi.model.Contact;
+import org.apache.juddi.model.ControlMessage;
+import org.apache.juddi.model.Edge;
+import org.apache.juddi.model.KeyDataValue;
import org.apache.juddi.model.KeyInfo;
+import org.apache.juddi.model.Node;
+import org.apache.juddi.model.Operator;
+import org.apache.juddi.model.OperatorStatusType;
import org.apache.juddi.model.Publisher;
import org.apache.juddi.model.Reference;
import org.apache.juddi.model.Signature;
import org.apache.juddi.model.SignatureMethod;
import org.apache.juddi.model.SignatureTransform;
+import org.apache.juddi.model.SignatureTransformDataValue;
import org.apache.juddi.model.SignatureValue;
import org.apache.juddi.model.SignedInfo;
import org.apache.juddi.model.Tmodel;
-import org.apache.juddi.model.KeyDataValue;
-import org.apache.juddi.model.SignatureTransformDataValue;
+import org.apache.juddi.model.UddiEntity;
+import org.apache.juddi.v3.error.ErrorMessage;
+import org.apache.juddi.v3.error.ValueNotAllowedException;
import org.uddi.api_v3.Description;
+import org.uddi.api_v3.OperationalInfo;
+import org.uddi.api_v3.SaveBinding;
+import org.uddi.repl_v3.ChangeRecord;
+import org.uddi.repl_v3.ReplicationConfiguration;
import org.uddi.sub_v3.ObjectFactory;
import org.uddi.v3_service.DispositionReportFaultMessage;
import org.w3._2000._09.xmldsig_.DSAKeyValueType;
+import org.w3._2000._09.xmldsig_.KeyInfoType;
import org.w3._2000._09.xmldsig_.KeyValueType;
import org.w3._2000._09.xmldsig_.PGPDataType;
import org.w3._2000._09.xmldsig_.RSAKeyValueType;
@@ -83,8 +102,8 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapPublisher(org.apache.juddi.api_v3.Publisher apiPublisher,
- org.apache.juddi.model.Publisher modelPublisher)
- throws DispositionReportFaultMessage {
+ org.apache.juddi.model.Publisher modelPublisher)
+ throws DispositionReportFaultMessage {
modelPublisher.setAuthorizedName(apiPublisher.getAuthorizedName());
modelPublisher.setPublisherName(apiPublisher.getPublisherName());
modelPublisher.setEmailAddress(apiPublisher.getEmailAddress());
@@ -104,8 +123,8 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapBusinessEntity(org.uddi.api_v3.BusinessEntity apiBusinessEntity,
- org.apache.juddi.model.BusinessEntity modelBusinessEntity)
- throws DispositionReportFaultMessage {
+ org.apache.juddi.model.BusinessEntity modelBusinessEntity)
+ throws DispositionReportFaultMessage {
modelBusinessEntity.setEntityKey(apiBusinessEntity.getBusinessKey());
@@ -120,15 +139,15 @@ public class MappingApiToModel {
}
mapBusinessServices(apiBusinessEntity.getBusinessServices(),
- modelBusinessEntity.getBusinessServices(),
- modelBusinessEntity.getServiceProjections(),
- modelBusinessEntity);
+ modelBusinessEntity.getBusinessServices(),
+ modelBusinessEntity.getServiceProjections(),
+ modelBusinessEntity);
mapBusinessSignature(apiBusinessEntity.getSignature(), modelBusinessEntity);
}
private static List<Signature> mapApiSignaturesToModelSignatures(List<org.w3._2000._09.xmldsig_.SignatureType> apiSignatures)
- throws DispositionReportFaultMessage {
+ throws DispositionReportFaultMessage {
List<Signature> modelSignatures = new ArrayList<Signature>();
modelSignatures.clear();
for (org.w3._2000._09.xmldsig_.SignatureType signatureType : apiSignatures) {
@@ -224,7 +243,7 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapBusinessServiceSignature(List<org.w3._2000._09.xmldsig_.SignatureType> apiSignatures, BusinessService modelBusinessService)
- throws DispositionReportFaultMessage {
+ throws DispositionReportFaultMessage {
List<Signature> modelSignatures = mapApiSignaturesToModelSignatures(apiSignatures);
for (Signature modelSignature : modelSignatures) {
modelSignature.setBusinessService(modelBusinessService);
@@ -239,7 +258,7 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapTmodelSignatures(List<org.w3._2000._09.xmldsig_.SignatureType> apiSignatures, Tmodel modelTmodel)
- throws DispositionReportFaultMessage {
+ throws DispositionReportFaultMessage {
List<Signature> modelSignatures = mapApiSignaturesToModelSignatures(apiSignatures);
for (Signature modelSignature : modelSignatures) {
modelSignature.setTmodel(modelTmodel);
@@ -254,7 +273,7 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapBindingTemplateSignatures(List<org.w3._2000._09.xmldsig_.SignatureType> apiSignatures, BindingTemplate modelBindingTemplate)
- throws DispositionReportFaultMessage {
+ throws DispositionReportFaultMessage {
List<Signature> modelSignatures = mapApiSignaturesToModelSignatures(apiSignatures);
for (Signature modelSignature : modelSignatures) {
modelSignature.setBindingTemplate(modelBindingTemplate);
@@ -269,7 +288,7 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapPublisherSignatures(List<org.w3._2000._09.xmldsig_.SignatureType> apiSignatures, Publisher modelPublisher)
- throws DispositionReportFaultMessage {
+ throws DispositionReportFaultMessage {
List<Signature> modelSignatures = mapApiSignaturesToModelSignatures(apiSignatures);
for (Signature modelSignature : modelSignatures) {
modelSignature.setPublisher(modelPublisher);
@@ -284,8 +303,8 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapBusinessSignature(List<org.w3._2000._09.xmldsig_.SignatureType> apiSignatures,
- org.apache.juddi.model.BusinessEntity modelBusinessEntity)
- throws DispositionReportFaultMessage {
+ org.apache.juddi.model.BusinessEntity modelBusinessEntity)
+ throws DispositionReportFaultMessage {
List<Signature> modelSignatures = mapApiSignaturesToModelSignatures(apiSignatures);
for (Signature modelSignature : modelSignatures) {
modelSignature.setBusinessEntity(modelBusinessEntity);
@@ -301,9 +320,9 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapBusinessNames(List<org.uddi.api_v3.Name> apiNameList,
- List<org.apache.juddi.model.BusinessName> modelNameList,
- org.apache.juddi.model.BusinessEntity modelBusinessEntity)
- throws DispositionReportFaultMessage {
+ List<org.apache.juddi.model.BusinessName> modelNameList,
+ org.apache.juddi.model.BusinessEntity modelBusinessEntity)
+ throws DispositionReportFaultMessage {
modelNameList.clear();
for (org.uddi.api_v3.Name apiName : apiNameList) {
@@ -319,9 +338,9 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapBusinessDescriptions(List<org.uddi.api_v3.Description> apiDescList,
- List<org.apache.juddi.model.BusinessDescr> modelDescList,
- org.apache.juddi.model.BusinessEntity modelBusinessEntity)
- throws DispositionReportFaultMessage {
+ List<org.apache.juddi.model.BusinessDescr> modelDescList,
+ org.apache.juddi.model.BusinessEntity modelBusinessEntity)
+ throws DispositionReportFaultMessage {
modelDescList.clear();
for (org.uddi.api_v3.Description apiDesc : apiDescList) {
@@ -337,9 +356,9 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapDiscoveryUrls(org.uddi.api_v3.DiscoveryURLs apiDiscUrls,
- List<org.apache.juddi.model.DiscoveryUrl> modelDiscUrlList,
- org.apache.juddi.model.BusinessEntity modelBusinessEntity)
- throws DispositionReportFaultMessage {
+ List<org.apache.juddi.model.DiscoveryUrl> modelDiscUrlList,
+ org.apache.juddi.model.BusinessEntity modelBusinessEntity)
+ throws DispositionReportFaultMessage {
modelDiscUrlList.clear();
if (apiDiscUrls != null) {
@@ -358,9 +377,9 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapContacts(org.uddi.api_v3.Contacts apiContacts,
- List<org.apache.juddi.model.Contact> modelContactList,
- org.apache.juddi.model.BusinessEntity modelBusinessEntity)
- throws DispositionReportFaultMessage {
+ List<org.apache.juddi.model.Contact> modelContactList,
+ org.apache.juddi.model.BusinessEntity modelBusinessEntity)
+ throws DispositionReportFaultMessage {
modelContactList.clear();
if (apiContacts != null) {
@@ -373,7 +392,7 @@ public class MappingApiToModel {
mapContactDescriptions(apiContact.getDescription(), modelContact.getContactDescrs(), modelContact, modelBusinessEntity.getEntityKey());
mapContactEmails(apiContact.getEmail(), modelContact.getEmails(), modelContact, modelBusinessEntity.getEntityKey());
mapContactPhones(apiContact.getPhone(), modelContact.getPhones(), modelContact, modelBusinessEntity.getEntityKey());
- mapContactAddresses(apiContact.getAddress(), modelContact.getAddresses(), modelContact, modelBusinessEntity.getEntityKey());
+ mapContactAddresses(apiContact.getAddress(), modelContact.getAddresses(), modelContact);
modelContactList.add(modelContact);
}
@@ -389,10 +408,10 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapContactDescriptions(List<org.uddi.api_v3.Description> apiDescList,
- List<org.apache.juddi.model.ContactDescr> modelDescList,
- org.apache.juddi.model.Contact modelContact,
- String businessKey)
- throws DispositionReportFaultMessage {
+ List<org.apache.juddi.model.ContactDescr> modelDescList,
+ org.apache.juddi.model.Contact modelContact,
+ String businessKey)
+ throws DispositionReportFaultMessage {
modelDescList.clear();
for (org.uddi.api_v3.Description apiDesc : apiDescList) {
@@ -409,10 +428,10 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapPersonNames(List<org.uddi.api_v3.PersonName> apiPersonNameList,
- List<org.apache.juddi.model.PersonName> modelPersonNameList,
- org.apache.juddi.model.Contact modelContact,
- String businessKey)
- throws DispositionReportFaultMessage {
+ List<org.apache.juddi.model.PersonName> modelPersonNameList,
+ org.apache.juddi.model.Contact modelContact,
+ String businessKey)
+ throws DispositionReportFaultMessage {
modelPersonNameList.clear();
for (org.uddi.api_v3.PersonName apiPersonName : apiPersonNameList) {
@@ -429,10 +448,10 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapContactEmails(List<org.uddi.api_v3.Email> apiEmailList,
- List<org.apache.juddi.model.Email> modelEmailList,
- org.apache.juddi.model.Contact modelContact,
- String businessKey)
- throws DispositionReportFaultMessage {
+ List<org.apache.juddi.model.Email> modelEmailList,
+ org.apache.juddi.model.Contact modelContact,
+ String businessKey)
+ throws DispositionReportFaultMessage {
modelEmailList.clear();
for (org.uddi.api_v3.Email apiEmail : apiEmailList) {
@@ -449,10 +468,10 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapContactPhones(List<org.uddi.api_v3.Phone> apiPhoneList,
- List<org.apache.juddi.model.Phone> modelPhoneList,
- org.apache.juddi.model.Contact modelContact,
- String businessKey)
- throws DispositionReportFaultMessage {
+ List<org.apache.juddi.model.Phone> modelPhoneList,
+ org.apache.juddi.model.Contact modelContact,
+ String businessKey)
+ throws DispositionReportFaultMessage {
modelPhoneList.clear();
for (org.uddi.api_v3.Phone apiPhone : apiPhoneList) {
@@ -469,10 +488,10 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapContactAddresses(List<org.uddi.api_v3.Address> apiAddressList,
- List<org.apache.juddi.model.Address> modelAddressList,
- org.apache.juddi.model.Contact modelContact,
- String businessKey)
- throws DispositionReportFaultMessage {
+ List<org.apache.juddi.model.Address> modelAddressList,
+ org.apache.juddi.model.Contact modelContact
+ )
+ throws DispositionReportFaultMessage {
modelAddressList.clear();
for (org.uddi.api_v3.Address apiAddress : apiAddressList) {
@@ -481,7 +500,7 @@ public class MappingApiToModel {
modelAddress.setTmodelKey(apiAddress.getTModelKey());
modelAddress.setUseType(apiAddress.getUseType());
- mapAddressLines(apiAddress.getAddressLine(), modelAddress.getAddressLines(), modelAddress, businessKey, modelContact.getId());
+ mapAddressLines(apiAddress.getAddressLine(), modelAddress.getAddressLines(), modelAddress, modelContact.getId());
modelAddressList.add(modelAddress);
}
@@ -492,16 +511,15 @@ public class MappingApiToModel {
* @param apiAddressLineList
* @param modelAddressLineList
* @param modelAddress
- * @param businessKey
+ *
* @param contactId
* @throws DispositionReportFaultMessage
*/
public static void mapAddressLines(List<org.uddi.api_v3.AddressLine> apiAddressLineList,
- List<org.apache.juddi.model.AddressLine> modelAddressLineList,
- org.apache.juddi.model.Address modelAddress,
- String businessKey,
- Long contactId)
- throws DispositionReportFaultMessage {
+ List<org.apache.juddi.model.AddressLine> modelAddressLineList,
+ org.apache.juddi.model.Address modelAddress,
+ Long contactId)
+ throws DispositionReportFaultMessage {
modelAddressLineList.clear();
for (org.uddi.api_v3.AddressLine apiAddressLine : apiAddressLineList) {
@@ -517,9 +535,9 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapBusinessIdentifiers(org.uddi.api_v3.IdentifierBag apiIdentifierBag,
- List<org.apache.juddi.model.BusinessIdentifier> modelIdentifierList,
- org.apache.juddi.model.BusinessEntity modelBusinessEntity)
- throws DispositionReportFaultMessage {
+ List<org.apache.juddi.model.BusinessIdentifier> modelIdentifierList,
+ org.apache.juddi.model.BusinessEntity modelBusinessEntity)
+ throws DispositionReportFaultMessage {
modelIdentifierList.clear();
if (apiIdentifierBag != null) {
@@ -539,10 +557,10 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapBusinessServices(org.uddi.api_v3.BusinessServices apiBusinessServices,
- List<org.apache.juddi.model.BusinessService> modelBusinessServiceList,
- List<org.apache.juddi.model.ServiceProjection> modelServiceProjectionList,
- org.apache.juddi.model.BusinessEntity modelBusinessEntity)
- throws DispositionReportFaultMessage {
+ List<org.apache.juddi.model.BusinessService> modelBusinessServiceList,
+ List<org.apache.juddi.model.ServiceProjection> modelServiceProjectionList,
+ org.apache.juddi.model.BusinessEntity modelBusinessEntity)
+ throws DispositionReportFaultMessage {
modelBusinessServiceList.clear();
if (apiBusinessServices != null) {
List<org.uddi.api_v3.BusinessService> apiBusinessServiceList = apiBusinessServices.getBusinessService();
@@ -551,7 +569,7 @@ public class MappingApiToModel {
// If the parent businessEntity key and the service businessEntity key (if provided) do not match, it's a projection.
if (apiBusinessService.getBusinessKey() != null && apiBusinessService.getBusinessKey().length() > 0
- && !modelBusinessEntity.getEntityKey().equalsIgnoreCase(apiBusinessService.getBusinessKey())) {
+ && !modelBusinessEntity.getEntityKey().equalsIgnoreCase(apiBusinessService.getBusinessKey())) {
modelBusinessService.setEntityKey(apiBusinessService.getServiceKey());
org.apache.juddi.model.ServiceProjection modelServiceProjection = new org.apache.juddi.model.ServiceProjection(modelBusinessEntity, modelBusinessService);
@@ -573,9 +591,9 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapBusinessService(org.uddi.api_v3.BusinessService apiBusinessService,
- org.apache.juddi.model.BusinessService modelBusinessService,
- org.apache.juddi.model.BusinessEntity modelBusinessEntity)
- throws DispositionReportFaultMessage {
+ org.apache.juddi.model.BusinessService modelBusinessService,
+ org.apache.juddi.model.BusinessEntity modelBusinessEntity)
+ throws DispositionReportFaultMessage {
modelBusinessService.setBusinessEntity(modelBusinessEntity);
modelBusinessService.setEntityKey(apiBusinessService.getServiceKey());
@@ -599,9 +617,9 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapServiceNames(List<org.uddi.api_v3.Name> apiNameList,
- List<org.apache.juddi.model.ServiceName> modelNameList,
- org.apache.juddi.model.BusinessService modelBusinessService)
- throws DispositionReportFaultMessage {
+ List<org.apache.juddi.model.ServiceName> modelNameList,
+ org.apache.juddi.model.BusinessService modelBusinessService)
+ throws DispositionReportFaultMessage {
modelNameList.clear();
for (org.uddi.api_v3.Name apiName : apiNameList) {
@@ -617,9 +635,9 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapServiceDescriptions(List<org.uddi.api_v3.Description> apiDescList,
- List<org.apache.juddi.model.ServiceDescr> modelDescList,
- org.apache.juddi.model.BusinessService modelBusinessService)
- throws DispositionReportFaultMessage {
+ List<org.apache.juddi.model.ServiceDescr> modelDescList,
+ org.apache.juddi.model.BusinessService modelBusinessService)
+ throws DispositionReportFaultMessage {
modelDescList.clear();
for (org.uddi.api_v3.Description apiDesc : apiDescList) {
@@ -635,9 +653,9 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapBindingTemplates(org.uddi.api_v3.BindingTemplates apiBindingTemplates,
- List<org.apache.juddi.model.BindingTemplate> modelBindingTemplateList,
- org.apache.juddi.model.BusinessService modelBusinessService)
- throws DispositionReportFaultMessage {
+ List<org.apache.juddi.model.BindingTemplate> modelBindingTemplateList,
+ org.apache.juddi.model.BusinessService modelBusinessService)
+ throws DispositionReportFaultMessage {
modelBindingTemplateList.clear();
if (apiBindingTemplates != null) {
@@ -660,9 +678,9 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapBindingTemplate(org.uddi.api_v3.BindingTemplate apiBindingTemplate,
- org.apache.juddi.model.BindingTemplate modelBindingTemplate,
- org.apache.juddi.model.BusinessService modelBusinessService)
- throws DispositionReportFaultMessage {
+ org.apache.juddi.model.BindingTemplate modelBindingTemplate,
+ org.apache.juddi.model.BusinessService modelBusinessService)
+ throws DispositionReportFaultMessage {
modelBindingTemplate.setBusinessService(modelBusinessService);
modelBindingTemplate.setEntityKey(apiBindingTemplate.getBindingKey());
@@ -691,9 +709,9 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapBindingDescriptions(List<org.uddi.api_v3.Description> apiDescList,
- List<org.apache.juddi.model.BindingDescr> modelDescList,
- org.apache.juddi.model.BindingTemplate modelBindingTemplate)
- throws DispositionReportFaultMessage {
+ List<org.apache.juddi.model.BindingDescr> modelDescList,
+ org.apache.juddi.model.BindingTemplate modelBindingTemplate)
+ throws DispositionReportFaultMessage {
modelDescList.clear();
for (org.uddi.api_v3.Description apiDesc : apiDescList) {
modelDescList.add(new org.apache.juddi.model.BindingDescr(modelBindingTemplate, apiDesc.getLang(), apiDesc.getValue()));
@@ -707,8 +725,8 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapCategoryBag(org.uddi.api_v3.CategoryBag apiCategoryBag,
- org.apache.juddi.model.CategoryBag modelCategoryBag)
- throws DispositionReportFaultMessage {
+ org.apache.juddi.model.CategoryBag modelCategoryBag)
+ throws DispositionReportFaultMessage {
if (apiCategoryBag != null) {
List<org.uddi.api_v3.KeyedReference> krList = apiCategoryBag.getKeyedReference();
@@ -718,7 +736,7 @@ public class MappingApiToModel {
//modelKeyedReferences.clear();
org.uddi.api_v3.KeyedReference apiKeyedReference = (org.uddi.api_v3.KeyedReference) elem;
modelKeyedReferences.add(new org.apache.juddi.model.KeyedReference(modelCategoryBag,
- apiKeyedReference.getTModelKey(), apiKeyedReference.getKeyName(), apiKeyedReference.getKeyValue()));
+ apiKeyedReference.getTModelKey(), apiKeyedReference.getKeyName(), apiKeyedReference.getKeyValue()));
}
}
List<org.uddi.api_v3.KeyedReferenceGroup> krgList = apiCategoryBag.getKeyedReferenceGroup();
@@ -746,9 +764,9 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapKeyedReferenceGroup(org.uddi.api_v3.KeyedReferenceGroup apiKeyedReferenceGroup,
- org.apache.juddi.model.KeyedReferenceGroup modelKeyedReferenceGroup,
- org.apache.juddi.model.CategoryBag modelCategoryBag)
- throws DispositionReportFaultMessage {
+ org.apache.juddi.model.KeyedReferenceGroup modelKeyedReferenceGroup,
+ org.apache.juddi.model.CategoryBag modelCategoryBag)
+ throws DispositionReportFaultMessage {
if (apiKeyedReferenceGroup != null) {
modelKeyedReferenceGroup.setCategoryBag(modelCategoryBag);
modelKeyedReferenceGroup.setTmodelKey(apiKeyedReferenceGroup.getTModelKey());
@@ -757,7 +775,7 @@ public class MappingApiToModel {
List<org.apache.juddi.model.KeyedReference> modelKeyedReferences = modelKeyedReferenceGroup.getKeyedReferences();
for (org.uddi.api_v3.KeyedReference apiKeyedReference : apiKeyedReferenceGroup.getKeyedReference()) {
modelKeyedReferences.add(new org.apache.juddi.model.KeyedReference(modelKeyedReferenceGroup,
- apiKeyedReference.getTModelKey(), apiKeyedReference.getKeyName(), apiKeyedReference.getKeyValue()));
+ apiKeyedReference.getTModelKey(), apiKeyedReference.getKeyName(), apiKeyedReference.getKeyValue()));
}
}
@@ -773,9 +791,9 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapTModelInstanceDetails(org.uddi.api_v3.TModelInstanceDetails apiTModelInstDetails,
- List<org.apache.juddi.model.TmodelInstanceInfo> modelTModelInstInfoList,
- org.apache.juddi.model.BindingTemplate modelBindingTemplate)
- throws DispositionReportFaultMessage {
+ List<org.apache.juddi.model.TmodelInstanceInfo> modelTModelInstInfoList,
+ org.apache.juddi.model.BindingTemplate modelBindingTemplate)
+ throws DispositionReportFaultMessage {
modelTModelInstInfoList.clear();
if (apiTModelInstDetails != null) {
@@ -799,9 +817,9 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapTModelInstanceInfoDescriptions(List<org.uddi.api_v3.Description> apiDescList,
- List<org.apache.juddi.model.TmodelInstanceInfoDescr> modelDescList,
- org.apache.juddi.model.TmodelInstanceInfo modelTModelInstInfo)
- throws DispositionReportFaultMessage {
+ List<org.apache.juddi.model.TmodelInstanceInfoDescr> modelDescList,
+ org.apache.juddi.model.TmodelInstanceInfo modelTModelInstInfo)
+ throws DispositionReportFaultMessage {
modelDescList.clear();
for (org.uddi.api_v3.Description apiDesc : apiDescList) {
@@ -816,17 +834,17 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapInstanceDetails(org.uddi.api_v3.InstanceDetails apiInstanceDetails,
- org.apache.juddi.model.TmodelInstanceInfo modelTmodelInstInfo)
- throws DispositionReportFaultMessage {
+ org.apache.juddi.model.TmodelInstanceInfo modelTmodelInstInfo)
+ throws DispositionReportFaultMessage {
modelTmodelInstInfo.getInstanceDetailsDescrs().clear();
if (apiInstanceDetails != null) {
List<org.uddi.api_v3.Description> descriptions = apiInstanceDetails.getDescription();
List<org.uddi.api_v3.OverviewDoc> overviewdocs = apiInstanceDetails.getOverviewDoc();
for (org.uddi.api_v3.Description apiDesc : descriptions) {
- org.apache.juddi.model.InstanceDetailsDescr modelInstanceDetailsDescr =
- new org.apache.juddi.model.InstanceDetailsDescr(
- modelTmodelInstInfo, apiDesc.getLang(), apiDesc.getValue());
+ org.apache.juddi.model.InstanceDetailsDescr modelInstanceDetailsDescr
+ = new org.apache.juddi.model.InstanceDetailsDescr(
+ modelTmodelInstInfo, apiDesc.getLang(), apiDesc.getValue());
modelTmodelInstInfo.getInstanceDetailsDescrs().add(modelInstanceDetailsDescr);
}
for (org.uddi.api_v3.OverviewDoc apiOverviewDoc : overviewdocs) {
@@ -845,8 +863,8 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapOverviewDoc(org.uddi.api_v3.OverviewDoc apiOverviewDoc,
- org.apache.juddi.model.OverviewDoc modelOverviewDoc)
- throws DispositionReportFaultMessage {
+ org.apache.juddi.model.OverviewDoc modelOverviewDoc)
+ throws DispositionReportFaultMessage {
if (apiOverviewDoc != null) {
List<Description> descContent = apiOverviewDoc.getDescription();
@@ -854,7 +872,7 @@ public class MappingApiToModel {
org.uddi.api_v3.Description description = (org.uddi.api_v3.Description) elem;
if (description != null) {
org.apache.juddi.model.OverviewDocDescr modelOverviewDocDescr = new org.apache.juddi.model.OverviewDocDescr(
- modelOverviewDoc, description.getLang(), description.getValue());
+ modelOverviewDoc, description.getLang(), description.getValue());
modelOverviewDoc.getOverviewDocDescrs().add(modelOverviewDocDescr);
}
}
@@ -876,8 +894,8 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapTModel(org.uddi.api_v3.TModel apiTModel,
- org.apache.juddi.model.Tmodel modelTModel)
- throws DispositionReportFaultMessage {
+ org.apache.juddi.model.Tmodel modelTModel)
+ throws DispositionReportFaultMessage {
modelTModel.setEntityKey(apiTModel.getTModelKey());
modelTModel.setName(apiTModel.getName().getValue());
@@ -902,9 +920,9 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapTModelDescriptions(List<org.uddi.api_v3.Description> apiDescList,
- List<org.apache.juddi.model.TmodelDescr> modelDescList,
- org.apache.juddi.model.Tmodel modelTModel)
- throws DispositionReportFaultMessage {
+ List<org.apache.juddi.model.TmodelDescr> modelDescList,
+ org.apache.juddi.model.Tmodel modelTModel)
+ throws DispositionReportFaultMessage {
modelDescList.clear();
for (org.uddi.api_v3.Description apiDesc : apiDescList) {
@@ -920,9 +938,9 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapTModelIdentifiers(org.uddi.api_v3.IdentifierBag apiIdentifierBag,
- List<org.apache.juddi.model.TmodelIdentifier> modelIdentifierList,
- org.apache.juddi.model.Tmodel modelTModel)
- throws DispositionReportFaultMessage {
+ List<org.apache.juddi.model.TmodelIdentifier> modelIdentifierList,
+ org.apache.juddi.model.Tmodel modelTModel)
+ throws DispositionReportFaultMessage {
modelIdentifierList.clear();
if (apiIdentifierBag != null) {
@@ -941,9 +959,9 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapTModelOverviewDocs(List<org.uddi.api_v3.OverviewDoc> apiOverviewDocList,
- List<org.apache.juddi.model.OverviewDoc> modelOverviewDocList,
- org.apache.juddi.model.Tmodel modelTmodel)
- throws DispositionReportFaultMessage {
+ List<org.apache.juddi.model.OverviewDoc> modelOverviewDocList,
+ org.apache.juddi.model.Tmodel modelTmodel)
+ throws DispositionReportFaultMessage {
modelOverviewDocList.clear();
for (org.uddi.api_v3.OverviewDoc apiOverviewDoc : apiOverviewDocList) {
@@ -960,8 +978,8 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapPublisherAssertion(org.uddi.api_v3.PublisherAssertion apiPubAssertion,
- org.apache.juddi.model.PublisherAssertion modelPubAssertion)
- throws DispositionReportFaultMessage {
+ org.apache.juddi.model.PublisherAssertion modelPubAssertion)
+ throws DispositionReportFaultMessage {
modelPubAssertion.setId(new org.apache.juddi.model.PublisherAssertionId(apiPubAssertion.getFromKey(), apiPubAssertion.getToKey()));
@@ -988,8 +1006,8 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapSubscription(org.uddi.sub_v3.Subscription apiSubscription,
- org.apache.juddi.model.Subscription modelSubscription)
- throws DispositionReportFaultMessage {
+ org.apache.juddi.model.Subscription modelSubscription)
+ throws DispositionReportFaultMessage {
modelSubscription.setSubscriptionKey(apiSubscription.getSubscriptionKey());
modelSubscription.setBindingKey(apiSubscription.getBindingKey());
@@ -1008,7 +1026,6 @@ public class MappingApiToModel {
modelSubscription.setBrief(Boolean.FALSE);
}
-
String rawFilter = JAXBMarshaller.marshallToString(new ObjectFactory().createSubscriptionFilter(apiSubscription.getSubscriptionFilter()), "org.uddi.sub_v3");
logger.debug("marshalled subscription filter: " + rawFilter);
modelSubscription.setSubscriptionFilter(rawFilter);
@@ -1022,8 +1039,8 @@ public class MappingApiToModel {
* @throws DispositionReportFaultMessage
*/
public static void mapClientSubscriptionInfo(org.apache.juddi.api_v3.ClientSubscriptionInfo apiClientSubscriptionInfo,
- org.apache.juddi.model.ClientSubscriptionInfo modelClientSubscriptionInfo)
- throws DispositionReportFaultMessage {
+ org.apache.juddi.model.ClientSubscriptionInfo modelClientSubscriptionInfo)
+ throws DispositionReportFaultMessage {
modelClientSubscriptionInfo.setLastNotified(new Date());
modelClientSubscriptionInfo.setSubscriptionKey(apiClientSubscriptionInfo.getSubscriptionKey());
@@ -1132,10 +1149,10 @@ public class MappingApiToModel {
} else if (x509IssuerSerialOrX509SKIOrX509SubjectName instanceof String) {
modelKeyInfoValue.setKeyDataValueString((String) x509IssuerSerialOrX509SKIOrX509SubjectName);
} else if (x509IssuerSerialOrX509SKIOrX509SubjectName instanceof X509IssuerSerialType) {
- modelKeyInfoValue.setKeyDataType(X509IssuerSerialType.class.getSimpleName());
- X509IssuerSerialType x509IssuerSerialType = (X509IssuerSerialType) x509IssuerSerialOrX509SKIOrX509SubjectName;
- modelKeyInfoValue.setKeyDataValueString(x509IssuerSerialType.getX509IssuerName());
- modelKeyInfoValue.setKeyDataValueBytes(x509IssuerSerialType.getX509SerialNumber().toByteArray());
+ modelKeyInfoValue.setKeyDataType(X509IssuerSerialType.class.getSimpleName());
+ X509IssuerSerialType x509IssuerSerialType = (X509IssuerSerialType) x509IssuerSerialOrX509SKIOrX509SubjectName;
+ modelKeyInfoValue.setKeyDataValueString(x509IssuerSerialType.getX509IssuerName());
+ modelKeyInfoValue.setKeyDataValueBytes(x509IssuerSerialType.getX509SerialNumber().toByteArray());
} else if (x509IssuerSerialOrX509SKIOrX509SubjectName != null) {
throw new RuntimeException("Unrecognized Value for Element: " + tagName + ": " + x509IssuerSerialOrX509SKIOrX509SubjectName.getClass().getCanonicalName());
}
@@ -1358,4 +1375,201 @@ public class MappingApiToModel {
String str = serializer.writeToString(xformEl);
return str;
}
+
+ public static org.apache.juddi.model.ChangeRecord mapChangeRecord(ChangeRecord rec) throws UnsupportedEncodingException {
+ org.apache.juddi.model.ChangeRecord r = new org.apache.juddi.model.ChangeRecord();
+ r.setId(rec.getChangeID().getOriginatingUSN());
+ r.setNodeID(rec.getChangeID().getNodeID());
+ StringWriter sw = new StringWriter();
+ JAXB.marshal(rec, sw);
+ r.setContents(sw.toString().getBytes("UTF8"));
+ return r;
+
+ }
+
+ public static void mapOperationalInfo(UddiEntity model, OperationalInfo operationalInfo) {
+ if (operationalInfo == null || model == null) {
+ return;
+ }
+ if (operationalInfo.getCreated() != null) {
+ model.setCreated(operationalInfo.getCreated().toGregorianCalendar().getTime());
+ }
+ model.setAuthorizedName(operationalInfo.getAuthorizedName());
+ if (operationalInfo.getModified() != null) {
+ model.setModified(operationalInfo.getModified().toGregorianCalendar().getTime());
+ }
+ if (operationalInfo.getModifiedIncludingChildren() != null) {
+ model.setModifiedIncludingChildren(operationalInfo.getModifiedIncludingChildren().toGregorianCalendar().getTime());
+ }
+ model.setNodeId(operationalInfo.getNodeID());
+
+ }
+
+ public static void mapSaveBindingToChangeRecord(SaveBinding recordIn, List<org.apache.juddi.model.ChangeRecord> recordsOut) {
+ List<org.apache.juddi.model.ChangeRecord> r = new ArrayList<org.apache.juddi.model.ChangeRecord>();
+
+ }
+
+ public static void mapReplicationConfiguration(ReplicationConfiguration replicationConfiguration, org.apache.juddi.model.ReplicationConfiguration model, EntityManager em) throws DispositionReportFaultMessage {
+
+ model.setMaximumTimeToGetChanges(replicationConfiguration.getMaximumTimeToGetChanges());
+ model.setMaximumTimeToSyncRegistry(replicationConfiguration.getMaximumTimeToSyncRegistry());
+ model.setSerialNumber(null);
+
+ //the spec doesn't specify what the format should be, however there was an example
+ //2002 03 04 1859Z
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddkkmmZ");
+ model.setTimeOfConfigurationUpdate(sdf.format(new Date()));
+ model.setContact(mapContact(replicationConfiguration.getRegistryContact().getContact()));
+ model.setCommunicationGraph(mapCommunicationGraph(replicationConfiguration.getCommunicationGraph(), em));
+ model.setOperator(mapOperators(replicationConfiguration.getOperator()));
+ if (replicationConfiguration.getSignature() != null) {
+ model.setSignatures(mapApiSignaturesToModelSignatures(replicationConfiguration.getSignature()));
+ }
+
+ }
+
+ private static Contact mapContact(org.uddi.api_v3.Contact contact) throws DispositionReportFaultMessage {
+ Contact model = new Contact();
+ model.setAddresses(new ArrayList<Address>());
+ mapContactAddresses(contact.getAddress(), model.getAddresses(), model);
+ if (model.getAddresses().isEmpty()) {
+ model.setAddresses(null);
+ }
+ return model;
+ }
+
+ private static CommunicationGraph mapCommunicationGraph(org.uddi.repl_v3.CommunicationGraph communicationGraph, EntityManager em) throws DispositionReportFaultMessage {
+ if (communicationGraph == null) {
+ return null;
+ }
+ CommunicationGraph model = new CommunicationGraph();
+
+ /**
+ * Following the listing of nodes is the controlledMessage
+ * element that lists the set of messages over which this
+ * communication graph is intended to administer control of. If
+ * a message element local name is listed in the
+ * controlledMessage element, then such messages SHALL only be
+ * sent between nodes that are listed in the subsequent edges of
+ * the graph. In contrast, communication restrictions are not
+ * imposed on replication messages not identified in the
+ * controlledMessage element.
+ */
+ if (communicationGraph.getControlledMessage() != null) {
+ model.setControlMessage(new ArrayList<ControlMessage>());
+ for (int k = 0; k < communicationGraph.getControlledMessage().size(); k++) {
+ model.getControlMessage().add(new ControlMessage(communicationGraph.getControlledMessage().get(k)));
+ }
+ }
+ model.setNode(new ArrayList<Node>());
+ for (int i = 0; i < communicationGraph.getNode().size(); i++) {
+ Node find = em.find(org.apache.juddi.model.Node.class, communicationGraph.getNode().get(i));
+ if (find == null) {
+ throw new ValueNotAllowedException(new ErrorMessage("errors.replication.configNodeNotFound", communicationGraph.getNode().get(i)));
+ }
+ model.getNode().add(find);
+ }
+ if (communicationGraph.getEdge() != null) {
+ List<Edge> ret = new ArrayList<Edge>();
+ for (int i = 0; i < communicationGraph.getEdge().size(); i++) {
+ Edge e = new Edge();
+ e.setCommunicationGraph(model);
+ Node find = em.find(org.apache.juddi.model.Node.class, communicationGraph.getEdge().get(i).getMessageReceiver());
+ if (find == null) {
+ throw new ValueNotAllowedException(new ErrorMessage("errors.replication.configNodeNotFound", communicationGraph.getEdge().get(i).getMessageReceiver()));
+ }
+ e.setMessageReceiver(find);
+ find = em.find(org.apache.juddi.model.Node.class, communicationGraph.getEdge().get(i).getMessageSender());
+ if (find == null) {
+ throw new ValueNotAllowedException(new ErrorMessage("errors.replication.configNodeNotFound", communicationGraph.getEdge().get(i).getMessageSender()));
+ }
+ e.setMessageSender(find);
+
+ /**
+ * The message elements contain the local name
+ * of the Replication API message elements. They
+ * indicate that only messages of the type
+ * explicitly identified for a particular edge
+ * MAY be sent from the specified messageSender
+ * to the specified messageReceiver.
+ */
+ if (communicationGraph.getEdge().get(i).getMessage() != null) {
+ e.setMessage(new ArrayList<ControlMessage>());
+ for (int k = 0; k < communicationGraph.getEdge().get(i).getMessage().size(); k++) {
+ e.getMessages().add(new ControlMessage(communicationGraph.getEdge().get(i).getMessage().get(k)));
+ }
+ }
+ if (communicationGraph.getEdge().get(i).getMessageReceiverAlternate() != null) {
+ e.setMessageReceiverAlternate(new HashSet<Node>());
+ for (int k = 0; k < communicationGraph.getEdge().get(i).getMessageReceiverAlternate().size(); k++) {
+ find = em.find(org.apache.juddi.model.Node.class, communicationGraph.getEdge().get(i).getMessageSender());
+ if (find == null) {
+ throw new ValueNotAllowedException(new ErrorMessage("errors.replication.configNodeNotFound", communicationGraph.getEdge().get(i).getMessageSender()));
+ }
+ e.getMessageReceiverAlternate().add(find);
+ }
+ }
+
+ ret.add(e);
+ }
+ model.setEdge(ret);
+ }
+
+ return model;
+
+ }
+
+ private static List<Operator> mapOperators(List<org.uddi.repl_v3.Operator> api) throws DispositionReportFaultMessage {
+ if (api == null) {
+ return null;
+ }
+ List<Operator> model = new ArrayList<Operator>();
+ for (int i = 0; i < api.size(); i++) {
+ Operator op = new Operator();
+ op.setSoapReplicationURL(api.get(i).getSoapReplicationURL());
+
+ if (!api.get(i).getContact().isEmpty()) {
+ op.setContact(new ArrayList<Contact>());
+ for (int k = 0; k < api.get(i).getContact().size(); k++) {
+ op.getContact().add(mapContact(api.get(i).getContact().get(k)));
+ }
+ }
+ op.setOperatorNodeID(api.get(i).getOperatorNodeID());
+ op.setOperatorStatus(mapOperatorStatus(api.get(i).getOperatorStatus()));
+ if (!api.get(i).getKeyInfo().isEmpty()) {
+ op.setKeyInfo(new ArrayList<KeyInfo>());
+ for (int k = 0; k < api.get(i).getKeyInfo().size(); k++) {
+ //TODO api.get(i).getKeyInfo().get(k)
+ org.apache.juddi.model.KeyInfo modelKeyInfo = new KeyInfo();
+ modelKeyInfo.setXmlID(api.get(i).getKeyInfo().get(i).getId());
+ modelKeyInfo.setKeyDataValue(new ArrayList<KeyDataValue>());
+ if (api.get(i).getKeyInfo().get(i).getContent() != null) {
+ modelKeyInfo.setKeyDataValue(new ArrayList<KeyDataValue>());
+ for (int x = 0; x < api.get(i).getKeyInfo().get(k).getContent().size(); x++) {
+ mapKeyValue((JAXBElement) api.get(i).getKeyInfo().get(k).getContent().get(x), modelKeyInfo.getKeyDataValue());
+ }
+ }
+ op.getKeyInfo().add(modelKeyInfo);
+ }
+
+ }
+ model.add(op);
+
+ }
+ return model;
+ }
+
+ private static OperatorStatusType mapOperatorStatus(org.uddi.repl_v3.OperatorStatusType operatorStatus) {
+ switch (operatorStatus) {
+ case NEW:
+ return OperatorStatusType.NEW;
+ case NORMAL:
+ return OperatorStatusType.NORMAL;
+ case RESIGNED:
+ return OperatorStatusType.RESIGNED;
+ }
+ return null;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/juddi/blob/8b95902b/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java b/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java
index 868eed5..e9bf41a 100644
--- a/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java
+++ b/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java
@@ -23,10 +23,15 @@ import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import org.w3._2000._09.xmldsig_.X509IssuerSerialType;
import java.io.ByteArrayInputStream;
+import java.io.StringReader;
+import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.xml.bind.JAXB;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.JAXBException;
@@ -53,7 +58,6 @@ import org.apache.juddi.model.UddiEntity;
import org.apache.juddi.model.KeyDataValue;
import org.apache.juddi.model.Node;
import org.apache.juddi.model.ReplicationConfiguration;
-import org.apache.juddi.model.ReplicationMessage;
import org.apache.juddi.model.SignatureTransformDataValue;
import org.apache.juddi.subscription.TypeConvertor;
import org.apache.juddi.v3.error.ErrorMessage;
@@ -62,6 +66,8 @@ import org.uddi.api_v3.BusinessEntity;
import org.uddi.api_v3.CompletionStatus;
import org.uddi.api_v3.Contacts;
import org.uddi.api_v3.OperationalInfo;
+import org.uddi.repl_v3.ChangeRecord;
+import org.uddi.repl_v3.ChangeRecordIDType;
import org.uddi.repl_v3.CommunicationGraph;
import org.uddi.repl_v3.Operator;
import org.uddi.repl_v3.OperatorStatusType;
@@ -1219,14 +1225,16 @@ public class MappingModelToApi {
mapContacts(model.get(i).getContact(), c, new BusinessEntity());
op.getContact().addAll(c.getContact());
- for (int x = 0; x < model.get(i).getKeyInfo().size(); x++) {
- KeyInfoType apiKeyInfo = new KeyInfoType();
- KeyInfo modelKeyInfo = model.get(i).getKeyInfo().get(x);
- apiKeyInfo.setId(modelKeyInfo.getXmlID());
- List<KeyDataValue> modelKeyDataValueList = modelKeyInfo.getKeyDataValue();
- List<Object> apiX509KeyInfoList = apiKeyInfo.getContent();
- mapModelKeyDataValue(modelKeyDataValueList, apiX509KeyInfoList);
- op.getKeyInfo().add(apiKeyInfo);
+ if (model.get(i).getKeyInfo() != null) {
+ for (int x = 0; x < model.get(i).getKeyInfo().size(); x++) {
+ KeyInfoType apiKeyInfo = new KeyInfoType();
+ KeyInfo modelKeyInfo = model.get(i).getKeyInfo().get(x);
+ apiKeyInfo.setId(modelKeyInfo.getXmlID());
+ List<KeyDataValue> modelKeyDataValueList = modelKeyInfo.getKeyDataValue();
+ List<Object> apiX509KeyInfoList = apiKeyInfo.getContent();
+ mapModelKeyDataValue(modelKeyDataValueList, apiX509KeyInfoList);
+ op.getKeyInfo().add(apiKeyInfo);
+ }
}
api.add(op);
}
@@ -1252,9 +1260,10 @@ public class MappingModelToApi {
CommunicationGraph.Edge apiEdge = new CommunicationGraph.Edge();
apiEdge.setMessageReceiver(modelEdge.getMessageReceiver().getName());
apiEdge.setMessageSender(modelEdge.getMessageSender().getName());
- Iterator<ReplicationMessage> it2 = modelEdge.getMessages().iterator();
+
+ Iterator<ControlMessage> it2 = modelEdge.getMessages().iterator();
while (it2.hasNext()) {
- apiEdge.getMessage().add(it2.next().getMsg());
+ apiEdge.getMessage().add(it2.next().getMessage());
}
Iterator<Node> it3 = modelEdge.getMessageReceiverAlternate().iterator();
while (it3.hasNext()) {
@@ -1281,4 +1290,27 @@ public class MappingModelToApi {
api.add(it.next().getName());
}
}
+
+ public static ChangeRecord mapChangeRecord(org.apache.juddi.model.ChangeRecord cr) {
+ if (cr == null) {
+ return null;
+ }
+ ChangeRecord ret = new ChangeRecord();
+
+ StringReader sr = null;
+ try {
+ sr = new StringReader(new String(cr.getContents(), "UTF8"));
+ } catch (UnsupportedEncodingException ex) {
+ Logger.getLogger(MappingModelToApi.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ ret = JAXB.unmarshal(sr, ChangeRecord.class);
+ //secret sauce here, if this is -1, that means that the record originated at this node and needs to be populated with the databases record id
+ if (cr.getOriginatingUSN()==null || cr.getOriginatingUSN() == -1L) {
+ ret.setChangeID(new ChangeRecordIDType(cr.getNodeID(), cr.getId()));
+ } else {
+ ret.setChangeID(new ChangeRecordIDType(cr.getNodeID(), cr.getOriginatingUSN()));
+ }
+ return ret;
+
+ }
}
http://git-wip-us.apache.org/repos/asf/juddi/blob/8b95902b/juddi-core/src/main/java/org/apache/juddi/model/ChangeRecord.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/model/ChangeRecord.java b/juddi-core/src/main/java/org/apache/juddi/model/ChangeRecord.java
index 0a9379d..e9113b4 100644
--- a/juddi-core/src/main/java/org/apache/juddi/model/ChangeRecord.java
+++ b/juddi-core/src/main/java/org/apache/juddi/model/ChangeRecord.java
@@ -19,19 +19,28 @@ package org.apache.juddi.model;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
import javax.persistence.Id;
+import javax.persistence.Lob;
import javax.persistence.Table;
+import javax.persistence.TableGenerator;
@Entity
@Table(name = "j3_chg_record")
public class ChangeRecord implements Serializable {
+ private static final long serialVersionUID = 1L;
+
protected String nodeID;
protected Long originatingUSN;
-
+ private byte[] contents;
+ private RecordType e = RecordType.ChangeRecordNull;
private Long id;
+ private String entityKey;
- @Column(name="change_contents")
+ @Column(name = "change_contents")
+ @Lob
public byte[] getContents() {
return contents;
}
@@ -39,22 +48,8 @@ public class ChangeRecord implements Serializable {
public void setContents(byte[] contents) {
this.contents = contents;
}
- /*protected ChangeRecordIDType changeID;
- protected Object changeRecordNull;
- protected ChangeRecordNewData changeRecordNewData;
- protected ChangeRecordDelete changeRecordDelete;
- protected ChangeRecordPublisherAssertion changeRecordPublisherAssertion;
- protected ChangeRecordHide changeRecordHide;
- protected ChangeRecordDeleteAssertion changeRecordDeleteAssertion;
- protected ChangeRecordAcknowledgement changeRecordAcknowledgement;
- protected ChangeRecordCorrection changeRecordCorrection;
- protected ChangeRecordNewDataConditional changeRecordNewDataConditional;
- protected ChangeRecordConditionFailed changeRecordConditionFailed;
- protected boolean acknowledgementRequested;
- * */
- byte[] contents;
-
- enum RecordType {
+
+ public enum RecordType {
ChangeRecordNewData,
ChangeRecordDelete,
@@ -64,10 +59,27 @@ public class ChangeRecord implements Serializable {
ChangeRecordAcknowledgement,
ChangeRecordCorrection,
ChangeRecordNewDataConditional,
- ChangeRecordConditionFailed
+ ChangeRecordConditionFailed,
+ ChangeRecordNull
+ }
+
+ public void setRecordType(RecordType e) {
+ this.e = e;
+ }
+
+ @Column(name = "record_type")
+ public RecordType getRecordType() {
+ return e;
}
@Id
+ @GeneratedValue(strategy = GenerationType.TABLE,
+ generator = "personGen")
+ @TableGenerator(name = "personGen",
+ table = "JPAGEN_GENERATORS",
+ pkColumnName = "NAME",
+ pkColumnValue = "JPAGEN_PERSON_GEN",
+ valueColumnName = "VALUE")
public Long getId() {
return id;
}
@@ -76,7 +88,7 @@ public class ChangeRecord implements Serializable {
this.id = id;
}
- @Column(name="node_id")
+ @Column(name = "node_id")
public String getNodeID() {
return nodeID;
}
@@ -85,8 +97,16 @@ public class ChangeRecord implements Serializable {
this.nodeID = value;
}
-
- @Column(name="orginating_usn")
+ @Column(name = "entity_key")
+ public String getEntityKey() {
+ return entityKey;
+ }
+
+ public void setEntityKey(String value) {
+ this.entityKey = value;
+ }
+
+ @Column(name = "orginating_usn")
public Long getOriginatingUSN() {
return originatingUSN;
}
@@ -95,4 +115,3 @@ public class ChangeRecord implements Serializable {
this.originatingUSN = value;
}
}
-
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/juddi/blob/8b95902b/juddi-core/src/main/java/org/apache/juddi/model/Clerk.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/model/Clerk.java b/juddi-core/src/main/java/org/apache/juddi/model/Clerk.java
index f471712..fe0ca52 100644
--- a/juddi-core/src/main/java/org/apache/juddi/model/Clerk.java
+++ b/juddi-core/src/main/java/org/apache/juddi/model/Clerk.java
@@ -38,7 +38,7 @@ public class Clerk implements java.io.Serializable {
private String clerkName;
@Column(name="publisher_id", nullable = false, length=255)
private String publisherId;
- @ManyToOne(cascade = CascadeType.MERGE, fetch = FetchType.EAGER)
+ @ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private Node node;
@Column(name="cred", length=255)
private String cred;
http://git-wip-us.apache.org/repos/asf/juddi/blob/8b95902b/juddi-core/src/main/java/org/apache/juddi/model/CommunicationGraph.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/model/CommunicationGraph.java b/juddi-core/src/main/java/org/apache/juddi/model/CommunicationGraph.java
index e0251f1..b2ec7d0 100644
--- a/juddi-core/src/main/java/org/apache/juddi/model/CommunicationGraph.java
+++ b/juddi-core/src/main/java/org/apache/juddi/model/CommunicationGraph.java
@@ -26,9 +26,12 @@ import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
+import javax.persistence.TableGenerator;
@Entity
@Table(name = "j3_chg_graph")
@@ -78,6 +81,13 @@ public class CommunicationGraph implements Serializable {
@Id
@Column(name = "j3_id")
+ @GeneratedValue(strategy = GenerationType.TABLE,
+ generator = "cfggrphGen")
+ @TableGenerator(name = "cfggrphGen",
+ table = "JPAGEN_CFGGRPH",
+ pkColumnName = "NAME",
+ pkColumnValue = "JPAGEN_PERSON_GEN",
+ valueColumnName = "VALUE")
public Long getId() {
return id;
}
http://git-wip-us.apache.org/repos/asf/juddi/blob/8b95902b/juddi-core/src/main/java/org/apache/juddi/model/Contact.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/model/Contact.java b/juddi-core/src/main/java/org/apache/juddi/model/Contact.java
index 8aa62f7..4f8b62d 100644
--- a/juddi-core/src/main/java/org/apache/juddi/model/Contact.java
+++ b/juddi-core/src/main/java/org/apache/juddi/model/Contact.java
@@ -77,7 +77,7 @@ public class Contact implements java.io.Serializable {
}
@ManyToOne(fetch = FetchType.LAZY)
- @JoinColumn(name = "entity_key", nullable = false)
+ @JoinColumn(name = "entity_key", nullable = true)
public BusinessEntity getBusinessEntity() {
return this.businessEntity;
}
http://git-wip-us.apache.org/repos/asf/juddi/blob/8b95902b/juddi-core/src/main/java/org/apache/juddi/model/ControlMessage.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/model/ControlMessage.java b/juddi-core/src/main/java/org/apache/juddi/model/ControlMessage.java
index 2c5f10d..ce79b8f 100644
--- a/juddi-core/src/main/java/org/apache/juddi/model/ControlMessage.java
+++ b/juddi-core/src/main/java/org/apache/juddi/model/ControlMessage.java
@@ -29,6 +29,10 @@ import javax.persistence.Id;
public class ControlMessage implements Serializable{
private static final long serialVersionUID = 1L;
+ public ControlMessage(){}
+ public ControlMessage(String msg){
+ this.message = msg;
+ }
private Long id;
http://git-wip-us.apache.org/repos/asf/juddi/blob/8b95902b/juddi-core/src/main/java/org/apache/juddi/model/Edge.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/model/Edge.java b/juddi-core/src/main/java/org/apache/juddi/model/Edge.java
index 63625ef..768bb23 100644
--- a/juddi-core/src/main/java/org/apache/juddi/model/Edge.java
+++ b/juddi-core/src/main/java/org/apache/juddi/model/Edge.java
@@ -36,18 +36,26 @@ import javax.persistence.Table;
public class Edge {
private Long id;
- private Set<ReplicationMessage> message;
+ private List<ControlMessage> message;
private Node messageSender;
private Node messageReceiver;
private Set<Node> messageReceiverAlternate;
private CommunicationGraph parent;
+ /**
+ * link the parent object
+ * @param val
+ */
@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY, targetEntity = CommunicationGraph.class)
//@JoinColumn(name = "OWNER_ID")
public CommunicationGraph getCommunicationGraph() {
return parent;
}
+ /**
+ * link the parent object
+ * @param val
+ */
public void setCommunicationGraph(CommunicationGraph val) {
parent = val;
}
@@ -56,14 +64,14 @@ public class Edge {
* The message elements contain the local name of the Replication API message elements
* @return
*/
- @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, targetEntity = ReplicationMessage.class)
- public Set<ReplicationMessage> getMessages() {
+ @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, targetEntity = ControlMessage.class)
+ public List<ControlMessage> getMessages() {
if (message == null) {
- message = new HashSet<ReplicationMessage>();
+ message = new ArrayList<ControlMessage>();
}
return this.message;
}
- public void setMessages(Set<ReplicationMessage> values) {
+ public void setMessages(List<ControlMessage> values) {
this.message = values;
}
@@ -113,7 +121,7 @@ public class Edge {
return id;
}
- public void setMessage(Set<ReplicationMessage> message) {
+ public void setMessage(List<ControlMessage> message) {
this.message = message;
}
@@ -121,9 +129,7 @@ public class Edge {
this.messageReceiverAlternate = messageReceiverAlternate;
}
- public void setParent(CommunicationGraph parent) {
- this.parent = parent;
- }
+
public void setId(Long id) {
this.id = id;
http://git-wip-us.apache.org/repos/asf/juddi/blob/8b95902b/juddi-core/src/main/java/org/apache/juddi/model/PublisherAssertion.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/model/PublisherAssertion.java b/juddi-core/src/main/java/org/apache/juddi/model/PublisherAssertion.java
index 82efe29..742c252 100644
--- a/juddi-core/src/main/java/org/apache/juddi/model/PublisherAssertion.java
+++ b/juddi-core/src/main/java/org/apache/juddi/model/PublisherAssertion.java
@@ -16,6 +16,7 @@ package org.apache.juddi.model;
*/
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
@@ -29,11 +30,13 @@ import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OrderBy;
import javax.persistence.Table;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
/**
* @author <a href="mailto:kurt@apache.org">Kurt T Stam</a>
*/
-@Entity
+ @Entity
@Table(name = "j3_publisher_assertion")
public class PublisherAssertion implements java.io.Serializable {
@@ -46,6 +49,7 @@ public class PublisherAssertion implements java.io.Serializable {
private String keyValue;
private String fromCheck;
private String toCheck;
+ private Date modified;
public PublisherAssertion() {
}
@@ -63,6 +67,20 @@ public class PublisherAssertion implements java.io.Serializable {
this.fromCheck = fromCheck;
this.toCheck = toCheck;
}
+
+ public void setModified(Date created) {
+ this.modified = created;
+ }
+
+ @Temporal(TemporalType.TIMESTAMP)
+ @Column(name = "modified", nullable = false, length = 29)
+ public Date getModified() {
+ if (modified!=null) {
+ return new Date(modified.getTime());
+ } else {
+ return null;
+ }
+ }
@EmbeddedId
@AttributeOverrides({
http://git-wip-us.apache.org/repos/asf/juddi/blob/8b95902b/juddi-core/src/main/java/org/apache/juddi/model/ReplicationConfiguration.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/model/ReplicationConfiguration.java b/juddi-core/src/main/java/org/apache/juddi/model/ReplicationConfiguration.java
index 86e34c9..a481412 100644
--- a/juddi-core/src/main/java/org/apache/juddi/model/ReplicationConfiguration.java
+++ b/juddi-core/src/main/java/org/apache/juddi/model/ReplicationConfiguration.java
@@ -25,11 +25,14 @@ import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.OrderBy;
import javax.persistence.Table;
+import javax.persistence.TableGenerator;
@Entity
@Table(name = "j3_chg_replconf")
@@ -37,7 +40,7 @@ public class ReplicationConfiguration implements Serializable {
private static final long serialVersionUID = 1L;
- private long serialNumber;
+ private Long serialNumber;
private String timeOfConfigurationUpdate;
private List<Operator> operator = new ArrayList<Operator>(0);
private CommunicationGraph communicationGraph;
@@ -73,8 +76,15 @@ public class ReplicationConfiguration implements Serializable {
*/
@Column(name = "serialnumb")
@OrderBy(value = "SerialNumber DESC")
- @Id
- public long getSerialNumber() {
+ @Id
+ @GeneratedValue(strategy = GenerationType.TABLE,
+ generator = "replcfgGen")
+ @TableGenerator(name = "replcfgGen",
+ table = "JPAGEN_REPLGEN",
+ pkColumnName = "NAME",
+ pkColumnValue = "JPAGEN_PERSON_GEN",
+ valueColumnName = "VALUE")
+ public Long getSerialNumber() {
return serialNumber;
}
@@ -82,7 +92,7 @@ public class ReplicationConfiguration implements Serializable {
* Sets the value of the serialNumber property.
*
*/
- public void setSerialNumber(long value) {
+ public void setSerialNumber(Long value) {
this.serialNumber = value;
}
http://git-wip-us.apache.org/repos/asf/juddi/blob/8b95902b/juddi-core/src/main/java/org/apache/juddi/model/ReplicationMessage.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/model/ReplicationMessage.java b/juddi-core/src/main/java/org/apache/juddi/model/ReplicationMessage.java
deleted file mode 100644
index 35ca14e..0000000
--- a/juddi-core/src/main/java/org/apache/juddi/model/ReplicationMessage.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright 2013 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.juddi.model;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-
-/**
- *
- * @author Alex O'Ree
- */
-@Entity(name = "j3_repl_messages")
-public class ReplicationMessage {
-
- private Long id;
- private String msg;
-
- @Column(name ="j3_repl_message")
- public String getMsg() {
- return msg;
- }
-
- public void setMsg(String msg) {
- this.msg = msg;
- }
-
- @Id
- public Long getId() {
- return id;
- }
-
- public void setId(Long id) {
- this.id = id;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/juddi/blob/8b95902b/juddi-core/src/main/java/org/apache/juddi/replication/ChangeList.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/replication/ChangeList.java b/juddi-core/src/main/java/org/apache/juddi/replication/ChangeList.java
deleted file mode 100644
index 88d1b65..0000000
--- a/juddi-core/src/main/java/org/apache/juddi/replication/ChangeList.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.apache.juddi.replication;
-
-import org.apache.juddi.subscription.*;
-import org.apache.commons.collections.buffer.CircularFifoBuffer;
-import org.apache.commons.collections.Buffer;
-import org.apache.commons.collections.BufferUtils;
-
-public class ChangeList<T> {
- private static ChangeList<String> nl = null;
- private static Buffer list = null;
-
- private ChangeList() {
- list = BufferUtils.synchronizedBuffer(new CircularFifoBuffer(10));
- }
-
- public static ChangeList<String> getInstance() {
- if (nl == null) {
- nl = new ChangeList<String>();
- }
- return nl;
- }
-
- public Buffer getNotifications() {
- return list;
- }
-}
http://git-wip-us.apache.org/repos/asf/juddi/blob/8b95902b/juddi-core/src/main/java/org/apache/juddi/replication/ReplicationNotifier.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/replication/ReplicationNotifier.java b/juddi-core/src/main/java/org/apache/juddi/replication/ReplicationNotifier.java
index 4a91348..15b16ab 100644
--- a/juddi-core/src/main/java/org/apache/juddi/replication/ReplicationNotifier.java
+++ b/juddi-core/src/main/java/org/apache/juddi/replication/ReplicationNotifier.java
@@ -26,8 +26,6 @@ import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.Query;
import javax.xml.ws.BindingProvider;
-
-
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -36,8 +34,8 @@ import org.apache.juddi.config.AppConfig;
import org.apache.juddi.config.PersistenceManager;
import org.apache.juddi.config.Property;
import org.apache.juddi.mapping.MappingModelToApi;
+import org.apache.juddi.model.ChangeRecord;
import org.apache.juddi.model.ReplicationConfiguration;
-
import org.apache.juddi.v3.client.UDDIService;
import org.uddi.repl_v3.ChangeRecordIDType;
import org.uddi.repl_v3.CommunicationGraph;
@@ -46,17 +44,21 @@ import org.uddi.repl_v3.NotifyChangeRecordsAvailable;
import org.uddi.v3_service.UDDIReplicationPortType;
/**
- *
+ * Handles when local records have been changed, change journal storage and
+ * notifications to all remote replication nodes that something has been
+ * altered.
+ *
* @author <a href="mailto:alexoree@apache.org">Alex O'Ree</a>
*
*/
public class ReplicationNotifier extends TimerTask {
- private Log log = LogFactory.getLog(this.getClass());
+ private static Log log = LogFactory.getLog(ReplicationNotifier.class);
private Timer timer = null;
private long startBuffer = AppConfig.getConfiguration().getLong(Property.JUDDI_NOTIFICATION_START_BUFFER, 20000l); // 20s startup delay default
private long interval = AppConfig.getConfiguration().getLong(Property.JUDDI_NOTIFICATION_INTERVAL, 300000l); //5 min default
private long acceptableLagTime = AppConfig.getConfiguration().getLong(Property.JUDDI_NOTIFICATION_ACCEPTABLE_LAGTIME, 1000l); //1000 milliseconds
+ private static String node = null;
/**
* default constructor
@@ -70,6 +72,7 @@ public class ReplicationNotifier extends TimerTask {
if (queue == null) {
queue = new ConcurrentLinkedQueue();
}
+ node = AppConfig.getConfiguration().getString(Property.JUDDI_NODE_ID, "UNDEFINED_NODE_NAME");
}
@Override
@@ -80,13 +83,85 @@ public class ReplicationNotifier extends TimerTask {
}
//ReplicationNotifier.Enqueue(this);
- public synchronized static void Enqueue(Object change) {
+ public synchronized static void Enqueue(org.apache.juddi.model.ChangeRecord change) {
if (queue == null) {
- queue = new ConcurrentLinkedQueue();
+ queue = new ConcurrentLinkedQueue<ChangeRecord>();
}
queue.add(change);
}
- static Queue queue;
+ static Queue<ChangeRecord> queue;
+
+ /**
+ *
+ * @param j must be one of the UDDI save APIs
+ */
+ protected void ProcessChangeRecord(ChangeRecord j) {
+ //store and convert the changes to database model
+
+ EntityManager em = PersistenceManager.getEntityManager();
+ EntityTransaction tx = null;
+ try {
+ tx = em.getTransaction();
+ tx.begin();
+
+ em.persist(j);
+ tx.commit();
+ } catch (Exception ex) {
+ log.error("error", ex);
+ if (tx != null && tx.isActive()) {
+ tx.rollback();
+ }
+ } finally {
+ em.close();
+ }
+
+ log.info("ChangeRecord: " + j.getId() + "," + j.getEntityKey() + "," + j.getNodeID() + "," + j.getOriginatingUSN() + "," + j.getRecordType().toString());
+ org.uddi.repl_v3.ReplicationConfiguration repcfg = FetchEdges();
+
+ //TODO figure out what this statement means 7.5.3
+ /**
+ * In the absence of a communicationGraph element from the
+ * Replication Configuration Structure, all nodes listed in the
+ * node element MAY send any and all messages to any other node
+ * of the registry.
+ */
+ if (repcfg == null) {
+ log.info("No replication configuration is defined!");
+ return;
+
+ }
+ Iterator<CommunicationGraph.Edge> it = repcfg.getCommunicationGraph().getEdge().iterator();
+
+ while (it.hasNext()) {
+ //send each change set to the replication node in the graph
+
+ UDDIReplicationPortType x = new UDDIService().getUDDIReplicationPort();
+ CommunicationGraph.Edge next = it.next();
+ //next.getMessageReceiver(); //Node ID
+ Node destinationNode = getNode(next.getMessageSender());
+ if (destinationNode == null) {
+ log.warn(next.getMessageSender() + " node was not found, cannot deliver replication messages");
+ } else {
+ //TODO the spec talks about control messages, should we even support it? seems pointless
+ ((BindingProvider) x).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, destinationNode.getReplicationUrl());
+ NotifyChangeRecordsAvailable req = new NotifyChangeRecordsAvailable();
+
+ req.setNotifyingNode(node);
+ HighWaterMarkVectorType highWaterMarkVectorType = new HighWaterMarkVectorType();
+
+ highWaterMarkVectorType.getHighWaterMark().add(new ChangeRecordIDType(node, j.getId()));
+ req.setChangesAvailable(highWaterMarkVectorType);
+
+ try {
+ x.notifyChangeRecordsAvailable(req);
+ log.info("Successfully sent change record available message to " + destinationNode.getName());
+ } catch (Exception ex) {
+ log.warn("Unable to send change notification to " + destinationNode.getName(), ex);
+ }
+ }
+ }
+
+ }
public synchronized void run() {
log.debug("Replication thread triggered");
@@ -94,53 +169,22 @@ public class ReplicationNotifier extends TimerTask {
queue = new ConcurrentLinkedQueue();
}
while (!queue.isEmpty()) {
- log.info("Notifying nodes of change records " + queue.size());
- //TODO identify chnage set format
- Object j = queue.poll();
- org.uddi.repl_v3.ReplicationConfiguration repcfg = FetchEdges();
- if (repcfg == null) {
- log.debug("No replication configuration is defined!");
- queue.clear();
- break;
- }
- Iterator<CommunicationGraph.Edge> it = repcfg.getCommunicationGraph().getEdge().iterator();
-
- while (it.hasNext()) {
-
- //for (int i = 0; i < endpoints.size(); i++) {
- UDDIReplicationPortType x = new UDDIService().getUDDIReplicationPort();
- CommunicationGraph.Edge next = it.next();
- next.getMessageReceiver(); //Node ID
- Node destinationNode = getNode(next.getMessageSender());
- if (destinationNode == null) {
- log.warn(next.getMessageSender() + " node was not found, cannot deliver replication messages");
- } else {
- ((BindingProvider) x).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, destinationNode.getReplicationUrl());
- NotifyChangeRecordsAvailable req = new NotifyChangeRecordsAvailable();
- String node = "UNKNOWN";
- try {
- node = AppConfig.getConfiguration().getString(Property.JUDDI_NODE_ID);
- } catch (ConfigurationException ex) {
- log.fatal(ex);
- }
- req.setNotifyingNode(node);
- HighWaterMarkVectorType highWaterMarkVectorType = new HighWaterMarkVectorType();
- String nextWatermark = ""; //TODO get current watermark + 1 toString()
- //TODO save watermark along with change set
-
- highWaterMarkVectorType.getHighWaterMark().add(new ChangeRecordIDType(node, 1L));
- req.setChangesAvailable(highWaterMarkVectorType);
- try {
- x.notifyChangeRecordsAvailable(req);
- } catch (Exception ex) {
- log.warn("Unable to send change notification to " + next.getMessageSender(), ex);
- }
- }
- }
+ //for each change at this node
+ log.info("Replication, Notifying nodes of new change records. " + queue.size() + " remaining");
+
+ ChangeRecord j = queue.poll();
+ ProcessChangeRecord(j);
+
}
}
- private org.uddi.repl_v3.ReplicationConfiguration FetchEdges() {
+ /**
+ * returns the latest version of the replication config or null if there
+ * is no config
+ *
+ * @return
+ */
+ public static org.uddi.repl_v3.ReplicationConfiguration FetchEdges() {
EntityManager em = PersistenceManager.getEntityManager();
EntityTransaction tx = null;
@@ -173,7 +217,6 @@ public class ReplicationNotifier extends TimerTask {
private Node getNode(String messageSender) {
EntityManager em = PersistenceManager.getEntityManager();
EntityTransaction tx = null;
- org.uddi.repl_v3.ReplicationConfiguration item = new org.uddi.repl_v3.ReplicationConfiguration();
try {
tx = em.getTransaction();
tx.begin();
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org