jvanzyl     2002/06/03 15:41:16

  Added:       src/scripts README make-maven-lib maven pom.jelly test.sh
  Log:
  First little attempt at getting Maven using jelly. More an experiment
  than anything.
  
  Revision  Changes    Path
  1.1                  jakarta-turbine-maven/src/scripts/README
  
  Index: README
  ===================================================================
  This is just a little hack trying to get Maven to use Jelly.
  
  All this example does is pull in the MavenTagLibrary, process
  a POM descriptor and show a few values.
  
  To try this out you have to:
  
  1) ./make-maven-lib
  2) ./test.sh
  
  jvz.
  
  
  
  1.1                  jakarta-turbine-maven/src/scripts/make-maven-lib
  
  Index: make-maven-lib
  ===================================================================
  #!/bin/sh
  
  [ -z "$MAVEN_HOME" ] && echo "Must set LIB_REPO" && exit
  [ -z "$LIB_REPO" ] && echo "Must set LIB_REPO" && exit
  
  LIBS="commons-beanutils-1.4-dev.jar \
        commons-betwixt-1.0-dev.jar \
        commons-collections-2.0.jar \
        commons-digester-1.2.jar \
        commons-jelly-1.0-dev.jar \
        commons-jexl-1.0-dev.jar \
        commons-logging-1.0.jar \
        dom4j-1.4-dev.jar \
        maven.jar \
        velocity-1.4-dev.jar \
        xercesImpl-2.0.0.jar \
        xmlParserAPIs-2.0.0.jar"
  
  mkdir -p $MAVEN_HOME/lib
  
  for i in $LIBS
  do
    cp $LIB_REPO/$i $MAVEN_HOME/lib
  done  
  
  
  
  1.1                  jakarta-turbine-maven/src/scripts/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_ARGS "$@"
  
  
  
  1.1                  jakarta-turbine-maven/src/scripts/pom.jelly
  
  Index: pom.jelly
  ===================================================================
  <?xml version="1.0"?>
  
  <j:jelly xmlns:j="jelly:core" 
xmlns:maven="jelly:org.apache.maven.jelly.MavenTagLibrary">
  
    <maven:pom projectDescriptor="../../project.xml">
    
      project name = <j:expr value="${project.name}"/>
        project id = <j:expr value="${project.id}"/>
      
    </maven:pom>
  
  </j:jelly>
  
  
  
  1.1                  jakarta-turbine-maven/src/scripts/test.sh
  
  Index: test.sh
  ===================================================================
  #!/bin/sh
  
  ./maven pom.jelly
  
  
  

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

Reply via email to