diff --git a/.attach_pid33921 b/.attach_pid33921 new file mode 100644 index 0000000..e69de29 diff --git a/.attach_pid34172 b/.attach_pid34172 new file mode 100644 index 0000000..e69de29 diff --git a/src/main/java/com/cmeza/sdgenerator/SDGeneratorManager.java b/src/main/java/com/cmeza/sdgenerator/SDGeneratorManager.java index 4ca72d6..aef8210 100644 --- a/src/main/java/com/cmeza/sdgenerator/SDGeneratorManager.java +++ b/src/main/java/com/cmeza/sdgenerator/SDGeneratorManager.java @@ -7,27 +7,19 @@ import com.cmeza.sdgenerator.util.GeneratorUtils; import com.cmeza.sdgenerator.util.SDLogger; import com.google.common.collect.Iterables; -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionRegistry; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; import org.springframework.context.EnvironmentAware; import org.springframework.context.ResourceLoaderAware; import org.springframework.context.annotation.ImportBeanDefinitionRegistrar; import org.springframework.core.annotation.AnnotationAttributes; import org.springframework.core.env.Environment; -import org.springframework.core.io.ClassPathResource; -import org.springframework.core.io.FileSystemResource; import org.springframework.core.io.ResourceLoader; import org.springframework.core.type.AnnotationMetadata; import org.springframework.util.Assert; import java.util.Collection; import java.util.LinkedHashSet; -import java.util.Map; import java.util.Set; /** @@ -73,10 +65,6 @@ public void registerBeanDefinitions(AnnotationMetadata annotationMetadata, BeanD Collection candidates = configurationSource.getCandidates(resourceLoader); String absolutePath = GeneratorUtils.getAbsolutePath(); - if (absolutePath == null) { - SDLogger.addError("Could not define the absolute path!"); - return; - } if (!repositoryPackage.isEmpty()){ diff --git a/src/main/java/com/cmeza/sdgenerator/plugin/CommonsMojo.java b/src/main/java/com/cmeza/sdgenerator/plugin/CommonsMojo.java index fb930c1..fddb318 100644 --- a/src/main/java/com/cmeza/sdgenerator/plugin/CommonsMojo.java +++ b/src/main/java/com/cmeza/sdgenerator/plugin/CommonsMojo.java @@ -1,8 +1,9 @@ package com.cmeza.sdgenerator.plugin; -import com.cmeza.sdgenerator.util.*; +import com.cmeza.sdgenerator.util.Constants; +import com.cmeza.sdgenerator.util.SDLogger; +import com.cmeza.sdgenerator.util.SDMojoException; import org.apache.maven.plugin.AbstractMojo; -import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.project.MavenProject; @@ -44,7 +45,10 @@ public abstract class CommonsMojo extends AbstractMojo { @Parameter(name = Constants.EXTENDS) protected String[] additionalExtends; - @Component + @Parameter(name = Constants.GENERATE_DIRECTORY, defaultValue = "/${project.build.directory}/generated-sources/") + protected String generateDirectory; + + @Parameter(defaultValue = "${project}", readonly = true) protected MavenProject project; protected Set additionalExtendsList = new LinkedHashSet<>(); diff --git a/src/main/java/com/cmeza/sdgenerator/plugin/SDAllMojo.java b/src/main/java/com/cmeza/sdgenerator/plugin/SDAllMojo.java index cc27cdb..08c47a9 100644 --- a/src/main/java/com/cmeza/sdgenerator/plugin/SDAllMojo.java +++ b/src/main/java/com/cmeza/sdgenerator/plugin/SDAllMojo.java @@ -1,6 +1,9 @@ package com.cmeza.sdgenerator.plugin; -import com.cmeza.sdgenerator.util.*; +import com.cmeza.sdgenerator.util.Constants; +import com.cmeza.sdgenerator.util.GeneratorUtils; +import com.cmeza.sdgenerator.util.SDLogger; +import com.cmeza.sdgenerator.util.SDMojoException; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.plugins.annotations.Execute; @@ -25,6 +28,7 @@ public void execute() throws MojoExecutionException, MojoFailureException { this.validateField(Constants.EXTENDS); try { + GeneratorUtils.setBaseDir(generateDirectory); SDRepositoryMojo sdRepositoryMojo = new SDRepositoryMojo(); sdRepositoryMojo.executeInternalMojo(project, repositoryPostfix, overwrite, repositoryPackage, entityPackage, onlyAnnotations, additionalExtendsList, withComments); diff --git a/src/main/java/com/cmeza/sdgenerator/plugin/SDManagerMojo.java b/src/main/java/com/cmeza/sdgenerator/plugin/SDManagerMojo.java index eb0590b..759b31f 100644 --- a/src/main/java/com/cmeza/sdgenerator/plugin/SDManagerMojo.java +++ b/src/main/java/com/cmeza/sdgenerator/plugin/SDManagerMojo.java @@ -5,7 +5,9 @@ import com.cmeza.sdgenerator.util.*; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; -import org.apache.maven.plugins.annotations.*; +import org.apache.maven.plugins.annotations.Execute; +import org.apache.maven.plugins.annotations.LifecyclePhase; +import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.project.MavenProject; /** @@ -26,6 +28,7 @@ public void execute() throws MojoExecutionException, MojoFailureException { this.validateField(Constants.REPOSITORY_PACKAGE); try { + GeneratorUtils.setBaseDir(generateDirectory); this.executeInternalMojo(project, managerPostfix, repositoryPackage, repositoryPostfix, overwrite, managerPackage, entityPackage, onlyAnnotations, lombokAnnotations, withComments); SDLogger.printGeneratedTables(true); diff --git a/src/main/java/com/cmeza/sdgenerator/plugin/SDRepositoryMojo.java b/src/main/java/com/cmeza/sdgenerator/plugin/SDRepositoryMojo.java index 45a6316..af4c318 100644 --- a/src/main/java/com/cmeza/sdgenerator/plugin/SDRepositoryMojo.java +++ b/src/main/java/com/cmeza/sdgenerator/plugin/SDRepositoryMojo.java @@ -5,7 +5,9 @@ import com.cmeza.sdgenerator.util.*; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; -import org.apache.maven.plugins.annotations.*; +import org.apache.maven.plugins.annotations.Execute; +import org.apache.maven.plugins.annotations.LifecyclePhase; +import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.project.MavenProject; import java.util.Set; @@ -29,6 +31,7 @@ public void execute() throws MojoExecutionException, MojoFailureException { this.validateField(Constants.EXTENDS); try { + GeneratorUtils.setBaseDir(generateDirectory); this.executeInternalMojo(project, repositoryPostfix, overwrite, repositoryPackage, entityPackage, onlyAnnotations, additionalExtendsList, withComments); SDLogger.printGeneratedTables(true); } catch (Exception e) { diff --git a/src/main/java/com/cmeza/sdgenerator/support/ManagerTemplateSupport.java b/src/main/java/com/cmeza/sdgenerator/support/ManagerTemplateSupport.java index 4730ea4..97b144a 100644 --- a/src/main/java/com/cmeza/sdgenerator/support/ManagerTemplateSupport.java +++ b/src/main/java/com/cmeza/sdgenerator/support/ManagerTemplateSupport.java @@ -40,7 +40,7 @@ public ManagerTemplateSupport(CustomResourceLoader customResourceLoader, boolean } private void findFilterRepositories() { - String repositoryPath = GeneratorUtils.getAbsolutePath() + repositoryPackage.replace(".", "/"); + String repositoryPath = GeneratorUtils.getAbsolutePath(repositoryPackage); File[] repositoryFiles = GeneratorUtils.getFileList(repositoryPath, repositoryPostfix); this.setIncludeFilter(Arrays.asList(repositoryFiles)); this.setIncludeFilterPostfix(repositoryPostfix); diff --git a/src/main/java/com/cmeza/sdgenerator/util/Constants.java b/src/main/java/com/cmeza/sdgenerator/util/Constants.java index a084056..e42076b 100644 --- a/src/main/java/com/cmeza/sdgenerator/util/Constants.java +++ b/src/main/java/com/cmeza/sdgenerator/util/Constants.java @@ -15,6 +15,7 @@ public class Constants { public static final String EXTENDS = "additional-extends"; public static final String LOMBOK_ANOTATIONS = "lombok-annotations"; public static final String WITH_COMMENTS = "with-comments"; + public static final String GENERATE_DIRECTORY = "generate-directory"; public static final String PROJECT_NAME = "Spring Data Generator"; diff --git a/src/main/java/com/cmeza/sdgenerator/util/GeneratorUtils.java b/src/main/java/com/cmeza/sdgenerator/util/GeneratorUtils.java index 1a69a2e..ab9a68f 100644 --- a/src/main/java/com/cmeza/sdgenerator/util/GeneratorUtils.java +++ b/src/main/java/com/cmeza/sdgenerator/util/GeneratorUtils.java @@ -16,20 +16,14 @@ public class GeneratorUtils { private GeneratorUtils() { } + private static String baseDir; + public static String getAbsolutePath(){ - try { - return new File(".").getCanonicalPath() + "/src/main/java/"; - } catch (IOException e) { - return null; - } + return getBaseDir(); } public static String getAbsolutePath(String strPackage){ - String absolute = getAbsolutePath(); - if (absolute == null) { - return null; - } - return absolute + strPackage.replace(".", "/"); + return getAbsolutePath() + strPackage.replace(".", "/"); } public static boolean verifyPackage(String stringPath){ @@ -82,4 +76,16 @@ private static void findFiles(String directoryName, List files, String pre } } } + + public static String getBaseDir() { + return baseDir; + } + + public static void setBaseDir(String baseDir) { + if (baseDir.endsWith("/")) { + GeneratorUtils.baseDir = baseDir; + } else { + GeneratorUtils.baseDir = baseDir + "/"; + } + } }