Package org.codehaus.plexus.util.xml

Examples of org.codehaus.plexus.util.xml.XMLWriter


        catch ( IOException ex )
        {
            throw new MojoExecutionException( Messages.getString( "EclipsePlugin.erroropeningfile" ), ex ); //$NON-NLS-1$
        }

        XMLWriter writer = new PrettyPrintXMLWriter( w );

        writer.startElement( ELT_CLASSPATH );

        String defaultOutput =
            IdeUtils.toRelativeAndFixSeparator( config.getProjectBaseDir(), config.getBuildOutputDirectory(), false );

        // ----------------------------------------------------------------------
        // Source roots and resources
        // ----------------------------------------------------------------------

        // List<EclipseSourceDir>
        List specialSources = new ArrayList();

        // 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 " + ( dir.isResource() ? "re" : "" ) + "source " + dir.getPath() + ": output=" +
                dir.getOutput() + "; 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() );
            }

            if ( StringUtils.isNotEmpty( dir.getInclude() ) )
            {
                writer.addAttribute( ATTR_INCLUDING, dir.getInclude() );
            }

            String excludes = dir.getExclude();

            if ( dir.isResource() )
            {
                // automatically exclude java files: eclipse doesn't have the concept of resource directory so it will
                // try to compile any java file found in maven resource dirs
                excludes = StringUtils.isEmpty( excludes ) ? "**/*.java" : excludes + "|**/*.java";
            }

            if ( StringUtils.isNotEmpty( excludes ) )
            {
                writer.addAttribute( ATTR_EXCLUDING, excludes );
            }

            writer.endElement();

        }

        /* --------------- Commented out by rfeng
        // 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.getInclude() != null )
                    {
                        buildXmlPrinter.addAttribute( "includes", dir.getInclude() );
                    }
                    if ( dir.getExclude() != null )
                    {
                        buildXmlPrinter.addAttribute( "excludes", dir.getExclude() );
                    }
                    buildXmlPrinter.endElement();

                    buildXmlPrinter.endElement();
                }

                buildXmlPrinter.endElement();

                buildXmlPrinter.endElement();

                IOUtil.close( buildXmlWriter );
            }
            catch ( IOException e )
            {
                throw new MojoExecutionException( "Cannot create " + config.getEclipseProjectDirectory() +
                    "/maven-eclipse.xml", e );
            }

            log.info( "Creating external launcher file" );
            // now create the launcher
            new EclipseAntExternalLaunchConfigurationWriter().init( log, config, "Maven_Ant_Builder.launch",
                                                                    "maven-eclipse.xml" ).write();

            // finally add it to the project writer.

            config.getBuildCommands().add(
                                           new BuildCommand(
                                                             "org.eclipse.ui.externaltools.ExternalToolBuilder",
                                                             "LaunchConfigHandle",
                                                             "<project>/" +
                                                                 EclipseLaunchConfigurationWriter.FILE_DOT_EXTERNAL_TOOL_BUILDERS +
                                                                 "Maven_Ant_Builder.launch" ) );
        }
        */

        // ----------------------------------------------------------------------
        // The default output
        // ----------------------------------------------------------------------

        writer.startElement( ELT_CLASSPATHENTRY );
        writer.addAttribute( ATTR_KIND, ATTR_OUTPUT );
        writer.addAttribute( ATTR_PATH, defaultOutput );
        writer.endElement();

        // ----------------------------------------------------------------------
        // Container classpath entries
        // ----------------------------------------------------------------------

        for ( Iterator it = config.getClasspathContainers().iterator(); it.hasNext(); )
        {
            writer.startElement( ELT_CLASSPATHENTRY );
            writer.addAttribute( ATTR_KIND, "con" ); //$NON-NLS-1$
            writer.addAttribute( ATTR_PATH, (String) it.next() );
            writer.endElement(); // name
        }

        // ----------------------------------------------------------------------
        // The dependencies
        // ----------------------------------------------------------------------
        Set addedDependencies = new HashSet();
        // TODO if (..magic property equals orderDependencies..)
        IdeDependency[] depsToWrite = config.getDepsOrdered();
        for ( int j = 0; j < depsToWrite.length; j++ )
        {
            IdeDependency dep = depsToWrite[j];

            if ( dep.isAddedToClasspath() )
            {
                String depId =
                    dep.getGroupId() + ":" + dep.getArtifactId() + ":" + dep.getClassifier() + ":" + dep.getVersion();
                /* avoid duplicates in the classpath for artifacts with different types (like ejbs) */
                if ( !addedDependencies.contains( depId ) )
                {
                    addDependency( writer, dep );
                    addedDependencies.add( depId );
                }
            }
        }

        writer.endElement();

        IOUtil.close( w );

    }
View Full Code Here


        catch ( IOException ex )
        {
            throw new MojoExecutionException( Messages.getString( "EclipsePlugin.erroropeningfile" ), ex ); //$NON-NLS-1$
        }

        XMLWriter writer = new PrettyPrintXMLWriter( w );

        writer.startElement( "projectDescription" ); //$NON-NLS-1$

        writer.startElement( ELT_NAME );
        writer.writeText( config.getEclipseProjectName() );
        writer.endElement();

        // TODO: this entire element might be dropped if the comment is null.
        // but as the maven1 eclipse plugin does it, it's better to be safe than sorry
        // A eclipse developer might want to look at this.
        writer.startElement( "comment" ); //$NON-NLS-1$

        if ( config.getProject().getDescription() != null )
        {
            writer.writeText( config.getProject().getDescription() );
        }

        writer.endElement();

        writer.startElement( "projects" ); //$NON-NLS-1$

        // referenced projects should not be added for plugins
        if ( !config.isPde() )
        {
            for ( int j = 0; j < config.getDepsOrdered().length; j++ )
            {
                IdeDependency dep = config.getDepsOrdered()[j];
                if ( dep.isReferencedProject() )
                {
                    writer.startElement( "project" ); //$NON-NLS-1$
                    writer.writeText( dep.getEclipseProjectName() );
                    writer.endElement();
                }
            }
        }

        writer.endElement(); // projects

        writer.startElement( ELT_BUILD_SPEC );

        for ( Iterator it = buildCommands.iterator(); it.hasNext(); )
        {
            ( (BuildCommand) it.next() ).print( writer );
        }

        writer.endElement(); // buildSpec

        writer.startElement( ELT_NATURES );

        for ( Iterator it = projectnatures.iterator(); it.hasNext(); )
        {
            writer.startElement( ELT_NATURE );
            writer.writeText( (String) it.next() );
            writer.endElement(); // name
        }

        writer.endElement(); // natures

        /*
        boolean addLinks = !config.getProjectBaseDir().equals( config.getEclipseProjectDirectory() );

        if ( addLinks || ( config.isPde() && config.getDepsOrdered().length > 0 ) )
        {
            writer.startElement( "linkedResources" ); //$NON-NLS-1$

            if ( addLinks )
            {

                addFileLink( writer, config.getProjectBaseDir(), config.getEclipseProjectDirectory(),
                             config.getProject().getFile() );

                addSourceLinks( writer, config.getProjectBaseDir(), config.getEclipseProjectDirectory(),
                                config.getProject().getCompileSourceRoots() );
                addResourceLinks( writer, config.getProjectBaseDir(), config.getEclipseProjectDirectory(),
                                  config.getProject().getBuild().getResources() );

                addSourceLinks( writer, config.getProjectBaseDir(), config.getEclipseProjectDirectory(),
                                config.getProject().getTestCompileSourceRoots() );
                addResourceLinks( writer, config.getProjectBaseDir(), config.getEclipseProjectDirectory(),
                                  config.getProject().getBuild().getTestResources() );

            }

            if ( config.isPde() )
            {
                for ( int j = 0; j < config.getDepsOrdered().length; j++ )
                {
                    IdeDependency dep = config.getDepsOrdered()[j];

                    if ( dep.isAddedToClasspath() && !dep.isProvided() && !dep.isReferencedProject() &&
                        !dep.isTestDependency() && !dep.isOsgiBundle() )
                    {
                        String name = dep.getFile().getName();
                        addLink( writer, name, StringUtils.replace( IdeUtils.getCanonicalPath( dep.getFile() ), "\\",
                                                                    "/" ), LINK_TYPE_FILE );
                    }
                }
            }

            writer.endElement(); // linkedResources
        }
        */

        writer.endElement(); // projectDescription

        IOUtil.close( w );
    }
View Full Code Here

        config.setProject( project );
        EclipseProjectWriter projectWriter = new EclipseProjectWriter();
        // create the .project file and start writing the contents
        File dotProject = new File( config.getEclipseProjectDirectory(), ".project" );
        Writer w = new OutputStreamWriter( new FileOutputStream( dotProject ), "UTF-8" );
        XMLWriter writer = new PrettyPrintXMLWriter( w );

        writer.startElement( "projectDescription" );

        writer.startElement( "name" );
        writer.writeText( "test-project" );
        writer.endElement();// name

        writer.startElement( "linkedResources" );
        writer.startElement( "link" );

        writer.startElement( "name" );
        writer.writeText( "linkTest" );
        writer.endElement();// name

        writer.startElement( "type" );
        writer.writeText( "2" );
        writer.endElement();// type

        writer.startElement( "location" );
        writer.writeText( basedir + "/dummyName" );
        writer.endElement(); // location

        writer.endElement();// link
        writer.endElement();// linkedResources
        writer.endElement();// projectDescription

        IOUtil.close( w );
        // parse the file we just created in order to keep manually-added linkedResources
        // pre setup
        Reader reader = null;
View Full Code Here

    } catch (IOException ex) {
      throw new JbiPluginException("Exception while opening file["
          + descriptor.getAbsolutePath() + "]", ex);
    }

    XMLWriter writer = new PrettyPrintXMLWriter(w, encoding, null);
    writer.startElement("jbi");
    writer.addAttribute("xmlns", "http://java.sun.com/xml/ns/jbi");
    writer.addAttribute("version", "1.0");

    writer.startElement("services");

    // We need to get all the namespaces into a hashmap so we
    // can get the QName output correctly
    Map namespaceMap = getNamespaceMap(provides, consumes);

    // Set-up the namespaces
    for (Iterator iterator = namespaceMap.keySet().iterator(); iterator
        .hasNext();) {
      String key = (String) iterator.next();
      StringBuffer namespaceDecl = new StringBuffer();
      namespaceDecl.append("xmlns:");
      namespaceDecl.append(namespaceMap.get(key));
      writer.addAttribute(namespaceDecl.toString(), key);
    }

    // Put in the provides
    for (Iterator iterator = provides.iterator(); iterator.hasNext();) {
      Provides providesEntry = (Provides) iterator.next();
      writer.startElement("provides");
      addQNameAttribute(writer, "interface-name", providesEntry
          .getInterfaceName(), namespaceMap);
      addQNameAttribute(writer, "service-name", providesEntry
          .getServiceName(), namespaceMap);
      addStringAttribute(writer, "endpoint-name", providesEntry
          .getEndpointName());
      writer.endElement();
    }

    // Put in the consumes
    for (Iterator iterator = consumes.iterator(); iterator.hasNext();) {
      Consumes consumesEntry = (Consumes) iterator.next();
      writer.startElement("consumes");
      addQNameAttribute(writer, "interface-name", consumesEntry
          .getInterfaceName(), namespaceMap);
      addQNameAttribute(writer, "service-name", consumesEntry
          .getServiceName(), namespaceMap);
      addStringAttribute(writer, "endpoint-name", consumesEntry
          .getEndpointName());

      // TODO Handling of LinkType?

      writer.endElement();
    }

    writer.endElement();

    writer.endElement();

    close(w);
  }
View Full Code Here

    } catch (IOException ex) {
      throw new JbiPluginException("Exception while opening file["
          + descriptor.getAbsolutePath() + "]", ex);
    }

    XMLWriter writer = new PrettyPrintXMLWriter(w, encoding, null);
    writer.startElement("jbi");
    writer.addAttribute("xmlns", "http://java.sun.com/xml/ns/jbi");
    writer.addAttribute("version", "1.0");

    writer.startElement("shared-library");
    writer.addAttribute("class-loader-delegation", classLoaderDelegation);
    writer.addAttribute("version", version);

    writer.startElement("identification");
    writer.startElement("name");
    writer.writeText(name);
    writer.endElement();
    writer.startElement("description");
    writer.writeText(description);
    writer.endElement();
    writer.endElement();

    writer.startElement("shared-library-class-path");
    for (Iterator it = uris.iterator(); it.hasNext();) {
      DependencyInformation dependency = (DependencyInformation) it.next();
      writer.startElement("path-element");
      writer.writeText(dependency.getFilename());
      writer.endElement();     
    }
    writer.endElement();

    writer.endElement();
    writer.endElement();

    close(w);
  }
View Full Code Here

    } catch (IOException ex) {
      throw new JbiPluginException("Exception while opening file["
          + descriptor.getAbsolutePath() + "]", ex);
    }

    XMLWriter writer = new PrettyPrintXMLWriter(w, encoding, null);
    writer.startElement("jbi");
    writer.addAttribute("xmlns", "http://java.sun.com/xml/ns/jbi");
    writer.addAttribute("version", "1.0");

    writer.startElement("service-assembly");

    writer.startElement("identification");
    writer.startElement("name");
    writer.writeText(name);
    writer.endElement();
    writer.startElement("description");
    writer.writeText(description);
    writer.endElement();
    writer.endElement();

    for (Iterator it = uris.iterator(); it.hasNext();) {
      DependencyInformation serviceUnitInfo = (DependencyInformation) it
          .next();
      writeServiceUnit(writer, serviceUnitInfo);

    }

    writer.endElement();
    writer.endElement();

    close(w);
  }
View Full Code Here

    } catch (IOException ex) {
      throw new JbiPluginException("Exception while opening file["
          + descriptor.getAbsolutePath() + "]", ex);
    }

    XMLWriter writer = new PrettyPrintXMLWriter(w, encoding, null);   
    writer.startElement("jbi");
    writer.addAttribute("xmlns", "http://java.sun.com/xml/ns/jbi");
    writer.addAttribute("version", "1.0");

    writer.startElement("component");
    writer.addAttribute("type", type);
        writer.addAttribute("component-class-loader-delegation", componentClassLoaderDelegation);
        writer.addAttribute("bootstrap-class-loader-delegation", bootstrapClassLoaderDelegation);

    writer.startElement("identification");
    writer.startElement("name");
    writer.writeText(name);
    writer.endElement();
    writer.startElement("description");
    writer.writeText(description);
    writer.endElement();
    writer.endElement();

    writer.startElement("component-class-name");
    writer.writeText(component);
    writer.endElement();
    writer.startElement("component-class-path");
    for (Iterator it = uris.iterator(); it.hasNext();) {
      DependencyInformation info = (DependencyInformation) it.next();
      if ("jar".equals(info.getType())) {
        writer.startElement("path-element");
        writer.writeText(info.getFilename());
        writer.endElement();
      }
    }
    writer.endElement();

    writer.startElement("bootstrap-class-name");
    writer.writeText(bootstrap);
    writer.endElement();
    writer.startElement("bootstrap-class-path");
    for (Iterator it = uris.iterator(); it.hasNext();) {
      DependencyInformation info = (DependencyInformation) it.next();
      if ("jar".equals(info.getType())) {
        writer.startElement("path-element");
        writer.writeText(info.getFilename());
        writer.endElement();
      }
    }
    writer.endElement();

    for (Iterator it = uris.iterator(); it.hasNext();) {
      DependencyInformation info = (DependencyInformation) it.next();
      if ("jbi-shared-library".equals(info.getType())) {
        writer.startElement("shared-library");
        writer.addAttribute("version", info.getVersion());
        writer.writeText(info.getName());
        writer.endElement();
      }
    }

    writer.endElement();

    writer.endElement();

    close(w);
  }
View Full Code Here

        }
        catch ( IOException ex )
        {
            throw new MojoExecutionException( "Rad6Plugin.erroropeningfile", ex ); //$NON-NLS-1$
        }
        XMLWriter writer = new PrettyPrintXMLWriter( w, "UTF-8", null );
        Xpp3DomWriter.write( writer, xmlDomTree );
        IOUtil.close( w );
    }
View Full Code Here

        catch ( IOException ex )
        {
            throw new MojoExecutionException( Messages.getString( "EclipsePlugin.erroropeningfile" ), ex ); //$NON-NLS-1$
        }

        XMLWriter writer = new PrettyPrintXMLWriter( w, "UTF-8", null );

        writer.startElement( ELT_CLASSPATH );

        String defaultOutput =
            IdeUtils.toRelativeAndFixSeparator( config.getProjectBaseDir(), config.getBuildOutputDirectory(), false );

        // ----------------------------------------------------------------------
        // Source roots and resources
        // ----------------------------------------------------------------------

        // List<EclipseSourceDir>
        List specialSources = new ArrayList();

        // 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();
                }

                buildXmlPrinter.endElement();

                buildXmlPrinter.endElement();

                IOUtil.close( buildXmlWriter );
            }
            catch ( IOException e )
            {
                throw new MojoExecutionException( "Cannot create " + config.getEclipseProjectDirectory()
                    + "/maven-eclipse.xml", e );
            }

            log.info( "Creating external launcher file" );
            // now create the launcher
            new EclipseAntExternalLaunchConfigurationWriter().init( log, config, "Maven_Ant_Builder.launch",
                                                                    "maven-eclipse.xml" ).write();

            // finally add it to the project writer.

            config.getBuildCommands().add(
                                           new BuildCommand(
                                                             "org.eclipse.ui.externaltools.ExternalToolBuilder",
                                                             "LaunchConfigHandle",
                                                             "<project>/"
                                                                 + EclipseLaunchConfigurationWriter.FILE_DOT_EXTERNAL_TOOL_BUILDERS
                                                                 + "Maven_Ant_Builder.launch" ) );
        }

        // ----------------------------------------------------------------------
        // The default output
        // ----------------------------------------------------------------------

        writer.startElement( ELT_CLASSPATHENTRY );
        writer.addAttribute( ATTR_KIND, ATTR_OUTPUT );
        writer.addAttribute( ATTR_PATH, defaultOutput );
        writer.endElement();

        Set addedDependencies = new HashSet();
       
        // ----------------------------------------------------------------------
        // Java API dependencies that may complete the classpath container must
        // be declared BEFORE all other dependencies so that container access rules don't fail
        // ----------------------------------------------------------------------
        IdeDependency[] depsToWrite = config.getDeps();
        for ( int j = 0; j < depsToWrite.length; j++ )
        {
            IdeDependency dep = depsToWrite[j];
            if ( dep.isJavaApi() )
            {
                String depId = getDependencyId( dep );
                if ( !addedDependencies.contains( depId ) )
                {
                    addDependency( writer, dep );
                    addedDependencies.add( depId );
                }
            }
        }
       

        if (!config.isClasspathContainersLast())
        {
            writeClasspathContainers(writer);
        }

        // ----------------------------------------------------------------------
        // The project's dependencies
        // ----------------------------------------------------------------------
        for ( int j = 0; j < depsToWrite.length; j++ )
        {
            IdeDependency dep = depsToWrite[j];

            if ( dep.isAddedToClasspath() )
            {
                String depId = getDependencyId( dep );
                /* avoid duplicates in the classpath for artifacts with different types (like ejbs or test-jars) */
                if ( !addedDependencies.contains( depId ) )
                {
                    addDependency( writer, dep );
                    addedDependencies.add( depId );
                }
            }
        }

        if (config.isClasspathContainersLast())
        {
            writeClasspathContainers(writer);
        }
       
        writer.endElement();

        IOUtil.close( w );

    }
View Full Code Here

        }
        catch ( IOException ex )
        {
            throw new MojoExecutionException( Messages.getString( "EclipsePlugin.erroropeningfile" ), ex ); //$NON-NLS-1$
        }
        XMLWriter writer = new PrettyPrintXMLWriter( w, "UTF-8", null );
        writeModuleTypeFacetCore( writer, packaging );
        IOUtil.close( w );
    }
View Full Code Here

TOP

Related Classes of org.codehaus.plexus.util.xml.XMLWriter

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.