1
2
3
4
5
6
7
8
9
10
11 package net.kwfgrid.gworkflowdl.conversion;
12
13 import org.jdom.transform.XSLTransformer;
14 import org.jdom.transform.XSLTransformException;
15 import org.jdom.Document;
16 import org.jdom.JDOMException;
17 import org.jdom.input.SAXBuilder;
18
19 import java.io.*;
20
21 import net.kwfgrid.gworkflowdl.structure.JdomString;
22
23 /***
24 * @author Andreas Hoheisel
25 * (<a href="http://www.andreas-hoheisel.de">www.andreas-hoheisel.de</a>)
26 * @version $Id: EPML2GWorkflowDLConverter.java 1353 2010-03-04 16:21:48Z andreas.hoheisel@first.fraunhofer.de $
27 */
28 public class EPML2GWorkflowDLConverter {
29 private final XSLTransformer transformer;
30
31 private static final boolean VALIDATE = false;
32 private static final String FEATURE_VALIDATION = "http://xml.org/sax/features/validation";
33 private static final String FEATURE_XSD = "http://apache.org/xml/features/validation/schema";
34 private static final String PROPERTY_XSD = "http://apache.org/xml/properties/schema/external-schemaLocation";
35
36
37 public EPML2GWorkflowDLConverter() throws XSLTransformException {
38 System.setProperty( "javax.xml.transform.TransformerFactory", "org.apache.xalan.processor.TransformerFactoryImpl");
39 transformer = new XSLTransformer(getClass().getResourceAsStream("/epml_1_2-to-gworkflowdl_2_1.xsl"));
40 }
41
42 /***
43 * Transforms EPML 1.2 document to GWorkflowDL version 1.1
44 * @param epml The EPML 1.2 document
45 * @return The GWorkflowDL 1.1 document
46 * @throws org.jdom.transform.XSLTransformException
47 */
48 public Document convertFromEPMLToGWorkflowDL(Document epml) throws XSLTransformException {
49 return transformer.transform(epml);
50 }
51
52 public String convertFromEPMLToGWorkflowDL(String xml) throws IOException, JDOMException {
53 final SAXBuilder builder = new SAXBuilder(VALIDATE);
54 builder.setFeature(FEATURE_VALIDATION, VALIDATE);
55 builder.setFeature(FEATURE_XSD, false);
56 Document gwdl11 = convertFromEPMLToGWorkflowDL(builder.build(new StringReader(xml)));
57 return JdomString.document2string(gwdl11);
58 }
59
60 public static void main(String[] args) {
61 if (args.length < 2) {
62 System.out.println("Transforms EPML 1.2 document to GWorkflowDL version 1.1");
63 System.out.println("Usage: java net.kwfgrid.gworkflowdl.conversion.EPML2GWorkflowDLConverter <filename_epml_1.2> <filename_gwdl_1.1>");
64 System.exit(1);
65 }
66
67 try {
68 EPML2GWorkflowDLConverter converter = new EPML2GWorkflowDLConverter();
69 FileUtils.writeFile(args[1],converter.convertFromEPMLToGWorkflowDL(FileUtils.readFile(args[0])));
70 } catch (XSLTransformException e) {
71 System.err.println("exception:\n" + e);
72 System.exit(255);
73 } catch (IOException e) {
74 System.err.println("exception:\n" + e);
75 System.exit(254);
76 } catch (JDOMException e) {
77 System.err.println("exception:\n" + e);
78 System.exit(253);
79 }
80 }
81
82 }