Added: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextUtil.java URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextUtil.java?rev=406450&view=auto ============================================================================== --- maven/doxia/trunk/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextUtil.java (added) +++ maven/doxia/trunk/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextUtil.java Sun May 14 15:15:30 2006 @@ -0,0 +1,174 @@ +package org.apache.maven.doxia.module.itext; + +/* + * Copyright 2001-2006 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import java.io.InputStream; +import java.io.OutputStream; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.Locale; + +import com.lowagie.text.DocumentException; +import com.lowagie.text.PageSize; +import com.lowagie.text.Rectangle; +import com.lowagie.text.xml.XmlToHtml; +import com.lowagie.text.xml.XmlToPdf; +import com.lowagie.text.xml.XmlToRtf; + +/** + * A set of util methods for the <code>iText</code> framework + * + * @author <a href="mailto:[EMAIL PROTECTED]">Vincent Siveton</a> + * @version $Id$ + */ +public class ITextUtil +{ + /** + * Set the default page size for the document depending the user's country. + * TODO Maybe more generic? + * + * @see com.lowagie.text.PageSize + * + * @return the page size + */ + public static Rectangle getDefaultPageSize() + { + String defaultCountry = Locale.getDefault().getCountry(); + if ( defaultCountry != null + && ( defaultCountry.equals( Locale.US.getCountry() ) || defaultCountry.equals( Locale.CANADA.getCountry() ) ) ) + { + return PageSize.LETTER; + } + + return PageSize.A4; + } + + /** + * Return a page size as String. + * + * @see com.lowagie.text.PageSize + * + * @param rect a Rectangle + * @return a page size as String + */ + public static String getPageSize( Rectangle rect ) + { + if ( ( rect.width() == PageSize.LETTER.width() ) && ( rect.height() == PageSize.LETTER.height() ) ) + { + return "LETTER"; + } + + return "A4"; + } + + /** + * Return true if the page size is supported by <code>PageSize</code> class, false otherwise + * + * @see com.lowagie.text.PageSize + * + * @param aPageSize a page size + * @return true if the page size is supported, false otherwise + */ + public static boolean isPageSizeSupported( String aPageSize ) + { + Field[] sizes = PageSize.class.getDeclaredFields(); + for ( int i = 0; i < sizes.length; i++ ) + { + Field currentField = sizes[i]; + if ( ( currentField.getName().equalsIgnoreCase( aPageSize ) ) + && ( Modifier.isStatic( currentField.getModifiers() ) ) + && ( currentField.getType().equals( Rectangle.class ) ) ) + { + return true; + } + } + + return false; + } + + /** + * Parse an iText XML from the specified <CODE>InputStream</CODE>, writing an Pdf document + * specified <CODE>OutputStream</CODE>. + * + * @see com.lowagie.text.xml.XmlToPdf + * + * @param is the <CODE>InputStream</CODE> from which the XML is read. + * @param os the <CODE>OutputStream</CODE> to which the result as Pdf is written. + * @throws RuntimeException if any + */ + public static void writePdf( InputStream is, OutputStream os ) + throws RuntimeException + { + try + { + XmlToPdf x = new XmlToPdf(); + x.parse( is, os ); + } + catch ( DocumentException e ) + { + throw new RuntimeException( "DocumentException : " + e.getMessage() ); + } + } + + /** + * Parse an iText XML from the specified <CODE>InputStream</CODE>, writing an rtf document + * specified <CODE>OutputStream</CODE>. + * + * @see com.lowagie.text.xml.XmlToRtf + * + * @param is the <CODE>InputStream</CODE> from which the XML is read. + * @param os the <CODE>OutputStream</CODE> to which the result as RTF is written. + * @throws RuntimeException if any + */ + public static void writeRtf( InputStream is, OutputStream os ) + throws RuntimeException + { + try + { + XmlToRtf x = new XmlToRtf(); + x.parse( is, os ); + } + catch ( DocumentException e ) + { + throw new RuntimeException( "DocumentException : " + e.getMessage() ); + } + } + + /** + * Parse an iText XML from the specified <CODE>InputStream</CODE>, writing an html document + * specified <CODE>OutputStream</CODE>. + * + * @see com.lowagie.text.xml.XmlToHtml + * + * @param is the <CODE>InputStream</CODE> from which the XML is read. + * @param os the <CODE>OutputStream</CODE> to which the result as Html is written. + * @throws RuntimeException if any + */ + public static void writeHtml( InputStream is, OutputStream os ) + throws RuntimeException + { + try + { + XmlToHtml x = new XmlToHtml(); + x.parse( is, os ); + } + catch ( DocumentException e ) + { + throw new RuntimeException( "DocumentException : " + e.getMessage() ); + } + } +}
Propchange: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextUtil.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/main/java/org/apache/maven/doxia/module/itext/ITextUtil.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/java/org/apache/maven/doxia/module/itext/ITextSinkTestCase.java URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/java/org/apache/maven/doxia/module/itext/ITextSinkTestCase.java?rev=406450&view=auto ============================================================================== --- maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/java/org/apache/maven/doxia/module/itext/ITextSinkTestCase.java (added) +++ maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/java/org/apache/maven/doxia/module/itext/ITextSinkTestCase.java Sun May 14 15:15:30 2006 @@ -0,0 +1,173 @@ +package org.apache.maven.doxia.module.itext; + +/* + * Copyright 2001-2006 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.FileWriter; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.net.URL; +import java.net.URLClassLoader; + +import org.apache.maven.doxia.module.apt.AptParser; +import org.apache.maven.doxia.module.xdoc.XdocParser; +import org.apache.maven.doxia.sink.Sink; +import org.codehaus.plexus.PlexusTestCase; + +/** + * <code>iText Sink</code> Test case. + * + * @author <a href="mailto:[EMAIL PROTECTED]">Vincent Siveton</a> + * @version $Id$ + */ +public class ITextSinkTestCase + extends PlexusTestCase +{ + /** + * Convenience method + * + * @param prefix + * @param suffix + * @return the input file + */ + protected File getGeneratedFile( String prefix, String suffix ) + { + File outputDirectory = new File( getBasedir(), "target/output" ); + if ( !outputDirectory.exists() ) + { + outputDirectory.mkdirs(); + } + + return new File( outputDirectory, prefix + suffix ); + } + + /** + * Create an <code>iTextSink</code> with a given classLoader (images dir) + * + * @param prefix + * @param suffix + * @return an iTextSink + * @throws Exception if any + */ + protected Sink createSink( String prefix, String suffix ) + throws Exception + { + ITextSink sink = new ITextSink( new FileWriter( getGeneratedFile( prefix, suffix ) ) ); + sink.setClassLoader( new URLClassLoader( new URL[] { ITextSinkTestCase.class.getResource( "/images/" ) } ) ); + + return sink; + } + + /** + * @param path + * @return a reader from an <code>apt</code> file. + * @throws Exception if any + */ + protected Reader getAptReader( String path ) + throws Exception + { + InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream( path ); + + InputStreamReader reader = new InputStreamReader( is ); + + return reader; + } + + /** + * @param path + * @return a reader from an <code>xdoc</code> file. + * @throws Exception if any + */ + protected Reader getXdocReader( String path ) + throws Exception + { + InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream( path ); + + InputStreamReader reader = new InputStreamReader( is ); + + return reader; + } + + /** + * Generate a pdf and a rtf from an <code>apt</code> file + * + * @throws Exception if any + */ + public void testApt() + throws Exception + { + Sink sink = createSink( "test_apt", ".xml" ); + + AptParser parser = new AptParser(); + parser.parse( getAptReader( "apt/test.apt" ), sink ); + + sink.close(); + + ITextUtil.writePdf( new FileInputStream( getGeneratedFile( "test_apt", ".xml" ) ), + new FileOutputStream( getGeneratedFile( "test_apt", ".pdf" ) ) ); + + ITextUtil.writeRtf( new FileInputStream( getGeneratedFile( "test_apt", ".xml" ) ), + new FileOutputStream( getGeneratedFile( "test_apt", ".rtf" ) ) ); + } + + /** + * Generate a pdf and a rtf from an <code>apt</code> file + * + * @throws Exception if any + */ + public void testApt2() + throws Exception + { + Sink sink = createSink( "guide-ide-netbeans_apt", ".xml" ); + + AptParser parser = new AptParser(); + parser.parse( getAptReader( "apt/guide-ide-netbeans.apt" ), sink ); + + sink.close(); + + ITextUtil.writePdf( new FileInputStream( getGeneratedFile( "guide-ide-netbeans_apt", ".xml" ) ), + new FileOutputStream( getGeneratedFile( "guide-ide-netbeans_apt", ".pdf" ) ) ); + + ITextUtil.writeRtf( new FileInputStream( getGeneratedFile( "guide-ide-netbeans_apt", ".xml" ) ), + new FileOutputStream( getGeneratedFile( "guide-ide-netbeans_apt", ".rtf" ) ) ); + } + + /** + * Generate a pdf and a rtf from an <code>xdoc</code> file + * + * @throws Exception if any + */ + public void testXdoc() + throws Exception + { + Sink sink = createSink( "test_xdoc", ".xml" ); + + XdocParser parser = new XdocParser(); + parser.parse( getXdocReader( "xdoc/test.xml" ), sink ); + + sink.close(); + + ITextUtil.writePdf( new FileInputStream( getGeneratedFile( "test_xdoc", ".xml" ) ), + new FileOutputStream( getGeneratedFile( "test_xdoc", ".pdf" ) ) ); + + ITextUtil.writeRtf( new FileInputStream( getGeneratedFile( "test_xdoc", ".xml" ) ), + new FileOutputStream( getGeneratedFile( "test_xdoc", ".rtf" ) ) ); + } +} Propchange: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/java/org/apache/maven/doxia/module/itext/ITextSinkTestCase.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/java/org/apache/maven/doxia/module/itext/ITextSinkTestCase.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/apt/guide-ide-netbeans.apt URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/apt/guide-ide-netbeans.apt?rev=406450&view=auto ============================================================================== --- maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/apt/guide-ide-netbeans.apt (added) +++ maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/apt/guide-ide-netbeans.apt Sun May 14 15:15:30 2006 @@ -0,0 +1,251 @@ + ------ + Guide to Using maven 2 in Netbeans 4.0 (4.1 and 5.0) + ------ + Rapha�l Pi�roni + ------ + Mon Aug 9 2005 + ------ + +Using maven 2 in Netbeans 4.0 (4.1 and 5.0) + + This mini guide explain by examples howto use Maven 2 in Netbeans IDE. + + To use Maven 2 in Netbeans you have to follow these steps: + + * {{{#Retreive/Create the Maven 2 project}Retreive/Create the Maven 2 project.}} + + * {{{#Launch Maven 2 in command line using the netbeans-freeform plugin}Launch Maven 2 in command line using the netbeans-freeform plugin.}} + + * {{{#Open the project with Netbeans}Open the project with Netbeans.}} + + * {{{#Build the project and launch other Maven goals}Build the project and launch other Maven goals.}} + + * {{{#Edit properties of the plugin}Edit properties of the plugin.}} + + * {{{#Refresh the project view}Refresh the project view.}} + + * {{{#Build the Maven 2 site}Build the Maven 2 site.}} + + + +* {Retreive/Create the Maven 2 project} + + This guide assume the project is created using the archetype plugin. + You can also checkout the Maven 2 project using your versionning system. + +------------------- [EMAIL PROTECTED] examples]$ mvn archetype:create -DarchetypeArtifactId=maven-archetype-quickstart -DartifactId=demoquickstart -DgroupId=demoquickstart + +[INFO] Searching repository for plugin with prefix: 'archetype'. +[INFO] ---------------------------------------------------------------------------- +[INFO] Building Maven Default Project +[INFO] task-segment: [archetype:create] (aggregator-style) +[INFO] ---------------------------------------------------------------------------- +[INFO] Setting property: classpath.resource.loader.class => 'org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader'. +[INFO] Setting property: resource.loader => 'classpath'. +[INFO] ************************************************************** +[INFO] Starting Jakarta Velocity v1.4 +[INFO] RuntimeInstance initializing. +[INFO] Default Properties File: org/apache/velocity/runtime/defaults/velocity.properties +[INFO] Default ResourceManager initializing. (class org.apache.velocity.runtime.resource.ResourceManagerImpl) +[INFO] Resource Loader Instantiated: org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader +[INFO] ClasspathResourceLoader : initialization starting. +[INFO] ClasspathResourceLoader : initialization complete. +[INFO] ResourceCache : initialized. (class org.apache.velocity.runtime.resource.ResourceCacheImpl) +[INFO] Default ResourceManager initialization complete. +[INFO] Loaded System Directive: org.apache.velocity.runtime.directive.Literal +[INFO] Loaded System Directive: org.apache.velocity.runtime.directive.Macro +[INFO] Loaded System Directive: org.apache.velocity.runtime.directive.Parse +[INFO] Loaded System Directive: org.apache.velocity.runtime.directive.Include +[INFO] Loaded System Directive: org.apache.velocity.runtime.directive.Foreach +[INFO] Created: 20 parsers. +[INFO] Velocimacro : initialization starting. +[INFO] Velocimacro : adding VMs from VM library template : VM_global_library.vm +[ERROR] ResourceManager : unable to find resource 'VM_global_library.vm' in any resource loader. +[INFO] Velocimacro : error using VM library template VM_global_library.vm : org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'VM_global_library.vm' +[INFO] Velocimacro : VM library template macro registration complete. +[INFO] Velocimacro : allowInline = true : VMs can be defined inline in templates +[INFO] Velocimacro : allowInlineToOverride = false : VMs defined inline may NOT replace previous VM definitions +[INFO] Velocimacro : allowInlineLocal = false : VMs defined inline will be global in scope if allowed. +[INFO] Velocimacro : messages on : VM system will output logging messages +[INFO] Velocimacro : autoload off : VM system will not automatically reload global library macros +[INFO] Velocimacro : initialization complete. +[INFO] Velocity successfully started. +[INFO] [archetype:create] +[INFO] Defaulting package to group ID: demoquickstart +[INFO] artifact org.apache.maven.archetypes:maven-archetype-quickstart: checking for updates from central +[INFO] ---------------------------------------------------------------------------- +[INFO] Using following parameters for creating Archetype: maven-archetype-quickstart:RELEASE +[INFO] ---------------------------------------------------------------------------- +[INFO] Parameter: groupId, Value: demoquickstart +[INFO] Parameter: outputDirectory, Value: /demos/demoquickstart +[INFO] Parameter: packageName, Value: demoquickstart +[INFO] Parameter: package, Value: demoquickstart +[INFO] Parameter: version, Value: 1.0-SNAPSHOT +[INFO] Parameter: artifactId, Value: demoquickstart +[INFO] ResourceManager : found archetype-resources/pom.xml with loader org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader +[INFO] ********************* End of debug info from resources from generated POM *********************** +[INFO] ResourceManager : found archetype-resources/src/main/java/App.java with loader org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader +[INFO] ResourceManager : found archetype-resources/src/test/java/AppTest.java with loader org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader +[INFO] Archetype created in dir: /demos/demoquickstart +[INFO] ---------------------------------------------------------------------------- +[INFO] BUILD SUCCESSFUL +[INFO] ---------------------------------------------------------------------------- +[INFO] Total time: 2 seconds +[INFO] Finished at: Tue Oct 11 21:59:22 CEST 2005 +[INFO] Final Memory: 3M/7M +[INFO] ---------------------------------------------------------------------------- +------------------- + + + +* {Launch Maven 2 in command line using the netbeans-freeform plugin} + + After having retreived the Maven 2 project, you have to eneable the project to + be seen as a Netbeans 4.0, 4.1 or 5.0 project using the Netbeans Freeform project type. + + To eneable the project, use the netbeans-freeform plugin for Maven 2. + +------------------- [EMAIL PROTECTED] demoquickstart]$ mvn netbeans-freeform:generate-netbeans-project +[INFO] Searching repository for plugin with prefix: 'netbeans-freeform'. +[INFO] ---------------------------------------------------------------------------- +[INFO] Building Maven Quick Start Archetype +[INFO] task-segment: [netbeans-freeform:generate-netbeans-project] +[INFO] ---------------------------------------------------------------------------- +[INFO] Preparing netbeans-freeform:generate-netbeans-project +[INFO] [netbeans-freeform:generate-netbeans-project] +[INFO] JarAnalyser found +[INFO] The project 'Maven Quick Start Archetype' is analysed. +[INFO] The file 'nbproject/project.xml' is created. +[INFO] The file 'nbproject/mavencall.xml' is created. +[INFO] The file 'nbproject/project.properties' is created. +[INFO] ---------------------------------------------------------------------------- +[INFO] BUILD SUCCESSFUL +[INFO] ---------------------------------------------------------------------------- +[INFO] Total time: < 1 second +[INFO] Finished at: Tue Oct 11 22:12:30 CEST 2005 +[INFO] Final Memory: 1M/3M +[INFO] ---------------------------------------------------------------------------- +------------------- + + The netbeans-freeform plugin creates one directory and three files by reading the Maven 2 project descriptor: + + * The <<<nbproject>>> directory holds the Netbeans project descriptor. + + * The <<<<project.xml>>> file is the Netbeans Freeform project descriptor. + + * The <<<mavencall.xml>>> holds the Ant calls which execute Maven 2, as Netbeans uses Ant as its build tool. + + * The <<<project.properties>>> files holds the two properties: <<<local.repository>>> + which is the absolute path to the Maven 2 local repository and <<<project.directory>>> + which is the absolute path to the project directory. + + + +* {Open the project with Netbeans} + + Now that the Maven 2 project is eneabled for use in Netbeans, open your Netbeans IDE. + Then open the project (Ctrl+Maj+O). + + Here is the <Open Project> window. + +[Open_Project.png] Open Project + + And here are: + + The <Projects Window> with the opened project. + +[Project_Opened.png] Project Opened + + The project's <Context Menu> of the opened project. + +[Context_Menu.png] Context Menu + + And the <Files Window> with the opened project. + +[Window_Files.png] Files Window + + + +* {Build the project and launch other Maven goals} + + It is now time to try the first execution of Maven 2 from within Netbeans. + Try the <Build Main Project> Netbeans action (F11). + You see the Maven 2 execution of the <<<package>>> lifecycle goal. + +[Run_Build_Main_Project.png] Run Build Main Project + + You can also call the <Clean Project> Netbeans action which is mapped to the <<<clean>>> Maven2 goal. + +[Run_Clean_Main_Project.png] Run Clean Main Project + + + +* {Edit properties of the plugin} + + Now you can add some additionnal views in your <Projects> window in Netbeans. + Like an additionnal goal in the context menu. + +------------------- +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 + http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>demoquickstart</groupId> + <artifactId>demoquickstart</artifactId> + <packaging>jar</packaging> + <version>1.0-SNAPSHOT</version> + <name>Maven Quick Start Archetype</name> + <url>http://maven.apache.org</url> + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>3.8.1</version> + <scope>test</scope> + </dependency> + </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>netbeans-freeform-maven-plugin</artifactId> + <configuration> + <additionalGoals>source:jar</additionalGoals> + </configuration> + </plugin> + </plugins> + </build> +</project> +------------------- + + You can also configure some additionnal files and folders in the <Projects> window. + + The last option is to create the <<<nbproject>>> folder and its content in another directory than in the Maven 2 project's one. + + The full configuration can be found at {{http://mojo.codehaus.org/netbeans-freeform-maven-plugin}}. + + + +* {Refresh the project view} + + To refresh the Project view in Netbeans accordingly to the new configuration added to the Maven 2 project descriptor. + Just right-clic the project in the Projects window and choose the <Refresh Project> action. + +[Refresh_Project.png] Refresh Project + + Here is the resulting refreshed Context Menu. + +[Refreshed_Context_Menu.png] Refreshed Context Menu + + + +* {Build the Maven 2 site} + + You can call The <Generate Javadoc for Project> Netbeans action which is mapped to the <<<site>>> Maven 2 goal, + here in the Maven site archetype. + +[Generate_Site.png] Generate Site + Propchange: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/apt/guide-ide-netbeans.apt ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/apt/guide-ide-netbeans.apt ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/apt/test.apt URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/apt/test.apt?rev=406450&view=auto ============================================================================== --- maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/apt/test.apt (added) +++ maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/apt/test.apt Sun May 14 15:15:30 2006 @@ -0,0 +1,207 @@ + ------ + Guide to uploading artifacts to Ibiblio + ------ + Jason van Zyl + ------ + 12 October 2005 + ------ + +Guide to uploading artifacts to Ibiblio + + In order for users of Maven to utilize artifacts produced by your project you must deploy them to + a remote repository. Many open source projects want to allow users of their projects who build with + Maven to have transparent access to their project's artifacts. In order to allow for this a project + must have their artifacts deployed the Ibiblio which acts as Maven's central global repostory. + +* Step 1: Create an upload bundle + + Use the repository plugin provided with the standard Maven distribution to create an upload bundle: + ++----+ + + mvn repository:bundle-create + ++----+ + + The bundle will be created in your <<<target>>> directory of the form: + <<<${pom.artifactId}-${pom.currentVersion}-bundle.jar>>> + + If you want to include a jar with java sources in your upload (recommended, unless your license doesn't + allow sources to be redistributed) the command to run is: + ++----+ + + mvn source:jar repository:bundle-create + ++----+ + + If you are not using maven as your build system but want something + uploaded to Ibiblio then you just need to make a JAR (using the <<<jar>>> executable, + not <<<zip>>>, <<<pkzip>>> or equivalent) with the following format: + ++----+ + +pom.xml +foo-1.0.jar (or whatever artifact is referred to in the pom.xml) +foo-1.0-sources.jar (optional, jar containing java sources) + ++----+ + + Note that the bundle will be read by a script, so it must follow the above format. Also, + the <<<pom.xml>>> should at least contain the following elements: + + * modelVersion + + * groupId + + * artifactId + + * packaging + + * name + + * version + + * url + + * licenses + + * scm url + + * description + + * dependencies + + + A basic sample: + ++----+ + +<project> + <modelVersion>4.0.0</modelVersion> + <groupId>org.apache.maven</groupId> + <artifactId>maven</artifactId> + <version>2.0</version> + <packaging>jar</packaging> + <name>Maven core</name> + <url>http://maven.apache.org</url> + <description>The maven main core project description</description> + <licenses> + <license> + <name>The Apache Software License, Version 2.0</name> + <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> + <distribution>repo</distribution> + </license> + </licenses> + <scm> + <url>http://svn.apache.org/viewcvs.cgi/maven</url> + </scm> + <dependencies> + <dependency> + <groupId>...</groupId> + <artifactId>...</artifactId> + <version>...</version> + </dependency> + ... + </dependencies> +</project> + ++----+ + + [] + + Some considerations about the <<groupId>>: it will identify your project uniquely across all + projects, so we need to enforce a naming schema. For projects with artifacts already uploaded to ibiblio it can + be equal to the previous used, but for new projects it has to follow the package name rules, what + means that has to be at least as a domain name you control, and you can create as many subgroups + as you want. + There are a lot of poorly defined package names so you have to provide proof that you control the domain that + matches the package name. Provide proof means that the project is hosted at that domain or they own it although + not using it. eg. If you use a com.sun.xyz package name we expect that the project is hosted at http://xyz.sun.com. + + Look at {{{http://java.sun.com/docs/books/jls/third_edition/html/packages.html#7.7} + More information about package names}}. Check also the guide about + {{{guide-naming-conventions.html}Maven naming conventions}} + + Examples: + + * www.springframework.org -> org.springframework + + * oness.sf.net -> net.sf.oness + + [] + +* Step 2: Posting the request + + Post your request to {{{http://jira.codehaus.org/secure/CreateIssue.jspa?pid=10367&issuetype=3}JIRA}}. + In the description you should write the URL of the upload bundle + (if you're uploading more than one bundle please add all the urls under the same issue), + then leave a blank line and provide the following: + + * a url where the project can be found. + + * if you are one of its developers, a url where your name or email can be found inside the project site. + + [] + + This will speed up the uploading process. + + You can place any additional comments you wish in the following paragraph. So the description field might look like: + ++----+ + +http://wiggle.sourceforge.net/downloads/wiggle-1.0-bundle.jar + +http://wiggle.sourceforge.net +http://wiggle.sourceforge.net/team-list.html + +Wiggle is a fantastic new piece of software for automating the +clipping of nose hairs. Please upload! + ++----+ + +* Explanation + + Some folks have asked why do we require the POM and license each time an artifact is deployed so here's a small explanation. The POM + being deployed with the artifact is part of the process to make transitive dependencies a reality in Maven. The logic for getting + transitive dependencies working is really not that hard, the problem is getting the data. The other applications + that may be possible having all the POMs available for artifacts are vast, so by placing them into the repository as part of the + process we open up the doors to new ideas that involve unified + access to project POMs. + + We also ask for a license now because it is possible that your project's license may change in the course of + its life time and we are trying create tools to help normal people sort out licensing issues. For example, knowing all the licenses + for a particular graph of artifacts we could have some strategies that would identify potential licensing problems. + +* Maven partners + + The following sites sync automatically their project repository with the central one. + If you want a project from any of this sites to be uploaded to ibiblio you'll have to + contact the project maintainers. + + * {{{http://www.apache.org}The Apache Software Foundation}} + + * {{{http://www.codehaus.org}Codehaus}} + + * {{{http://jetty.mortbay.org}MortBay Jetty}} + + * {{{http://www.opensymphony.com/}OpenSymphony}} + + * {{{http://www.osjava.org}OS Java}} + + +*-------------------------+---------+----------+-----------+ +| | Mirrors | Checksum | Signature | +*-------------------------+---------+----------+-----------+ +| Maven 2.0.3 (tar.bz2) | {{{http://www.apache.org/dyn/closer.cgi/maven/binaries/maven-2.0.3-bin.tar.bz2} maven-2.0.3-bin.tar.bz2}} | {{{http://www.apache.org/dist/maven/binaries/maven-2.0.3-bin.tar.bz2.md5} maven-2.0.3-bin.tar.bz2.md5}} | {{{http://www.apache.org/dist/maven/binaries/maven-2.0.3-bin.tar.bz2.asc} maven-2.0.3-bin.tar.bz2.asc}} | +*-------------------------+---------+----------+-----------+ +| Maven 2.0.3 (tar.gz) | {{{http://www.apache.org/dyn/closer.cgi/maven/binaries/maven-2.0.3-bin.tar.gz} maven-2.0.3-bin.tar.gz}} | {{{http://www.apache.org/dist/maven/binaries/maven-2.0.3-bin.tar.gz.md5} maven-2.0.3-bin.tar.gz.md5}} | {{{http://www.apache.org/dist/maven/binaries/maven-2.0.3-bin.tar.gz.asc} maven-2.0.3-bin.tar.gz.asc}} | +*-------------------------+---------+----------+-----------+ +| Maven 2.0.3 (zip) | {{{http://www.apache.org/dyn/closer.cgi/maven/binaries/maven-2.0.3-bin.zip} maven-2.0.3-bin.zip}} | {{{http://www.apache.org/dist/maven/binaries/maven-2.0.3-bin.zip.md5} maven-2.0.3-bin.zip.md5}} | {{{http://www.apache.org/dist/maven/binaries/maven-2.0.3-bin.zip.asc} maven-2.0.3-bin.zip.asc}} | +*-------------------------+---------+----------+-----------+ +| Maven 2.0.3 Tasks for Ant | {{{http://www.apache.org/dyn/closer.cgi/maven/binaries/maven-artifact-ant-2.0.3-dep.jar} maven-artifact-ant-2.0.3-dep.jar}} | {{{http://www.apache.org/dist/maven/binaries/maven-artifact-ant-2.0.3-dep.jar.md5} maven-artifact-ant-2.0.3-dep.jar.md5}} | {{{http://www.apache.org/dist/maven/binaries/maven-artifact-ant-2.0.3-dep.jar.asc} maven-artifact-ant-2.0.3-dep.jar.asc}} | +*-------------------------+---------+----------+-----------+ +| Maven 2.0.3 Embedder | {{{http://www.apache.org/dyn/closer.cgi/maven/binaries/maven-embedder-2.0.3-dep.jar} maven-embedder-2.0.3-dep.jar}} | {{{http://www.apache.org/dist/maven/binaries/maven-embedder-2.0.3-dep.jar.md5} maven-embedder-2.0.3-dep.jar.md5}} | {{{http://www.apache.org/dist/maven/binaries/maven-embedder-2.0.3-dep.jar.asc} maven-embedder-2.0.3-dep.jar.asc}} | +*-------------------------+---------+----------+-----------+ +Table caption + Propchange: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/apt/test.apt ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/apt/test.apt ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/apt/test.apt.bak URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/apt/test.apt.bak?rev=406450&view=auto ============================================================================== --- maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/apt/test.apt.bak (added) +++ maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/apt/test.apt.bak Sun May 14 15:15:30 2006 @@ -0,0 +1,190 @@ + ------ + Guide to uploading artifacts to Ibiblio + ------ + Jason van Zyl + ------ + 12 October 2005 + ------ + +Guide to uploading artifacts to Ibiblio + + In order for users of Maven to utilize artifacts produced by your project you must deploy them to + a remote repository. Many open source projects want to allow users of their projects who build with + Maven to have transparent access to their project's artifacts. In order to allow for this a project + must have their artifacts deployed the Ibiblio which acts as Maven's central global repostory. + +* Step 1: Create an upload bundle + + Use the repository plugin provided with the standard Maven distribution to create an upload bundle: + ++----+ + + mvn repository:bundle-create + ++----+ + + The bundle will be created in your <<<target>>> directory of the form: + <<<${pom.artifactId}-${pom.currentVersion}-bundle.jar>>> + + If you want to include a jar with java sources in your upload (recommended, unless your license doesn't + allow sources to be redistributed) the command to run is: + ++----+ + + mvn source:jar repository:bundle-create + ++----+ + + If you are not using maven as your build system but want something + uploaded to Ibiblio then you just need to make a JAR (using the <<<jar>>> executable, + not <<<zip>>>, <<<pkzip>>> or equivalent) with the following format: + ++----+ + +pom.xml +foo-1.0.jar (or whatever artifact is referred to in the pom.xml) +foo-1.0-sources.jar (optional, jar containing java sources) + ++----+ + + Note that the bundle will be read by a script, so it must follow the above format. Also, + the <<<pom.xml>>> should at least contain the following elements: + + * modelVersion + + * groupId + + * artifactId + + * packaging + + * name + + * version + + * url + + * licenses + + * scm url + + * description + + * dependencies + + + A basic sample: + ++----+ + +<project> + <modelVersion>4.0.0</modelVersion> + <groupId>org.apache.maven</groupId> + <artifactId>maven</artifactId> + <version>2.0</version> + <packaging>jar</packaging> + <name>Maven core</name> + <url>http://maven.apache.org</url> + <description>The maven main core project description</description> + <licenses> + <license> + <name>The Apache Software License, Version 2.0</name> + <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> + <distribution>repo</distribution> + </license> + </licenses> + <scm> + <url>http://svn.apache.org/viewcvs.cgi/maven</url> + </scm> + <dependencies> + <dependency> + <groupId>...</groupId> + <artifactId>...</artifactId> + <version>...</version> + </dependency> + ... + </dependencies> +</project> + ++----+ + + [] + + Some considerations about the <<groupId>>: it will identify your project uniquely across all + projects, so we need to enforce a naming schema. For projects with artifacts already uploaded to ibiblio it can + be equal to the previous used, but for new projects it has to follow the package name rules, what + means that has to be at least as a domain name you control, and you can create as many subgroups + as you want. + There are a lot of poorly defined package names so you have to provide proof that you control the domain that + matches the package name. Provide proof means that the project is hosted at that domain or they own it although + not using it. eg. If you use a com.sun.xyz package name we expect that the project is hosted at http://xyz.sun.com. + + Look at {{{http://java.sun.com/docs/books/jls/third_edition/html/packages.html#7.7} + More information about package names}}. Check also the guide about + {{{guide-naming-conventions.html}Maven naming conventions}} + + Examples: + + * www.springframework.org -> org.springframework + + * oness.sf.net -> net.sf.oness + + [] + +* Step 2: Posting the request + + Post your request to {{{http://jira.codehaus.org/secure/CreateIssue.jspa?pid=10367&issuetype=3}JIRA}}. + In the description you should write the URL of the upload bundle + (if you're uploading more than one bundle please add all the urls under the same issue), + then leave a blank line and provide the following: + + * a url where the project can be found. + + * if you are one of its developers, a url where your name or email can be found inside the project site. + + [] + + This will speed up the uploading process. + + You can place any additional comments you wish in the following paragraph. So the description field might look like: + ++----+ + +http://wiggle.sourceforge.net/downloads/wiggle-1.0-bundle.jar + +http://wiggle.sourceforge.net +http://wiggle.sourceforge.net/team-list.html + +Wiggle is a fantastic new piece of software for automating the +clipping of nose hairs. Please upload! + ++----+ + +* Explanation + + Some folks have asked why do we require the POM and license each time an artifact is deployed so here's a small explanation. The POM + being deployed with the artifact is part of the process to make transitive dependencies a reality in Maven. The logic for getting + transitive dependencies working is really not that hard, the problem is getting the data. The other applications + that may be possible having all the POMs available for artifacts are vast, so by placing them into the repository as part of the + process we open up the doors to new ideas that involve unified + access to project POMs. + + We also ask for a license now because it is possible that your project's license may change in the course of + its life time and we are trying create tools to help normal people sort out licensing issues. For example, knowing all the licenses + for a particular graph of artifacts we could have some strategies that would identify potential licensing problems. + +* Maven partners + + The following sites sync automatically their project repository with the central one. + If you want a project from any of this sites to be uploaded to ibiblio you'll have to + contact the project maintainers. + + * {{{http://www.apache.org}The Apache Software Foundation}} + + * {{{http://www.codehaus.org}Codehaus}} + + * {{{http://jetty.mortbay.org}MortBay Jetty}} + + * {{{http://www.opensymphony.com/}OpenSymphony}} + + * {{{http://www.osjava.org}OS Java}} Added: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/images/Context_Menu.png URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/images/Context_Menu.png?rev=406450&view=auto ============================================================================== Binary file - no diff available. Propchange: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/images/Context_Menu.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/images/Generate_Site.png URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/images/Generate_Site.png?rev=406450&view=auto ============================================================================== Binary file - no diff available. Propchange: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/images/Generate_Site.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/images/Open_Project.png URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/images/Open_Project.png?rev=406450&view=auto ============================================================================== Binary file - no diff available. Propchange: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/images/Open_Project.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/images/Project_Opened.png URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/images/Project_Opened.png?rev=406450&view=auto ============================================================================== Binary file - no diff available. Propchange: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/images/Project_Opened.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/images/Refresh_Project.png URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/images/Refresh_Project.png?rev=406450&view=auto ============================================================================== Binary file - no diff available. Propchange: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/images/Refresh_Project.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/images/Refreshed_Context_Menu.png URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/images/Refreshed_Context_Menu.png?rev=406450&view=auto ============================================================================== Binary file - no diff available. Propchange: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/images/Refreshed_Context_Menu.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/images/Run_Build_Main_Project.png URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/images/Run_Build_Main_Project.png?rev=406450&view=auto ============================================================================== Binary file - no diff available. Propchange: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/images/Run_Build_Main_Project.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/images/Run_Clean_Main_Project.png URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/images/Run_Clean_Main_Project.png?rev=406450&view=auto ============================================================================== Binary file - no diff available. Propchange: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/images/Run_Clean_Main_Project.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/images/Window_Files.png URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/images/Window_Files.png?rev=406450&view=auto ============================================================================== Binary file - no diff available. Propchange: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/images/Window_Files.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/xdoc/test.xml URL: http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/xdoc/test.xml?rev=406450&view=auto ============================================================================== --- maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/xdoc/test.xml (added) +++ maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/xdoc/test.xml Sun May 14 15:15:30 2006 @@ -0,0 +1,107 @@ +<?xml version="1.0"?> +<!-- +/* + * Copyright 2001-2004 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + --> + + +<document> + +<properties> + <title>Release process</title> + <author email="dlr@finemaltcoding.com">Daniel Rall</author> +</properties> + +<body> + +<section name="Release process"> + +<p> + Consider the following to be something of a checklist. + + Turbine's release process consists of tagging one or more version + control modules (Turbine and its dependencies). For the 2.x + development path, the module list to consider for tagging consists + of the following: + <ul> + <li>jakarta-turbine-2</li> + <li>jakarta-turbine-fulcrum</li> + <li>jakarta-turbine-torque</li> + <li>jakarta-turbine-stratum</li> + <li>jakarta-turbine-maven</li> + </ul> + <!-- HELP: What about the TDK? --> + + After tagging the release (or each module), take a few minimal steps + to assure that the archives are in the expected place and valid. + + Announce your release via news outlets such as web page changes, + email announcements, press releases, etc. For instance, many Apache + projects update the <i>jakarta-site2/xdocs/site/news.xml</i> + document and their <a href="http://freshmeat.net/">Freshmeat</a> + entry. +</p> + +</section> + +<section name="Tagging an individual module"> + +<ol> + <li> + Send email to the development mailing list announcing a version + control freeze for tagging. + </li> + <li> + Check out fresh working copy of CVS module you're going to tag. + </li> + <li> + Set the release version number in Maven project.xml and/or Ant + default.properties. For example, 3.0-dev would become 3.0-b1 or + 3.0-rc1. + </li> + <li> + Update any dependency changes (possibly caused by previous module + tagging). For Maven, this consists of modifying the + <code>version</code> and <code>jar</code> attributes of each + <code>dependency</code> element. + </li> + <li> + Perform a successful build and test suite execution, and run the + <i>clean</i> target to remove any generated files. + </li> + <li> + Commit your changes to the version control repository. + </li> + <li> + Tag the release via <code>cvs -q tag + <i>PROJECT_VERSION_MODIFIER</i></code>. An example release tag is + <i>TURBINE_2_2_B1</i> or <i>TURBINE_3_0_RC1</i>. + </li> + <li> + Set the next development version number in Maven project.xml + and/or Ant default.properties and commit the change to the version + control repository. For example, 3.0-b1 would become 3.0-b2-dev. + </li> + <li> + Send email to the development mailing list announcing completion + of the tag. + </li> +</ol> + +</section> + +</body> +</document> Propchange: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/xdoc/test.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/doxia/trunk/doxia-modules/doxia-module-itext/src/test/resources/xdoc/test.xml ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision"