ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bode...@apache.org
Subject cvs commit: jakarta-ant/src/main/org/apache/tools/ant/taskdefs/rmic WLRmic.java DefaultRmicAdapter.java RmicAdapter.java RmicAdapterFactory.java
Date Mon, 19 Mar 2001 11:22:53 GMT
bodewig     01/03/19 03:22:53

  Modified:    .        WHATSNEW
               docs/manual/CoreTasks rmic.html
               src/main/org/apache/tools/ant/taskdefs Rmic.java
               src/main/org/apache/tools/ant/taskdefs/rmic
                        DefaultRmicAdapter.java RmicAdapter.java
                        RmicAdapterFactory.java
  Added:       src/main/org/apache/tools/ant/taskdefs/rmic WLRmic.java
  Log:
  Add support for Weblogic's rmic.
  
  PR: 959
  Submitted by:	Takashi Okamoto <toraneko@kun.ne.jp>
  
  Revision  Changes    Path
  1.91      +1 -1      jakarta-ant/WHATSNEW
  
  Index: WHATSNEW
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/WHATSNEW,v
  retrieving revision 1.90
  retrieving revision 1.91
  diff -u -r1.90 -r1.91
  --- WHATSNEW	2001/03/16 12:57:15	1.90
  +++ WHATSNEW	2001/03/19 11:22:43	1.91
  @@ -15,7 +15,7 @@
   
   * Ant now uses JAXP 1.1
   
  -* rmic now supports Kaffe's version of rmic.
  +* rmic now supports Kaffe's and Weblogic's version of rmic.
   
   * new magic property build.rmic to chose the rmic implementation
   
  
  
  
  1.4       +2 -1      jakarta-ant/docs/manual/CoreTasks/rmic.html
  
  Index: rmic.html
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/docs/manual/CoreTasks/rmic.html,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- rmic.html	2001/03/16 12:57:15	1.3
  +++ rmic.html	2001/03/19 11:22:46	1.4
  @@ -28,10 +28,11 @@
   <code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code>
and
   <code>&lt;patternset&gt;</code> elements.</p>
   <p>It is possible to use different compilers. This can be selected with the
  -&quot;build.rmic&quot; property. There are two choices:</p>
  +&quot;build.rmic&quot; property. There are three choices:</p>
   <ul>
     <li>sun (the standard compiler of the JDK)</li>
     <li>kaffe (the standard compiler of <a href="http://www.kaffe.org" target="_top">Kaffe</a>)</li>
  +  <li>weblogic</li>
   </ul>
   <h3>Parameters</h3>
   <table border="1" cellpadding="2" cellspacing="0">
  
  
  
  1.21      +10 -4     jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Rmic.java
  
  Index: Rmic.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Rmic.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- Rmic.java	2001/03/17 12:41:38	1.20
  +++ Rmic.java	2001/03/19 11:22:48	1.21
  @@ -401,7 +401,9 @@
           // Move the generated source file to the base directory
           if (null != sourceBase) {
               for (int j = 0; j < fileCount; j++) {
  -                moveGeneratedFile(baseDir, sourceBase, (String) compileList.elementAt(j));
  +                moveGeneratedFile(baseDir, sourceBase,
  +                                  (String) compileList.elementAt(j),
  +                                  adapter);
               }
           }
           compileList.removeAllElements();
  @@ -412,9 +414,12 @@
        *
        * @exception org.apache.tools.ant.BuildException When error copying/removing files.
        */
  -    private void moveGeneratedFile (File baseDir, File sourceBaseFile, String classname)
  +    private void moveGeneratedFile (File baseDir, File sourceBaseFile,
  +                                    String classname,
  +                                    RmicAdapter adapter)
           throws BuildException {
  -        String stubFileName = classname.replace('.', File.separatorChar) + "_Stub.java";
  +        String stubFileName = classname.replace('.', File.separatorChar)
  +            + adapter.getStubClassSuffix()+".java";
           File oldStubFile = new File(baseDir, stubFileName);
           File newStubFile = new File(sourceBaseFile, stubFileName);
           try {
  @@ -426,7 +431,8 @@
               throw new BuildException(msg, ioe, location);
           }
           if (!"1.2".equals(stubVersion)) {
  -            String skelFileName = classname.replace('.', '/') + "_Skel.java";
  +            String skelFileName = classname.replace('.', File.separatorChar)
  +                + adapter.getSkelClassSuffix()+".java";
               File oldSkelFile = new File(baseDir, skelFileName);
               File newSkelFile = new File(sourceBaseFile, skelFileName);
               try {
  
  
  
  1.2       +21 -7     jakarta-ant/src/main/org/apache/tools/ant/taskdefs/rmic/DefaultRmicAdapter.java
  
  Index: DefaultRmicAdapter.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/rmic/DefaultRmicAdapter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DefaultRmicAdapter.java	2001/03/16 12:57:16	1.1
  +++ DefaultRmicAdapter.java	2001/03/19 11:22:50	1.2
  @@ -76,21 +76,34 @@
   public abstract class DefaultRmicAdapter implements RmicAdapter {
   
       private Rmic attributes;
  +    private FileNameMapper mapper;
   
  +    public DefaultRmicAdapter() {
  +    }
  +
       public void setRmic( Rmic attributes ) {
           this.attributes = attributes;
  +        mapper = new RmicFileNameMapper();
       }
   
       public Rmic getRmic() {
           return attributes;
       }
   
  +    public String getStubClassSuffix() {
  +        return "_Stub";
  +    }        
  +
  +    public String getSkelClassSuffix() {
  +        return "_Skel";
  +    }        
  +
       /**
  -     * This implementation maps *.class to *_Stub.class and - if
  -     * stubversion is not 1.2 - to _Skel.class.
  +     * This implementation maps *.class to *getStubClassSuffix().class and - if
  +     * stubversion is not 1.2 - to *getSkelClassSuffix().class.
        */
       public FileNameMapper getMapper() {
  -        return new RmicFileNameMapper();
  +        return mapper;
       }
   
       /**
  @@ -297,13 +310,13 @@
           RmicFileNameMapper() {
               stubMapper = new GlobPatternMapper();
               stubMapper.setFrom("*.class");
  -            stubMapper.setTo("*_Stub.class");
  +            stubMapper.setTo("*"+getStubClassSuffix()+".class");
   
               // no _Skel file in stub version 1.2
               if (!"1.2".equals(attributes.getStubVersion())) {
                   skelMapper = new GlobPatternMapper();
                   skelMapper.setFrom("*.class");
  -                skelMapper.setTo("*_Skel.class");
  +                skelMapper.setTo("*"+getSkelClassSuffix()+".class");
               }
           }
   
  @@ -319,8 +332,9 @@
           public String[] mapFileName(String name) {
               String[] stubName = stubMapper.mapFileName(name);
   
  -            if (stubName == null || name.endsWith("_Stub.class") 
  -                || name.endsWith("_Skel.class")) {
  +            if (stubName == null
  +                || name.endsWith(getStubClassSuffix()+".class") 
  +                || name.endsWith(getSkelClassSuffix()+".class")) {
                   // Not a .class file
                   return null;
               }
  
  
  
  1.2       +12 -0     jakarta-ant/src/main/org/apache/tools/ant/taskdefs/rmic/RmicAdapter.java
  
  Index: RmicAdapter.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/rmic/RmicAdapter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- RmicAdapter.java	2001/03/16 12:57:16	1.1
  +++ RmicAdapter.java	2001/03/19 11:22:51	1.2
  @@ -93,6 +93,18 @@
        */
       public FileNameMapper getMapper();
   
  +    /** 
  +     * Difference between original class file name and the generated
  +     * stub class.
  +     */
  +    public String getStubClassSuffix();
  +
  +    /** 
  +     * Difference between original class file name and the generated
  +     * skel class.
  +     */
  +    public String getSkelClassSuffix();
  +
       /**
        * The CLASSPATH this rmic process will use.
        */
  
  
  
  1.2       +3 -1      jakarta-ant/src/main/org/apache/tools/ant/taskdefs/rmic/RmicAdapterFactory.java
  
  Index: RmicAdapterFactory.java
  ===================================================================
  RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/rmic/RmicAdapterFactory.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- RmicAdapterFactory.java	2001/03/16 12:57:16	1.1
  +++ RmicAdapterFactory.java	2001/03/19 11:22:51	1.2
  @@ -110,8 +110,10 @@
   
           if ( rmicType.equalsIgnoreCase("sun") ) {
               return new SunRmic();
  -        } if ( rmicType.equalsIgnoreCase("kaffe") ) {
  +        } else if ( rmicType.equalsIgnoreCase("kaffe") ) {
               return new KaffeRmic();
  +        } else if ( rmicType.equalsIgnoreCase("weblogic") ) {
  +            return new WLRmic();
           }
           return resolveClassName( rmicType );
       }
  
  
  
  1.1                  jakarta-ant/src/main/org/apache/tools/ant/taskdefs/rmic/WLRmic.java
  
  Index: WLRmic.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution, if
   *    any, must include the following acknowlegement:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowlegement may appear in the software itself,
   *    if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names "The Jakarta Project", "Ant", and "Apache Software
   *    Foundation" must not be used to endorse or promote products derived
   *    from this software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache"
   *    nor may "Apache" appear in their names without prior written
   *    permission of the Apache Group.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  
  package org.apache.tools.ant.taskdefs.rmic;
  
  import org.apache.tools.ant.BuildException;
  import org.apache.tools.ant.Project;
  import org.apache.tools.ant.taskdefs.LogOutputStream;
  import org.apache.tools.ant.types.Commandline;
  import org.apache.tools.ant.types.Path;
  
  import java.io.*;
  import java.lang.reflect.Constructor;
  import java.lang.reflect.Method;
  
  /**
   * The implementation of the rmic for WebLogic
   *
   * @author Takashi Okamoto <tokamoto@rd.nttdata.co.jp>
   */
  public class WLRmic extends DefaultRmicAdapter {
  
      public boolean execute() throws BuildException {
          getRmic().log("Using WebLogic rmic", Project.MSG_VERBOSE);
          Commandline cmd = setupRmicCommand();
  
          PrintStream err = System.err;
          PrintStream out = System.out;
  
          try {
              PrintStream logstr = 
                  new PrintStream(new LogOutputStream(getRmic(), Project.MSG_WARN));
              System.setOut(logstr);
              System.setErr(logstr);
  
              // Create an instance of the rmic
              Class c = Class.forName("weblogic.rmic");
              Method doRmic = c.getMethod("main", 
                                          new Class [] { String[].class });
              doRmic.invoke(null, new Object[] { cmd.getArguments() });
              return true;
          } catch (ClassNotFoundException ex) {
              throw new BuildException("Cannot use WebLogic rmic, as it is not available"+
                                       " A common solution is to set the environment variable"+
                                       " CLASSPATH.", getRmic().getLocation() );
          }
          catch (Exception ex) {
              if (ex instanceof BuildException) {
                  throw (BuildException) ex;
              } else {
                  throw new BuildException("Error starting WebLogic rmic: ", ex, getRmic().getLocation());
              }
          } finally {
              System.setErr(err);
              System.setOut(out);
          }
      }
  
      /**
       * Get the suffix for the rmic stub classes
       */
      public String getStubClassSuffix() {
          return "_WLStub";
      }
  
      /**
       * Get the suffix for the rmic skeleton classes
       */
      public String getSkelClassSuffix() {
          return "_WLSkel";
      }
  }
  
  
  

Mime
View raw message