]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc/src/main/java/org/argeo/slc/ant/SlcProjectHelper.java
Manage with Maven
[gpl/argeo-slc.git] / org.argeo.slc / src / main / java / org / argeo / slc / ant / SlcProjectHelper.java
index b0f9fabb013d78c9c298f53167079fe31265377b..0b2698d2615eb59cc5f2a116ad65d1dacd6e15b0 100644 (file)
@@ -17,6 +17,7 @@ import org.apache.tools.ant.BuildException;
 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
@@ -43,27 +44,46 @@ public class SlcProjectHelper extends ProjectHelperImpl {
 \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
@@ -80,7 +100,6 @@ public class SlcProjectHelper extends ProjectHelperImpl {
                                .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
@@ -99,7 +118,7 @@ public class SlcProjectHelper extends ProjectHelperImpl {
                        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