1 package org.apache.maven.plugins.ear;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.Arrays;
23 import java.util.Collections;
24 import java.util.List;
25
26 import org.apache.maven.artifact.Artifact;
27 import org.apache.maven.plugins.ear.util.ArtifactTypeMappingService;
28 import org.apache.maven.plugins.ear.util.JavaEEVersion;
29
30
31
32
33
34
35 public final class EarModuleFactory
36 {
37 private static final String TEST_JAR_ARTIFACT_TYPE = "test-jar";
38 private static final String JBOSS_PAR_ARTIFACT_TYPE = "jboss-par";
39 private static final String JBOSS_SAR_ARTIFACT_TYPE = "jboss-sar";
40 private static final String JBOSS_HAR_ARTIFACT_TYPE = "jboss-har";
41
42
43
44
45 private static final List<String> STANDARD_ARTIFACT_TYPES =
46 Collections.unmodifiableList( Arrays.asList(
47 JarModule.DEFAULT_ARTIFACT_TYPE,
48 EjbModule.DEFAULT_ARTIFACT_TYPE,
49 ParModule.DEFAULT_ARTIFACT_TYPE,
50 EjbClientModule.DEFAULT_ARTIFACT_TYPE,
51 AppClientModule.DEFAULT_ARTIFACT_TYPE,
52 RarModule.DEFAULT_ARTIFACT_TYPE,
53 WebModule.DEFAULT_ARTIFACT_TYPE,
54 SarModule.DEFAULT_ARTIFACT_TYPE,
55 WsrModule.DEFAULT_ARTIFACT_TYPE,
56 HarModule.DEFAULT_ARTIFACT_TYPE,
57 TEST_JAR_ARTIFACT_TYPE,
58 JBOSS_PAR_ARTIFACT_TYPE,
59 JBOSS_SAR_ARTIFACT_TYPE,
60 JBOSS_HAR_ARTIFACT_TYPE ) );
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75 public static EarModule newEarModule( Artifact artifact, JavaEEVersion javaEEVersion, String defaultLibBundleDir,
76 Boolean includeInApplicationXml,
77 ArtifactTypeMappingService typeMappingService )
78 throws UnknownArtifactTypeException
79 {
80
81 final String artifactType;
82 try
83 {
84 artifactType = typeMappingService.getStandardType( artifact.getType() );
85 }
86 catch ( UnknownArtifactTypeException e )
87 {
88 throw new UnknownArtifactTypeException( e.getMessage() + " for " + artifact.getArtifactId() );
89 }
90
91 if ( JarModule.DEFAULT_ARTIFACT_TYPE.equals( artifactType ) || TEST_JAR_ARTIFACT_TYPE.equals( artifactType ) )
92 {
93 return new JarModule( artifact, defaultLibBundleDir, includeInApplicationXml );
94 }
95 else if ( EjbModule.DEFAULT_ARTIFACT_TYPE.equals( artifactType ) )
96 {
97 return new EjbModule( artifact );
98 }
99 else if ( ParModule.DEFAULT_ARTIFACT_TYPE.equals( artifactType )
100 || JBOSS_PAR_ARTIFACT_TYPE.equals( artifactType ) )
101 {
102 return new ParModule( artifact );
103 }
104 else if ( EjbClientModule.DEFAULT_ARTIFACT_TYPE.equals( artifactType ) )
105 {
106
107 if ( javaEEVersion.le( JavaEEVersion.ONE_DOT_FOUR ) )
108 {
109 return new EjbClientModule( artifact, null );
110 }
111 else
112 {
113 return new EjbClientModule( artifact, defaultLibBundleDir );
114 }
115 }
116 else if ( AppClientModule.DEFAULT_ARTIFACT_TYPE.equals( artifactType ) )
117 {
118 return new AppClientModule( artifact );
119 }
120 else if ( RarModule.DEFAULT_ARTIFACT_TYPE.equals( artifactType ) )
121 {
122 return new RarModule( artifact );
123 }
124 else if ( WebModule.DEFAULT_ARTIFACT_TYPE.equals( artifactType ) )
125 {
126 return new WebModule( artifact );
127 }
128 else if ( SarModule.DEFAULT_ARTIFACT_TYPE.equals( artifactType )
129 || JBOSS_SAR_ARTIFACT_TYPE.equals( artifactType ) )
130 {
131 return new SarModule( artifact );
132 }
133 else if ( WsrModule.DEFAULT_ARTIFACT_TYPE.equals( artifactType ) )
134 {
135 return new WsrModule( artifact );
136 }
137 else if ( HarModule.DEFAULT_ARTIFACT_TYPE.equals( artifactType )
138 || JBOSS_HAR_ARTIFACT_TYPE.equals( artifactType ) )
139 {
140 return new HarModule( artifact );
141 }
142 else
143 {
144 throw new IllegalStateException( "Could not handle artifact type[" + artifactType + "]" );
145 }
146 }
147
148
149
150
151
152
153 public static List<String> getStandardArtifactTypes()
154 {
155 return STANDARD_ARTIFACT_TYPES;
156 }
157
158
159
160
161
162
163
164 public static boolean isStandardArtifactType( final String type )
165 {
166 return STANDARD_ARTIFACT_TYPES.contains( type );
167 }
168
169 }