maven-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From vsive...@apache.org
Subject svn commit: r610640 - in /maven/sandbox/trunk/other/m1-m2: ./ maven1+project+to+maven2+pom.xsl
Date Thu, 10 Jan 2008 01:49:41 GMT
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, dsmiley@mitre.org -->
+<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"



Mime
View raw message