import org.apache.tools.ant.Project;\r
import org.apache.tools.ant.helper.ProjectHelperImpl;\r
\r
+import org.argeo.slc.core.UnsupportedException;\r
import org.argeo.slc.core.structure.DefaultSRegistry;\r
import org.argeo.slc.core.structure.SimpleSElement;\r
import org.argeo.slc.core.structure.StructureRegistry;\r
\r
@Override\r
public void parse(Project project, Object source) throws BuildException {\r
+ if (!(source instanceof File)) {\r
+ throw new UnsupportedException("Ant file", source);\r
+ }\r
+ File sourceFile = (File)source;\r
\r
// initialize config\r
SlcAntConfig slcAntConfig = new SlcAntConfig();\r
- slcAntConfig.initProject(project);\r
+\r
+ System.out.println("Base dir prop2: " + project.getProperty("basedir"));\r
+ // In order to avoid base dire override when running in Maven\r
+ project.setProperty("basedir", sourceFile.getParentFile().getAbsolutePath());\r
+ if (!slcAntConfig.initProject(project)) {\r
+ // not SLC compatible, do normal Ant\r
+ super.parse(project, source);\r
+ return;\r
+ }\r
\r
if (log == null) {\r
// log4j is initialized only now\r
log = LogFactory.getLog(SlcProjectHelper.class);\r
}\r
log.debug("SLC properties are set, starting initialization..");\r
+ log.debug("Base dir1: " + project.getBaseDir().getAbsoluteFile());\r
+ log.debug("Base dir prop1: " + project.getProperty("basedir"));\r
\r
// init Spring application context\r
initSpringContext(project);\r
+ log.debug("Base dir2: " + project.getBaseDir().getAbsoluteFile());\r
\r
// init structure registry\r
DefaultSRegistry registry = new DefaultSRegistry();\r
project.addReference(REF_STRUCTURE_REGISTRY, registry);\r
\r
+ log.debug("Base dir prop2: " + project.getProperty("basedir"));\r
+ // in order to prevent pb w/ basedir setting:\r
+ source = ((File) source).getAbsoluteFile();\r
// call the underlying implementation to do the actual work\r
super.parse(project, source);\r
\r
+ log.debug("Base dir3: " + project.getBaseDir().getAbsoluteFile());\r
// create structure root\r
registerProjectAndParents(project, slcAntConfig);\r
\r
.getUserProperty(SlcAntConfig.ROOT_DIR_PROPERTY))\r
.getAbsoluteFile();\r
File baseDir = project.getBaseDir().getAbsoluteFile();\r
-\r
List<File> dirs = new Vector<File>();\r
File currentDir = baseDir;\r
do {\r
final String description;\r
if (i == 0) {// project itself\r
description = project.getDescription() != null ? project\r
- .getDescription() : "";\r
+ .getDescription() : "[no desc]";\r
} else {\r
description = slcAntConfig.getDescriptionForDir(dir);\r
}\r