doh, patches with diff -u

Nathan Coast wrote:

> Hi,
> 
> latest version of the Jrefactory integration after feedback from maven-dev.
> 
> all modified files are as patch files.  All new files are for 
> jakarta-turbine-maven/src/java/org/apache/maven/sourcedef/
> 
> jrefactory.jar can be obtained from here and needs placing in lib.repo
> http://prdownloads.sourceforge.net/jrefactory/jrefactory-2.6.36-binary.zip
> 
> FYI, running the maven:pretty-print target reduces checksource errors 
> from 5K to 1K.
> 
> Outstanding issues:
> 
> when methods have static and final modifiers, Jrefactory orders them in 
> a way that generates a checksource error. bug has been logged with 
> jrefactory
> 
> What should the default brace location be? turbine-style or sun-style?
> 
> Should we be autogenerating javadoc? whilst reduces checkstyle errors, 
> doesn't neccessarily improve the code?
> 
> Should we autogenerate @author tags?  If a file is missing the @author 
> tag, the  user who runs the pretty-print task will have their username 
> inserted as the author.  Only a problem if there is a significant number 
> of files missing the @author tag.
> 
> Cheers
> Nathan
> 
> 
> ------------------------------------------------------------------------
> 
> Index: jakarta-turbine-maven/build.xml
> ===================================================================
> RCS file: /home/cvspublic/jakarta-turbine-maven/build.xml,v
> retrieving revision 1.37
> diff -r1.37 build.xml
> 149a150,153
> 
>>    
>>    <target name="maven:pretty-print">
>>      <ant antfile="${maven.home}/plugins/core/build.xml" target="pretty-print"/>
>>    </target>
>>
>>
>>------------------------------------------------------------------------
>>
>>Index: jakarta-turbine-maven/src/templates/build/plugins/core/build.xml
>>===================================================================
>>RCS file: 
>/home/cvspublic/jakarta-turbine-maven/src/templates/build/plugins/core/build.xml,v
>>retrieving revision 1.4
>>diff -r1.4 build.xml
>>331a332,374
>>
>>>  <!-- ================================================================== -->
>>>  <!-- JRefactory Pretty Print                                            -->
>>>  <!-- ================================================================== -->
>>>
>>>  <target
>>>    name="pretty-print"
>>>    depends="local-init, env"
>>>    description="modify code according to maven source definition">
>>>    
>>>    <taskdef 
>>>      name="prettyprintconfig"
>>>      classname="org.apache.maven.sourcedef.PrettyPrintConfigTask">
>>>      <classpath refid="maven-classpath"/>
>>>    </taskdef>
>>>    
>>>    <prettyprintconfig/>
>>>
>>>      <taskdef name="filesetfrompath" 
>>>        classname="org.apache.maven.ant.FileSetFromPath">
>>>      <classpath>
>>>        <path refid="maven-classpath"/>
>>>      </classpath>
>>>    </taskdef>
>>>
>>>    <filesetfrompath pathid="maven.src.set"
>>>        filesetid="maven.sourceDirectories.fileset"
>>>        includes="${maven.jrefactory.includes}"
>>>        excludes="${maven.jrefactory.excludes}"/>
>>>    
>>>    <taskdef 
>>>      name="prettyprint"
>>>      classname="org.acm.seguin.ant.Pretty">
>>>      <classpath refid="maven-classpath"/>
>>>    </taskdef>
>>>    
>>>    <prettyprint settingsDir="${maven.build.dir}">
>>>      <fileset refid="maven.sourceDirectories.fileset" />
>>>    </prettyprint>
>>>    
>>>  </target>
>>>
>>>
>>341a385,391
>>
>>>    <taskdef 
>>>      name="checkstyleconfig"
>>>      classname="org.apache.maven.sourcedef.CheckStyleConfigTask">
>>>      <classpath refid="maven-classpath"/>
>>>    </taskdef>
>>>
>>>
>>366,403c416,420
>><     <checkstyle
>><       lcurlyType="${maven.checkstyle.lcurly.type}"
>><       lcurlyMethod="${maven.checkstyle.lcurly.method}"
>><       lcurlyOther="${maven.checkstyle.lcurly.other}"
>><       rcurly="${maven.checkstyle.rcurly}"
>><       parenPad="${maven.checkstyle.paren.pad}"
>><       allowTabs="${maven.checkstyle.allow.tabs}"
>><       allowProtected="${maven.checkstyle.allow.protected}"
>><       allowPackage="${maven.checkstyle.allow.package}"
>><       allowNoAuthor="${maven.checkstyle.allow.no.author}"
>><       maxLineLen="${maven.checkstyle.max.line.len}"
>><       tabWidth="${maven.checkstyle.tab.width}"
>><       ignoreLineLengthPattern="${maven.checkstyle.ignore.line.len.pattern}"
>><       maxMethodLen="${maven.checkstyle.max.method.len}"
>><       maxConstructorLen="${maven.checkstyle.max.constructor.len}"
>><       maxFileLen="${maven.checkstyle.max.file.len}"
>><       ignoreImportLen="${maven.checkstyle.ignore.import.len}"
>><       memberPattern="${maven.checkstyle.member.pattern}"
>><       publicMemberPattern="${maven.checkstyle.public.member.pattern}"
>><       paramPattern="${maven.checkstyle.param.pattern}"
>><       constPattern="${maven.checkstyle.const.pattern}"
>><       staticPattern="${maven.checkstyle.static.pattern}"
>><       typePattern="${maven.checkstyle.type.pattern}"
>><       methodPattern="${maven.checkstyle.method.pattern}"
>><       localVarPattern="${maven.checkstyle.local.var.pattern}"
>><       headerFile="${maven.checkstyle.header.file}"
>><       headerLinesRegexp="${maven.checkstyle.header.lines.regexp}"
>><       headerIgnoreLine="${maven.checkstyle.header.ignore.line}"
>><       javadocScope="${maven.checkstyle.javadoc.scope}"
>><       requirePackageHtml="${maven.checkstyle.require.package.html}"
>><       ignoreImports="${maven.checkstyle.ignore.imports}"
>><       illegalImports="${maven.checkstyle.illegal.imports}"
>><       ignoreWhitespace="${maven.checkstyle.ignore.whitespace}"
>><       ignoreCastWhitespace="${maven.checkstyle.ignore.cast.whitespace}"
>><       ignoreBraces="${maven.checkstyle.ignore.braces}"
>><       ignorePublicInInterface="${maven.checkstyle.ignore.public.in.interface}"
>><       failOnViolation="${maven.checkstyle.fail.on.violation}"
>><       cacheFile="${maven.checkstyle.cache.file}" >
>>---
>>
>>>    <checkstyleconfig/>
>>>    
>>>    <checkstyle 
>>>        properties="${maven.checkstyle.dir}/CheckStyleConfig.properties" 
>>>        failOnViolation="${maven.checkstyle.fail.on.violation}">
>>>
>>405,406c422,423
>><       <formatter type="xml" toFile="${maven.build.dir}/checkstyle-raw-report.xml"/>
>><       <formatter type="plain" 
>toFile="${maven.build.dir}/checkstyle-raw-report.txt"/>
>>---
>>
>>>      <formatter type="xml" 
>toFile="${maven.checkstyle.dir}/checkstyle-raw-report.xml"/>
>>>      <formatter type="plain" 
>toFile="${maven.checkstyle.dir}/checkstyle-raw-report.txt"/>
>>>
>>413,414c430,431
>><       in="${maven.build.dir}/checkstyle-raw-report.xml"
>><       out="${maven.gen.docs}/checkstyle-report.xml">
>>---
>>
>>>      in="${maven.checkstyle.dir}/checkstyle-raw-report.xml"
>>>      out="${maven.checkstyle.dir}/checkstyle-report.xml">
>>>
>>>
>>>------------------------------------------------------------------------
>>>
>>>Index: jakarta-turbine-maven/src/templates/build/plugins/core/default.properties
>>>===================================================================
>>>RCS file: 
>/home/cvspublic/jakarta-turbine-maven/src/templates/build/plugins/core/default.properties,v
>>>retrieving revision 1.4
>>>diff -r1.4 default.properties
>>>77a78,90
>>>
>>>># source definition properties. if not set, default values below are 
>>>># set by org.apache.maven.sourcedef.SourceDefinition
>>>># 
>>>>
>>>>#maven.sourcedef.class.brace.style=PASCAL
>>>>#maven.sourcedef.method.brace.style=PASCAL
>>>>#maven.sourcedef.block.brace.style=PASCAL
>>>>#maven.sourcedef.keyword.location.right.brace=alone
>>>>#maven.sourcedef.max.line.len=80
>>>>#maven.sourcedef.header.file=LICENSE.txt
>>>>#maven.sourcedef.allow.tabs=false
>>>>
>>>>#
>>>>
>>>80a94
>>>
>>>>maven.checkstyle.dir=${maven.build.dir}/checkstyle
>>>>
>>>83,86d96
>>>< maven.checkstyle.lcurly.type = nl
>>>< maven.checkstyle.lcurly.method = nl
>>>< maven.checkstyle.lcurly.other = nl
>>>< maven.checkstyle.rcurly = alone
>>>88d97
>>>< maven.checkstyle.allow.tabs = false
>>>92d100
>>>< maven.checkstyle.max.line.len = 80
>>>107d114
>>>< maven.checkstyle.header.file = LICENSE.txt
>>>109c116
>>>< maven.checkstyle.header.ignore.line = 1,6
>>>---
>>>
>>>>maven.checkstyle.header.ignore.line=
>>>>
>>>119c126,213
>>>< maven.checkstyle.cache.file = ${maven.build.dir}/checkstyle-cachefile
>>>---
>>>
>>>>maven.checkstyle.cache.file = ${maven.checkstyle.dir}/checkstyle-cachefile
>>>>
>>>>#
>>>># jrefactroy properties
>>>>#
>>>>
>>>>maven.jrefactory.includes=**/*.java
>>>>maven.jrefactory.excludes=
>>>>maven.jrefactory.version=3.8
>>>>maven.jrefactory.indent=4
>>>>maven.jrefactory.indent.char=space
>>>>maven.jrefactory.expr.space=false
>>>>maven.jrefactory.lines.between=2
>>>>maven.jrefactory.cast.space=true
>>>>maven.jrefactory.cast.force.nospace=false
>>>>maven.jrefactory.surprise.return=double
>>>>maven.jrefactory.throws.newline=false
>>>>maven.jrefactory.field.name.indent=-1
>>>>maven.jrefactory.end.line=CRNL
>>>>maven.jrefactory.variable.spacing=single
>>>>maven.jrefactory.dynamic.variable.spacing=1
>>>>maven.jrefactory.variable.align.with.block=false
>>>>maven.jrefactory.case.indent=4
>>>>maven.jrefactory.keyword.space=true
>>>>maven.jrefactory.insert.space.around.local.variables=false
>>>>maven.jrefactory.lines.after.package=1
>>>>maven.jrefactory.maintain.newlines.around.imports=true
>>>>maven.jrefactory.lines.before.class=0
>>>>maven.jrefactory.indent.in.initializer=false
>>>>maven.jrefactory.bang.space=false
>>>>maven.jrefactory.method.space=false
>>>>maven.jrefactory.cast.inside.space=false
>>>>maven.jrefactory.space.around.ops=true
>>>>maven.jrefactory.force.block=true
>>>>maven.jrefactory.empty.block.single.line=true
>>>>maven.jrefactory.remove.excess.blocks=false
>>>>maven.jrefactory.singleline.comment.ownline=true
>>>>maven.jrefactory.singleline.comment.absoluteindent=0
>>>>maven.jrefactory.singleline.comment.incrementalindent=0
>>>>maven.jrefactory.singleline.comment.indentstyle.shared=incremental
>>>>maven.jrefactory.singleline.comment.indentstyle.ownline=code
>>>>maven.jrefactory.c.style.format=align.star
>>>>maven.jrefactory.c.style.indent=2
>>>>maven.jrefactory.method.minimum=all
>>>>maven.jrefactory.field.minimum=protected
>>>>maven.jrefactory.class.minimum=all
>>>>maven.jrefactory.javadoc.star=2
>>>>maven.jrefactory.javadoc.wordwrap.min=40
>>>>maven.jrefactory.space.before.javadoc=true
>>>>maven.jrefactory.javadoc.id.lineup=true
>>>>maven.jrefactory.javadoc.indent=2
>>>>maven.jrefactory.reformat.comments=true
>>>>maven.jrefactory.exception.tag.name=@exception
>>>>maven.jrefactory.document.nested.classes=true
>>>>maven.jrefactory.allow.singleline.javadoc=false
>>>>maven.jrefactory.keep.all.javadoc=false
>>>>maven.jrefactory.class.descr=Description of the Class
>>>>maven.jrefactory.interface.descr=Description of the Interface
>>>>maven.jrefactory.constructor.descr=Constructor for the {0} object
>>>>maven.jrefactory.method.descr=Description of the Method
>>>>maven.jrefactory.getter.descr=Gets the {3} attribute of the {1} {2}
>>>>maven.jrefactory.getter.return.descr=The {3} value
>>>>maven.jrefactory.setter.descr=Sets the {3} attribute of the {1} {2}
>>>>maven.jrefactory.setter.param.descr=The new {3} value
>>>>maven.jrefactory.field.descr=Description of the Field
>>>>maven.jrefactory.run.descr=Main processing method for the {1} {2}
>>>>maven.jrefactory.main.descr=The main program for the {1} {2}
>>>>maven.jrefactory.main.param.descr=The command line arguments
>>>>maven.jrefactory.adder.descr=Adds a feature to the {0} attribute of the {1} {2}
>>>>maven.jrefactory.adder.param.descr=The feature to be added to the {0} attribute
>>>>maven.jrefactory.junit.setUp.descr=The JUnit setup method
>>>>maven.jrefactory.junit.test.descr=A unit test for JUnit
>>>>maven.jrefactory.junit.tearDown.descr=The teardown method for JUnit
>>>>maven.jrefactory.junit.suite.descr=A unit test suite for JUnit
>>>>maven.jrefactory.junit.suite.return.descr=The test suite
>>>>maven.jrefactory.author.descr={0}
>>>>maven.jrefactory.created.descr={1}
>>>>maven.jrefactory.param.descr=Description of the Parameter
>>>>maven.jrefactory.return.descr=Description of the Return Value
>>>>maven.jrefactory.exception.descr=Description of the Exception
>>>>maven.jrefactory.class.tags=created
>>>>maven.jrefactory.method.tags=param,return,exception
>>>>maven.jrefactory.field.tags=
>>>>maven.jrefactory.char.stream.type=1
>>>>maven.jrefactory.pretty.printer.backup.ext=
>>>>maven.jrefactory.sort.top=false
>>>>maven.jrefactory.import.sort.important=
>>>>maven.jrefactory.import.sort.neighbourhood=0
>>>>
>>>>
>>>>------------------------------------------------------------------------
>>>>
>>>>Index: jakarta-turbine-maven/jars.list
>>>>===================================================================
>>>>RCS file: /home/cvspublic/jakarta-turbine-maven/jars.list,v
>>>>retrieving revision 1.9
>>>>diff -r1.9 jars.list
>>>>41a42
>>>>
>>>>>jrefactory.jar
>>>>>
>>>>>
>>>>>------------------------------------------------------------------------
>>>>>
>>>>>Index: jakarta-turbine-maven/project.xml
>>>>>===================================================================
>>>>>RCS file: /home/cvspublic/jakarta-turbine-maven/project.xml,v
>>>>>retrieving revision 1.80
>>>>>diff -r1.80 project.xml
>>>>>329a330,338
>>>>>
>>>>>>    <dependency>
>>>>>>      <name>jrefactory</name>
>>>>>>      <type>required</type>
>>>>>>      <version>2.6.36</version>
>>>>>>      <jar>jrefactory.jar</jar>
>>>>>>      <url>http://jrefactory.sourceforge.net/chrissoft.html</url>
>>>>>>    </dependency>
>>>>>>
>>>>>>
>>>>>>
>>>>>>------------------------------------------------------------------------
>>>>>>
>>>>>>
>>>>>>
>>>>>>/* ====================================================================
>>>>>> * The Apache Software License, Version 1.1
>>>>>> *
>>>>>> * Copyright (c) 2001 The Apache Software Foundation.  All rights
>>>>>> * reserved.
>>>>>> *
>>>>>> * Redistribution and use in source and binary forms, with or without
>>>>>> * modification, are permitted provided that the following conditions
>>>>>> * are met:
>>>>>> *
>>>>>> * 1. Redistributions of source code must retain the above copyright
>>>>>> *    notice, this list of conditions and the following disclaimer.
>>>>>> *
>>>>>> * 2. Redistributions in binary form must reproduce the above copyright
>>>>>> *    notice, this list of conditions and the following disclaimer in
>>>>>> *    the documentation and/or other materials provided with the
>>>>>> *    distribution.
>>>>>> *
>>>>>> * 3. The end-user documentation included with the redistribution,
>>>>>> *    if any, must include the following acknowledgment:
>>>>>> *       "This product includes software developed by the
>>>>>> *        Apache Software Foundation (http://www.apache.org/)."
>>>>>> *    Alternately, this acknowledgment may appear in the software itself,
>>>>>> *    if and wherever such third-party acknowledgments normally appear.
>>>>>> *
>>>>>> * 4. The names "Apache" and "Apache Software Foundation" and
>>>>>> *    "Apache Maven" must not be used to endorse or promote products
>>>>>> *    derived from this software without prior written permission. For
>>>>>> *    written permission, please contact [EMAIL PROTECTED]
>>>>>> *
>>>>>> * 5. Products derived from this software may not be called "Apache",
>>>>>> *    "Apache Maven", nor may "Apache" appear in their name, without
>>>>>> *    prior written permission of the Apache Software Foundation.
>>>>>> *
>>>>>> * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
>>>>>> * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
>>>>>> * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
>>>>>> * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
>>>>>> * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
>>>>>> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
>>>>>> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
>>>>>> * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
>>>>>> * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
>>>>>> * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
>>>>>> * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
>>>>>> * SUCH DAMAGE.
>>>>>> * ====================================================================
>>>>>> *
>>>>>> * This software consists of voluntary contributions made by many
>>>>>> * individuals on behalf of the Apache Software Foundation.  For more
>>>>>> * information on the Apache Software Foundation, please see
>>>>>> * <http://www.apache.org/>.
>>>>>> *
>>>>>> * ====================================================================
>>>>>> */
>>>>>>package org.apache.maven.sourcedef;
>>>>>>
>>>>>>import java.io.File;
>>>>>>import com.puppycrawl.tools.checkstyle.CheckStyleTask;
>>>>>>import org.apache.tools.ant.BuildException;
>>>>>>import org.apache.tools.ant.Task;
>>>>>>import org.apache.tools.ant.Project;
>>>>>>import java.io.FileOutputStream;
>>>>>>import java.io.IOException;
>>>>>>import java.util.Hashtable;
>>>>>>import java.util.Properties;
>>>>>>import java.util.Iterator;
>>>>>>
>>>>>>/**
>>>>>> *  task responsible for writing the checkstyle config file by combining
>>>>>> *  properties with these prefixes maven.sourcedef and maven.checkstyle. generic
>>>>>> *  maven.sourcedef properties are converted to checkstyle counterpart. For
>>>>>> *  allowed properties and conversions see the {@link org.apache.maven.sourcedef
>>>>>> *  package description}.
>>>>>> *
>>>>>> * @created    28 May 2002
>>>>>> * @author     Nathan Coast ([EMAIL PROTECTED])
>>>>>> */
>>>>>>public class CheckStyleConfigTask extends Task {
>>>>>>
>>>>>>    /**
>>>>>>     *  checkstyle property name for the class brace style property
>>>>>>     */
>>>>>>    private final static String CLASS_BRACE_STYLE_KEY = "checkstyle.lcurly.type";
>>>>>>
>>>>>>    /**
>>>>>>     *  checkstyle property name for the method brace style property
>>>>>>     */
>>>>>>    private final static String METHOD_BRACE_STYLE_KEY = 
>"checkstyle.lcurly.method";
>>>>>>
>>>>>>    /**
>>>>>>     *  checkstyle property name for the all other brace styles
>>>>>>     */
>>>>>>    private final static String OTHER_BRACE_STYLE_KEY = 
>"checkstyle.lcurly.other";
>>>>>>
>>>>>>    /**
>>>>>>     *  checkstyle property name for the location of keyword relative to right
>>>>>>     *  brace.
>>>>>>     */
>>>>>>    private final static String RIGHT_BRACE_KEYWORD_LOCATION_KEY =
>>>>>>            "checkstyle.rcurly";
>>>>>>
>>>>>>    /**
>>>>>>     *  checkstyle property name for allow tabs property
>>>>>>     */
>>>>>>    private final static String ALLOW_TABS_KEY = "checkstyle.allow.tabs";
>>>>>>
>>>>>>    /**
>>>>>>     *  checkstyle property name for max line lenght property
>>>>>>     */
>>>>>>    private final static String MAX_LINE_LENGTH_KEY = "checkstyle.maxlinelen";
>>>>>>
>>>>>>    /**
>>>>>>     *  checkstyle property name for header file property
>>>>>>     */
>>>>>>    private final static String HEADER_FILE_KEY = "checkstyle.header.file";
>>>>>>
>>>>>>    /**
>>>>>>     *  eol left brace style value
>>>>>>     */
>>>>>>    private final static String LEFT_CURLY_EOL = "eol";
>>>>>>
>>>>>>    /**
>>>>>>     *  nl left brace style value
>>>>>>     */
>>>>>>    private final static String LEFT_CURLY_NL = "nl";
>>>>>>
>>>>>>    /**
>>>>>>     *  name of the generated checkstyle config file
>>>>>>     */
>>>>>>    private final static String CONFIG_FILENAME = "CheckStyleConfig.properties";
>>>>>>
>>>>>>    /**
>>>>>>     *  prefix for checkstyle properties in default.properties
>>>>>>     */
>>>>>>    private final static String CHECKSTYLE_PROP_PREFIX = "maven.checkstyle.";
>>>>>>
>>>>>>
>>>>>>    /**
>>>>>>     *  execute method to combine the maven.checkstyle properties with converted
>>>>>>     *  maven.sourcedef properties and write them to
>>>>>>     *  ${maven.checkstyle.dir}/CheckStyleConfig.properties
>>>>>>     *
>>>>>>     * @exception  BuildException  Description of the Exception
>>>>>>     */
>>>>>>    public void execute() throws BuildException {
>>>>>>
>>>>>>        Project project = getProject();
>>>>>>
>>>>>>        Hashtable props = project.getProperties();
>>>>>>
>>>>>>        String checkstyleDirStr = (String) props.get("maven.checkstyle.dir");
>>>>>>        File checkstyleDir = new File(checkstyleDirStr);
>>>>>>        if (!checkstyleDir.exists()) {
>>>>>>            if (!checkstyleDir.mkdir()) {
>>>>>>                throw new BuildException("unable to create checkstyle directory: 
>"
>>>>>>                        + checkstyleDir);
>>>>>>            }
>>>>>>        }
>>>>>>        File configFile = new File(checkstyleDir, CONFIG_FILENAME);
>>>>>>        Properties config = new Properties();
>>>>>>        Iterator it = props.keySet().iterator();
>>>>>>        while (it.hasNext()) {
>>>>>>            String key = (String) it.next();
>>>>>>            if (key.startsWith(CHECKSTYLE_PROP_PREFIX)) {
>>>>>>                config.put(key.substring(6), props.get(key));
>>>>>>            }
>>>>>>        }
>>>>>>
>>>>>>        SourceDefinition.setProjectProperties(getProject().getProperties());
>>>>>>        String classBraceStyle = SourceDefinition.getClassBraceStyle();
>>>>>>        classBraceStyle = convertLeftBraceType(classBraceStyle);
>>>>>>        config.put(CLASS_BRACE_STYLE_KEY, classBraceStyle);
>>>>>>
>>>>>>        String methodBraceStyle = SourceDefinition.getMethodBraceStyle();
>>>>>>        methodBraceStyle = convertLeftBraceType(methodBraceStyle);
>>>>>>        config.put(METHOD_BRACE_STYLE_KEY, methodBraceStyle);
>>>>>>
>>>>>>        String blockBraceStyle = SourceDefinition.getBlockBraceStyle();
>>>>>>        blockBraceStyle = convertLeftBraceType(blockBraceStyle);
>>>>>>        config.put(OTHER_BRACE_STYLE_KEY, blockBraceStyle);
>>>>>>
>>>>>>        config.put(RIGHT_BRACE_KEYWORD_LOCATION_KEY,
>>>>>>                SourceDefinition.getKeywordLocationRightBrace());
>>>>>>
>>>>>>        config.put(ALLOW_TABS_KEY, "" + SourceDefinition.getAllowTabs());
>>>>>>
>>>>>>        config.put(MAX_LINE_LENGTH_KEY, "" + 
>SourceDefinition.getMaxLineLength());
>>>>>>
>>>>>>        File headerFile = SourceDefinition.getHeaderFile();
>>>>>>        if (headerFile.exists() && headerFile.canRead() && headerFile.isFile()) {
>>>>>>            config.put(HEADER_FILE_KEY, headerFile.toString());
>>>>>>        }
>>>>>>
>>>>>>        FileOutputStream fos = null;
>>>>>>        try {
>>>>>>            fos = new FileOutputStream(configFile);
>>>>>>            config.store(fos, "this is a generated file do not edit");
>>>>>>        } catch (IOException e) {
>>>>>>            throw new BuildException(e);
>>>>>>        } finally {
>>>>>>            if (fos != null) {
>>>>>>                try {
>>>>>>                    fos.close();
>>>>>>                } catch (IOException e) {
>>>>>>                    e.printStackTrace();
>>>>>>                }
>>>>>>            }
>>>>>>        }
>>>>>>    }
>>>>>>
>>>>>>
>>>>>>    /**
>>>>>>     *  utility to convert between maven.sourcedef properties and checkstyle.
>>>>>>     *  properties for the left brace style.
>>>>>>     *
>>>>>>     * @param  type  the maven.sourcedef property to convert
>>>>>>     * @return       the maven.sourcedef property converted to checkstyle
>>>>>>     *      property.
>>>>>>     */
>>>>>>    private static String convertLeftBraceType(String type) {
>>>>>>
>>>>>>        String convertedType = null;
>>>>>>        if (SourceDefinition.BRACE_STYLE_C.equals(type)) {
>>>>>>            convertedType = LEFT_CURLY_EOL;
>>>>>>        } else if (SourceDefinition.BRACE_STYLE_PASCAL.equals(type)) {
>>>>>>            convertedType = LEFT_CURLY_NL;
>>>>>>        } else {
>>>>>>            throw new BuildException("Unknown left brace type " + type);
>>>>>>        }
>>>>>>        return convertedType;
>>>>>>    }
>>>>>>}
>>>>>>
>>>>>>
>>>>>>------------------------------------------------------------------------
>>>>>>
>>>>>>
>>>>>>
>>>>>>/* ====================================================================
>>>>>> * The Apache Software License, Version 1.1
>>>>>> *
>>>>>> * Copyright (c) 2001 The Apache Software Foundation.  All rights
>>>>>> * reserved.
>>>>>> *
>>>>>> * Redistribution and use in source and binary forms, with or without
>>>>>> * modification, are permitted provided that the following conditions
>>>>>> * are met:
>>>>>> *
>>>>>> * 1. Redistributions of source code must retain the above copyright
>>>>>> *    notice, this list of conditions and the following disclaimer.
>>>>>> *
>>>>>> * 2. Redistributions in binary form must reproduce the above copyright
>>>>>> *    notice, this list of conditions and the following disclaimer in
>>>>>> *    the documentation and/or other materials provided with the
>>>>>> *    distribution.
>>>>>> *
>>>>>> * 3. The end-user documentation included with the redistribution,
>>>>>> *    if any, must include the following acknowledgment:
>>>>>> *       "This product includes software developed by the
>>>>>> *        Apache Software Foundation (http://www.apache.org/)."
>>>>>> *    Alternately, this acknowledgment may appear in the software itself,
>>>>>> *    if and wherever such third-party acknowledgments normally appear.
>>>>>> *
>>>>>> * 4. The names "Apache" and "Apache Software Foundation" and
>>>>>> *    "Apache Maven" must not be used to endorse or promote products
>>>>>> *    derived from this software without prior written permission. For
>>>>>> *    written permission, please contact [EMAIL PROTECTED]
>>>>>> *
>>>>>> * 5. Products derived from this software may not be called "Apache",
>>>>>> *    "Apache Maven", nor may "Apache" appear in their name, without
>>>>>> *    prior written permission of the Apache Software Foundation.
>>>>>> *
>>>>>> * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
>>>>>> * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
>>>>>> * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
>>>>>> * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
>>>>>> * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
>>>>>> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
>>>>>> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
>>>>>> * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
>>>>>> * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
>>>>>> * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
>>>>>> * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
>>>>>> * SUCH DAMAGE.
>>>>>> * ====================================================================
>>>>>> *
>>>>>> * This software consists of voluntary contributions made by many
>>>>>> * individuals on behalf of the Apache Software Foundation.  For more
>>>>>> * information on the Apache Software Foundation, please see
>>>>>> * <http://www.apache.org/>.
>>>>>> *
>>>>>> * ====================================================================
>>>>>> */
>>>>>>package org.apache.maven.sourcedef;
>>>>>>
>>>>>>import org.apache.tools.ant.Task;
>>>>>>import org.apache.tools.ant.BuildException;
>>>>>>import org.apache.tools.ant.Project;
>>>>>>import java.util.Properties;
>>>>>>import java.util.Iterator;
>>>>>>import java.util.Set;
>>>>>>import java.util.Hashtable;
>>>>>>import java.io.File;
>>>>>>import java.io.FileInputStream;
>>>>>>import java.io.FileOutputStream;
>>>>>>import java.io.IOException;
>>>>>>import java.io.BufferedReader;
>>>>>>import java.io.FileReader;
>>>>>>
>>>>>>/**
>>>>>> *  task responsible for writing the Jrefactory pretty print config file by
>>>>>> *  combining properties with these prefixes maven.sourcedef and
>>>>>> *  maven.jrefactory. Generic maven.sourcedef properties are converted to their
>>>>>> *  jrefactory counterparts. For allowed properties and conversions see the
>>>>>> *  {@link org.apache.maven.sourcedef package description}.
>>>>>> *
>>>>>> * @created    28 May 2002
>>>>>> * @author     Nathan Coast ([EMAIL PROTECTED])
>>>>>> */
>>>>>>public class PrettyPrintConfigTask extends Task {
>>>>>>
>>>>>>    /**
>>>>>>     *  jrefactory property name for the catch start line property
>>>>>>     */
>>>>>>    private final static String CATCH_START_LINE = "catch.start.line";
>>>>>>
>>>>>>    /**
>>>>>>     *  jrefactory property name for the else start line property
>>>>>>     */
>>>>>>    private final static String ELSE_START_LINE = "else.start.line";
>>>>>>
>>>>>>    /**
>>>>>>     *  jrefactory property name for the block property
>>>>>>     */
>>>>>>    private final static String BLOCK_STYLE = "block.style";
>>>>>>
>>>>>>    /**
>>>>>>     *  jrefactory property name for the method block style property
>>>>>>     */
>>>>>>    private final static String METHOD_BLOCK_STYLE = "method.block.style";
>>>>>>
>>>>>>    /**
>>>>>>     *  jrefactory property name for the class block style property
>>>>>>     */
>>>>>>    private final static String CLASS_BLOCK_STYLE = "class.block.style";
>>>>>>
>>>>>>    /**
>>>>>>     *  jrefactory property name for the javadoc wordwrap property
>>>>>>     */
>>>>>>    private final static String JAVADOC_WORDWRAP_MAX = "javadoc.wordwrap.max";
>>>>>>
>>>>>>    /**
>>>>>>     *  allowed 'space' value for the indent char property
>>>>>>     */
>>>>>>    private final static String SPACE = "space";
>>>>>>
>>>>>>    /**
>>>>>>     *  allowed 'tab' value for the indent char property
>>>>>>     */
>>>>>>    private final static String TAB = "tab";
>>>>>>
>>>>>>    /**
>>>>>>     *  jrefactory property name for the indent char property
>>>>>>     */
>>>>>>    private final static String INDENT_CHAR = "indent.char";
>>>>>>
>>>>>>    /**
>>>>>>     *  prefix for jrefactory specific propeties
>>>>>>     */
>>>>>>    private final static String JREFACTORY_PROP_PREFIX = "maven.jrefactory.";
>>>>>>
>>>>>>
>>>>>>    /**
>>>>>>     *  execute method to combine the maven.jrefactory properties with converted
>>>>>>     *  maven.sourcedef properties and write them to the file
>>>>>>     *  ${maven.build.dir}/.Refactory/pretty.settings
>>>>>>     *
>>>>>>     * @exception  BuildException  Description of the Exception
>>>>>>     */
>>>>>>    public void execute() throws BuildException {
>>>>>>
>>>>>>        Hashtable props = getProject().getProperties();
>>>>>>
>>>>>>        SourceDefinition.setProjectProperties(props);
>>>>>>
>>>>>>        Properties config = new Properties();
>>>>>>        Iterator it = props.keySet().iterator();
>>>>>>        while (it.hasNext()) {
>>>>>>            String key = (String) it.next();
>>>>>>            if (key.startsWith(JREFACTORY_PROP_PREFIX)) {
>>>>>>                config.put(key.substring(JREFACTORY_PROP_PREFIX.length()),
>>>>>>                        props.get(key));
>>>>>>            }
>>>>>>        }
>>>>>>
>>>>>>        String buildDirStr = (String) props.get("maven.build.dir");
>>>>>>        File buildDir = new File(buildDirStr);
>>>>>>        File prettyDir = new File(buildDir, ".Refactory");
>>>>>>        if (!prettyDir.exists()) {
>>>>>>            if (!prettyDir.mkdir()) {
>>>>>>                throw new BuildException(
>>>>>>                        "unable to create jrefactory pretty print config 
>directory: "
>>>>>>                        + prettyDir);
>>>>>>            }
>>>>>>        }
>>>>>>        File prettySettings = new File(prettyDir, "pretty.settings");
>>>>>>
>>>>>>        if (prettySettings.exists()) {
>>>>>>            prettySettings.delete();
>>>>>>        }
>>>>>>
>>>>>>        FileOutputStream fos = null;
>>>>>>        try {
>>>>>>
>>>>>>            String classBlockStyle = SourceDefinition.getClassBraceStyle();
>>>>>>            config.put(CLASS_BLOCK_STYLE, classBlockStyle);
>>>>>>
>>>>>>            String methodBlockStyle = SourceDefinition.getMethodBraceStyle();
>>>>>>            config.put(METHOD_BLOCK_STYLE, methodBlockStyle);
>>>>>>
>>>>>>            String blockStyle = SourceDefinition.getBlockBraceStyle();
>>>>>>            config.put(BLOCK_STYLE, blockStyle);
>>>>>>
>>>>>>            String keyLoc = SourceDefinition.getKeywordLocationRightBrace();
>>>>>>            String catchStartLine = convertKeywordLocationRightBrace(keyLoc);
>>>>>>            config.put(CATCH_START_LINE, catchStartLine);
>>>>>>            config.put(ELSE_START_LINE, catchStartLine);
>>>>>>
>>>>>>            File headerFile = SourceDefinition.getHeaderFile();
>>>>>>            populateHeaderFile(headerFile, config);
>>>>>>
>>>>>>            int javadocWordwrapMax = SourceDefinition.getMaxLineLength();
>>>>>>            config.put(JAVADOC_WORDWRAP_MAX, "" + javadocWordwrapMax);
>>>>>>
>>>>>>            boolean allowTabs = SourceDefinition.getAllowTabs();
>>>>>>            String indentChar = convertAllowTabs(allowTabs);
>>>>>>            config.put(INDENT_CHAR, indentChar);
>>>>>>
>>>>>>            /*
>>>>>>             *  if(SourceDefinition.getFollowJlsOrder()){
>>>>>>             *  
>config.put("sort.1","Type(Field,Constructor,Method,NestedClass,NestedInterface,Initializer)");
>>>>>>             *  config.put("sort.2","Class(Instance,Static)");
>>>>>>             *  config.put("sort.3","Method(setter,getter,other)");
>>>>>>             *  config.put("sort.4","Final(top)");
>>>>>>             *  config.put("sort.5","Protection(public)");
>>>>>>             *  config.put("sort.6","Bean()");
>>>>>>             *  config.put("sort.7","Alphabetical()");
>>>>>>             *  config.put("sort.8","FieldInitializers()");
>>>>>>             *  }
>>>>>>             */
>>>>>>            //File tmpPrettyProps = new File("tmpPrettyProps.settings");
>>>>>>            fos = new FileOutputStream(prettySettings);
>>>>>>            config.store(fos, "this is a generated file do not edit");
>>>>>>        } catch (IOException e) {
>>>>>>            throw new BuildException(e);
>>>>>>        } finally {
>>>>>>            if (fos != null) {
>>>>>>                try {
>>>>>>                    fos.close();
>>>>>>                } catch (IOException e) {
>>>>>>                    e.printStackTrace();
>>>>>>                }
>>>>>>            }
>>>>>>        }
>>>>>>    }
>>>>>>
>>>>>>
>>>>>>    /**
>>>>>>     *  method to convert property from 
>maven.sourcedef.keyword.location.right.brace
>>>>>>     *  to jrefactory property values.
>>>>>>     *
>>>>>>     * @param  location  the maven.sourcdef property
>>>>>>     * @return           the property converted to a jrefactory property
>>>>>>     */
>>>>>>    private static String convertKeywordLocationRightBrace(String location) {
>>>>>>        String convertedLocation = null;
>>>>>>        if (SourceDefinition.KEYWORD_LOCATION_RIGHT_BRACE_SAME.equals(location)) 
>{
>>>>>>            convertedLocation = "false";
>>>>>>        } else if 
>(SourceDefinition.KEYWORD_LOCATION_RIGHT_BRACE_ALONE.equals(location)) {
>>>>>>            convertedLocation = "true";
>>>>>>        } else {
>>>>>>            throw new BuildException("Unrecognised keyword location " + 
>location);
>>>>>>        }
>>>>>>        return convertedLocation;
>>>>>>    }
>>>>>>
>>>>>>
>>>>>>    /**
>>>>>>     *  method to read the header file and populate the contents of the file
>>>>>>     *  into the properties using the property names 'header.[line_num]'
>>>>>>     *
>>>>>>     * @param  headerFile       the headerFile
>>>>>>     * @param  props            the properties to load the header file into.
>>>>>>     * @exception  IOException  Description of the Exception
>>>>>>     */
>>>>>>    private static void populateHeaderFile(File headerFile, Properties props)
>>>>>>             throws IOException {
>>>>>>
>>>>>>        FileReader fr = new FileReader(headerFile);
>>>>>>        BufferedReader br = new BufferedReader(fr);
>>>>>>
>>>>>>        String str = null;
>>>>>>        int count = 0;
>>>>>>        while ((str = br.readLine()) != null) {
>>>>>>            count++;
>>>>>>            String headerLine = "header." + count;
>>>>>>            props.put(headerLine, str);
>>>>>>        }
>>>>>>    }
>>>>>>
>>>>>>
>>>>>>    /**
>>>>>>     *  method to convert the maven.sourcedef.allow.tabs property to the
>>>>>>     *  appropriate jrefactory property
>>>>>>     *
>>>>>>     * @param  allowTabs  the maven.sourcedef.allow.tabs property
>>>>>>     * @return            allow tabs property converted to jrefactory property
>>>>>>     */
>>>>>>    private static String convertAllowTabs(boolean allowTabs) {
>>>>>>        String indentChar = null;
>>>>>>        if (allowTabs) {
>>>>>>            indentChar = TAB;
>>>>>>        } else {
>>>>>>            indentChar = SPACE;
>>>>>>        }
>>>>>>        return indentChar;
>>>>>>    }
>>>>>>}
>>>>>>
>>>>>>
>>>>>>------------------------------------------------------------------------
>>>>>>
>>>>>>
>>>>>>
>>>>>>/* ====================================================================
>>>>>> * The Apache Software License, Version 1.1
>>>>>> *
>>>>>> * Copyright (c) 2001 The Apache Software Foundation.  All rights
>>>>>> * reserved.
>>>>>> *
>>>>>> * Redistribution and use in source and binary forms, with or without
>>>>>> * modification, are permitted provided that the following conditions
>>>>>> * are met:
>>>>>> *
>>>>>> * 1. Redistributions of source code must retain the above copyright
>>>>>> *    notice, this list of conditions and the following disclaimer.
>>>>>> *
>>>>>> * 2. Redistributions in binary form must reproduce the above copyright
>>>>>> *    notice, this list of conditions and the following disclaimer in
>>>>>> *    the documentation and/or other materials provided with the
>>>>>> *    distribution.
>>>>>> *
>>>>>> * 3. The end-user documentation included with the redistribution,
>>>>>> *    if any, must include the following acknowledgment:
>>>>>> *       "This product includes software developed by the
>>>>>> *        Apache Software Foundation (http://www.apache.org/)."
>>>>>> *    Alternately, this acknowledgment may appear in the software itself,
>>>>>> *    if and wherever such third-party acknowledgments normally appear.
>>>>>> *
>>>>>> * 4. The names "Apache" and "Apache Software Foundation" and
>>>>>> *    "Apache Maven" must not be used to endorse or promote products
>>>>>> *    derived from this software without prior written permission. For
>>>>>> *    written permission, please contact [EMAIL PROTECTED]
>>>>>> *
>>>>>> * 5. Products derived from this software may not be called "Apache",
>>>>>> *    "Apache Maven", nor may "Apache" appear in their name, without
>>>>>> *    prior written permission of the Apache Software Foundation.
>>>>>> *
>>>>>> * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
>>>>>> * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
>>>>>> * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
>>>>>> * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
>>>>>> * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
>>>>>> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
>>>>>> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
>>>>>> * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
>>>>>> * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
>>>>>> * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
>>>>>> * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
>>>>>> * SUCH DAMAGE.
>>>>>> * ====================================================================
>>>>>> *
>>>>>> * This software consists of voluntary contributions made by many
>>>>>> * individuals on behalf of the Apache Software Foundation.  For more
>>>>>> * information on the Apache Software Foundation, please see
>>>>>> * <http://www.apache.org/>.
>>>>>> *
>>>>>> * ====================================================================
>>>>>> */
>>>>>>package org.apache.maven.sourcedef;
>>>>>>
>>>>>>import java.io.File;
>>>>>>import java.util.Arrays;
>>>>>>import java.util.List;
>>>>>>import java.util.Hashtable;
>>>>>>import org.apache.tools.ant.BuildException;
>>>>>>
>>>>>>/**
>>>>>> *  Utility class to provide access to the maven.sourcedef properties. If a
>>>>>> *  property exisits in the project properties, it is against allowed values for
>>>>>> *  that property (if there are any). If the property isn't set, a default is
>>>>>> *  returned.
>>>>>> *
>>>>>> * @created    28 May 2002
>>>>>> * @author     Nathan Coast ([EMAIL PROTECTED])
>>>>>> */
>>>>>>class SourceDefinition {
>>>>>>
>>>>>>    /**
>>>>>>     *  value for 'C' brace style
>>>>>>     */
>>>>>>    public final static String BRACE_STYLE_C = "C";
>>>>>>
>>>>>>    /**
>>>>>>     *  value for 'pascal' brace style
>>>>>>     */
>>>>>>    public final static String BRACE_STYLE_PASCAL = "PASCAL";
>>>>>>
>>>>>>    /**
>>>>>>     *  allowed brace styles 'C' or 'PASCAL'
>>>>>>     */
>>>>>>    private final static String[] BRACE_STYLE_ALLOWED = {BRACE_STYLE_C,
>>>>>>            BRACE_STYLE_PASCAL};
>>>>>>
>>>>>>    /**
>>>>>>     *  property name for block brace style
>>>>>>     */
>>>>>>    private final static String BLOCK_BRACE_STYLE_KEY =
>>>>>>            "maven.sourcedef.block.brace.style";
>>>>>>
>>>>>>    /**
>>>>>>     *  default value for block brace style
>>>>>>     */
>>>>>>    private final static String BLOCK_BRACE_STYLE_DEFAULT = BRACE_STYLE_C;
>>>>>>
>>>>>>    private final static String METHOD_BRACE_STYLE_KEY =
>>>>>>            "maven.sourcedef.method.brace.style";
>>>>>>
>>>>>>    private final static String METHOD_BRACE_STYLE_DEFAULT = BRACE_STYLE_C;
>>>>>>
>>>>>>    private final static String CLASS_BRACE_STYLE_KEY =
>>>>>>            "maven.sourcedef.class.brace.style";
>>>>>>
>>>>>>    private final static String CLASS_BRACE_STYLE_DEFAULT = BRACE_STYLE_C;
>>>>>>
>>>>>>    /**
>>>>>>     *  Description of the Field
>>>>>>     */
>>>>>>    public final static String KEYWORD_LOCATION_RIGHT_BRACE_SAME = "same";
>>>>>>
>>>>>>    /**
>>>>>>     *  Description of the Field
>>>>>>     */
>>>>>>    public final static String KEYWORD_LOCATION_RIGHT_BRACE_ALONE = "alone";
>>>>>>
>>>>>>    private final static String[] KEYWORD_LOCATION_RIGHT_BRACE_ALLOWED =
>>>>>>            {KEYWORD_LOCATION_RIGHT_BRACE_SAME,
>>>>>>            KEYWORD_LOCATION_RIGHT_BRACE_ALONE};
>>>>>>
>>>>>>    private final static String KEYWORD_LOCATION_RIGHT_BRACE_KEY =
>>>>>>            "maven.sourcedef.keyword.location.right.brace";
>>>>>>
>>>>>>    private final static String KEYWORD_LOCATION_RIGHT_BRACE_DEFAULT =
>>>>>>            KEYWORD_LOCATION_RIGHT_BRACE_SAME;
>>>>>>
>>>>>>    private final static String MAX_LINE_LENGTH_KEY = 
>"maven.sourcedef.max.line.len";
>>>>>>
>>>>>>    private final static int MAX_LINE_LENGTH_DEFAULT = 80;
>>>>>>
>>>>>>    private final static String HEADER_FILE_KEY = "maven.sourcedef.header.file";
>>>>>>
>>>>>>    private final static String HEADER_FILE_DEFAULT = "LICENSE.txt";
>>>>>>
>>>>>>    private final static String ALLOW_TABS_KEY = "maven.sourcedef.allow.tabs";
>>>>>>
>>>>>>    private final static boolean ALLOW_TABS_DEFAULT = false;
>>>>>>
>>>>>>    private final static String FOLLOW_JLS_ORDER_KEY = 
>"maven.sourcedef.follow.jls.order";
>>>>>>
>>>>>>    private final static boolean FOLLOW_JLS_ORDER_DEFAULT = true;
>>>>>>
>>>>>>    private static Hashtable projectProps = null;
>>>>>>
>>>>>>
>>>>>>    /**
>>>>>>     *  provides SourceDefinition with access to the ant properties
>>>>>>     *
>>>>>>     * @param  props  the hashtable of the ant properties.
>>>>>>     */
>>>>>>    public final static void setProjectProperties(Hashtable props) {
>>>>>>        projectProps = props;
>>>>>>    }
>>>>>>
>>>>>>
>>>>>>    /**
>>>>>>     * @return    the block brace style
>>>>>>     */
>>>>>>    public final static String getBlockBraceStyle() {
>>>>>>
>>>>>>        return getStringProperty(BLOCK_BRACE_STYLE_KEY,
>>>>>>                BLOCK_BRACE_STYLE_DEFAULT,
>>>>>>                BRACE_STYLE_ALLOWED);
>>>>>>    }
>>>>>>
>>>>>>
>>>>>>    /**
>>>>>>     *  Gets the methodBraceStyle attribute of the SourceDefinition class
>>>>>>     *
>>>>>>     * @return    The methodBraceStyle value
>>>>>>     */
>>>>>>    public final static String getMethodBraceStyle() {
>>>>>>
>>>>>>        return getStringProperty(METHOD_BRACE_STYLE_KEY,
>>>>>>                METHOD_BRACE_STYLE_DEFAULT,
>>>>>>                BRACE_STYLE_ALLOWED);
>>>>>>    }
>>>>>>
>>>>>>
>>>>>>    /**
>>>>>>     *  Gets the classBraceStyle attribute of the SourceDefinition class
>>>>>>     *
>>>>>>     * @return    The classBraceStyle value
>>>>>>     */
>>>>>>    public final static String getClassBraceStyle() {
>>>>>>
>>>>>>        return getStringProperty(CLASS_BRACE_STYLE_KEY,
>>>>>>                CLASS_BRACE_STYLE_DEFAULT,
>>>>>>                BRACE_STYLE_ALLOWED);
>>>>>>    }
>>>>>>
>>>>>>
>>>>>>    /**
>>>>>>     *  Gets the keywordLocationRightBrace attribute of the SourceDefinition
>>>>>>     *  class
>>>>>>     *
>>>>>>     * @return    The keywordLocationRightBrace value
>>>>>>     */
>>>>>>    public final static String getKeywordLocationRightBrace() {
>>>>>>        return getStringProperty(KEYWORD_LOCATION_RIGHT_BRACE_KEY,
>>>>>>                KEYWORD_LOCATION_RIGHT_BRACE_DEFAULT,
>>>>>>                KEYWORD_LOCATION_RIGHT_BRACE_ALLOWED);
>>>>>>    }
>>>>>>
>>>>>>
>>>>>>    /**
>>>>>>     *  Gets the allowTabs attribute of the SourceDefinition class
>>>>>>     *
>>>>>>     * @return    The allowTabs value
>>>>>>     */
>>>>>>    public final static boolean getAllowTabs() {
>>>>>>        return getBooleanProperty(ALLOW_TABS_KEY, ALLOW_TABS_DEFAULT);
>>>>>>    }
>>>>>>
>>>>>>
>>>>>>    /**
>>>>>>     *  Gets the maxLineLength attribute of the SourceDefinition class
>>>>>>     *
>>>>>>     * @return    The maxLineLength value
>>>>>>     */
>>>>>>    public final static int getMaxLineLength() {
>>>>>>
>>>>>>        return getIntProperty(MAX_LINE_LENGTH_KEY, MAX_LINE_LENGTH_DEFAULT);
>>>>>>    }
>>>>>>
>>>>>>
>>>>>>    /**
>>>>>>     *  Gets the headerFile attribute of the SourceDefinition class
>>>>>>     *
>>>>>>     * @return    The headerFile value
>>>>>>     */
>>>>>>    public final static File getHeaderFile() {
>>>>>>        return getFileProperty(HEADER_FILE_KEY, HEADER_FILE_DEFAULT);
>>>>>>    }
>>>>>>
>>>>>>
>>>>>>    /**
>>>>>>     *  Gets the followJlsOrder attribute of the SourceDefinition class
>>>>>>     *
>>>>>>     * @return    The followJlsOrder value
>>>>>>     */
>>>>>>    public final static boolean getFollowJlsOrder() {
>>>>>>        return getBooleanProperty(FOLLOW_JLS_ORDER_KEY,
>>>>>>                FOLLOW_JLS_ORDER_DEFAULT);
>>>>>>    }
>>>>>>
>>>>>>
>>>>>>    /**
>>>>>>     *  Gets the intProperty attribute of the SourceDefinition class
>>>>>>     *
>>>>>>     * @param  key           Description of the Parameter
>>>>>>     * @param  defaultValue  Description of the Parameter
>>>>>>     * @return               The intProperty value
>>>>>>     */
>>>>>>    public final static int getIntProperty(String key, int defaultValue) {
>>>>>>
>>>>>>        String propStr = (String) projectProps.get(key);
>>>>>>        int prop = 0;
>>>>>>        if (propStr != null) {
>>>>>>            prop = Integer.parseInt(propStr);
>>>>>>        } else {
>>>>>>            prop = defaultValue;
>>>>>>        }
>>>>>>        return prop;
>>>>>>    }
>>>>>>
>>>>>>
>>>>>>    /**
>>>>>>     *  Gets the booleanProperty attribute of the SourceDefinition class
>>>>>>     *
>>>>>>     * @param  key           Description of the Parameter
>>>>>>     * @param  defaultValue  Description of the Parameter
>>>>>>     * @return               The booleanProperty value
>>>>>>     */
>>>>>>    private final static boolean getBooleanProperty(String key, boolean 
>defaultValue) {
>>>>>>        String propStr = (String) projectProps.get(key);
>>>>>>        boolean prop = false;
>>>>>>        if (propStr != null) {
>>>>>>            prop = new Boolean(propStr).booleanValue();
>>>>>>        } else {
>>>>>>            prop = defaultValue;
>>>>>>        }
>>>>>>        return prop;
>>>>>>    }
>>>>>>
>>>>>>
>>>>>>    /**
>>>>>>     *  Gets the stringProperty attribute of the SourceDefinition class
>>>>>>     *
>>>>>>     * @param  key            Description of the Parameter
>>>>>>     * @param  defaultValue   Description of the Parameter
>>>>>>     * @param  allowedValues  Description of the Parameter
>>>>>>     * @return                The stringProperty value
>>>>>>     */
>>>>>>    private final static String getStringProperty(String key, String 
>defaultValue, String[] allowedValues) {
>>>>>>
>>>>>>        String prop = (String) projectProps.get(key);
>>>>>>        //String prop = (String) projectProps.get(key,defaultValue);
>>>>>>        System.out.println("key = " + key + " val = " + prop + " default " +
>>>>>>                defaultValue + " allowed = " + allowedValues);
>>>>>>        if (prop == null) {
>>>>>>            prop = defaultValue;
>>>>>>        }
>>>>>>        if (allowedValues != null) {
>>>>>>            List list = Arrays.asList(allowedValues);
>>>>>>            if (!list.contains(prop)) {
>>>>>>                StringBuffer sb = new StringBuffer("unrecognised value: ");
>>>>>>                sb.append(prop);
>>>>>>                sb.append(" for property: ");
>>>>>>                sb.append(key);
>>>>>>                sb.append(" allowed values are: ");
>>>>>>                for (int i = 0; i < allowedValues.length; i++) {
>>>>>>                    sb.append(allowedValues[i]);
>>>>>>                    if (i < (allowedValues.length - 1)) {
>>>>>>                        sb.append(",");
>>>>>>                    }
>>>>>>                }
>>>>>>                throw new BuildException(sb.toString());
>>>>>>            }
>>>>>>        }
>>>>>>        return prop;
>>>>>>    }
>>>>>>
>>>>>>
>>>>>>    /**
>>>>>>     *  Gets the fileProperty attribute of the SourceDefinition class
>>>>>>     *
>>>>>>     * @param  key           Description of the Parameter
>>>>>>     * @param  defaultValue  Description of the Parameter
>>>>>>     * @return               The fileProperty value
>>>>>>     */
>>>>>>    private final static File getFileProperty(String key, String defaultValue) {
>>>>>>        String prop = (String) projectProps.get(key);
>>>>>>        if (prop == null) {
>>>>>>            prop = defaultValue;
>>>>>>        }
>>>>>>        return new File(prop);
>>>>>>    }
>>>>>>}
>>>>>>
>>>>>>
>>>>>>
>>>>>>------------------------------------------------------------------------
>>>>>>
>>>>>>--
>>>>>>To unsubscribe, e-mail:   
><mailto:[EMAIL PROTECTED]>
>>>>>>For additional commands, e-mail: 
><mailto:[EMAIL PROTECTED]>
>>>>>>

Index: jakarta-turbine-maven/build.xml
===================================================================
RCS file: /home/cvspublic/jakarta-turbine-maven/build.xml,v
retrieving revision 1.37
diff -u -r1.37 build.xml
--- jakarta-turbine-maven/build.xml     19 May 2002 01:41:14 -0000      1.37
+++ jakarta-turbine-maven/build.xml     29 May 2002 09:19:06 -0000
@@ -147,6 +147,10 @@
     <target name="maven:check-source">
       <ant antfile="${maven.home}/plugins/core/build.xml" target="check-source"/>
     </target>
+    
+    <target name="maven:pretty-print">
+      <ant antfile="${maven.home}/plugins/core/build.xml" target="pretty-print"/>
+    </target>
 
     <target name="maven:dist">
       <ant antfile="${maven.home}/plugins/core/build.xml" target="dist"/>
Index: jakarta-turbine-maven/src/templates/build/plugins/core/build.xml
===================================================================
RCS file: 
/home/cvspublic/jakarta-turbine-maven/src/templates/build/plugins/core/build.xml,v
retrieving revision 1.4
diff -u -r1.4 build.xml
--- jakarta-turbine-maven/src/templates/build/plugins/core/build.xml    27 May 2002 
07:50:45 -0000      1.4
+++ jakarta-turbine-maven/src/templates/build/plugins/core/build.xml    29 May 2002 
+09:19:29 -0000
@@ -329,6 +329,49 @@
 
   </target>
 
+
+  <!-- ================================================================== -->
+  <!-- JRefactory Pretty Print                                            -->
+  <!-- ================================================================== -->
+
+  <target
+    name="pretty-print"
+    depends="local-init, env"
+    description="modify code according to maven source definition">
+    
+    <taskdef 
+      name="prettyprintconfig"
+      classname="org.apache.maven.sourcedef.PrettyPrintConfigTask">
+      <classpath refid="maven-classpath"/>
+    </taskdef>
+    
+    <prettyprintconfig/>
+
+      <taskdef name="filesetfrompath" 
+        classname="org.apache.maven.ant.FileSetFromPath">
+      <classpath>
+        <path refid="maven-classpath"/>
+      </classpath>
+    </taskdef>
+
+    <filesetfrompath pathid="maven.src.set"
+        filesetid="maven.sourceDirectories.fileset"
+        includes="${maven.jrefactory.includes}"
+        excludes="${maven.jrefactory.excludes}"/>
+    
+    <taskdef 
+      name="prettyprint"
+      classname="org.acm.seguin.ant.Pretty">
+      <classpath refid="maven-classpath"/>
+    </taskdef>
+    
+    <prettyprint settingsDir="${maven.build.dir}">
+      <fileset refid="maven.sourceDirectories.fileset" />
+    </prettyprint>
+    
+  </target>
+
+
   <!-- ================================================================== -->
   <!-- C H E C K S O U R C E                                              -->
   <!-- ================================================================== -->
@@ -339,6 +382,13 @@
 
   <target name="do-check-source" if="maven.sourcesPresent">
 
+    <taskdef 
+      name="checkstyleconfig"
+      classname="org.apache.maven.sourcedef.CheckStyleConfigTask">
+      <classpath refid="maven-classpath"/>
+    </taskdef>
+
+
     <taskdef
       name="checkstyle"
       classname="com.puppycrawl.tools.checkstyle.CheckStyleTask">
@@ -363,55 +413,22 @@
         includes="${maven.checkstyle.includes}"
         excludes="${maven.checkstyle.excludes}"/>
         
-    <checkstyle
-      lcurlyType="${maven.checkstyle.lcurly.type}"
-      lcurlyMethod="${maven.checkstyle.lcurly.method}"
-      lcurlyOther="${maven.checkstyle.lcurly.other}"
-      rcurly="${maven.checkstyle.rcurly}"
-      parenPad="${maven.checkstyle.paren.pad}"
-      allowTabs="${maven.checkstyle.allow.tabs}"
-      allowProtected="${maven.checkstyle.allow.protected}"
-      allowPackage="${maven.checkstyle.allow.package}"
-      allowNoAuthor="${maven.checkstyle.allow.no.author}"
-      maxLineLen="${maven.checkstyle.max.line.len}"
-      tabWidth="${maven.checkstyle.tab.width}"
-      ignoreLineLengthPattern="${maven.checkstyle.ignore.line.len.pattern}"
-      maxMethodLen="${maven.checkstyle.max.method.len}"
-      maxConstructorLen="${maven.checkstyle.max.constructor.len}"
-      maxFileLen="${maven.checkstyle.max.file.len}"
-      ignoreImportLen="${maven.checkstyle.ignore.import.len}"
-      memberPattern="${maven.checkstyle.member.pattern}"
-      publicMemberPattern="${maven.checkstyle.public.member.pattern}"
-      paramPattern="${maven.checkstyle.param.pattern}"
-      constPattern="${maven.checkstyle.const.pattern}"
-      staticPattern="${maven.checkstyle.static.pattern}"
-      typePattern="${maven.checkstyle.type.pattern}"
-      methodPattern="${maven.checkstyle.method.pattern}"
-      localVarPattern="${maven.checkstyle.local.var.pattern}"
-      headerFile="${maven.checkstyle.header.file}"
-      headerLinesRegexp="${maven.checkstyle.header.lines.regexp}"
-      headerIgnoreLine="${maven.checkstyle.header.ignore.line}"
-      javadocScope="${maven.checkstyle.javadoc.scope}"
-      requirePackageHtml="${maven.checkstyle.require.package.html}"
-      ignoreImports="${maven.checkstyle.ignore.imports}"
-      illegalImports="${maven.checkstyle.illegal.imports}"
-      ignoreWhitespace="${maven.checkstyle.ignore.whitespace}"
-      ignoreCastWhitespace="${maven.checkstyle.ignore.cast.whitespace}"
-      ignoreBraces="${maven.checkstyle.ignore.braces}"
-      ignorePublicInInterface="${maven.checkstyle.ignore.public.in.interface}"
-      failOnViolation="${maven.checkstyle.fail.on.violation}"
-      cacheFile="${maven.checkstyle.cache.file}" >
+    <checkstyleconfig/>
+    
+    <checkstyle 
+        properties="${maven.checkstyle.dir}/CheckStyleConfig.properties" 
+        failOnViolation="${maven.checkstyle.fail.on.violation}">
       <fileset refid="maven.sourceDirectories.fileset" />
-      <formatter type="xml" toFile="${maven.build.dir}/checkstyle-raw-report.xml"/>
-      <formatter type="plain" toFile="${maven.build.dir}/checkstyle-raw-report.txt"/>
+      <formatter type="xml" 
+toFile="${maven.checkstyle.dir}/checkstyle-raw-report.xml"/>
+      <formatter type="plain" 
+toFile="${maven.checkstyle.dir}/checkstyle-raw-report.txt"/>
     </checkstyle>
 
     <dvsl
       basedir="."
       style="${maven.home}/stylesheets/checkstyle.dvsl"
       toolboxfile="${maven.home}/stylesheets/toolbox.props"
-      in="${maven.build.dir}/checkstyle-raw-report.xml"
-      out="${maven.gen.docs}/checkstyle-report.xml">
+      in="${maven.checkstyle.dir}/checkstyle-raw-report.xml"
+      out="${maven.checkstyle.dir}/checkstyle-report.xml">
       <!-- Need to add the maven jar to load the toolbox -->
       <classpath>
         <path refid="maven-classpath"/>
Index: jakarta-turbine-maven/src/templates/build/plugins/core/default.properties
===================================================================
RCS file: 
/home/cvspublic/jakarta-turbine-maven/src/templates/build/plugins/core/default.properties,v
retrieving revision 1.4
diff -u -r1.4 default.properties
--- jakarta-turbine-maven/src/templates/build/plugins/core/default.properties   27 May 
2002 08:02:41 -0000      1.4
+++ jakarta-turbine-maven/src/templates/build/plugins/core/default.properties   29 May 
+2002 09:19:54 -0000
@@ -75,21 +75,29 @@
 maven.jxr.destdir = ${maven.docs.dest}/xref
 
 #
+# source definition properties. if not set, default values below are 
+# set by org.apache.maven.sourcedef.SourceDefinition
+# 
+
+#maven.sourcedef.class.brace.style=PASCAL
+#maven.sourcedef.method.brace.style=PASCAL
+#maven.sourcedef.block.brace.style=PASCAL
+#maven.sourcedef.keyword.location.right.brace=alone
+#maven.sourcedef.max.line.len=80
+#maven.sourcedef.header.file=LICENSE.txt
+#maven.sourcedef.allow.tabs=false
+
+#
 # Checkstyle settings ... default maven settings, these can be
 # overridden in a project specific properties file.
 #
+maven.checkstyle.dir=${maven.build.dir}/checkstyle
 maven.checkstyle.includes = **/*.java
 maven.checkstyle.excludes = 
-maven.checkstyle.lcurly.type = nl
-maven.checkstyle.lcurly.method = nl
-maven.checkstyle.lcurly.other = nl
-maven.checkstyle.rcurly = alone
 maven.checkstyle.paren.pad = nospace
-maven.checkstyle.allow.tabs = false
 maven.checkstyle.allow.protected = false
 maven.checkstyle.allow.package = false
 maven.checkstyle.allow.no.author = false
-maven.checkstyle.max.line.len = 80
 maven.checkstyle.tab.width = 8
 maven.checkstyle.ignore.line.len.pattern = ^$
 maven.checkstyle.max.method.len = 150
@@ -104,9 +112,8 @@
 maven.checkstyle.type.pattern = ^[A-Z][a-zA-Z0-9]*$
 maven.checkstyle.method.pattern = ^[a-z][a-zA-Z0-9]*$
 maven.checkstyle.local.var.pattern = ^[a-z][a-zA-Z0-9]*$
-maven.checkstyle.header.file = LICENSE.txt
 maven.checkstyle.header.lines.regexp = false
-maven.checkstyle.header.ignore.line = 1,6
+maven.checkstyle.header.ignore.line=
 maven.checkstyle.javadoc.scope = private
 maven.checkstyle.require.package.html = false
 maven.checkstyle.ignore.imports = false
@@ -116,7 +123,94 @@
 maven.checkstyle.ignore.braces = false
 maven.checkstyle.ignore.public.in.interface = false
 maven.checkstyle.fail.on.violation = false
-maven.checkstyle.cache.file = ${maven.build.dir}/checkstyle-cachefile
+maven.checkstyle.cache.file = ${maven.checkstyle.dir}/checkstyle-cachefile
+
+#
+# jrefactroy properties
+#
+
+maven.jrefactory.includes=**/*.java
+maven.jrefactory.excludes=
+maven.jrefactory.version=3.8
+maven.jrefactory.indent=4
+maven.jrefactory.indent.char=space
+maven.jrefactory.expr.space=false
+maven.jrefactory.lines.between=2
+maven.jrefactory.cast.space=true
+maven.jrefactory.cast.force.nospace=false
+maven.jrefactory.surprise.return=double
+maven.jrefactory.throws.newline=false
+maven.jrefactory.field.name.indent=-1
+maven.jrefactory.end.line=CRNL
+maven.jrefactory.variable.spacing=single
+maven.jrefactory.dynamic.variable.spacing=1
+maven.jrefactory.variable.align.with.block=false
+maven.jrefactory.case.indent=4
+maven.jrefactory.keyword.space=true
+maven.jrefactory.insert.space.around.local.variables=false
+maven.jrefactory.lines.after.package=1
+maven.jrefactory.maintain.newlines.around.imports=true
+maven.jrefactory.lines.before.class=0
+maven.jrefactory.indent.in.initializer=false
+maven.jrefactory.bang.space=false
+maven.jrefactory.method.space=false
+maven.jrefactory.cast.inside.space=false
+maven.jrefactory.space.around.ops=true
+maven.jrefactory.force.block=true
+maven.jrefactory.empty.block.single.line=true
+maven.jrefactory.remove.excess.blocks=false
+maven.jrefactory.singleline.comment.ownline=true
+maven.jrefactory.singleline.comment.absoluteindent=0
+maven.jrefactory.singleline.comment.incrementalindent=0
+maven.jrefactory.singleline.comment.indentstyle.shared=incremental
+maven.jrefactory.singleline.comment.indentstyle.ownline=code
+maven.jrefactory.c.style.format=align.star
+maven.jrefactory.c.style.indent=2
+maven.jrefactory.method.minimum=all
+maven.jrefactory.field.minimum=protected
+maven.jrefactory.class.minimum=all
+maven.jrefactory.javadoc.star=2
+maven.jrefactory.javadoc.wordwrap.min=40
+maven.jrefactory.space.before.javadoc=true
+maven.jrefactory.javadoc.id.lineup=true
+maven.jrefactory.javadoc.indent=2
+maven.jrefactory.reformat.comments=true
+maven.jrefactory.exception.tag.name=@exception
+maven.jrefactory.document.nested.classes=true
+maven.jrefactory.allow.singleline.javadoc=false
+maven.jrefactory.keep.all.javadoc=false
+maven.jrefactory.class.descr=Description of the Class
+maven.jrefactory.interface.descr=Description of the Interface
+maven.jrefactory.constructor.descr=Constructor for the {0} object
+maven.jrefactory.method.descr=Description of the Method
+maven.jrefactory.getter.descr=Gets the {3} attribute of the {1} {2}
+maven.jrefactory.getter.return.descr=The {3} value
+maven.jrefactory.setter.descr=Sets the {3} attribute of the {1} {2}
+maven.jrefactory.setter.param.descr=The new {3} value
+maven.jrefactory.field.descr=Description of the Field
+maven.jrefactory.run.descr=Main processing method for the {1} {2}
+maven.jrefactory.main.descr=The main program for the {1} {2}
+maven.jrefactory.main.param.descr=The command line arguments
+maven.jrefactory.adder.descr=Adds a feature to the {0} attribute of the {1} {2}
+maven.jrefactory.adder.param.descr=The feature to be added to the {0} attribute
+maven.jrefactory.junit.setUp.descr=The JUnit setup method
+maven.jrefactory.junit.test.descr=A unit test for JUnit
+maven.jrefactory.junit.tearDown.descr=The teardown method for JUnit
+maven.jrefactory.junit.suite.descr=A unit test suite for JUnit
+maven.jrefactory.junit.suite.return.descr=The test suite
+maven.jrefactory.author.descr={0}
+maven.jrefactory.created.descr={1}
+maven.jrefactory.param.descr=Description of the Parameter
+maven.jrefactory.return.descr=Description of the Return Value
+maven.jrefactory.exception.descr=Description of the Exception
+maven.jrefactory.class.tags=created
+maven.jrefactory.method.tags=param,return,exception
+maven.jrefactory.field.tags=
+maven.jrefactory.char.stream.type=1
+maven.jrefactory.pretty.printer.backup.ext=
+maven.jrefactory.sort.top=false
+maven.jrefactory.import.sort.important=
+maven.jrefactory.import.sort.neighbourhood=0
 
 #
 # UI Color Prefs
Index: jakarta-turbine-maven/jars.list
===================================================================
RCS file: /home/cvspublic/jakarta-turbine-maven/jars.list,v
retrieving revision 1.9
diff -u -r1.9 jars.list
--- jakarta-turbine-maven/jars.list     12 May 2002 15:18:08 -0000      1.9
+++ jakarta-turbine-maven/jars.list     29 May 2002 09:20:18 -0000
@@ -39,3 +39,4 @@
 regexp-1.2.jar
 velocity-1.3-dev.jar
 velocity-dvsl-0.43.jar
+jrefactory.jar
Index: jakarta-turbine-maven/project.xml
===================================================================
RCS file: /home/cvspublic/jakarta-turbine-maven/project.xml,v
retrieving revision 1.80
diff -u -r1.80 project.xml
--- jakarta-turbine-maven/project.xml   26 May 2002 16:17:36 -0000      1.80
+++ jakarta-turbine-maven/project.xml   29 May 2002 09:20:34 -0000
@@ -327,6 +327,15 @@
       <url>http://www.clarkware.com/software/JDepend.html</url>
     </dependency>
 
+    <dependency>
+      <name>jrefactory</name>
+      <type>required</type>
+      <version>2.6.36</version>
+      <jar>jrefactory.jar</jar>
+      <url>http://jrefactory.sourceforge.net/chrissoft.html</url>
+    </dependency>
+
+
     <!-- maven:pdf requirements
     <dependency>
       <name>fop</name>


/* ====================================================================
 * The Apache Software License, Version 1.1
 *
 * Copyright (c) 2001 The Apache Software Foundation.  All rights
 * reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the
 *    distribution.
 *
 * 3. The end-user documentation included with the redistribution,
 *    if any, must include the following acknowledgment:
 *       "This product includes software developed by the
 *        Apache Software Foundation (http://www.apache.org/)."
 *    Alternately, this acknowledgment may appear in the software itself,
 *    if and wherever such third-party acknowledgments normally appear.
 *
 * 4. The names "Apache" and "Apache Software Foundation" and
 *    "Apache Maven" must not be used to endorse or promote products
 *    derived from this software without prior written permission. For
 *    written permission, please contact [EMAIL PROTECTED]
 *
 * 5. Products derived from this software may not be called "Apache",
 *    "Apache Maven", nor may "Apache" appear in their name, without
 *    prior written permission of the Apache Software Foundation.
 *
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 * ====================================================================
 *
 * This software consists of voluntary contributions made by many
 * individuals on behalf of the Apache Software Foundation.  For more
 * information on the Apache Software Foundation, please see
 * <http://www.apache.org/>.
 *
 * ====================================================================
 */
package org.apache.maven.sourcedef;

import java.io.File;
import com.puppycrawl.tools.checkstyle.CheckStyleTask;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.Project;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Hashtable;
import java.util.Properties;
import java.util.Iterator;

/**
 *  task responsible for writing the checkstyle config file by combining
 *  properties with these prefixes maven.sourcedef and maven.checkstyle. generic
 *  maven.sourcedef properties are converted to checkstyle counterpart. For
 *  allowed properties and conversions see the {@link org.apache.maven.sourcedef
 *  package description}.
 *
 * @created    28 May 2002
 * @author     Nathan Coast ([EMAIL PROTECTED])
 */
public class CheckStyleConfigTask extends Task {

    /**
     *  checkstyle property name for the class brace style property
     */
    private final static String CLASS_BRACE_STYLE_KEY = "checkstyle.lcurly.type";

    /**
     *  checkstyle property name for the method brace style property
     */
    private final static String METHOD_BRACE_STYLE_KEY = "checkstyle.lcurly.method";

    /**
     *  checkstyle property name for the all other brace styles
     */
    private final static String OTHER_BRACE_STYLE_KEY = "checkstyle.lcurly.other";

    /**
     *  checkstyle property name for the location of keyword relative to right
     *  brace.
     */
    private final static String RIGHT_BRACE_KEYWORD_LOCATION_KEY =
            "checkstyle.rcurly";

    /**
     *  checkstyle property name for allow tabs property
     */
    private final static String ALLOW_TABS_KEY = "checkstyle.allow.tabs";

    /**
     *  checkstyle property name for max line lenght property
     */
    private final static String MAX_LINE_LENGTH_KEY = "checkstyle.maxlinelen";

    /**
     *  checkstyle property name for header file property
     */
    private final static String HEADER_FILE_KEY = "checkstyle.header.file";

    /**
     *  eol left brace style value
     */
    private final static String LEFT_CURLY_EOL = "eol";

    /**
     *  nl left brace style value
     */
    private final static String LEFT_CURLY_NL = "nl";

    /**
     *  name of the generated checkstyle config file
     */
    private final static String CONFIG_FILENAME = "CheckStyleConfig.properties";

    /**
     *  prefix for checkstyle properties in default.properties
     */
    private final static String CHECKSTYLE_PROP_PREFIX = "maven.checkstyle.";


    /**
     *  execute method to combine the maven.checkstyle properties with converted
     *  maven.sourcedef properties and write them to
     *  ${maven.checkstyle.dir}/CheckStyleConfig.properties
     *
     * @exception  BuildException  Description of the Exception
     */
    public void execute() throws BuildException {

        Project project = getProject();

        Hashtable props = project.getProperties();

        String checkstyleDirStr = (String) props.get("maven.checkstyle.dir");
        File checkstyleDir = new File(checkstyleDirStr);
        if (!checkstyleDir.exists()) {
            if (!checkstyleDir.mkdir()) {
                throw new BuildException("unable to create checkstyle directory: "
                        + checkstyleDir);
            }
        }
        File configFile = new File(checkstyleDir, CONFIG_FILENAME);
        Properties config = new Properties();
        Iterator it = props.keySet().iterator();
        while (it.hasNext()) {
            String key = (String) it.next();
            if (key.startsWith(CHECKSTYLE_PROP_PREFIX)) {
                config.put(key.substring(6), props.get(key));
            }
        }

        SourceDefinition.setProjectProperties(getProject().getProperties());
        String classBraceStyle = SourceDefinition.getClassBraceStyle();
        classBraceStyle = convertLeftBraceType(classBraceStyle);
        config.put(CLASS_BRACE_STYLE_KEY, classBraceStyle);

        String methodBraceStyle = SourceDefinition.getMethodBraceStyle();
        methodBraceStyle = convertLeftBraceType(methodBraceStyle);
        config.put(METHOD_BRACE_STYLE_KEY, methodBraceStyle);

        String blockBraceStyle = SourceDefinition.getBlockBraceStyle();
        blockBraceStyle = convertLeftBraceType(blockBraceStyle);
        config.put(OTHER_BRACE_STYLE_KEY, blockBraceStyle);

        config.put(RIGHT_BRACE_KEYWORD_LOCATION_KEY,
                SourceDefinition.getKeywordLocationRightBrace());

        config.put(ALLOW_TABS_KEY, "" + SourceDefinition.getAllowTabs());

        config.put(MAX_LINE_LENGTH_KEY, "" + SourceDefinition.getMaxLineLength());

        File headerFile = SourceDefinition.getHeaderFile();
        if (headerFile.exists() && headerFile.canRead() && headerFile.isFile()) {
            config.put(HEADER_FILE_KEY, headerFile.toString());
        }

        FileOutputStream fos = null;
        try {
            fos = new FileOutputStream(configFile);
            config.store(fos, "this is a generated file do not edit");
        } catch (IOException e) {
            throw new BuildException(e);
        } finally {
            if (fos != null) {
                try {
                    fos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }


    /**
     *  utility to convert between maven.sourcedef properties and checkstyle.
     *  properties for the left brace style.
     *
     * @param  type  the maven.sourcedef property to convert
     * @return       the maven.sourcedef property converted to checkstyle
     *      property.
     */
    private static String convertLeftBraceType(String type) {

        String convertedType = null;
        if (SourceDefinition.BRACE_STYLE_C.equals(type)) {
            convertedType = LEFT_CURLY_EOL;
        } else if (SourceDefinition.BRACE_STYLE_PASCAL.equals(type)) {
            convertedType = LEFT_CURLY_NL;
        } else {
            throw new BuildException("Unknown left brace type " + type);
        }
        return convertedType;
    }
}


/* ====================================================================
 * The Apache Software License, Version 1.1
 *
 * Copyright (c) 2001 The Apache Software Foundation.  All rights
 * reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the
 *    distribution.
 *
 * 3. The end-user documentation included with the redistribution,
 *    if any, must include the following acknowledgment:
 *       "This product includes software developed by the
 *        Apache Software Foundation (http://www.apache.org/)."
 *    Alternately, this acknowledgment may appear in the software itself,
 *    if and wherever such third-party acknowledgments normally appear.
 *
 * 4. The names "Apache" and "Apache Software Foundation" and
 *    "Apache Maven" must not be used to endorse or promote products
 *    derived from this software without prior written permission. For
 *    written permission, please contact [EMAIL PROTECTED]
 *
 * 5. Products derived from this software may not be called "Apache",
 *    "Apache Maven", nor may "Apache" appear in their name, without
 *    prior written permission of the Apache Software Foundation.
 *
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 * ====================================================================
 *
 * This software consists of voluntary contributions made by many
 * individuals on behalf of the Apache Software Foundation.  For more
 * information on the Apache Software Foundation, please see
 * <http://www.apache.org/>.
 *
 * ====================================================================
 */
package org.apache.maven.sourcedef;

import org.apache.tools.ant.Task;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import java.util.Properties;
import java.util.Iterator;
import java.util.Set;
import java.util.Hashtable;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.FileReader;

/**
 *  task responsible for writing the Jrefactory pretty print config file by
 *  combining properties with these prefixes maven.sourcedef and
 *  maven.jrefactory. Generic maven.sourcedef properties are converted to their
 *  jrefactory counterparts. For allowed properties and conversions see the
 *  {@link org.apache.maven.sourcedef package description}.
 *
 * @created    28 May 2002
 * @author     Nathan Coast ([EMAIL PROTECTED])
 */
public class PrettyPrintConfigTask extends Task {

    /**
     *  jrefactory property name for the catch start line property
     */
    private final static String CATCH_START_LINE = "catch.start.line";

    /**
     *  jrefactory property name for the else start line property
     */
    private final static String ELSE_START_LINE = "else.start.line";

    /**
     *  jrefactory property name for the block property
     */
    private final static String BLOCK_STYLE = "block.style";

    /**
     *  jrefactory property name for the method block style property
     */
    private final static String METHOD_BLOCK_STYLE = "method.block.style";

    /**
     *  jrefactory property name for the class block style property
     */
    private final static String CLASS_BLOCK_STYLE = "class.block.style";

    /**
     *  jrefactory property name for the javadoc wordwrap property
     */
    private final static String JAVADOC_WORDWRAP_MAX = "javadoc.wordwrap.max";

    /**
     *  allowed 'space' value for the indent char property
     */
    private final static String SPACE = "space";

    /**
     *  allowed 'tab' value for the indent char property
     */
    private final static String TAB = "tab";

    /**
     *  jrefactory property name for the indent char property
     */
    private final static String INDENT_CHAR = "indent.char";

    /**
     *  prefix for jrefactory specific propeties
     */
    private final static String JREFACTORY_PROP_PREFIX = "maven.jrefactory.";


    /**
     *  execute method to combine the maven.jrefactory properties with converted
     *  maven.sourcedef properties and write them to the file
     *  ${maven.build.dir}/.Refactory/pretty.settings
     *
     * @exception  BuildException  Description of the Exception
     */
    public void execute() throws BuildException {

        Hashtable props = getProject().getProperties();

        SourceDefinition.setProjectProperties(props);

        Properties config = new Properties();
        Iterator it = props.keySet().iterator();
        while (it.hasNext()) {
            String key = (String) it.next();
            if (key.startsWith(JREFACTORY_PROP_PREFIX)) {
                config.put(key.substring(JREFACTORY_PROP_PREFIX.length()),
                        props.get(key));
            }
        }

        String buildDirStr = (String) props.get("maven.build.dir");
        File buildDir = new File(buildDirStr);
        File prettyDir = new File(buildDir, ".Refactory");
        if (!prettyDir.exists()) {
            if (!prettyDir.mkdir()) {
                throw new BuildException(
                        "unable to create jrefactory pretty print config directory: "
                        + prettyDir);
            }
        }
        File prettySettings = new File(prettyDir, "pretty.settings");

        if (prettySettings.exists()) {
            prettySettings.delete();
        }

        FileOutputStream fos = null;
        try {

            String classBlockStyle = SourceDefinition.getClassBraceStyle();
            config.put(CLASS_BLOCK_STYLE, classBlockStyle);

            String methodBlockStyle = SourceDefinition.getMethodBraceStyle();
            config.put(METHOD_BLOCK_STYLE, methodBlockStyle);

            String blockStyle = SourceDefinition.getBlockBraceStyle();
            config.put(BLOCK_STYLE, blockStyle);

            String keyLoc = SourceDefinition.getKeywordLocationRightBrace();
            String catchStartLine = convertKeywordLocationRightBrace(keyLoc);
            config.put(CATCH_START_LINE, catchStartLine);
            config.put(ELSE_START_LINE, catchStartLine);

            File headerFile = SourceDefinition.getHeaderFile();
            populateHeaderFile(headerFile, config);

            int javadocWordwrapMax = SourceDefinition.getMaxLineLength();
            config.put(JAVADOC_WORDWRAP_MAX, "" + javadocWordwrapMax);

            boolean allowTabs = SourceDefinition.getAllowTabs();
            String indentChar = convertAllowTabs(allowTabs);
            config.put(INDENT_CHAR, indentChar);

            /*
             *  if(SourceDefinition.getFollowJlsOrder()){
             *  
config.put("sort.1","Type(Field,Constructor,Method,NestedClass,NestedInterface,Initializer)");
             *  config.put("sort.2","Class(Instance,Static)");
             *  config.put("sort.3","Method(setter,getter,other)");
             *  config.put("sort.4","Final(top)");
             *  config.put("sort.5","Protection(public)");
             *  config.put("sort.6","Bean()");
             *  config.put("sort.7","Alphabetical()");
             *  config.put("sort.8","FieldInitializers()");
             *  }
             */
            //File tmpPrettyProps = new File("tmpPrettyProps.settings");
            fos = new FileOutputStream(prettySettings);
            config.store(fos, "this is a generated file do not edit");
        } catch (IOException e) {
            throw new BuildException(e);
        } finally {
            if (fos != null) {
                try {
                    fos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }


    /**
     *  method to convert property from maven.sourcedef.keyword.location.right.brace
     *  to jrefactory property values.
     *
     * @param  location  the maven.sourcdef property
     * @return           the property converted to a jrefactory property
     */
    private static String convertKeywordLocationRightBrace(String location) {
        String convertedLocation = null;
        if (SourceDefinition.KEYWORD_LOCATION_RIGHT_BRACE_SAME.equals(location)) {
            convertedLocation = "false";
        } else if 
(SourceDefinition.KEYWORD_LOCATION_RIGHT_BRACE_ALONE.equals(location)) {
            convertedLocation = "true";
        } else {
            throw new BuildException("Unrecognised keyword location " + location);
        }
        return convertedLocation;
    }


    /**
     *  method to read the header file and populate the contents of the file
     *  into the properties using the property names 'header.[line_num]'
     *
     * @param  headerFile       the headerFile
     * @param  props            the properties to load the header file into.
     * @exception  IOException  Description of the Exception
     */
    private static void populateHeaderFile(File headerFile, Properties props)
             throws IOException {

        FileReader fr = new FileReader(headerFile);
        BufferedReader br = new BufferedReader(fr);

        String str = null;
        int count = 0;
        while ((str = br.readLine()) != null) {
            count++;
            String headerLine = "header." + count;
            props.put(headerLine, str);
        }
    }


    /**
     *  method to convert the maven.sourcedef.allow.tabs property to the
     *  appropriate jrefactory property
     *
     * @param  allowTabs  the maven.sourcedef.allow.tabs property
     * @return            allow tabs property converted to jrefactory property
     */
    private static String convertAllowTabs(boolean allowTabs) {
        String indentChar = null;
        if (allowTabs) {
            indentChar = TAB;
        } else {
            indentChar = SPACE;
        }
        return indentChar;
    }
}


/* ====================================================================
 * The Apache Software License, Version 1.1
 *
 * Copyright (c) 2001 The Apache Software Foundation.  All rights
 * reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the
 *    distribution.
 *
 * 3. The end-user documentation included with the redistribution,
 *    if any, must include the following acknowledgment:
 *       "This product includes software developed by the
 *        Apache Software Foundation (http://www.apache.org/)."
 *    Alternately, this acknowledgment may appear in the software itself,
 *    if and wherever such third-party acknowledgments normally appear.
 *
 * 4. The names "Apache" and "Apache Software Foundation" and
 *    "Apache Maven" must not be used to endorse or promote products
 *    derived from this software without prior written permission. For
 *    written permission, please contact [EMAIL PROTECTED]
 *
 * 5. Products derived from this software may not be called "Apache",
 *    "Apache Maven", nor may "Apache" appear in their name, without
 *    prior written permission of the Apache Software Foundation.
 *
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 * ====================================================================
 *
 * This software consists of voluntary contributions made by many
 * individuals on behalf of the Apache Software Foundation.  For more
 * information on the Apache Software Foundation, please see
 * <http://www.apache.org/>.
 *
 * ====================================================================
 */
package org.apache.maven.sourcedef;

import java.io.File;
import java.util.Arrays;
import java.util.List;
import java.util.Hashtable;
import org.apache.tools.ant.BuildException;

/**
 *  Utility class to provide access to the maven.sourcedef properties. If a
 *  property exisits in the project properties, it is against allowed values for
 *  that property (if there are any). If the property isn't set, a default is
 *  returned.
 *
 * @created    28 May 2002
 * @author     Nathan Coast ([EMAIL PROTECTED])
 */
class SourceDefinition {

    /**
     *  value for 'C' brace style
     */
    public final static String BRACE_STYLE_C = "C";

    /**
     *  value for 'pascal' brace style
     */
    public final static String BRACE_STYLE_PASCAL = "PASCAL";

    /**
     *  allowed brace styles 'C' or 'PASCAL'
     */
    private final static String[] BRACE_STYLE_ALLOWED = {BRACE_STYLE_C,
            BRACE_STYLE_PASCAL};

    /**
     *  property name for block brace style
     */
    private final static String BLOCK_BRACE_STYLE_KEY =
            "maven.sourcedef.block.brace.style";

    /**
     *  default value for block brace style
     */
    private final static String BLOCK_BRACE_STYLE_DEFAULT = BRACE_STYLE_C;

    private final static String METHOD_BRACE_STYLE_KEY =
            "maven.sourcedef.method.brace.style";

    private final static String METHOD_BRACE_STYLE_DEFAULT = BRACE_STYLE_C;

    private final static String CLASS_BRACE_STYLE_KEY =
            "maven.sourcedef.class.brace.style";

    private final static String CLASS_BRACE_STYLE_DEFAULT = BRACE_STYLE_C;

    /**
     *  Description of the Field
     */
    public final static String KEYWORD_LOCATION_RIGHT_BRACE_SAME = "same";

    /**
     *  Description of the Field
     */
    public final static String KEYWORD_LOCATION_RIGHT_BRACE_ALONE = "alone";

    private final static String[] KEYWORD_LOCATION_RIGHT_BRACE_ALLOWED =
            {KEYWORD_LOCATION_RIGHT_BRACE_SAME,
            KEYWORD_LOCATION_RIGHT_BRACE_ALONE};

    private final static String KEYWORD_LOCATION_RIGHT_BRACE_KEY =
            "maven.sourcedef.keyword.location.right.brace";

    private final static String KEYWORD_LOCATION_RIGHT_BRACE_DEFAULT =
            KEYWORD_LOCATION_RIGHT_BRACE_SAME;

    private final static String MAX_LINE_LENGTH_KEY = "maven.sourcedef.max.line.len";

    private final static int MAX_LINE_LENGTH_DEFAULT = 80;

    private final static String HEADER_FILE_KEY = "maven.sourcedef.header.file";

    private final static String HEADER_FILE_DEFAULT = "LICENSE.txt";

    private final static String ALLOW_TABS_KEY = "maven.sourcedef.allow.tabs";

    private final static boolean ALLOW_TABS_DEFAULT = false;

    private final static String FOLLOW_JLS_ORDER_KEY = 
"maven.sourcedef.follow.jls.order";

    private final static boolean FOLLOW_JLS_ORDER_DEFAULT = true;

    private static Hashtable projectProps = null;


    /**
     *  provides SourceDefinition with access to the ant properties
     *
     * @param  props  the hashtable of the ant properties.
     */
    public final static void setProjectProperties(Hashtable props) {
        projectProps = props;
    }


    /**
     * @return    the block brace style
     */
    public final static String getBlockBraceStyle() {

        return getStringProperty(BLOCK_BRACE_STYLE_KEY,
                BLOCK_BRACE_STYLE_DEFAULT,
                BRACE_STYLE_ALLOWED);
    }


    /**
     *  Gets the methodBraceStyle attribute of the SourceDefinition class
     *
     * @return    The methodBraceStyle value
     */
    public final static String getMethodBraceStyle() {

        return getStringProperty(METHOD_BRACE_STYLE_KEY,
                METHOD_BRACE_STYLE_DEFAULT,
                BRACE_STYLE_ALLOWED);
    }


    /**
     *  Gets the classBraceStyle attribute of the SourceDefinition class
     *
     * @return    The classBraceStyle value
     */
    public final static String getClassBraceStyle() {

        return getStringProperty(CLASS_BRACE_STYLE_KEY,
                CLASS_BRACE_STYLE_DEFAULT,
                BRACE_STYLE_ALLOWED);
    }


    /**
     *  Gets the keywordLocationRightBrace attribute of the SourceDefinition
     *  class
     *
     * @return    The keywordLocationRightBrace value
     */
    public final static String getKeywordLocationRightBrace() {
        return getStringProperty(KEYWORD_LOCATION_RIGHT_BRACE_KEY,
                KEYWORD_LOCATION_RIGHT_BRACE_DEFAULT,
                KEYWORD_LOCATION_RIGHT_BRACE_ALLOWED);
    }


    /**
     *  Gets the allowTabs attribute of the SourceDefinition class
     *
     * @return    The allowTabs value
     */
    public final static boolean getAllowTabs() {
        return getBooleanProperty(ALLOW_TABS_KEY, ALLOW_TABS_DEFAULT);
    }


    /**
     *  Gets the maxLineLength attribute of the SourceDefinition class
     *
     * @return    The maxLineLength value
     */
    public final static int getMaxLineLength() {

        return getIntProperty(MAX_LINE_LENGTH_KEY, MAX_LINE_LENGTH_DEFAULT);
    }


    /**
     *  Gets the headerFile attribute of the SourceDefinition class
     *
     * @return    The headerFile value
     */
    public final static File getHeaderFile() {
        return getFileProperty(HEADER_FILE_KEY, HEADER_FILE_DEFAULT);
    }


    /**
     *  Gets the followJlsOrder attribute of the SourceDefinition class
     *
     * @return    The followJlsOrder value
     */
    public final static boolean getFollowJlsOrder() {
        return getBooleanProperty(FOLLOW_JLS_ORDER_KEY,
                FOLLOW_JLS_ORDER_DEFAULT);
    }


    /**
     *  Gets the intProperty attribute of the SourceDefinition class
     *
     * @param  key           Description of the Parameter
     * @param  defaultValue  Description of the Parameter
     * @return               The intProperty value
     */
    public final static int getIntProperty(String key, int defaultValue) {

        String propStr = (String) projectProps.get(key);
        int prop = 0;
        if (propStr != null) {
            prop = Integer.parseInt(propStr);
        } else {
            prop = defaultValue;
        }
        return prop;
    }


    /**
     *  Gets the booleanProperty attribute of the SourceDefinition class
     *
     * @param  key           Description of the Parameter
     * @param  defaultValue  Description of the Parameter
     * @return               The booleanProperty value
     */
    private final static boolean getBooleanProperty(String key, boolean defaultValue) {
        String propStr = (String) projectProps.get(key);
        boolean prop = false;
        if (propStr != null) {
            prop = new Boolean(propStr).booleanValue();
        } else {
            prop = defaultValue;
        }
        return prop;
    }


    /**
     *  Gets the stringProperty attribute of the SourceDefinition class
     *
     * @param  key            Description of the Parameter
     * @param  defaultValue   Description of the Parameter
     * @param  allowedValues  Description of the Parameter
     * @return                The stringProperty value
     */
    private final static String getStringProperty(String key, String defaultValue, 
String[] allowedValues) {

        String prop = (String) projectProps.get(key);
        //String prop = (String) projectProps.get(key,defaultValue);
        System.out.println("key = " + key + " val = " + prop + " default " +
                defaultValue + " allowed = " + allowedValues);
        if (prop == null) {
            prop = defaultValue;
        }
        if (allowedValues != null) {
            List list = Arrays.asList(allowedValues);
            if (!list.contains(prop)) {
                StringBuffer sb = new StringBuffer("unrecognised value: ");
                sb.append(prop);
                sb.append(" for property: ");
                sb.append(key);
                sb.append(" allowed values are: ");
                for (int i = 0; i < allowedValues.length; i++) {
                    sb.append(allowedValues[i]);
                    if (i < (allowedValues.length - 1)) {
                        sb.append(",");
                    }
                }
                throw new BuildException(sb.toString());
            }
        }
        return prop;
    }


    /**
     *  Gets the fileProperty attribute of the SourceDefinition class
     *
     * @param  key           Description of the Parameter
     * @param  defaultValue  Description of the Parameter
     * @return               The fileProperty value
     */
    private final static File getFileProperty(String key, String defaultValue) {
        String prop = (String) projectProps.get(key);
        if (prop == null) {
            prop = defaultValue;
        }
        return new File(prop);
    }
}

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to