1 package org
.argeo
.slc
.ant
;
3 import org
.springframework
.context
.ApplicationContext
;
4 import org
.springframework
.context
.support
.FileSystemXmlApplicationContext
;
6 import org
.apache
.tools
.ant
.BuildException
;
7 import org
.apache
.tools
.ant
.Project
;
8 import org
.apache
.tools
.ant
.helper
.ProjectHelperImpl
;
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
;
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";
21 public void parse(Project project
, Object source
) throws BuildException
{
22 stdOut("Entered SLC project helper");
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
);
30 // init structure register if it does not exist
31 TreeSRegistry registry
= new TreeSRegistry();
32 project
.addReference(REF_STRUCTURE_REGISTRY
, registry
);
34 // call the underlying implementation to do the actual work
35 super.parse(project
, source
);
37 String projectDescription
= project
.getDescription() != null ? project
40 TreeSElement element
= TreeSElement
.createRootElelment(
41 getProjectPathName(project
), projectDescription
);
42 registry
.register(element
);
45 private static void stdOut(Object o
) {
46 System
.out
.println(o
);
49 static TreeSPath
getProjectPath(Project project
) {
50 return TreeSPath
.createChild(null, getProjectPathName(project
));
53 private static String
getProjectPathName(Project project
) {
54 String projectName
= project
.getName() != null ? project
.getName()