]> git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc/src/main/java/org/argeo/slc/ant/SlcProjectHelper.java
79160073b66ae6d79e919dbacfa34a30ecdd1297
[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.tree.TreeSElement;
11 import org.argeo.slc.core.structure.tree.TreeSPath;
12 import org.argeo.slc.core.structure.tree.TreeSRegistry;
13
14 public class SlcProjectHelper extends ProjectHelperImpl {
15 public static String PROP_APPLICATION_CONTEXT = "org.argeo.slc.slcRootContext";
16 //public static String PROP_REGISTRY_MODE = "org.argeo.slc.slcRegistryMode";
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 if it does not exist
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()
39 : "Root";
40 TreeSElement element = TreeSElement.createRootElelment(
41 getProjectPathName(project), projectDescription);
42 registry.register(element);
43 }
44
45 private static void stdOut(Object o) {
46 System.out.println(o);
47 }
48
49 static TreeSPath getProjectPath(Project project) {
50 return TreeSPath.createChild(null, getProjectPathName(project));
51 }
52
53 private static String getProjectPathName(Project project) {
54 String projectName = project.getName() != null ? project.getName()
55 : "project";
56 return projectName;
57 }
58 }