1 /*
2 * The Apache Software License, Version 1.1
3 *
4 * Copyright (c) 1999, 2000 The Apache Software Foundation. All rights
5 * reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 *
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 *
14 * 2. Redistributions in binary form must reproduce the above copyright
15 * notice, this list of conditions and the following disclaimer in
16 * the documentation and/or other materials provided with the
17 * distribution.
18 *
19 * 3. The end-user documentation included with the redistribution, if
20 * any, must include the following acknowlegement:
21 * "This product includes software developed by the
22 * Apache Software Foundation (http://www.apache.org/)."
23 * Alternately, this acknowlegement may appear in the software itself,
24 * if and wherever such third-party acknowlegements normally appear.
25 *
26 * 4. The names "The Jakarta Project", "Ant", and "Apache Software
27 * Foundation" must not be used to endorse or promote products derived
28 * from this software without prior written permission. For written
29 * permission, please contact apache@apache.org.
30 *
31 * 5. Products derived from this software may not be called "Apache"
32 * nor may "Apache" appear in their names without prior written
33 * permission of the Apache Group.
34 *
35 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
36 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
37 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
38 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
39 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
41 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
42 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
43 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
44 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
45 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
46 * SUCH DAMAGE.
47 * ====================================================================
48 *
49 * This software consists of voluntary contributions made by many
50 * individuals on behalf of the Apache Software Foundation. For more
51 * information on the Apache Software Foundation, please see
52 * <http://www.apache.org/>.
53 */
54
55 package org.xrn.core;
56
57 import java.io.File;
58 import java.util.List;
59
60 import javax.xml.bind.JAXBContext;
61 import javax.xml.bind.JAXBException;
62 import javax.xml.bind.UnmarshalException;
63 import javax.xml.bind.Unmarshaller;
64
65 import org.w3c.dom.Document;
66 import org.xrn.xsd2java.MultipleReleaseNotes;
67 import org.xrn.xsd2java.ReleaseNotes;
68 import org.xrn.xsd2java.ReleaseNotesType;
69
70 /***
71 * The aim of this class is to provide a entry point for XRN-Java plug-ins.
72 *
73 * @author Edouard Mercier
74 * @version
75 * @XRN_VERSION@
76 * @since V0.18.1
77 */
78 public class Plugin
79 {
80
81 public void run(File file) throws Exception
82 {
83 doTheJob(file);
84 }
85
86 public void run(Document document) throws Exception
87 {
88 doTheJob(document);
89 }
90
91 private void doTheJob(Object object) throws Exception
92 {
93
94 MultipleReleaseNotes multiple_release_notes = null;
95 try
96 {
97 JAXBContext jContext = JAXBContext.newInstance("org.xrn.xsd2java");
98 Unmarshaller unmarshaller = jContext.createUnmarshaller();
99 // The validation is disabled in order to make sure that the unmarshaller works
100 unmarshaller.setValidating(false);
101 if (object instanceof Document)
102 {
103 multiple_release_notes = (MultipleReleaseNotes) unmarshaller
104 .unmarshal((Document) object);
105 }
106 else if (object instanceof File)
107 {
108 multiple_release_notes = (MultipleReleaseNotes) unmarshaller
109 .unmarshal((File) object);
110 }
111
112 }
113 catch (UnmarshalException unmarshal_exception)
114 {
115 throw unmarshal_exception;
116 }
117 catch (JAXBException jaxb_exception)
118 {
119 throw jaxb_exception;
120 }
121 System.out.println(multiple_release_notes.getXRNVersion());
122 List releasenotes_list = multiple_release_notes.getReleaseNotes();
123 for (int index = 0; index < releasenotes_list.size(); index++)
124 {
125 ReleaseNotesType release_notes_type = (ReleaseNotesType) releasenotes_list.get(index);
126 System.out.println(release_notes_type.getID() + " for XRN V" + release_notes_type.getVersion());
127 ;
128 }
129 }
130
131 }