Search in sources :

Example 1 with RichPropertiesReader

use of com.codename1.util.RichPropertiesReader in project CodenameOne by codenameone.

the class GenerateAppProjectMojo method injectDependencies.

private void injectDependencies() throws MojoExecutionException {
    if (!generateAppProjectConfigFile().exists()) {
        return;
    }
    try {
        Properties props = new Properties();
        new RichPropertiesReader().load(generateAppProjectConfigFile(), props);
        String dependencies = props.getProperty("dependencies");
        String parentDependencies = props.getProperty("parentDependencies");
        if (targetCommonPomXml().exists()) {
            Model model;
            ModelETL modelETL;
            /*
                try (FileInputStream fis = new FileInputStream(targetCommonPomXml())){
                    MavenXpp3Reader reader = new MavenXpp3Reader();
                    model = reader.read(fis);

                } catch (Exception ex) {
                    throw new MojoExecutionException("Failed to read pom.xml file from "+targetCommonPomXml(), ex);
                }
                */
            try {
                ModelETLRequest modelETLRequest = new ModelETLRequest();
                modelETL = new JDomModelETLFactory().newInstance(modelETLRequest);
                modelETL.extract(targetCommonPomXml());
                model = modelETL.getModel();
            } catch (Exception ex) {
                throw new MojoExecutionException("Failed to read pom.xml file from " + targetCommonPomXml(), ex);
            }
            if (dependencies != null) {
                String dummyModelStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n" + "    <modelVersion>4.0.0</modelVersion>\n" + "    <groupId>link.sharpe</groupId>\n" + "    <artifactId>mavenproject1</artifactId>\n" + "    <version>1.0-SNAPSHOT</version>\n" + "    <dependencies>\n" + dependencies + "    </dependencies>\n" + "</project>";
                Model dummyModel;
                try {
                    MavenXpp3Reader reader = new MavenXpp3Reader();
                    dummyModel = reader.read(new CharArrayReader(dummyModelStr.toCharArray()));
                } catch (Exception ex) {
                    throw new MojoExecutionException("Failed to read dummy pom.xml file while injecting dependencies into " + targetCommonPomXml(), ex);
                }
                for (Dependency dep : dummyModel.getDependencies()) {
                    model.addDependency(dep);
                }
                /*
                    MavenXpp3Writer writer = new MavenXpp3Writer();
                    try (FileOutputStream fos = new FileOutputStream(targetCommonPomXml())) {
                        writer.write(fos, model);
                    }
                    */
                modelETL.load(targetCommonPomXml());
            }
        }
        if (targetRootPomXml().exists()) {
            Model model;
            ModelETL modelETL;
            /*
                try (FileInputStream fis = new FileInputStream(targetRootPomXml())){
                    MavenXpp3Reader reader = new MavenXpp3Reader();
                    model = reader.read(fis);

                } catch (Exception ex) {
                    throw new MojoExecutionException("Failed to read pom.xml file from "+targetRootPomXml(), ex);
                }

                 */
            try {
                ModelETLRequest modelETLRequest = new ModelETLRequest();
                modelETL = new JDomModelETLFactory().newInstance(modelETLRequest);
                modelETL.extract(targetRootPomXml());
                model = modelETL.getModel();
            } catch (Exception ex) {
                throw new MojoExecutionException("Failed to read pom.xml file from " + targetRootPomXml(), ex);
            }
            if (parentDependencies != null) {
                // getLog().info("Parent dependencies: "+parentDependencies);
                String dummyModelStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n" + "    <modelVersion>4.0.0</modelVersion>\n" + "    <groupId>link.sharpe</groupId>\n" + "    <artifactId>mavenproject1</artifactId>\n" + "    <version>1.0-SNAPSHOT</version>\n" + "    <dependencies>\n" + parentDependencies + "    </dependencies>\n" + "</project>";
                Model dummyModel;
                try {
                    MavenXpp3Reader reader = new MavenXpp3Reader();
                    dummyModel = reader.read(new CharArrayReader(dummyModelStr.toCharArray()));
                } catch (Exception ex) {
                    throw new MojoExecutionException("Failed to read dummy pom.xml file while injecting dependencies into " + targetRootPomXml(), ex);
                }
                for (Dependency dep : dummyModel.getDependencies()) {
                    model.addDependency(dep);
                }
                /*
                    MavenXpp3Writer writer = new MavenXpp3Writer();
                    try (FileOutputStream fos = new FileOutputStream(targetRootPomXml())) {
                        writer.write(fos, model);
                    }

                     */
                modelETL.load(targetRootPomXml());
            }
        }
    } catch (IOException ex) {
        throw new MojoExecutionException("Failed to process configuration for generateAppProjectConfigFile " + generateAppProjectConfigFile(), ex);
    } catch (RichPropertiesReader.ConfigSyntaxException ex) {
        throw new MojoExecutionException("Failed to process configuration for generateAppProjectConfigFile " + generateAppProjectConfigFile(), ex);
    }
}
Also used : ModelETL(org.apache.maven.model.jdom.etl.ModelETL) JDomModelETL(org.apache.maven.model.jdom.etl.JDomModelETL) MojoExecutionException(org.apache.maven.plugin.MojoExecutionException) MavenXpp3Reader(org.apache.maven.model.io.xpp3.MavenXpp3Reader) Dependency(org.apache.maven.model.Dependency) SortedProperties(com.codename1.ant.SortedProperties) MavenExecutionException(org.apache.maven.MavenExecutionException) MojoExecutionException(org.apache.maven.plugin.MojoExecutionException) MojoFailureException(org.apache.maven.plugin.MojoFailureException) ModelETLRequest(org.apache.maven.model.jdom.etl.ModelETLRequest) RichPropertiesReader(com.codename1.util.RichPropertiesReader) JDomModelETLFactory(org.apache.maven.model.jdom.etl.JDomModelETLFactory) Model(org.apache.maven.model.Model)

Aggregations

SortedProperties (com.codename1.ant.SortedProperties)1 RichPropertiesReader (com.codename1.util.RichPropertiesReader)1 MavenExecutionException (org.apache.maven.MavenExecutionException)1 Dependency (org.apache.maven.model.Dependency)1 Model (org.apache.maven.model.Model)1 MavenXpp3Reader (org.apache.maven.model.io.xpp3.MavenXpp3Reader)1 JDomModelETL (org.apache.maven.model.jdom.etl.JDomModelETL)1 JDomModelETLFactory (org.apache.maven.model.jdom.etl.JDomModelETLFactory)1 ModelETL (org.apache.maven.model.jdom.etl.ModelETL)1 ModelETLRequest (org.apache.maven.model.jdom.etl.ModelETLRequest)1 MojoExecutionException (org.apache.maven.plugin.MojoExecutionException)1 MojoFailureException (org.apache.maven.plugin.MojoFailureException)1