Example usage for org.apache.maven.project MavenProject getGroupId

List of usage examples for org.apache.maven.project MavenProject getGroupId

Introduction

In this page you can find the example usage for org.apache.maven.project MavenProject getGroupId.

Prototype

public String getGroupId() 

Source Link

Usage

From source file:npanday.assembler.impl.DefaultAssemblyInfoMarshaller.java

License:Apache License

/**
 * @see AssemblyInfoMarshaller#marshal(npanday.assembler.AssemblyInfo, org.apache.maven.project.MavenProject,
 *      java.io.OutputStream)//w ww.j a va2  s . co  m
 */
public void marshal(AssemblyInfo assemblyInfo, MavenProject mavenProject, OutputStream outputStream)
        throws AssemblyInfoException, IOException {
    StringBuffer sb = new StringBuffer();
    sb.append("using System.Reflection;\r\n").append("using System.Runtime.CompilerServices;\r\n");
    appendEntry(sb, "Description", assemblyInfo.getDescription());
    appendEntry(sb, "Title", assemblyInfo.getTitle());
    appendEntry(sb, "Company", assemblyInfo.getCompany());
    appendEntry(sb, "Product", assemblyInfo.getProduct());
    if (assemblyInfo.getCopyright() != null) {
        appendEntry(sb, "Copyright", assemblyInfo.getCopyright().replace("\"", "\\"));
    }
    appendEntry(sb, "Trademark", assemblyInfo.getTrademark());
    appendEntry(sb, "Culture", assemblyInfo.getCulture());
    appendEntry(sb, "Version", assemblyInfo.getVersion());
    appendEntry(sb, "InformationalVersion", assemblyInfo.getInformationalVersion());
    appendEntry(sb, "Configuration", assemblyInfo.getConfiguration());
    appendEntry(sb, "KeyName", assemblyInfo.getKeyName());

    if (assemblyInfo.getKeyFile() != null) {
        appendEntry(sb, "KeyFile", assemblyInfo.getKeyFile().getAbsolutePath().replace("\\", "\\\\"));
    }

    TargetFramework targetFramework = assemblyInfo.getTargetFramework();
    if (targetFramework != null) {
        String frameworkName = targetFramework.getFrameworkName();
        String frameworkDisplayName = targetFramework.getFrameworkDisplayName();
        sb.append("[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute").append("(\"")
                .append(frameworkName).append("\"");
        if (frameworkDisplayName != null) {
            sb.append(",FrameworkDisplayName=\"").append(frameworkDisplayName).append("\"");
        }
        sb.append(")]").append("\r\n");
    }

    boolean wroteCustomStringAttribute = false;
    for (Entry<String, String> e : assemblyInfo.getCustomStringAttributes().entrySet()) {
        if (StringUtils.isEmpty(e.getValue()))
            continue;

        sb.append(createCustomStringEntry(e.getKey(), e.getValue()));
        wroteCustomStringAttribute = true;
    }

    if (wroteCustomStringAttribute) {
        final String customClass = "\n" + //
                "[System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple = true)]\n" + //
                "class CustomStringAttribute : System.Attribute {\n" + //
                "  public CustomStringAttribute(string name, string value) {\n" + //
                "  }\n" + // 
                "}\n"; //
        sb.append(customClass);
    }

    FileOutputStream man = null;
    try {
        if (outputStream == null) {
            String src = mavenProject.getBuild().getDirectory() + "/build-sources";
            String groupIdAsDir = mavenProject.getGroupId().replace(".", File.separator);
            File file = new File(src + "/META-INF/" + groupIdAsDir);
            file.mkdirs();
            man = new FileOutputStream(src + "/META-INF/" + groupIdAsDir + File.separator + "AssemblyInfo."
                    + plugin.getExtension());
            outputStream = man;
        }
        outputStream.write(sb.toString().getBytes());
    } catch (IOException e) {
        throw new AssemblyInfoException("NPANDAY-022-000: Failed to generate AssemblyInfo", e);
    } finally {
        if (man != null) {
            man.close();
        }
    }
}

From source file:npanday.assembler.impl.JavaAssemblyInfoMarshaller.java

License:Apache License

/**
 * @see AssemblyInfoMarshaller#marshal(npanday.assembler.AssemblyInfo, org.apache.maven.project.MavenProject,
 *      java.io.OutputStream)//  ww w.  j ava 2  s  . c o m
 */
public void marshal(AssemblyInfo assemblyInfo, MavenProject mavenProject, OutputStream outputStream)
        throws IOException {
    String src = mavenProject.getBasedir() + "/target/build-sources";
    StringBuffer sb = new StringBuffer();
    sb.append("import System.Reflection;\r\n").append("import System.Runtime.CompilerServices.*;r\n")
            .append(createEntry("Description", assemblyInfo.getDescription()))
            .append(createEntry("Title", assemblyInfo.getTitle()))
            .append(createEntry("Company", assemblyInfo.getCompany()))
            .append(createEntry("Product", assemblyInfo.getProduct()))
            .append(createEntry("Copyright", assemblyInfo.getCopyright().replace("\"", "\\")))
            .append(createEntry("Trademark", assemblyInfo.getTrademark()))
            .append(createEntry("Culture", assemblyInfo.getCulture()))
            .append(createEntry("Version", assemblyInfo.getVersion()))
            .append(createEntry("Configuration", assemblyInfo.getConfiguration()));
    FileOutputStream man = null;
    try {
        String groupIdAsDir = mavenProject.getGroupId().replace(".", File.separator);
        File file = new File(src + "/META-INF/" + groupIdAsDir);
        file.mkdirs();
        man = new FileOutputStream(
                src + "/META-INF/" + groupIdAsDir + File.separator + "AssemblyInfo." + plugin.getExtension());
        man.write(sb.toString().getBytes());
    } catch (IOException e) {
        throw new IOException();
    } finally {
        if (man != null) {
            man.close();
        }
    }
}

From source file:npanday.assembler.impl.VBAssemblyInfoMarshaller.java

License:Apache License

/**
 * @see AssemblyInfoMarshaller#marshal(npanday.assembler.AssemblyInfo, org.apache.maven.project.MavenProject,
 *      java.io.OutputStream)//from   w  w w  . j a v  a  2 s  .c  om
 */
public void marshal(AssemblyInfo assemblyInfo, MavenProject mavenProject, OutputStream outputStream)
        throws IOException {
    String src = mavenProject.getBasedir() + "/target/build-sources";
    StringBuffer sb = new StringBuffer();
    sb.append("Imports System.Reflection\r\n").append("Imports System.Runtime.InteropServices\r\n")
            .append(createEntry("Description", assemblyInfo.getDescription()))
            .append(createEntry("Title", assemblyInfo.getTitle()))
            .append(createEntry("Company", assemblyInfo.getCompany()))
            .append(createEntry("Product", assemblyInfo.getProduct()))
            .append(createEntry("Copyright", assemblyInfo.getCopyright().replace("\"", "\\")))
            .append(createEntry("Trademark", assemblyInfo.getTrademark()))
            .append(createEntry("Culture", assemblyInfo.getCulture()))
            .append(createEntry("Version", assemblyInfo.getVersion()));
    //.append(createEntry("Configuration", assemblyInfo.getConfiguration()));
    FileOutputStream man = null;
    try {
        String groupIdAsDir = mavenProject.getGroupId().replace(".", File.separator);
        File file = new File(src + "/META-INF/" + groupIdAsDir);
        file.mkdirs();
        man = new FileOutputStream(
                src + "/META-INF/" + groupIdAsDir + File.separator + "AssemblyInfo." + plugin.getExtension());
        man.write(sb.toString().getBytes());
    } catch (IOException e) {
        throw new IOException();
    } finally {
        if (man != null) {
            man.close();
        }
    }
}

From source file:NPanday.Plugin.Msbuild.MsbuildMojo.java

License:Apache License

private void copyDependencies(Collection<Artifact> requiredArtifacts) throws MojoExecutionException {
    Map<String, MavenProject> projects = new HashMap<String, MavenProject>();
    for (MavenProject p : reactorProjects) {
        projects.put(ArtifactUtils.versionlessKey(p.getGroupId(), p.getArtifactId()), p);
    }//  w w w .j ava  2  s.c  o  m
    getLog().info("projects = " + projects.keySet());

    for (Object artifact : requiredArtifacts) {
        Artifact a = (Artifact) artifact;

        File targetDir;
        String vKey = ArtifactUtils.versionlessKey(a);
        if (!projects.containsKey(vKey)) {
            String path = a.getGroupId() + "/" + a.getArtifactId() + "-" + a.getBaseVersion();
            targetDir = new File(referencesDirectory, path);
        } else {
            // Likely a project reference in MSBuild.
            // If the other project was not built with MSBuild, make sure the artifact is present where it will look for it
            // Note: deliberately limited for now - will only work with reactor projects and doesn't test what are references and what are not
            File binDir = new File(projects.get(vKey).getBasedir(), "bin");
            targetDir = new File(binDir, configuration);
        }
        File targetFile = new File(targetDir, a.getArtifactId() + "." + a.getArtifactHandler().getExtension());

        getLog().info("Copying reference " + vKey + " to " + targetFile);
        if (!targetFile.exists()) {
            targetFile.getParentFile().mkdirs();

            try {
                FileUtils.copyFile(a.getFile(), targetFile);
            } catch (IOException e) {
                throw new MojoExecutionException(
                        "Error copying reference from the local repository to .references: " + e.getMessage(),
                        e);
            }
        }
    }
}

From source file:npanday.plugin.resolver.CopyDependenciesMojo.java

License:Apache License

public void execute() throws MojoExecutionException, MojoFailureException {
    String skipReason = "";
    if (!skip) {// w w w .j a  va2 s  . c o  m
        ArtifactType knownType = ArtifactType.getArtifactTypeForPackagingName(project.getPackaging());

        if (knownType.equals(ArtifactType.NULL)) {
            skip = true;
            skipReason = ", because the current project (type:" + project.getPackaging()
                    + ") is not built with NPanday";
        }
    }

    if (skip) {
        getLog().info("NPANDAY-158-001: Mojo for copying dependencies was intentionally skipped" + skipReason);
        return;
    }

    SettingsUtil.applyCustomSettings(getLog(), repositoryRegistry, settingsPath);

    AndArtifactFilter includeFilter = new AndArtifactFilter();

    OrArtifactFilter typeIncludes = new OrArtifactFilter();
    typeIncludes.add(new DotnetExecutableArtifactFilter());
    typeIncludes.add(new DotnetLibraryArtifactFilter());

    if (includePdbs) {
        typeIncludes.add(new DotnetSymbolsArtifactFilter());
    }

    includeFilter.add(typeIncludes);

    if (!Strings.isNullOrEmpty(includeScope)) {
        includeFilter.add(new ScopeArtifactFilter(includeScope));
    }

    Set<Artifact> artifacts;
    try {
        artifacts = dependencyResolution.require(project, LocalRepositoryUtil.create(localRepository),
                includeFilter);
    } catch (ArtifactResolutionException e) {
        throw new MojoExecutionException(
                "NPANDAY-158-003: dependency resolution for scope " + includeScope + " failed!", e);
    }

    /**
     * Should be resolved, but then not copied
     */
    if (!Strings.isNullOrEmpty(excludeScope)) {
        includeFilter.add(new InversionArtifactFilter(new ScopeArtifactFilter(excludeScope)));
    }

    if (skipReactorArtifacts) {
        getLog().info("NPANDAY-158-008: " + reactorProjects);

        includeFilter.add(new InversionArtifactFilter(new ArtifactFilter() {
            public boolean include(Artifact artifact) {
                for (MavenProject project : reactorProjects) {
                    // we don't care about the type and the classifier here
                    if (project.getGroupId().equals(artifact.getGroupId())
                            && project.getArtifactId().equals(artifact.getArtifactId())
                            && project.getVersion().equals(artifact.getVersion())) {
                        return true;
                    }
                }
                return false;
            }
        }));
    }

    for (Artifact dependency : artifacts) {
        if (!includeFilter.include(dependency)) {
            getLog().debug("NPANDAY-158-006: dependency " + dependency + " was excluded");

            continue;
        }

        try {
            File targetFile = new File(outputDirectory, PathUtil.getPlainArtifactFileName(dependency));
            if (!targetFile.exists() || targetFile.lastModified() != dependency.getFile().lastModified()
                    || targetFile.length() != dependency.getFile().length()) {
                getLog().info("NPANDAY-158-004: copy " + dependency.getFile() + " to " + targetFile);
                FileUtils.copyFile(dependency.getFile(), targetFile);
            } else {
                getLog().debug("NPANDAY-158-007: dependency " + dependency + " is yet up to date");
            }
        } catch (IOException ioe) {
            throw new MojoExecutionException("NPANDAY-158-005: Error copying dependency " + dependency, ioe);
        }
    }
}

From source file:npanday.plugin.resolver.ListDependenciesMojo.java

License:Apache License

public void execute() throws MojoExecutionException, MojoFailureException {
    String skipReason = "";
    if (skip) {/*from   w  ww . j av  a2s .  co  m*/
        getLog().info("NPANDAY-161-001: Mojo for listing dependencies was intentionally skipped" + skipReason);
        return;
    }

    SettingsUtil.applyCustomSettings(getLog(), repositoryRegistry, settingsPath);

    AndArtifactFilter includeFilter = new AndArtifactFilter();

    if (!Strings.isNullOrEmpty(includeScope)) {
        includeFilter.add(new ScopeArtifactFilter(includeScope));
    }

    Set<Artifact> artifacts;
    try {
        // TODO: Workarround. Somehow in the first run, PDBs wont be part of the result!
        dependencyResolution.require(project, LocalRepositoryUtil.create(localRepository), includeFilter);
        artifacts = dependencyResolution.require(project, LocalRepositoryUtil.create(localRepository),
                includeFilter);
    } catch (ArtifactResolutionException e) {
        throw new MojoExecutionException(
                "NPANDAY-161-003: dependency resolution for scope " + includeScope + " failed!", e);
    }

    /**
     * Should be resolved, but then not shown
     */
    if (!Strings.isNullOrEmpty(excludeScope)) {
        includeFilter.add(new InversionArtifactFilter(new ScopeArtifactFilter(excludeScope)));
    }

    if (skipReactorArtifacts) {
        getLog().info("NPANDAY-161-008: " + reactorProjects);

        includeFilter.add(new InversionArtifactFilter(new ArtifactFilter() {
            public boolean include(Artifact artifact) {
                for (MavenProject project : reactorProjects) {
                    // we don't care about the type and the classifier here
                    if (project.getGroupId().equals(artifact.getGroupId())
                            && project.getArtifactId().equals(artifact.getArtifactId())
                            && project.getVersion().equals(artifact.getVersion())) {
                        return true;
                    }
                }
                return false;
            }
        }));
    }

    getLog().info("The following files have been resolved:");
    for (Artifact dependency : artifacts) {
        if (!includeFilter.include(dependency)) {
            getLog().debug("NPANDAY-161-006: dependency " + dependency + " was excluded");
            continue;
        }

        getLog().info("   " + dependency.getId() + ":" + dependency.getScope() + " -> " + dependency.getFile());
    }
}

From source file:org.ajax4jsf.builder.mojo.AssemblyAttachedLibraryMojo.java

License:Open Source License

public void execute() throws MojoExecutionException, MojoFailureException {
    if (null != reactorProjects) {
        getLog().info("Reactor projects");
        for (Iterator iterator = reactorProjects.iterator(); iterator.hasNext();) {
            MavenProject reactor = (MavenProject) iterator.next();
            getLog().info("Project " + reactor.getGroupId() + ":" + reactor.getArtifactId());
        }/*from w  ww .j av a  2s.c  o m*/
    }
    //      assemblyProjects();

}

From source file:org.ajax4jsf.builder.mojo.AssemblyAttachedLibraryMojo.java

License:Open Source License

private List<MavenProject> populateReactorProjects() {
    List<MavenProject> projects = new ArrayList<MavenProject>();
    if (reactorProjects != null && reactorProjects.size() > 1) {
        Iterator reactorItr = reactorProjects.iterator();

        while (reactorItr.hasNext()) {
            MavenProject reactorProject = (MavenProject) reactorItr.next();

            if (reactorProject != null && reactorProject.getParent() != null
                    && project.getArtifactId().equals(reactorProject.getParent().getArtifactId())) {
                String name = reactorProject.getGroupId() + ":" + reactorProject.getArtifactId();
                getLog().info("Have reactor project with name " + name);
                projects.add(reactorProject);
            }//from  w  ww.j a  va2  s  .  c om
        }
    }
    return projects;
}

From source file:org.apache.camel.maven.packaging.PackageComponentMojo.java

License:Apache License

public static void prepareComponent(Log log, MavenProject project, MavenProjectHelper projectHelper,
        File componentOutDir) throws MojoExecutionException {
    File camelMetaDir = new File(componentOutDir, "META-INF/services/org/apache/camel/");

    StringBuilder buffer = new StringBuilder();
    int count = 0;
    for (Resource r : project.getBuild().getResources()) {
        File f = new File(r.getDirectory());
        if (!f.exists()) {
            f = new File(project.getBasedir(), r.getDirectory());
        }// w  w  w.  java2 s  .com
        f = new File(f, "META-INF/services/org/apache/camel/component");

        if (f.exists() && f.isDirectory()) {
            File[] files = f.listFiles();
            if (files != null) {
                for (File file : files) {
                    // skip directories as there may be a sub .resolver directory
                    if (file.isDirectory()) {
                        continue;
                    }
                    String name = file.getName();
                    if (name.charAt(0) != '.') {
                        count++;
                        if (buffer.length() > 0) {
                            buffer.append(" ");
                        }
                        buffer.append(name);
                    }
                }
            }
        }
    }

    if (count > 0) {
        Properties properties = new Properties();
        String names = buffer.toString();
        properties.put("components", names);
        properties.put("groupId", project.getGroupId());
        properties.put("artifactId", project.getArtifactId());
        properties.put("version", project.getVersion());
        properties.put("projectName", project.getName());
        if (project.getDescription() != null) {
            properties.put("projectDescription", project.getDescription());
        }

        camelMetaDir.mkdirs();
        File outFile = new File(camelMetaDir, "component.properties");
        try {
            properties.store(new FileWriter(outFile), "Generated by camel-package-maven-plugin");
            log.info("Generated " + outFile + " containing " + count + " Camel "
                    + (count > 1 ? "components: " : "component: ") + names);

            if (projectHelper != null) {
                List<String> includes = new ArrayList<String>();
                includes.add("**/component.properties");
                projectHelper.addResource(project, componentOutDir.getPath(), includes,
                        new ArrayList<String>());
                projectHelper.attachArtifact(project, "properties", "camelComponent", outFile);
            }
        } catch (IOException e) {
            throw new MojoExecutionException("Failed to write properties to " + outFile + ". Reason: " + e, e);
        }
    } else {
        log.debug(
                "No META-INF/services/org/apache/camel/component directory found. Are you sure you have created a Camel component?");
    }
}

From source file:org.apache.camel.maven.packaging.PackageDataFormatMojo.java

License:Apache License

public static void prepareDataFormat(Log log, MavenProject project, MavenProjectHelper projectHelper,
        File dataFormatOutDir, File schemaOutDir) throws MojoExecutionException {
    File camelMetaDir = new File(dataFormatOutDir, "META-INF/services/org/apache/camel/");

    Map<String, String> javaTypes = new HashMap<String, String>();

    StringBuilder buffer = new StringBuilder();
    int count = 0;
    for (Resource r : project.getBuild().getResources()) {
        File f = new File(r.getDirectory());
        if (!f.exists()) {
            f = new File(project.getBasedir(), r.getDirectory());
        }/*from  ww w.j  a va 2s  .  co m*/
        f = new File(f, "META-INF/services/org/apache/camel/dataformat");

        if (f.exists() && f.isDirectory()) {
            File[] files = f.listFiles();
            if (files != null) {
                for (File file : files) {
                    // skip directories as there may be a sub .resolver directory
                    if (file.isDirectory()) {
                        continue;
                    }
                    String name = file.getName();
                    if (name.charAt(0) != '.') {
                        count++;
                        if (buffer.length() > 0) {
                            buffer.append(" ");
                        }
                        buffer.append(name);
                    }

                    // find out the javaType for each data format
                    try {
                        String text = loadText(new FileInputStream(file));
                        Map<String, String> map = parseAsMap(text);
                        String javaType = map.get("class");
                        if (javaType != null) {
                            javaTypes.put(name, javaType);
                        }
                    } catch (IOException e) {
                        throw new MojoExecutionException("Failed to read file " + file + ". Reason: " + e, e);
                    }
                }
            }
        }
    }

    // find camel-core and grab the data format model from there, and enrich this model with information from this artifact
    // and create json schema model file for this data format
    try {
        if (count > 0) {
            Artifact camelCore = findCamelCoreArtifact(project);
            if (camelCore != null) {
                File core = camelCore.getFile();
                if (core != null) {
                    URL url = new URL("file", null, core.getAbsolutePath());
                    URLClassLoader loader = new URLClassLoader(new URL[] { url });
                    for (Map.Entry<String, String> entry : javaTypes.entrySet()) {
                        String name = entry.getKey();
                        String javaType = entry.getValue();
                        String modelName = asModelName(name);

                        InputStream is = loader.getResourceAsStream(
                                "org/apache/camel/model/dataformat/" + modelName + ".json");
                        if (is == null) {
                            // use file input stream if we build camel-core itself, and thus do not have a JAR which can be loaded by URLClassLoader
                            is = new FileInputStream(
                                    new File(core, "org/apache/camel/model/dataformat/" + modelName + ".json"));
                        }
                        String json = loadText(is);
                        if (json != null) {
                            DataFormatModel dataFormatModel = new DataFormatModel();
                            dataFormatModel.setName(name);
                            dataFormatModel.setTitle("");
                            dataFormatModel.setModelName(modelName);
                            dataFormatModel.setLabel("");
                            dataFormatModel.setDescription(project.getDescription());
                            dataFormatModel.setJavaType(javaType);
                            dataFormatModel.setGroupId(project.getGroupId());
                            dataFormatModel.setArtifactId(project.getArtifactId());
                            dataFormatModel.setVersion(project.getVersion());

                            List<Map<String, String>> rows = JSonSchemaHelper.parseJsonSchema("model", json,
                                    false);
                            for (Map<String, String> row : rows) {
                                if (row.containsKey("title")) {
                                    String title = row.get("title");
                                    dataFormatModel.setTitle(asModelTitle(name, title));
                                }
                                if (row.containsKey("label")) {
                                    dataFormatModel.setLabel(row.get("label"));
                                }
                                if (row.containsKey("javaType")) {
                                    dataFormatModel.setModelJavaType(row.get("javaType"));
                                }
                                // override description for camel-core, as otherwise its too generic
                                if ("camel-core".equals(project.getArtifactId())) {
                                    if (row.containsKey("description")) {
                                        dataFormatModel.setLabel(row.get("description"));
                                    }
                                }
                            }
                            log.debug("Model " + dataFormatModel);

                            // build json schema for the data format
                            String properties = after(json, "  \"properties\": {");
                            String schema = createParameterJsonSchema(dataFormatModel, properties);
                            log.debug("JSon schema\n" + schema);

                            // write this to the directory
                            File dir = new File(schemaOutDir,
                                    schemaSubDirectory(dataFormatModel.getJavaType()));
                            dir.mkdirs();

                            File out = new File(dir, name + ".json");
                            FileOutputStream fos = new FileOutputStream(out, false);
                            fos.write(schema.getBytes());
                            fos.close();

                            log.debug("Generated " + out + " containing JSon schema for " + name
                                    + " data format");
                        }
                    }
                }
            }
        }
    } catch (Exception e) {
        throw new MojoExecutionException("Error loading dataformat model from camel-core. Reason: " + e, e);
    }

    if (count > 0) {
        Properties properties = new Properties();
        String names = buffer.toString();
        properties.put("dataFormats", names);
        properties.put("groupId", project.getGroupId());
        properties.put("artifactId", project.getArtifactId());
        properties.put("version", project.getVersion());
        properties.put("projectName", project.getName());
        if (project.getDescription() != null) {
            properties.put("projectDescription", project.getDescription());
        }

        camelMetaDir.mkdirs();
        File outFile = new File(camelMetaDir, "dataformat.properties");
        try {
            properties.store(new FileWriter(outFile), "Generated by camel-package-maven-plugin");
            log.info("Generated " + outFile + " containing " + count + " Camel "
                    + (count > 1 ? "dataformats: " : "dataformat: ") + names);

            if (projectHelper != null) {
                List<String> includes = new ArrayList<String>();
                includes.add("**/dataformat.properties");
                projectHelper.addResource(project, dataFormatOutDir.getPath(), includes,
                        new ArrayList<String>());
                projectHelper.attachArtifact(project, "properties", "camelDataFormat", outFile);
            }
        } catch (IOException e) {
            throw new MojoExecutionException("Failed to write properties to " + outFile + ". Reason: " + e, e);
        }
    } else {
        log.debug(
                "No META-INF/services/org/apache/camel/dataformat directory found. Are you sure you have created a Camel data format?");
    }
}