jvanzyl     2002/06/05 15:08:23

  Added:       src/bin  maven maven-bootstrap.jelly maven-properties.jelly
                        maven-scripts.jelly maven.jelly
  Log:
  Shifting some scripts that bob and i have been working on to make
  a maven script that utilizes jelly. This doesn't interfere with anything,
  though the delegators are broken right now but bob and i are going to
  fix things tonight hopefully.
  
  Revision  Changes    Path
  1.1                  jakarta-turbine-maven/src/bin/maven
  
  Index: maven
  ===================================================================
  #! /bin/sh
  
  #   Copyright (c) 2001-2002 The Apache Software Foundation.  All rights
  #   reserved.
  
  MAVEN_OPTS="-Xmx128m"
  
  if [ -f "$HOME/.mavenrc" ] ; then 
    . $HOME/.mavenrc
  fi
  
  # OS specific support.  $var _must_ be set to either true or false.
  cygwin=false;
  darwin=false;
  case "`uname`" in
    CYGWIN*) cygwin=true ;;
    Darwin*) darwin=true ;;
  esac
  
  if [ -z "$MAVEN_HOME" ] ; then
    # try to find ANT
    if [ -d /opt/ant ] ; then 
      MAVEN_HOME=/opt/ant
    fi
  
    if [ -d ${HOME}/opt/ant ] ; then 
      MAVEN_HOME=${HOME}/opt/ant
    fi
  
    ## resolve links - $0 may be a link to ant's home
    PRG=$0
    progname=`basename $0`
    saveddir=`pwd`
  
    # need this for relative symlinks
    cd `dirname $PRG`
    
    while [ -h "$PRG" ] ; do
      ls=`ls -ld "$PRG"`
      link=`expr "$ls" : '.*-> \(.*\)$'`
      if expr "$link" : '.*/.*' > /dev/null; then
        PRG="$link"
      else
        PRG="`dirname $PRG`/$link"
      fi
    done
    
    MAVEN_HOME=`dirname "$PRG"`/..
  
    # make it fully qualified
    MAVEN_HOME=`cd "$MAVEN_HOME" && pwd`
  
    cd $saveddir
  fi
  
  # For Cygwin, ensure paths are in UNIX format before anything is touched
  if $cygwin ; then
    [ -n "$MAVEN_HOME" ] &&
      MAVEN_HOME=`cygpath --unix "$MAVEN_HOME"`
    [ -n "$JAVA_HOME" ] &&
      JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
    [ -n "$CLASSPATH" ] &&
      CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
  fi
  
  if [ -z "$JAVACMD" ] ; then 
    if [ -n "$JAVA_HOME"  ] ; then
      if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 
        # IBM's JDK on AIX uses strange locations for the executables
        JAVACMD=$JAVA_HOME/jre/sh/java
      else
        JAVACMD=$JAVA_HOME/bin/java
      fi
    else
      JAVACMD=java
    fi
  fi
   
  if [ ! -x "$JAVACMD" ] ; then
    echo "Error: JAVA_HOME is not defined correctly."
    echo "  We cannot execute $JAVACMD"
    exit
  fi
  
  if [ -n "$CLASSPATH" ] ; then
    LOCALCLASSPATH=$CLASSPATH
  fi
  
  # add in the dependency .jar files
  DIRLIBS=${MAVEN_HOME}/lib/*.jar
  for i in ${DIRLIBS}
  do
      # if the directory is empty, then it will return the input string
      # this is stupid, so case for it
      if [ "$i" != "${DIRLIBS}" ] ; then
        if [ -z "$LOCALCLASSPATH" ] ; then
          LOCALCLASSPATH=$i
        else
          LOCALCLASSPATH="$i":$LOCALCLASSPATH
        fi
      fi
  done
  
  if [ -n "$JAVA_HOME" ] ; then
    if [ -f "$JAVA_HOME/lib/tools.jar" ] ; then
      LOCALCLASSPATH=$LOCALCLASSPATH:$JAVA_HOME/lib/tools.jar
    fi
  
    if [ -f "$JAVA_HOME/lib/classes.zip" ] ; then
      LOCALCLASSPATH=$LOCALCLASSPATH:$JAVA_HOME/lib/classes.zip
    fi
  
    # OSX hack to make Ant work with jikes
    if $darwin ; then
      OSXHACK="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Classes"
      if [ -d ${OSXHACK} ] ; then
        for i in ${OSXHACK}/*.jar
        do
          JIKESPATH=$JIKESPATH:$i
        done
      fi
    fi
  
  else
    echo "Warning: JAVA_HOME environment variable is not set."
    echo "  If build fails because sun.* classes could not be found"
    echo "  you will need to set the JAVA_HOME environment variable"
    echo "  to the installation directory of java."
  fi
  
  # supply JIKESPATH to Ant as jikes.class.path
  if [ -n "$JIKESPATH" ] ; then
    if [ -n "$MAVEN_OPTS" ] ; then
      MAVEN_OPTS="$MAVEN_OPTS -Djikes.class.path=$JIKESPATH"
    else
      MAVEN_OPTS=-Djikes.class.path=$JIKESPATH
    fi
  fi
  
  # For Cygwin, switch paths to Windows format before running java
  if $cygwin; then
    MAVEN_HOME=`cygpath --path --windows "$MAVEN_HOME"`
    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
    LOCALCLASSPATH=`cygpath --path --windows "$LOCALCLASSPATH"`
  fi
  
  echo $LOCALCLASSPATH
  
  $JAVACMD -classpath "$LOCALCLASSPATH" -Dmaven.home="${MAVEN_HOME}" $MAVEN_OPTS \
      org.apache.commons.jelly.Jelly ${MAVEN_HOME}/bin/maven-bootstrap.jelly 
$MAVEN_ARGS "$@"
  
  
  
  1.1                  jakarta-turbine-maven/src/bin/maven-bootstrap.jelly
  
  Index: maven-bootstrap.jelly
  ===================================================================
  <!--
    ||   This file lives in ${maven.home}
    -->
  <jelly:jelly
    trim="true"
    xmlns:jelly="jelly:core"
    xmlns:def="jelly:define"
    xmlns:maven="jelly:org.apache.maven.jelly.MavenTagLibrary">
  
    <!--
      || Read the project's build-maven.xml, project.xml, etc
      -->
    <maven:init dir="./"/>
  
    <!--
      || Walk the properties-files chain.
      -->
    <jelly:import uri="maven-properties.jelly"/>
  
    <!--
      || Load maven scripts
      -->
    <jelly:import uri="maven-scripts.jelly"/>
  
    <!--
      || Run the main maven loop.
      -->
    <jelly:import uri="maven.jelly"/>
  
  
  </jelly:jelly>
  
  
  
  1.1                  jakarta-turbine-maven/src/bin/maven-properties.jelly
  
  Index: maven-properties.jelly
  ===================================================================
  <!--
    ||   This file lives in ${maven.home}
    -->
  <jelly:jelly
    trim="true"
    xmlns:ant="jelly:ant"
    xmlns:jelly="jelly:core"
    xmlns:def="jelly:define"
    xmlns:maven="jelly:org.apache.maven.jelly.MavenTagLibrary">
  
    <ant:property file="${user.home}/build.properties"/>
    <ant:property file="build.properties"/>
    <ant:property file="project.properties"/>
   
  </jelly:jelly>
  
  
  
  1.1                  jakarta-turbine-maven/src/bin/maven-scripts.jelly
  
  Index: maven-scripts.jelly
  ===================================================================
  
  <!--
    ||   This file lives in ${maven.home}
    -->
  
  <jelly:jelly
    trim="true"
    xmlns:ant="jelly:ant"
    xmlns:jelly="jelly:core"
    xmlns:def="jelly:define"
    xmlns:maven="jelly:org.apache.maven.jelly.MavenTagLibrary">
  
    <!--
      ||    maven:target
      -->
    <def:script var="target_maven">
      running [maven_target] <jelly:expr value="${target}"/>
      maven.home = <jelly:expr value="${maven.home}"/>
      lib.repo = <jelly:expr value="${lib.repo}"/>
    </def:script>
  
    <!--
      ||    bogus maven:target
      -->
    <def:script var="target_unknown">
      ======================================================================
      == ERROR
      ==
      == The target "<jelly:expr value="${target}"/>" is not  valid for this project.
      ======================================================================
    </def:script>
  
    <!--
      ||    user-defined target
      -->
    <def:script var="target_user">
      <maven:build target="${target}" ignore="true"/>
      <jelly:choose>
        <jelly:when test='${target_status == "unknown_target"}'>
          <jelly:jelly body="${target_unknown}"/>
        </jelly:when>
        <jelly:when test='${target_status == "failed"}'>
          <jelly:jelly body="${target_failed}"/>
        </jelly:when>
      </jelly:choose>
    </def:script>
  
    <!--
      ||    general ant target failure
      -->
    <def:script var="target_failed">
      ======================================================================
      == ERROR
      ==
      == The target "<jelly:expr value="${target}"/>" failed.
      ======================================================================
    </def:script>
  
  </jelly:jelly>
  
  
  
  1.1                  jakarta-turbine-maven/src/bin/maven.jelly
  
  Index: maven.jelly
  ===================================================================
  <!--
    ||   This file lives in ${maven.home}
    -->
  <jelly:jelly
    trim="true"
    xmlns:ant="jelly:ant"
    xmlns:jelly="jelly:core"
    xmlns:util="maven:util"
    xmlns:maven="jelly:org.apache.maven.jelly.MavenTagLibrary">
  
    <!-- 
      || Dispatch each argument as a maven build target.
      -->
    <jelly:forEach 
      var="target"
      items="${args}"
      begin="1">
      <maven:maven target="${target}"/>  
    </jelly:forEach>
  
  </jelly:jelly>
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to