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]

Reply via email to