diff options
| author | Andrew Branson <andrew.branson@cern.ch> | 2012-06-14 11:35:25 +0200 |
|---|---|---|
| committer | Andrew Branson <andrew.branson@cern.ch> | 2012-06-14 11:35:25 +0200 |
| commit | f20547a9f617a971d7dfa64a5a4564cd2f013170 (patch) | |
| tree | 03cfcd0b2b344abedfcf857d320a3532a4649b49 /src/main/java/com/c2kernel/process/Module.java | |
| parent | e55bf67f1ba4565ba2816ba58ab13b27807dd540 (diff) | |
Created ModuleException
Diffstat (limited to 'src/main/java/com/c2kernel/process/Module.java')
| -rw-r--r-- | src/main/java/com/c2kernel/process/Module.java | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/src/main/java/com/c2kernel/process/Module.java b/src/main/java/com/c2kernel/process/Module.java index e2a4f2e..6e5f8d1 100644 --- a/src/main/java/com/c2kernel/process/Module.java +++ b/src/main/java/com/c2kernel/process/Module.java @@ -47,21 +47,28 @@ public class Module { private final ArrayList<ModuleImport> imports = new ArrayList<ModuleImport>();
private static DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
private final DocumentBuilder parser;
+ private Document moduleDOM;
static {
dbf.setValidating(false);
dbf.setNamespaceAware(false);
}
- public Module(String moduleXML) throws Exception {
- parser = dbf.newDocumentBuilder();
- Document moduleDOM = parser.parse(new InputSource(new StringReader(moduleXML)));
-
+ 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 info = (Element)moduleDOM.getElementsByTagName("Info").item(0);
desc = ((Text)info.getElementsByTagName("Description").item(0).getFirstChild()).getData();
version = ((Text)info.getElementsByTagName("Version").item(0).getFirstChild()).getData();
@@ -95,10 +102,15 @@ public class Module { String target = confElement.getAttribute("target");
String event = confElement.getAttribute("event");
String lang = confElement.getAttribute("lang");
- Script thisScript = new Script(lang, ((Text)confElement.getFirstChild()).getData(), ErrorInfo.class);
- // target can be 'client', 'server' or missing, which implies both.
- if (!target.equals("client")) serverScripts.put(event, thisScript);
- if (!target.equals("server")) clientScripts.put(event, thisScript);
+ try {
+ Script thisScript = new Script(lang, ((Text)confElement.getFirstChild()).getData(), ErrorInfo.class);
+ // target can be 'client', 'server' or missing, which implies both.
+ if (!target.equals("client")) serverScripts.put(event, thisScript);
+ if (!target.equals("server")) clientScripts.put(event, thisScript);
+ } catch (ScriptingEngineException e) {
+ Logger.error(e);
+ throw new ModuleException("Could not process module script");
+ }
}
// Get imports
|
