1 package org.apache.maven.plugin.ear;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.codehaus.plexus.util.xml.XMLWriter;
23
24 import java.io.File;
25 import java.io.Writer;
26 import java.util.Iterator;
27 import java.util.List;
28
29
30
31
32
33
34
35
36 final class JbossAppXmlWriter
37 extends AbstractXmlWriter
38 {
39
40 public static final String DOCTYPE_3_2 = "jboss-app PUBLIC\n" + "\t\"-//JBoss//DTD J2EE Application 1.3//EN\"\n" +
41 "\t\"http://www.jboss.org/j2ee/dtd/jboss-app_3_2.dtd\"";
42
43 public static final String DOCTYPE_4 = "jboss-app PUBLIC\n" + "\t\"-//JBoss//DTD J2EE Application 1.4//EN\"\n" +
44 "\t\"http://www.jboss.org/j2ee/dtd/jboss-app_4_0.dtd\"";
45
46 public static final String DOCTYPE_4_2 = "jboss-app PUBLIC\n" + "\t\"-//JBoss//DTD J2EE Application 1.4//EN\"\n" +
47 "\t\"http://www.jboss.org/j2ee/dtd/jboss-app_4_2.dtd\"";
48
49 public static final String DOCTYPE_5 = "jboss-app PUBLIC\n" + "\t\"-//JBoss//DTD Java EE Application 5.0//EN\"\n" +
50 "\t\"http://www.jboss.org/j2ee/dtd/jboss-app_5_0.dtd\"";
51
52 private static final String JBOSS_APP_ELEMENT = "jboss-app";
53
54 JbossAppXmlWriter( String encoding )
55 {
56 super( encoding );
57 }
58
59 public void write( File destinationFile, JbossConfiguration jbossConfiguration, List earModules )
60 throws EarPluginException
61 {
62 final Writer w = initializeWriter( destinationFile );
63
64 XMLWriter writer;
65 if ( jbossConfiguration.isJbossThreeDotTwo() )
66 {
67 writer = initializeXmlWriter( w, DOCTYPE_3_2 );
68 }
69 else if ( jbossConfiguration.isJbossFour() )
70 {
71 writer = initializeXmlWriter( w, DOCTYPE_4 );
72 }
73 else if ( jbossConfiguration.isJbossFourDotTwo() )
74 {
75 writer = initializeXmlWriter( w, DOCTYPE_4_2 );
76 }
77 else
78 {
79 writer = initializeXmlWriter( w, DOCTYPE_5 );
80 }
81 writer.startElement( JBOSS_APP_ELEMENT );
82
83
84 if ( jbossConfiguration.isJbossFourDotTwo() || jbossConfiguration.isJbossFive() )
85 {
86
87 if ( jbossConfiguration.getLibraryDirectory() != null )
88 {
89 writer.startElement( JbossConfiguration.LIBRARY_DIRECTORY );
90 writer.writeText ( jbossConfiguration.getLibraryDirectory() );
91 writer.endElement();
92 }
93 }
94
95
96 if ( jbossConfiguration.isJbossFourDotTwo() )
97 {
98
99 if ( jbossConfiguration.getModuleOrder() != null )
100 {
101 writer.startElement( JbossConfiguration.MODULE_ORDER );
102 writer.writeText( jbossConfiguration.getModuleOrder() );
103 writer.endElement();
104 }
105 }
106
107
108 if ( jbossConfiguration.isJbossFour() || jbossConfiguration.isJbossFourDotTwo() )
109 {
110 if ( jbossConfiguration.getSecurityDomain() != null )
111 {
112 writer.startElement( JbossConfiguration.SECURITY_DOMAIN );
113 writer.writeText( jbossConfiguration.getSecurityDomain() );
114 writer.endElement();
115 }
116 if ( jbossConfiguration.getUnauthenticatedPrincipal() != null )
117 {
118 writer.startElement( JbossConfiguration.UNAUHTHENTICTED_PRINCIPAL );
119 writer.writeText( jbossConfiguration.getUnauthenticatedPrincipal() );
120 writer.endElement();
121 }
122 }
123
124
125 if ( jbossConfiguration.getLoaderRepository() != null || jbossConfiguration.getLoaderRepositoryConfig() != null)
126 {
127 writer.startElement( JbossConfiguration.LOADER_REPOSITORY );
128
129
130 if ( jbossConfiguration.getLoaderRepositoryClass() != null)
131 {
132 writer.addAttribute( JbossConfiguration.LOADER_REPOSITORY_CLASS_ATTRIBUTE,
133 jbossConfiguration.getLoaderRepositoryClass() );
134 }
135
136
137 if ( jbossConfiguration.getLoaderRepository() != null )
138 {
139 writer.writeText( jbossConfiguration.getLoaderRepository() );
140 }
141
142
143 if ( jbossConfiguration.getLoaderRepositoryConfig() != null )
144 {
145 writer.startElement( JbossConfiguration.LOADER_REPOSITORY_CONFIG );
146
147
148 if ( jbossConfiguration.getConfigParserClass() != null)
149 {
150 writer.addAttribute( JbossConfiguration.CONFIG_PARSER_CLASS_ATTRIBUTE,
151 jbossConfiguration.getConfigParserClass() );
152 }
153 writer.writeText( jbossConfiguration.getLoaderRepositoryConfig() );
154 writer.endElement();
155 }
156
157 writer.endElement();
158 }
159
160
161 if ( jbossConfiguration.getJmxName() != null )
162 {
163 writer.startElement( JbossConfiguration.JMX_NAME );
164 writer.writeText( jbossConfiguration.getJmxName() );
165 writer.endElement();
166 }
167
168 List dataSources = jbossConfiguration.getDataSources();
169
170 if ( dataSources != null )
171 {
172 final Iterator it = dataSources.iterator();
173 while ( it.hasNext() )
174 {
175 String dsPath = (String) it.next();
176 writer.startElement( MODULE_ELEMENT );
177 writer.startElement( SERVICE_ELEMENT );
178 writer.writeText( dsPath );
179 writer.endElement();
180 writer.endElement();
181 }
182 }
183
184
185 final Iterator it = earModules.iterator();
186 while ( it.hasNext() )
187 {
188 EarModule earModule = (EarModule) it.next();
189 if ( JbossEarModule.class.isInstance( earModule ) )
190 {
191 JbossEarModule jbossEarModule = (JbossEarModule) earModule;
192 jbossEarModule.appendJbossModule( writer, jbossConfiguration.getVersion() );
193 }
194 }
195 writer.endElement();
196
197 close( w );
198 }
199 }