From b53164978a9a264fbe26679c07e32731a4d495f9 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Fri, 6 Jul 2012 15:50:45 +0200 Subject: Remove XML parsing from module processing, use Castor unmarshalling instead. Create module item with collection of imported Items and module XML registered as an outcome. --- .../java/com/c2kernel/process/module/Module.java | 140 +++++---------------- 1 file changed, 30 insertions(+), 110 deletions(-) (limited to 'src/main/java/com/c2kernel/process/module/Module.java') diff --git a/src/main/java/com/c2kernel/process/module/Module.java b/src/main/java/com/c2kernel/process/module/Module.java index 22f4543..4a0987a 100644 --- a/src/main/java/com/c2kernel/process/module/Module.java +++ b/src/main/java/com/c2kernel/process/module/Module.java @@ -1,26 +1,19 @@ package com.c2kernel.process.module; -import java.io.StringReader; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.Properties; -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; - -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; -import org.w3c.dom.Text; -import org.xml.sax.InputSource; - import com.c2kernel.common.CannotManageException; import com.c2kernel.common.ObjectAlreadyExistsException; import com.c2kernel.common.ObjectCannotBeUpdated; import com.c2kernel.common.ObjectNotFoundException; import com.c2kernel.entity.proxy.ItemProxy; +import com.c2kernel.lifecycle.instance.predefined.entitycreation.Dependency; +import com.c2kernel.lifecycle.instance.predefined.entitycreation.DependencyMember; import com.c2kernel.lifecycle.instance.predefined.entitycreation.NewAgent; import com.c2kernel.lifecycle.instance.predefined.entitycreation.NewItem; +import com.c2kernel.lifecycle.instance.predefined.entitycreation.Outcome; import com.c2kernel.lookup.DomainPath; import com.c2kernel.process.Bootstrap; import com.c2kernel.process.Gateway; @@ -37,109 +30,12 @@ public class Module { public ModuleImports imports = new ModuleImports(); public ArrayList config = new ArrayList(); public ArrayList scripts = new ArrayList(); - private static DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); - private DocumentBuilder parser; - private Document moduleDOM; + public NewItem moduleItem; - static { - dbf.setValidating(false); - dbf.setNamespaceAware(false); - } - public Module() { super(); } - public Module(String moduleXML) throws ModuleException { - try { - parser = dbf.newDocumentBuilder(); - moduleDOM = parser.parse(new InputSource(new StringReader(moduleXML))); - } catch (Exception e) { - Logger.error(e); - throw new ModuleException("Could not process modules. XML Parser exception"); - } - - Element root = (Element)moduleDOM.getElementsByTagName("CristalModule").item(0); - - // Get module metadata - ns = root.getAttribute("ns"); - name = root.getAttribute("name"); - - Element infoElem = (Element)moduleDOM.getElementsByTagName("Info").item(0); - info = new ModuleInfo(); - info.desc = ((Text)infoElem.getElementsByTagName("Description").item(0).getFirstChild()).getData(); - info.version = ((Text)infoElem.getElementsByTagName("Version").item(0).getFirstChild()).getData(); - NodeList nl = infoElem.getElementsByTagName("Dependency"); - for (int i=0; i0) { - resURL = ((Text)nl.item(0).getFirstChild()).getData(); - Resource.addModuleBaseURL(ns, resURL); - } - - // Get config properties - nl = root.getElementsByTagName("Config"); - for (int i=0; i0) { - Element impElem = (Element)nl.item(0); - nl = impElem.getChildNodes(); - for (int i=0; i