]> git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc/src/main/java/org/argeo/slc/ant/SlcProjectHelper.java
f0afc92efd7788bb79a9faa807377b9234a8d49b
[gpl/argeo-slc.git] / org.argeo.slc / src / main / java / org / argeo / slc / ant / SlcProjectHelper.java
1 package org.argeo.slc.ant;
2
3 import org.springframework.context.ApplicationContext;
4 import org.springframework.context.support.FileSystemXmlApplicationContext;
5
6 import org.apache.tools.ant.BuildException;
7 import org.apache.tools.ant.Project;
8 import org.apache.tools.ant.helper.ProjectHelperImpl;
9
10 import org.argeo.slc.core.structure.StructurePath;
11 import org.argeo.slc.core.structure.tree.TreeSElement;
12 import org.argeo.slc.core.structure.tree.TreeSPath;
13 import org.argeo.slc.core.structure.tree.TreeSRegistry;
14
15 public class SlcProjectHelper extends ProjectHelperImpl {
16 public static String PROP_APPLICATION_CONTEXT = "org.argeo.slc.slcRootContext";
17 public static String REF_ROOT_CONTEXT = "slcApplicationContext";
18 public static String REF_STRUCTURE_REGISTRY = "slcStructureRegistry";
19
20 @Override
21 public void parse(Project project, Object source) throws BuildException {
22 stdOut("Entered SLC project helper");
23
24 // init Spring application context
25 String acPath = System.getProperty(PROP_APPLICATION_CONTEXT,
26 "applicationContext.xml");
27 ApplicationContext context = new FileSystemXmlApplicationContext(acPath);
28 project.addReference(REF_ROOT_CONTEXT, context);
29
30 // init structure register
31 TreeSRegistry registry = new TreeSRegistry();
32 project.addReference(REF_STRUCTURE_REGISTRY, registry);
33
34 // call the underlying implementation to do the actual work
35 super.parse(project, source);
36
37 String projectDescription = project.getDescription() != null ? project
38 .getDescription() : "Root";
39 TreeSElement element = TreeSElement.createRootElelment(
40 getProjectPathName(project), projectDescription);
41 registry.register(element);
42 }
43
44 private static void stdOut(Object o) {
45 System.out.println(o);
46 }
47
48 static TreeSPath getProjectPath(Project project) {
49 return TreeSPath.createChild(null, getProjectPathName(project));
50 }
51
52 private static String getProjectPathName(Project project) {
53 String projectName = project.getName() != null ? project.getName()
54 : "project";
55 return projectName;
56 }
57 }