mcconnell 2003/11/20 14:22:04
Added: repository/plugin project.xml plugin.properties plugin.jelly
maven.xml
Log:
Inital plugin content supporting generation of artifact descriptors.
Revision Changes Path
1.1 avalon-sandbox/repository/plugin/project.xml
Index: project.xml
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<project>
<extend>${basedir}/../project.xml</extend>
<pomVersion>3</pomVersion>
<id>avalon-repository-plugin</id>
<name>Avalon Repository Plugin</name>
<currentVersion>1.2.1-dev</currentVersion>
<description>Avalon Repository Plugin for Maven</description>
<shortDescription>Avalon Repository Plugin</shortDescription>
<package>org.apache.avalon.repository</package>
<build>
<resources>
<resource>
<directory>${basedir}/src/plugin-resources</directory>
<targetPath>plugin-resources</targetPath>
</resource>
<resource>
<directory>${basedir}</directory>
<includes>
<include>plugin.jelly</include>
<include>plugin.properties</include>
<include>project.properties</include>
<include>project.xml</include>
</includes>
</resource>
</resources>
</build>
</project>
1.1 avalon-sandbox/repository/plugin/plugin.properties
Index: plugin.properties
===================================================================
# ------------------------------------------------------------------
# P L U G I N P R O P E R T I E S
# -------------------------------------------------------------------
# Avalon Repository plugin.
# -------------------------------------------------------------------
1.1 avalon-sandbox/repository/plugin/plugin.jelly
Index: plugin.jelly
===================================================================
<?xml version="1.0"?>
<project xmlns:j="jelly:core"
xmlns:define="jelly:define"
xmlns:util="jelly:util"
xmlns:maven="jelly:maven"
xmlns:ant="jelly:ant"
xmlns:avalon="avalon">
<!--
#
# Write out an artifact descriptor for the projects jar file.
# The goal writes out general information including meta domain
# and classification following by dependency information.
#
-->
<goal name="avalon:artifact">
<maven:snapshot project="${pom}"/>
<ant:property name="filename"
value="${maven.build.dir}/${pom.artifactId}-${pom.currentVersion}.jar.meta"/>
<ant:echo message="Artifact: ${filename}"/>
<j:set var="offset" value="${pom.artifactId.length()}"/>
<j:set var="scrap"
value="${snapshotSignature.substring(offset,snapshotSignature.length())}"/>
<j:set var="signature" value="${scrap.substring(1,scrap.length())}"/>
<ant:echo file="${filename}">
#
# Meta classifier.
#
meta.domain = avalon
meta.domain.classifier = artifact
meta.domain.classifier.version = 1.0
#
# Artifact descriptor.
#
avalon.artifact.group = ${pom.groupId}
avalon.artifact.name = ${pom.artifactId}
avalon.artifact.version = ${pom.currentVersion}
avalon.artifact.signature = ${signature}
</ant:echo>
<j:set var="index" value="0"/>
<j:forEach var="dep" items="${pom.dependencies}">
<j:set var="key" value="${dep.groupId}:${dep.artifactId};${dep.version}"/>
<j:if test="${dep.getProperty('avalon.classloader')=='api'}">
<j:if test="${dep.getType()=='jar'}">
<j:if test="${index==0}">
<ant:echo file="${filename}" append="true">
#
# API dependencies.
#
</ant:echo>
</j:if>
<ant:echo file="${filename}" append="true">
avalon.artifact.dependency.api.${index} = ${key}</ant:echo>
<j:set var="index" value="${index+1}"/>
</j:if>
</j:if>
</j:forEach>
<j:set var="index" value="0"/>
<j:forEach var="dep" items="${pom.dependencies}">
<j:set var="key" value="${dep.groupId}:${dep.artifactId};${dep.version}"/>
<j:if test="${dep.getProperty('avalon.classloader')=='spi'}">
<j:if test="${dep.getType()=='jar'}">
<j:if test="${index==0}">
<ant:echo file="${filename}" append="true">
#
# SPI dependencies.
#
</ant:echo>
</j:if>
</j:if>
<ant:echo file="${filename}" append="true">
avalon.artifact.dependency.spi.${index} = ${key}</ant:echo>
<j:set var="index" value="${index+1}"/>
</j:if>
</j:forEach>
<j:set var="index" value="0"/>
<j:forEach var="dep" items="${pom.dependencies}">
<j:set var="key" value="${dep.groupId}:${dep.artifactId};${dep.version}"/>
<j:if test="${dep.getProperty('avalon.classloader')==null}">
<j:if test="${dep.getType()=='jar'}">
<j:if test="${index==0}">
<ant:echo file="${filename}" append="true">
#
# Implementation dependencies.
#
</ant:echo>
</j:if>
<ant:echo file="${filename}" append="true">
avalon.artifact.dependency.${index} = ${key}</ant:echo>
<j:set var="index" value="${index+1}"/>
</j:if>
</j:if>
</j:forEach>
<ant:echo file="${filename}" append="true">
</ant:echo>
<ant:property name="avalonArtifactDestination"
value="${maven.repo.local}/${pom.artifactDirectory}/jars"/>
<ant:mkdir dir="${avalonArtifactDestination}"/>
<ant:copy
file="${filename}"
todir="${avalonArtifactDestination}"
overwrite="true"
/>
</goal>
</project>
1.1 avalon-sandbox/repository/plugin/maven.xml
Index: maven.xml
===================================================================
<project default="plugin:install">
</project>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]