package org.wso2.carbon.event.receiver.template.deployer.internal.util;
import org.custommonkey.xmlunit.Diff;
import org.custommonkey.xmlunit.XMLUnit;
import org.wso2.carbon.registry.core.Collection;
import org.wso2.carbon.registry.core.Registry;
import org.wso2.carbon.registry.core.RegistryConstants;
import org.wso2.carbon.registry.core.Resource;
import org.wso2.carbon.registry.core.exceptions.RegistryException;
import org.xml.sax.SAXException;
import java.io.IOException;
public class EventReceiverTemplateDeployerHelper {
public static void updateRegistryMaps(Registry registry, String artifactId, String streamId)
throws RegistryException {
Collection infoCollection = registry.get(EventReceiverTemplateDeployerConstants.META_INFO_COLLECTION_PATH, 0, -1);
infoCollection.addProperty(artifactId, streamId);
registry.put(EventReceiverTemplateDeployerConstants.META_INFO_COLLECTION_PATH, infoCollection);
Resource mappingResource;
String mappingResourceContent = null;
String mappingResourcePath = EventReceiverTemplateDeployerConstants.
META_INFO_COLLECTION_PATH + RegistryConstants.PATH_SEPARATOR + streamId;
if (registry.resourceExists(mappingResourcePath)) {
mappingResource = registry.get(mappingResourcePath);
mappingResourceContent = new String((byte[]) mappingResource.getContent());
} else {
mappingResource = registry.newResource();
}
if (mappingResourceContent == null) {
mappingResourceContent = artifactId;
} else {
mappingResourceContent += EventReceiverTemplateDeployerConstants.META_INFO_RECEIVER_NAME_SEPARATER
+ artifactId;
}
mappingResource.setMediaType("text/plain");
mappingResource.setContent(mappingResourceContent);
registry.put(mappingResourcePath, mappingResource);
}
public static boolean areReceiverConfigXmlsSimilar(String configXml1, String configXml2)
throws IOException, SAXException {
XMLUnit.setIgnoreWhitespace(true);
Diff diff = XMLUnit.compareXML(configXml1, configXml2);
return diff.similar();
}
}