Author: vsiveton
Date: Wed Jan 9 17:49:32 2008
New Revision: 610640
URL: http://svn.apache.org/viewvc?rev=610640&view=rev
Log:
MNG-2337: XSLT for converting Maven1 project.xml to Maven2 pom.xml
o added
Added:
maven/sandbox/trunk/other/m1-m2/
maven/sandbox/trunk/other/m1-m2/maven1+project+to+maven2+pom.xsl (with
props)
Added: maven/sandbox/trunk/other/m1-m2/maven1+project+to+maven2+pom.xsl
URL:
http://svn.apache.org/viewvc/maven/sandbox/trunk/other/m1-m2/maven1%2Bproject%2Bto%2Bmaven2%2Bpom.xsl?rev=610640&view=auto
==============================================================================
--- maven/sandbox/trunk/other/m1-m2/maven1+project+to+maven2+pom.xsl (added)
+++ maven/sandbox/trunk/other/m1-m2/maven1+project+to+maven2+pom.xsl Wed Jan 9
17:49:32 2008
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <!-- written by David Smiley, [EMAIL PROTECTED] -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:mv2="http://maven.apache.org/POM/4.0.0"
exclude-result-prefixes="mv2">
+ <xsl:output indent="yes" method="xml" omit-xml-declaration="no"/>
+ <xsl:strip-space elements="*"/>
+
+ <xsl:template match="/project">
+ <project 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>
+ <xsl:apply-templates />
+ </project>
+ </xsl:template>
+ <xsl:template match="/project/id">
+ <artifactId><xsl:value-of select="."/></artifactId>
+ </xsl:template>
+ <xsl:template match="/project/groupId">
+ <groupId><xsl:value-of select="/project/package"/></groupId>
+ </xsl:template>
+ <xsl:template match="currentVersion">
+ <version><xsl:value-of select="."/></version>
+ </xsl:template>
+ <xsl:template match="extend">
+ <parent>
+ <!-- chop off project.xml -->
+ <xsl:variable name="pthX"
select="substring(.,0,string-length(.)-10)" />
+ <!-- remove ${basedir}/ if present, then append pom.xml -->
+ <xsl:variable name="pth">
+ <xsl:choose>
+ <xsl:when test="contains($pthX,'${basedir}/')">
+ <xsl:value-of
select="substring-after($pthX,'${basedir}/')"/>
+ </xsl:when>
+ <xsl:otherwise><xsl:value-of select="$pthX"
/></xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>pom.xml</xsl:text>
+ </xsl:variable>
+ <!-- load parent pom and grab what we need -->
+ <xsl:variable name="ppom"
select="document($pth,/*)/mv2:project"></xsl:variable>
+ <artifactId><xsl:value-of select="$ppom/mv2:artifactId"
/></artifactId>
+ <groupId><xsl:value-of select="$ppom/mv2:groupId" /></groupId>
+ <version><xsl:value-of select="$ppom/mv2:version" /></version>
+ <xsl:if test="not($pth = '../pom.xml')">
+ <relativePath><xsl:value-of select="$pth"/></relativePath>
+ </xsl:if>
+ </parent>
+ </xsl:template>
+ <xsl:template match="shortDescription">
+ <!-- TODO: if no //description then output as description; otherwise
omitt -->
+ </xsl:template>
+ <xsl:template match="issueTrackingUrl">
+ <issueManagement>
+ <url><xsl:value-of select="."/></url>
+ </issueManagement>
+ </xsl:template>
+ <xsl:template match="repository">
+ <scm><xsl:apply-templates /></scm>
+ </xsl:template>
+ <xsl:template match="unitTestSourceDirectory">
+ <testSourceDirectory><xsl:value-of select="."/></testSourceDirectory>
+ </xsl:template>
+ <xsl:template match="unitTest">
+ <testResources>
+ <xsl:apply-templates select="resources/resource" />
+ <xsl:apply-templates select="includes|excludes" />
+ </testResources>
+ </xsl:template>
+ <!-- omitt with comment -->
+ <xsl:template name="comment">
+ <xsl:comment>
+ <xsl:call-template name="commentX" />
+ </xsl:comment>
+ </xsl:template>
+ <xsl:template name="commentX">
+ <xsl:value-of select="concat(local-name(.),':
',normalize-space(text()),' ')" />
+ <xsl:for-each select="*">
+ <xsl:call-template name="commentX" />
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template
match="logo|siteAddress|siteDirectory|distributionSite|distributionDirectory">
+ <xsl:call-template name="comment" />
+ </xsl:template>
+ <xsl:template
match="gumpRepositoryId|versions|branches|packageGroups|properties">
+ <xsl:call-template name="comment" />
+ </xsl:template>
+ <xsl:template
match="nagEmailAddress|aspectSourceDirectory|integrationUnitTestSourceDirectory">
+ <xsl:call-template name="comment" />
+ </xsl:template>
+ <xsl:template match="unitTest/includes|unitTest/excludes">
+ <xsl:call-template name="comment" />
+ </xsl:template>
+ <xsl:template
match="dependency/id|dependency/url|dependency/jar|dependency/properties">
+ <xsl:call-template name="comment" />
+ </xsl:template>
+ <!-- omitt silently (handled elsewhere) -->
+ <xsl:template match="sourceModifications|defaultGoal|package" />
+
+ <!-- a copy template that ensures proper namespace -->
+ <xsl:template match="*">
+ <xsl:element name="{local-name(.)}"><xsl:apply-templates
/></xsl:element>
+ </xsl:template>
+ <xsl:template match="comment()"><xsl:copy-of select="."/></xsl:template>
+</xsl:stylesheet>
Propchange: maven/sandbox/trunk/other/m1-m2/maven1+project+to+maven2+pom.xsl
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/sandbox/trunk/other/m1-m2/maven1+project+to+maven2+pom.xsl
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"