Package com.alibaba.citrus.maven.eclipse.base.eclipse

Examples of com.alibaba.citrus.maven.eclipse.base.eclipse.EclipseSourceDir


        if (sourceDirs != null) {
            boolean foundMetaInfBaseDirectory = false;

            for (int i = 0; i < sourceDirs.length; i++) {
                EclipseSourceDir esd = sourceDirs[i];

                if (esd.getPath().equals(metaInfBaseDirectory)) {
                    foundMetaInfBaseDirectory = true;
                    break;
                }
            }

            if (!foundMetaInfBaseDirectory) {
                EclipseSourceDir dir =
                        new EclipseSourceDir(metaInfBaseDirectory, null, true, false, null, null, false);

                EclipseSourceDir[] newSourceDirs = new EclipseSourceDir[sourceDirs.length + 1];
                newSourceDirs[sourceDirs.length] = dir;

                System.arraycopy(sourceDirs, 0, newSourceDirs, 0, sourceDirs.length);
View Full Code Here


            EclipseSourceDir[] sourceDirs = config.getSourceDirs();
            EclipseSourceDir[] newSourceDirs = new EclipseSourceDir[sourceDirs.length + 1];
            System.arraycopy(sourceDirs, 0, newSourceDirs, 0, sourceDirs.length);
            newSourceDirs[sourceDirs.length] =
                    new EclipseSourceDir(EclipseManifestWriter.GENERATED_RESOURCE_DIRNAME,
                                         null,
                                         true,
                                         false,
                                         null,
                                         null,
View Full Code Here

        // Map<String,List<EclipseSourceDir>>
        Map byOutputDir = new HashMap();

        for (int j = 0; j < config.getSourceDirs().length; j++) {
            EclipseSourceDir dir = config.getSourceDirs()[j];

            // List<EclipseSourceDir>
            List byOutputDirs = (List) byOutputDir.get(dir.getOutput());
            if (byOutputDirs == null) {
                // ArrayList<EclipseSourceDir>
                byOutputDir.put(dir.getOutput() == null ? defaultOutput : dir.getOutput(), byOutputDirs =
                        new ArrayList());
            }
            byOutputDirs.add(dir);
        }

        for (int j = 0; j < config.getSourceDirs().length; j++) {
            EclipseSourceDir dir = config.getSourceDirs()[j];

            log.debug("Processing classpath for: " + dir.toString() + "; default output=" + defaultOutput);

            boolean isSpecial = false;

            // handle resource with nested output folders
            if (dir.isResource()) {
                // Check if the output is a subdirectory of the default output,
                // and if the default output has any sources that copy there.

                if (dir.getOutput() != null // resource output dir is set
                    && !dir.getOutput().equals(defaultOutput) // output dir is not default target/classes
                    && dir.getOutput().startsWith(defaultOutput) // ... but is nested
                    && byOutputDir.get(defaultOutput) != null // ???
                    && !((List) byOutputDir.get(defaultOutput)).isEmpty() // ???
                        ) {
                    // do not specify as source since the output will be nested. Instead, mark
                    // it as a todo, and handle it with a custom build.xml file later.

                    log.debug("Marking as special to prevent output folder nesting: " + dir.getPath() + " (output="
                              + dir.getOutput() + ")");

                    isSpecial = true;
                    specialSources.add(dir);
                }
            }

            writer.startElement(ELT_CLASSPATHENTRY);

            writer.addAttribute(ATTR_KIND, "src"); //$NON-NLS-1$
            writer.addAttribute(ATTR_PATH, dir.getPath());

            if (!isSpecial && dir.getOutput() != null && !defaultOutput.equals(dir.getOutput())) {
                writer.addAttribute(ATTR_OUTPUT, dir.getOutput());
            }

            String includes = dir.getIncludeAsString();
            if (StringUtils.isNotEmpty(includes)) {
                writer.addAttribute(ATTR_INCLUDING, includes);
            }

            String excludes = dir.getExcludeAsString();
            if (StringUtils.isNotEmpty(excludes)) {
                writer.addAttribute(ATTR_EXCLUDING, excludes);
            }

            writer.endElement();
        }

        // handle the special sources.
        if (!specialSources.isEmpty()) {
            log.info("Creating maven-eclipse.xml Ant file to handle resources");

            try {
                Writer buildXmlWriter =
                        new OutputStreamWriter(new FileOutputStream(new File(config.getEclipseProjectDirectory(),
                                                                             "maven-eclipse.xml")), "UTF-8");
                PrettyPrintXMLWriter buildXmlPrinter = new PrettyPrintXMLWriter(buildXmlWriter);

                buildXmlPrinter.startElement("project");
                buildXmlPrinter.addAttribute("default", "copy-resources");

                buildXmlPrinter.startElement("target");
                buildXmlPrinter.addAttribute(NAME, "init");
                // initialize filtering tokens here
                buildXmlPrinter.endElement();

                buildXmlPrinter.startElement("target");
                buildXmlPrinter.addAttribute(NAME, "copy-resources");
                buildXmlPrinter.addAttribute("depends", "init");

                for (Iterator it = specialSources.iterator(); it.hasNext(); ) {
                    // TODO: merge source dirs on output path+filtering to reduce
                    // <copy> tags for speed.
                    EclipseSourceDir dir = (EclipseSourceDir) it.next();
                    buildXmlPrinter.startElement("copy");
                    buildXmlPrinter.addAttribute("todir", dir.getOutput());
                    buildXmlPrinter.addAttribute("filtering", "" + dir.isFiltering());

                    buildXmlPrinter.startElement("fileset");
                    buildXmlPrinter.addAttribute("dir", dir.getPath());
                    if (dir.getIncludeAsString() != null) {
                        buildXmlPrinter.addAttribute("includes", dir.getIncludeAsString());
                    }
                    if (dir.getExcludeAsString() != null) {
                        buildXmlPrinter.addAttribute("excludes", dir.getExcludeAsString());
                    }
                    buildXmlPrinter.endElement();

                    buildXmlPrinter.endElement();
                }
View Full Code Here

            writeWarOrEarResources(writer, config.getProject(), config.getLocalRepository());
        }

        for (int j = 0; j < config.getSourceDirs().length; j++) {
            EclipseSourceDir dir = config.getSourceDirs()[j];
            // test src/resources are not added to wtpmodules
            if (!dir.isTest()) {
                // <wb-resource deploy-path="/" source-path="/src/java" />
                writer.startElement(ELT_WB_RESOURCE);
                writer.addAttribute(ATTR_DEPLOY_PATH, target);
                writer.addAttribute(ATTR_SOURCE_PATH, dir.getPath());
                writer.endElement();
            }
        }

        writer.endElement(); // wb-module
View Full Code Here

            // write out the dependencies.
            writeWarOrEarResources(writer, config.getProject(), localRepository);
        }

        for (int j = 0; j < sourceDirs.length; j++) {
            EclipseSourceDir dir = sourceDirs[j];
            // test src/resources are not added to wtpmodules
            if (!dir.isTest()) {
                // <wb-resource deploy-path="/" source-path="/src/java" />
                writer.startElement(ELT_WB_RESOURCE);
                writer.addAttribute(ATTR_DEPLOY_PATH, target);
                writer.addAttribute(ATTR_SOURCE_PATH, dir.getPath());
                writer.endElement();
            }
        }

        writer.endElement(); // wb-module
View Full Code Here

TOP

Related Classes of com.alibaba.citrus.maven.eclipse.base.eclipse.EclipseSourceDir

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.