ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Peter Reilly" <peter.kitt.rei...@gmail.com>
Subject Re: svn commit: r513191 - in /ant/sandbox/antlibs/manual4eclipse: ./ docs/ src/ src/main/ src/main/org/ src/main/org/apache/ src/main/org/apache/ant/ src/main/org/apache/ant/manual4eclipse/
Date Thu, 01 Mar 2007 09:17:39 GMT
On 3/1/07, Jan.Materne@rzf.fin-nrw.de <Jan.Materne@rzf.fin-nrw.de> wrote:
> What does <whinemode/> mean?
Just some checkstyle issues, and I am too lazy to make the
mods myself!

Peter

>
> Jan
>
> >-----Ursprüngliche Nachricht-----
> >Von: Peter Reilly [mailto:peter.kitt.reilly@gmail.com]
> >Gesendet: Donnerstag, 1. März 2007 10:02
> >An: Ant Developers List
> >Betreff: Re: svn commit: r513191 - in
> >/ant/sandbox/antlibs/manual4eclipse: ./ docs/ src/ src/main/
> >src/main/org/ src/main/org/apache/ src/main/org/apache/ant/
> >src/main/org/apache/ant/manual4eclipse/
> >
> ><whinemode>
> >
> >On 3/1/07, jhm@apache.org <jhm@apache.org> wrote:
> >> Author: jhm
> >> Date: Wed Feb 28 22:44:52 2007
> >> New Revision: 513191
> >>
> >> URL: http://svn.apache.org/viewvc?view=rev&rev=513191
> >> Log:
> >> Initial commit. (Have to convert into AntLib and try
> >svn:external the common directory...) And docs ;-)
> >>
> >> Added:
> >>     ant/sandbox/antlibs/manual4eclipse/   (with props)
> >>     ant/sandbox/antlibs/manual4eclipse/NOTICE   (with props)
> >>     ant/sandbox/antlibs/manual4eclipse/build.xml   (with props)
> >>     ant/sandbox/antlibs/manual4eclipse/docs/
> >>     ant/sandbox/antlibs/manual4eclipse/libraries.properties
> > (with props)
> >>     ant/sandbox/antlibs/manual4eclipse/src/
> >>     ant/sandbox/antlibs/manual4eclipse/src/main/
> >>     ant/sandbox/antlibs/manual4eclipse/src/main/org/
> >>     ant/sandbox/antlibs/manual4eclipse/src/main/org/apache/
> >>     ant/sandbox/antlibs/manual4eclipse/src/main/org/apache/ant/
> >>
> >ant/sandbox/antlibs/manual4eclipse/src/main/org/apache/ant/manu
> >al4eclipse/
> >>
> >ant/sandbox/antlibs/manual4eclipse/src/main/org/apache/ant/manu
> >al4eclipse/Manual4EclipseTask.java   (with props)
> >>
> >> Propchange: ant/sandbox/antlibs/manual4eclipse/
> >>
> >---------------------------------------------------------------
> >---------------
> >> --- svn:externals (added)
> >> +++ svn:externals Wed Feb 28 22:44:52 2007
> >> @@ -0,0 +1 @@
> >> +common
> >http://svn.apache.org/repos/asf/ant/antlibs/common/trunk
> >>
> >> Added: ant/sandbox/antlibs/manual4eclipse/NOTICE
> >> URL:
> >http://svn.apache.org/viewvc/ant/sandbox/antlibs/manual4eclipse
> >/NOTICE?view=auto&rev=513191
> >>
> >===============================================================
> >===============
> >> --- ant/sandbox/antlibs/manual4eclipse/NOTICE (added)
> >> +++ ant/sandbox/antlibs/manual4eclipse/NOTICE Wed Feb 28
> >22:44:52 2007
> >> @@ -0,0 +1,11 @@
> >> +
> >===============================================================
> >==========
> >> +   ==  NOTICE file corresponding to the section 4 d of
> >              ==
> >> +   ==  the Apache License, Version 2.0
> >              ==
> >> +
> >===============================================================
> >==========
> >> +
> >> +   Apache HTTP Ant Library
> >> +   Copyright 2001-2006 The Apache Software Foundation
> >> +
> >> +   This product includes software developed by
> >> +   The Apache Software Foundation (http://www.apache.org/).
> >> +
> >>
> >> Propchange: ant/sandbox/antlibs/manual4eclipse/NOTICE
> >>
> >---------------------------------------------------------------
> >---------------
> >>     svn:eol-style = native
> >>
> >> Added: ant/sandbox/antlibs/manual4eclipse/build.xml
> >> URL:
> >http://svn.apache.org/viewvc/ant/sandbox/antlibs/manual4eclipse
> >/build.xml?view=auto&rev=513191
> >>
> >===============================================================
> >===============
> >> --- ant/sandbox/antlibs/manual4eclipse/build.xml (added)
> >> +++ ant/sandbox/antlibs/manual4eclipse/build.xml Wed Feb 28
> >22:44:52 2007
> >> @@ -0,0 +1,22 @@
> >> +<?xml version="1.0"?>
> >> +<!--
> >> +Licensed to the Apache Software Foundation (ASF) under one
> >> +or more contributor license agreements.  See the NOTICE file
> >> +distributed with this work for additional information
> >> +regarding copyright ownership.  The ASF licenses this file
> >> +to you under the Apache License, Version 2.0 (the
> >> +"License"); you may not use this file except in compliance
> >> +with the License.  You may obtain a copy of the License at
> >> +
> >> +http://www.apache.org/licenses/LICENSE-2.0
> >> +
> >> +Unless required by applicable law or agreed to in writing,
> >> +software distributed under the License is distributed on an
> >> +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> >> +KIND, either express or implied.  See the License for the
> >> +specific language governing permissions and limitations
> >> +under the License.
> >> +-->
> >> +<project default="dist" name="http">
> >> +  <import file="common/build.xml"/>
> >> +</project>
> >> \ No newline at end of file
> >>
> >> Propchange: ant/sandbox/antlibs/manual4eclipse/build.xml
> >>
> >---------------------------------------------------------------
> >---------------
> >>     svn:eol-style = native
> >>
> >> Added: ant/sandbox/antlibs/manual4eclipse/libraries.properties
> >> URL:
> >http://svn.apache.org/viewvc/ant/sandbox/antlibs/manual4eclipse
> >/libraries.properties?view=auto&rev=513191
> >>
> >===============================================================
> >===============
> >> --- ant/sandbox/antlibs/manual4eclipse/libraries.properties (added)
> >> +++ ant/sandbox/antlibs/manual4eclipse/libraries.properties
> >Wed Feb 28 22:44:52 2007
> >> @@ -0,0 +1 @@
> >> +artifact.version=1.0-alpha-SNAPSHOT
> >> \ No newline at end of file
> >>
> >> Propchange: ant/sandbox/antlibs/manual4eclipse/libraries.properties
> >>
> >---------------------------------------------------------------
> >---------------
> >>     svn:eol-style = native
> >>
> >> Added:
> >ant/sandbox/antlibs/manual4eclipse/src/main/org/apache/ant/manu
> >al4eclipse/Manual4EclipseTask.java
> >> URL:
> >http://svn.apache.org/viewvc/ant/sandbox/antlibs/manual4eclipse
> >/src/main/org/apache/ant/manual4eclipse/Manual4EclipseTask.java
> >?view=auto&rev=513191
> >>
> >===============================================================
> >===============
> >> ---
> >ant/sandbox/antlibs/manual4eclipse/src/main/org/apache/ant/manu
> >al4eclipse/Manual4EclipseTask.java (added)
> >> +++
> >ant/sandbox/antlibs/manual4eclipse/src/main/org/apache/ant/manu
> >al4eclipse/Manual4EclipseTask.java Wed Feb 28 22:44:52 2007
> >> @@ -0,0 +1,306 @@
> >> +package org.apache.ant.manual4eclipse;
> >> +
> >> +/*
> >> + *  Licensed to the Apache Software Foundation (ASF) under
> >one or more
> >> + *  contributor license agreements.  See the NOTICE file
> >distributed with
> >> + *  this work for additional information regarding
> >copyright ownership.
> >> + *  The ASF licenses this file to You under the Apache
> >License, Version 2.0
> >> + *  (the "License"); you may not use this file except in
> >compliance with
> >> + *  the License.  You may obtain a copy of the License at
> >> + *
> >> + *      http://www.apache.org/licenses/LICENSE-2.0
> >> + *
> >> + *  Unless required by applicable law or agreed to in
> >writing, software
> >> + *  distributed under the License is distributed on an "AS
> >IS" BASIS,
> >> + *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
> >express or implied.
> >> + *  See the License for the specific language governing
> >permissions and
> >> + *  limitations under the License.
> >> + *
> >> + */
> >> +
> >> +import java.io.File;
> >> +import java.io.FileWriter;
> >> +import java.io.IOException;
> >> +import java.util.ArrayList;
> >> +import java.util.List;
> >> +
> >> +import org.apache.tools.ant.BuildException;
> >> +import org.apache.tools.ant.Project;
> >> +import org.apache.tools.ant.Task;
> >> +import org.apache.tools.ant.util.JAXPUtils;
> >> +import org.w3c.dom.Document;
> >> +import org.w3c.dom.Element;
> >> +import org.w3c.dom.Node;
> >> +import org.w3c.dom.NodeList;
> >> +import org.xml.sax.SAXException;
> >> +
> >> +
> >> +/**
> >> + * This task creates the files needed for generating an
> >Eclipse Help PlugIn
> >> + * from Ant's manual. Mainly the toc.xml and the plugin.xml.
> >> + */
> >> +public class Manual4EclipseTask extends Task {
> >> +
> >> +
> >> +       /** Line Separator. */
> >> +       String BR = System.getProperty("line.separator");
> >Should be private static final
> >
> >> +
> >> +       /** Ant Property: The output directory for generated
> >files. */
> >> +       private File dir;
> >> +
> >> +       /** Ant Property: The directory where the Ant manual
> >(sources) is. */
> >> +       private File manualDir;
> >> +
> >> +
> >All the following fields should be private:
> >> +       /** List of files which are already processed. */
> >> +       List<File> processedFiles = new ArrayList<File>();
> >> +
> >> +       /** List of Link references <tt><a href="LINK"></tt>
> >to ignore. */
> >> +       List<String> ignoreLinks = new ArrayList<String>();
> >> +
> >> +       /** List of Link references <tt><a href="LINK"></tt>
> >to ignore. */
> >> +       List<String> ignoreTargets = new ArrayList<String>();
> >> +
> >> +       /** List of Link references <tt><a href="LINK"></tt>
> >to ignore. */
> >> +       List<String> ignoreText = new ArrayList<String>();
> >> +
> >> +
> >Javadoc!
> >> +       public Manual4EclipseTask() {
> >> +               ignoreLinks.add("api/index.html");
> >> +               ignoreTargets.add("_main");
> >> +               ignoreText.add("Ant API");
> >> +               ignoreText.add("Table of Contents");
> >> +       }
> >> +
> >> +
> >> +       @Override
> >> +       public void execute() throws BuildException {
> >> +               log("Generate Eclipse plugin files");
> >> +               try {
> >> +                       createToc(new File(manualDir, "toc.html"));
> >> +                       createPluginXml();
> >> +               } catch (Exception e) {
> >> +                       throw new BuildException(e, getLocation());
> >> +               }
> >> +       }
> >> +
> >> +
> >> +       private void createPluginXml() throws IOException {
> >> +               log("generating plugin.xml", Project.MSG_INFO);
> >> +               StringBuffer sb = new StringBuffer();
> >> +               sb.append("<?xml version=\"1.0\"
> >encoding=\"ISO-8859-1\"?>").append(BR);
> >> +               sb.append("<?eclipse version=\"3.2\"?>").append(BR);
> >> +               sb.append("<plugin>").append(BR);
> >> +               sb.append("    <extension
> >point=\"org.eclipse.help.toc\">").append(BR);
> >> +               sb.append("        <toc file=\"toc.xml\"
> >primary=\"true\" />").append(BR);
> >> +               sb.append("        <index
> >path=\"index\"/>").append(BR);
> >> +               sb.append("    </extension>").append(BR);
> >> +               sb.append("    <extension
> >point=\"org.eclipse.help.base.luceneSearchParticipants\">").append(BR);
> >> +               sb.append("        <binding
> >participantId=\"org.eclipse.help.base.xhtml\"/>").append(BR);
> >> +               sb.append("    </extension>").append(BR);
> >> +               sb.append("</plugin>").append(BR);
> >> +               write(sb, new File(dir, "plugin.xml"));
> >> +       }
> >> +
> >> +
> >> +
> >> +       private void createToc(File listHtml) throws
> >IOException, SAXException {
> >> +               log("generating toc.xml", Project.MSG_INFO);
> >> +               StringBuffer toc = new StringBuffer();
> >> +               toc.append("<?xml version=\"1.0\"
> >encoding=\"ISO-8859-1\"?>").append(BR);
> >> +               toc.append("<?NLS
> >TYPE=\"org.eclipse.help.toc\"?>").append(BR);
> >> +               toc.append("<toc label=\"Ant Manual\"
> >topic=\"cover.html\">").append(BR);
> >> +               createTopic(toc, listHtml);
> >> +               toc.append("</toc>").append(BR);
> >> +               write(toc, new File(dir, "toc.xml"));
> >> +       }
> >> +
> >> +
> >> +
> >> +       private void createTopic(StringBuffer toc, File listHtml)
> >> +                       throws SAXException, IOException {
> >> +               if (processedFiles.contains(listHtml)) {
> >> +                       return;
> >> +               }
> >> +               log("Processing " + listHtml, Project.MSG_VERBOSE);
> >> +               processedFiles.add(listHtml);
> >> +               Document document =
> >JAXPUtils.getDocumentBuilder().parse(listHtml);
> >> +               NodeList tagsA = document.getElementsByTagName("a");
> >> +               for (int i = 0; i < tagsA.getLength(); i++) {
> >> +                       Topic topic = new Topic(tagsA.item(i));
> >> +                       if (topic.isIgnorable()) continue;
> >> +
> >> +                       if (topic.hasNestedTopics()) {
> >> +                               // start recursion
> >> +
> >toc.append("<").append(topic).append(">").append(BR);
> >> +                               if
> >("anttaskslist.html".equals(topic.href)) {
> >> +
> >createTopic4TaskOverview(toc);
> >> +                               } else {
> >> +                                       createTopic(toc, new
> >File(manualDir, topic.href));
> >> +                               }
> >> +                               toc.append("</topic>").append(BR);
> >> +                       } else {
> >> +
> >toc.append("<").append(topic).append("/>").append(BR);
> >> +                       }
> >> +               }
> >> +       }
> >> +
> >> +
> >> +
> >> +       /**
> >> +        * Generate topics for the core and optional tasks.
> >> +        * Because the task lists (overview, core, optional)
> >have a TOC-header,
> >> +        * the generic recursion-algorithm does not work. So
> >we have to deal
> >> +        * with that.
> >> +        * @param toc    StringBuffer with the toc.xml in progress
> >> +        * @param label  Label for the root node
> >> +        * @throws IOException
> >> +        * @throws SAXException
> >> +        * @throws BuildException
> >> +        */
> >> +       private void createTopic4TaskOverview(StringBuffer
> >toc) throws BuildException, SAXException, IOException {
> >> +               File taskListFile = new File(manualDir,
> >"anttaskslist.html");
> >> +               File coreTaskFile = new File(manualDir,
> >"coretasklist.html");
> >> +               File optionalTask = new File(manualDir,
> >"optionaltasklist.html");
> >> +               processedFiles.add(taskListFile);
> >> +               processedFiles.add(coreTaskFile);
> >> +               processedFiles.add(optionalTask);
> >> +
> >> +               log("Using hard coded TOC-structure instead
> >of " + taskListFile, Project.MSG_VERBOSE);
> >> +
> >> +               toc.append("<topic label=\"Overview of Ant
> >Tasks\" href=\"tasksoverview.html\"/>").append(BR);
> >> +               toc.append("<topic label=\"Core
> >Tasks\">").append(BR);
> >> +               // Core Tasks
> >> +               createTopics4TaskList(toc, coreTaskFile);
> >> +               toc.append("</topic>").append(BR);
> >> +               toc.append("<topic label=\"Optional
> >Tasks\">").append(BR);
> >> +               // Optional Tasks
> >> +               toc.append("<topic label=\"Library
> >Dependencies\"
> >href=\"install.html#librarydependencies\"/>").append(BR);
> >> +               createTopics4TaskList(toc, optionalTask);
> >> +               toc.append("</topic>").append(BR);
> >> +       }
> >> +
> >> +
> >> +
> >> +       /**
> >> +        * Creates a <topic> element (with nested) for Task list.
> >> +        * The task lists are placed after a &lt;h3> header
> >and there are
> >> +        * &lt;a> tags before that. So we have to do more
> >work and search
> >> +        * for the right are.
> >> +        * @param toc    StringBuffer with the toc.xml in progress
> >> +        * @param file   The file with the task list
> >> +        * @throws BuildException
> >> +        * @throws SAXException
> >> +        * @throws IOException
> >> +        */
> >> +       private void createTopics4TaskList(StringBuffer toc,
> >File file) throws BuildException, SAXException, IOException {
> >> +               log("Processing " + file, Project.MSG_VERBOSE);
> >> +               Document doc =
> >JAXPUtils.getDocumentBuilder().parse(file);
> >> +               // Access to the HTML root element
> >> +               Element html = doc.getDocumentElement();
> >> +               // search for the <body> element
> >> +               Element body = null;
> >> +               NodeList childNodes = html.getChildNodes();
> >> +               for (int i=0; i<childNodes.getLength(); i++) {
> >> +                       Node n = childNodes.item(i);
> >> +                       if
> >(n.getNodeName().equalsIgnoreCase("body")) {
> >> +                               body = (Element)n;
> >> +                       }
> >> +               }
> >> +               // search in the body for the task listing
> >> +               childNodes = body.getChildNodes();
> >> +               boolean needSection = false;
> >> +               for (int i=0; i<childNodes.getLength(); i++) {
> >> +                       Node n = childNodes.item(i);
> >> +                       // After the H3-section we'll get
> >the task listing
> >> +                       if (needSection) {
> >> +                               if
> >(n.getNodeName().equalsIgnoreCase("a")) {
> >> +                                       Topic t = new Topic(n);
> >> +
> >toc.append("<").append(t.toString()).append("/>").append(BR);
> >> +                               }
> >> +                       }
> >> +                       if (n.getNodeName().equalsIgnoreCase("h3")) {
> >> +                               needSection = true;
> >> +                       }
> >> +               }
> >> +       }
> >> +
> >> +
> >> +
> >> +
> >> +       /**
> >> +        * Writes a StringBuffer to file.
> >> +        * @param sb   The StringBuffer to write
> >> +        * @param file The file to write into
> >> +        * @throws IOException if writing throws an IOException
> >> +        */
> >> +       private void write(StringBuffer sb, File file)
> >throws IOException {
> >> +               FileWriter out = new FileWriter(file);
> >> +               out.write(sb.toString());
> >> +               out.close();
> >> +       }
> >> +
> >> +
> >> +
> >Javadoc:
> >> +       public void setDir(File dir) {
> >> +               this.dir = dir;
> >> +       }
> >> +
> >Javadoc:
> >> +       public void setManualDir(File manualDir) {
> >> +               this.manualDir = manualDir;
> >> +       }
> >> +
> >> +
> >> +
> >> +
> >> +       /**
> >> +        * This class encapsulates the information of a
> ><tt><a></tt> tag from a
> >> +        * toc-listing from the Ant manual.
> >> +        */
> >> +       public class Topic {
> >> +               /** <topic>s label attribute gets the value
> >from &lt;a>s text content. */
> >> +               String label;
> >> +               /** Internal value coming from &lt;a>s
> >target attribute. */
> >> +               String target;
> >> +               /** <topic>s href attribute gets the value
> >from &lt;a>s href attribute. */
> >> +               String href;
> >> +
> >> +               /**
> >> +                * Constructor analyzes a DOMNode and
> >creates a Topic object.
> >> +                * @param n the DOMNode
> >> +                */
> >> +               public Topic(Node n) {
> >> +                       Node item =
> >n.getAttributes().getNamedItem("href");
> >> +                       href   = (item!=null) ?
> >item.getTextContent() : "";
> >> +                       item =
> >n.getAttributes().getNamedItem("target");
> >> +                       target = (item!=null) ?
> >item.getTextContent() : "";
> >> +                       label  = n.getTextContent().trim();
> >> +               }
> >> +               /**
> >> +                * Checks the data against the three ignore-lists.
> >> +                * @return <i>true</i> if one (or more) of
> >the lists matches
> >> +                */
> >> +               public boolean isIgnorable() {
> >> +                       return ignoreLinks.contains(href)
> >> +                           || ignoreTargets.contains(target)
> >> +                           || ignoreText.contains(label);
> >> +               }
> >> +               /**
> >> +                * You have to create nested <topic>
> >elements if the link-target
> >> +                * would open the linked page in the
> >navigation frame. This method
> >> +                * does the check.
> >> +                * @return <i>true</i> if nestd <topic>
> >elements could come.
> >> +                */
> >> +               public boolean hasNestedTopics() {
> >> +                       return "navFrame".equals(target);
> >> +               }
> >> +               @Override
> >> +               public String toString() {
> >> +                       StringBuffer rv = new StringBuffer("topic");
> >> +                       if (label.length()>0) rv.append("
> >label=\"").append(label).append("\"");
> >> +                       if (href.length()>0 &&
> >!hasNestedTopics())  rv.append(" href=\"").append(href).append("\"");
> >> +                       return rv.toString().replaceAll("&",
> >"&amp;");
> >> +               }
> >> +       }
> >> +
> >> +}
> >>
> >> Propchange:
> >ant/sandbox/antlibs/manual4eclipse/src/main/org/apache/ant/manu
> >al4eclipse/Manual4EclipseTask.java
> >>
> >---------------------------------------------------------------
> >---------------
> >>     svn:eol-style = native
> >>
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
> >> For additional commands, e-mail: dev-help@ant.apache.org
> >>
> >>
> >
> ></whinemode>
> >
> >Cheers,
> >Peter
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
> >For additional commands, e-mail: dev-help@ant.apache.org
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
> For additional commands, e-mail: dev-help@ant.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org


Mime
View raw message