1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.maven.plugins.spring;
17
18 import java.util.Properties;
19
20 import org.apache.maven.project.MavenProject;
21 import org.kuali.common.util.LocationUtils;
22 import org.kuali.common.util.PropertyUtils;
23 import org.kuali.common.util.property.GlobalPropertiesMode;
24 import org.kuali.common.util.service.SpringService;
25
26 public class MojoUtils {
27
28 public static SpringService getService(String serviceClassname) {
29 try {
30 Class<?> serviceClass = Class.forName(serviceClassname);
31 return (SpringService) serviceClass.newInstance();
32 } catch (ClassNotFoundException e) {
33 throw new IllegalStateException("Unexpected error", e);
34 } catch (IllegalAccessException e) {
35 throw new IllegalStateException("Unexpected error", e);
36 } catch (InstantiationException e) {
37 throw new IllegalStateException("Unexpected error", e);
38 }
39 }
40
41 public static Properties getMavenProperties(MavenProject project, Properties mojoProperties) {
42
43 Properties internal = MojoUtils.getInternalProperties(project);
44
45
46
47
48 Properties properties = PropertyUtils.combine(project.getProperties(), mojoProperties, internal);
49
50 PropertyUtils.overrideWithGlobalValues(properties, GlobalPropertiesMode.BOTH);
51
52 return properties;
53 }
54
55 public static Properties getInternalProperties(MavenProject project) {
56 Properties properties = new Properties();
57 properties.setProperty("project.id", project.getId());
58 properties.setProperty("project.groupId", project.getGroupId());
59 properties.setProperty("project.artifactId", project.getArtifactId());
60 properties.setProperty("project.version", project.getVersion());
61 properties.setProperty("project.packaging", project.getPackaging());
62 properties.setProperty("project.name", project.getName());
63 properties.setProperty("project.description", project.getDescription());
64 properties.setProperty("project.inceptionYear", project.getInceptionYear());
65 properties.setProperty("project.ciManagement.system", project.getCiManagement().getSystem());
66 properties.setProperty("project.ciManagement.url", project.getCiManagement().getUrl());
67 properties.setProperty("project.issueManagement.system", project.getIssueManagement().getSystem());
68 properties.setProperty("project.issueManagement.url", project.getIssueManagement().getUrl());
69 properties.setProperty("project.basedir", LocationUtils.getCanonicalPath(project.getBasedir()));
70 properties.setProperty("project.build.directory", project.getBuild().getDirectory());
71 properties.setProperty("project.build.outputDirectory", project.getBuild().getOutputDirectory());
72 properties.setProperty("project.build.testOutputDirectory", project.getBuild().getTestOutputDirectory());
73 properties.setProperty("project.build.sourceDirectory", project.getBuild().getSourceDirectory());
74 properties.setProperty("project.build.scriptSourceDirectory", project.getBuild().getScriptSourceDirectory());
75 properties.setProperty("project.build.testSourceDirectory", project.getBuild().getTestSourceDirectory());
76 return properties;
77 }
78 }