1 package org.apache.maven.plugin.eclipse;
2
3 import java.util.ArrayList;
4 import java.util.List;
5 import java.util.Map;
6
7 import org.apache.maven.plugin.MojoExecutionException;
8 import org.apache.maven.plugin.eclipse.writers.EclipseWriterConfig;
9 import org.apache.maven.plugin.eclipse.writers.myeclipse.MyEclipseHibernateWriter;
10 import org.apache.maven.plugin.eclipse.writers.myeclipse.MyEclipseMetadataWriter;
11 import org.apache.maven.plugin.eclipse.writers.myeclipse.MyEclipseSpringBeansWriter;
12 import org.apache.maven.plugin.eclipse.writers.myeclipse.MyEclipseStrutsDataWriter;
13 import org.apache.maven.plugin.ide.IdeUtils;
14 import org.apache.maven.plugin.ide.JeeUtils;
15
16
17
18
19
20
21
22
23
24 public class MyEclipsePlugin
25 extends EclipsePlugin
26 {
27
28 private static final String MYECLIPSE_EAR_NATURE = "com.genuitec.eclipse.j2eedt.core.earnature";
29
30 private static final String MYECLIPSE_WEB_NATURE = "com.genuitec.eclipse.j2eedt.core.webnature";
31
32 private static final String MYECLISPE_SPRING_NATURE = "com.genuitec.eclipse.springframework.springnature";
33
34 private static final String MYECLIPSE_STRUTS_NATURE =
35 "com.genuitec.eclipse.cross.easystruts.eclipse.easystrutsnature";
36
37 private static final String MYECLIPSE_HIBERNATE_NATURE = "com.genuitec.eclipse.hibernate.hibernatenature";
38
39
40 private static final String MYECLIPSE_DEPLOYMENT_DESCRIPTOR_VALIDATOR_BUILDER =
41 "com.genuitec.eclipse.j2eedt.core.DeploymentDescriptorValidator";
42
43 private static final String MYECLIPSE_WEB_CLASSPATH_BUILDER =
44 "com.genuitec.eclipse.j2eedt.core.WebClasspathBuilder";
45
46 private static final String MYECLIPSE_J2EE_PROJECT_VALIDATOR_BUILDER =
47 "com.genuitec.eclipse.j2eedt.core.J2EEProjectValidator";
48
49 private static final String MYECLIPSE_SPRING_BUILDER = "com.genuitec.eclipse.springframework.springbuilder";
50
51 private static final String MYECLIPSE_HIBERNATE_BUILDER = "com.genuitec.eclipse.hibernate.HibernateBuilder";
52
53 private static final String MYECLIPSE_J2EE_14_CLASSPATH_CONTAINER =
54 "com.genuitec.eclipse.j2eedt.core.J2EE14_CONTAINER";
55
56 private static final String MYECLIPSE_J2EE_13_CLASSPATH_CONTAINER =
57 "com.genuitec.eclipse.j2eedt.core.J2EE13_CONTAINER";
58
59 private static final String MYECLIPSE_DEFAULT_HIBERNATE_CFG_XML = "src/main/resources/applicationContext.xml";
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 private Map spring;
75
76
77
78
79
80
81
82
83
84
85
86
87
88 private Map hibernate;
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104 private Map struts;
105
106
107
108
109 protected void writeConfigurationExtras( EclipseWriterConfig config )
110 throws MojoExecutionException
111 {
112 super.writeConfigurationExtras( config );
113 if ( isJavaProject() )
114 {
115
116 if ( Constants.PROJECT_PACKAGING_WAR.equals( project.getPackaging() ) )
117 {
118 String warSourceDirectory =
119 IdeUtils.getPluginSetting( config.getProject(), JeeUtils.ARTIFACT_MAVEN_WAR_PLUGIN,
120 "warSourceDirectory",
121 "/src/main/webapp" );
122
123 EclipseSourceDir[] sourceDirs = config.getSourceDirs();
124 for ( int i = 0; i < sourceDirs.length; i++ )
125 {
126 if ( !sourceDirs[i].isTest() )
127 {
128 sourceDirs[i].setOutput( warSourceDirectory + "/WEB-INF/classes" );
129 }
130 }
131 }
132 }
133
134
135
136 new MyEclipseMetadataWriter().init( getLog(), config ).write();
137
138 if ( getStruts() != null )
139 {
140 new MyEclipseStrutsDataWriter( getStruts() ).init( getLog(), config ).write();
141 }
142 if ( getSpring() != null )
143 {
144 new MyEclipseSpringBeansWriter( getSpring() ).init( getLog(), config ).write();
145 }
146 if ( getHibernate() != null )
147 {
148
149 String hbmCfgFile = (String) getHibernate().get( "config-file" );
150
151 if ( "".equals( hbmCfgFile ) )
152 {
153 hbmCfgFile = MYECLIPSE_DEFAULT_HIBERNATE_CFG_XML;
154 }
155
156 new MyEclipseHibernateWriter( getHibernate() ).init( getLog(), config ).write();
157 }
158 }
159
160
161
162
163
164
165 protected void fillDefaultBuilders( String packaging )
166 {
167 List commands = new ArrayList();
168
169 super.fillDefaultBuilders( packaging );
170
171 if ( Constants.PROJECT_PACKAGING_EAR.equals( packaging ) )
172 {
173 if ( getLog().isDebugEnabled() )
174 {
175 getLog().debug( "EAR packaging does not need specific builders" );
176 }
177 }
178 else if ( Constants.PROJECT_PACKAGING_WAR.equals( packaging ) )
179 {
180 commands.add( MYECLIPSE_DEPLOYMENT_DESCRIPTOR_VALIDATOR_BUILDER );
181 commands.add( MYECLIPSE_J2EE_PROJECT_VALIDATOR_BUILDER );
182 commands.add( MYECLIPSE_WEB_CLASSPATH_BUILDER );
183
184
185 if ( !getBuildcommands().contains( new BuildCommand( BUILDER_WST_VALIDATION ) ) )
186 {
187 commands.add( BUILDER_WST_VALIDATION );
188 }
189 }
190 else if ( Constants.PROJECT_PACKAGING_EJB.equals( packaging ) )
191 {
192 if ( getLog().isInfoEnabled() )
193 {
194 getLog().info( "EJB packaging is not implemented yet" );
195 }
196 }
197 else if ( isJavaProject() )
198 {
199 if ( getLog().isDebugEnabled() )
200 {
201 getLog().debug( "JAR packaging does not need specific builders" );
202 }
203 }
204
205 if ( getSpring() != null )
206 {
207 commands.add( MYECLIPSE_SPRING_BUILDER );
208 }
209 if ( getHibernate() != null )
210 {
211 commands.add( MYECLIPSE_HIBERNATE_BUILDER );
212 }
213
214 convertBuildCommandList( commands );
215 getBuildcommands().addAll( commands );
216 }
217
218
219
220
221
222
223 protected void fillDefaultNatures( String packaging )
224 {
225 List natures = new ArrayList();
226
227 super.fillDefaultNatures( packaging );
228
229 if ( Constants.PROJECT_PACKAGING_EAR.equals( packaging ) )
230 {
231 natures.add( MYECLIPSE_EAR_NATURE );
232 }
233 else if ( Constants.PROJECT_PACKAGING_WAR.equals( packaging ) )
234 {
235 natures.add( MYECLIPSE_WEB_NATURE );
236 }
237 else if ( Constants.PROJECT_PACKAGING_EJB.equals( packaging ) )
238 {
239 if ( getLog().isInfoEnabled() )
240 {
241 getLog().info( "EJB packaging is not implemented yet" );
242 }
243 }
244 else if ( isJavaProject() )
245 {
246 if ( getLog().isDebugEnabled() )
247 {
248 getLog().debug( "JAR projects does not need specific natures" );
249 }
250 }
251
252
253 if ( getSpring() != null )
254 {
255 natures.add( MYECLISPE_SPRING_NATURE );
256 }
257
258 if ( getStruts() != null )
259 {
260 natures.add( MYECLIPSE_STRUTS_NATURE );
261 }
262
263
264 if ( getHibernate() != null )
265 {
266 natures.add( MYECLIPSE_HIBERNATE_NATURE );
267 }
268
269 getProjectnatures().addAll( natures );
270 }
271
272 protected void fillDefaultClasspathContainers( String packaging )
273 {
274 super.fillDefaultClasspathContainers( packaging );
275
276 if ( Constants.PROJECT_PACKAGING_WAR.equals( packaging ) )
277 {
278 String jeeVersion =
279 JeeUtils.getJeeDescriptorFromServletVersion( JeeUtils.resolveServletVersion( project ) ).getJeeVersion();
280
281 if ( "1.3".equals( jeeVersion ) )
282 {
283 getClasspathContainers().add( MYECLIPSE_J2EE_13_CLASSPATH_CONTAINER );
284 }
285 else if ( "1.4".equals( jeeVersion ) )
286 {
287 getClasspathContainers().add( MYECLIPSE_J2EE_14_CLASSPATH_CONTAINER );
288 }
289 }
290 }
291
292 public Map getSpring()
293 {
294 return spring;
295 }
296
297 public void setSpring( Map spring )
298 {
299 this.spring = spring;
300 }
301
302 public Map getHibernate()
303 {
304 return hibernate;
305 }
306
307 public void setHibernate( Map hibernate )
308 {
309 this.hibernate = hibernate;
310 }
311
312 public Map getStruts()
313 {
314 return struts;
315 }
316
317 public void setStruts( Map struts )
318 {
319 this.struts = struts;
320 }
321
322 }