JavaVersion is now a completely self-contained class. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270453 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -78,11 +78,6 @@ public abstract class AbstractTask | |||||
| return m_context; | return m_context; | ||||
| } | } | ||||
| protected final JavaVersion getJavaVersion() | |||||
| { | |||||
| return getContext().getJavaVersion(); | |||||
| } | |||||
| protected final Object get( final Object key ) | protected final Object get( final Object key ) | ||||
| throws ContextException | throws ContextException | ||||
| { | { | ||||
| @@ -23,6 +23,18 @@ public final class JavaVersion | |||||
| public final static JavaVersion JAVA1_2 = new JavaVersion( "Java 1.2", 120 ); | public final static JavaVersion JAVA1_2 = new JavaVersion( "Java 1.2", 120 ); | ||||
| public final static JavaVersion JAVA1_3 = new JavaVersion( "Java 1.3", 130 ); | public final static JavaVersion JAVA1_3 = new JavaVersion( "Java 1.3", 130 ); | ||||
| private final static JavaVersion CURRENT = determineCurrentJavaVersion(); | |||||
| /** | |||||
| * Method to retrieve the current JVM version. | |||||
| * | |||||
| * @return the current JVM version | |||||
| */ | |||||
| public static final JavaVersion getCurrentJavaVersion() | |||||
| { | |||||
| return CURRENT; | |||||
| } | |||||
| /** | /** | ||||
| * Private constructor so no instance except here can be defined. | * Private constructor so no instance except here can be defined. | ||||
| * | * | ||||
| @@ -33,4 +45,29 @@ public final class JavaVersion | |||||
| { | { | ||||
| super( name, value ); | super( name, value ); | ||||
| } | } | ||||
| /** | |||||
| * Helper method to retrieve current JVM version. | |||||
| * | |||||
| * @return the current JVM version | |||||
| */ | |||||
| private static final JavaVersion determineCurrentJavaVersion() | |||||
| { | |||||
| JavaVersion version = JavaVersion.JAVA1_0; | |||||
| try | |||||
| { | |||||
| Class.forName( "java.lang.Void" ); | |||||
| version = JavaVersion.JAVA1_1; | |||||
| Class.forName( "java.lang.ThreadLocal" ); | |||||
| version = JavaVersion.JAVA1_2; | |||||
| Class.forName( "java.lang.StrictMath" ); | |||||
| version = JavaVersion.JAVA1_3; | |||||
| } | |||||
| catch( final ClassNotFoundException cnfe ) | |||||
| { | |||||
| } | |||||
| return version; | |||||
| } | |||||
| } | } | ||||
| @@ -30,17 +30,9 @@ public interface TaskContext | |||||
| ScopeEnum TOP_LEVEL = new ScopeEnum( "TopLevel" ); | ScopeEnum TOP_LEVEL = new ScopeEnum( "TopLevel" ); | ||||
| //these are the names of properties that every TaskContext must contain | //these are the names of properties that every TaskContext must contain | ||||
| String JAVA_VERSION = "myrmidon.java.version"; | |||||
| String BASE_DIRECTORY = "myrmidon.base.directory"; | String BASE_DIRECTORY = "myrmidon.base.directory"; | ||||
| String NAME = "myrmidon.task.name"; | String NAME = "myrmidon.task.name"; | ||||
| /** | |||||
| * Retrieve JavaVersion running under. | |||||
| * | |||||
| * @return the version of JVM | |||||
| */ | |||||
| JavaVersion getJavaVersion(); | |||||
| /** | /** | ||||
| * Retrieve Name of tasklet. | * Retrieve Name of tasklet. | ||||
| * | * | ||||
| @@ -20,7 +20,6 @@ import org.apache.avalon.framework.component.DefaultComponentManager; | |||||
| import org.apache.avalon.framework.logger.AbstractLogEnabled; | import org.apache.avalon.framework.logger.AbstractLogEnabled; | ||||
| import org.apache.avalon.framework.parameters.Parameterizable; | import org.apache.avalon.framework.parameters.Parameterizable; | ||||
| import org.apache.avalon.framework.parameters.Parameters; | import org.apache.avalon.framework.parameters.Parameters; | ||||
| import org.apache.myrmidon.api.JavaVersion; | |||||
| import org.apache.myrmidon.interfaces.aspect.AspectManager; | import org.apache.myrmidon.interfaces.aspect.AspectManager; | ||||
| import org.apache.myrmidon.interfaces.builder.ProjectBuilder; | import org.apache.myrmidon.interfaces.builder.ProjectBuilder; | ||||
| import org.apache.myrmidon.interfaces.configurer.Configurer; | import org.apache.myrmidon.interfaces.configurer.Configurer; | ||||
| @@ -437,31 +436,6 @@ public class DefaultEmbeddor | |||||
| } | } | ||||
| } | } | ||||
| /** | |||||
| * Helper method to retrieve current JVM version. | |||||
| * | |||||
| * @return the current JVM version | |||||
| */ | |||||
| private JavaVersion getJavaVersion() | |||||
| { | |||||
| JavaVersion version = JavaVersion.JAVA1_0; | |||||
| try | |||||
| { | |||||
| Class.forName( "java.lang.Void" ); | |||||
| version = JavaVersion.JAVA1_1; | |||||
| Class.forName( "java.lang.ThreadLocal" ); | |||||
| version = JavaVersion.JAVA1_2; | |||||
| Class.forName( "java.lang.StrictMath" ); | |||||
| version = JavaVersion.JAVA1_3; | |||||
| } | |||||
| catch( final ClassNotFoundException cnfe ) | |||||
| { | |||||
| } | |||||
| return version; | |||||
| } | |||||
| /** | /** | ||||
| * Create a component that implements an interface. | * Create a component that implements an interface. | ||||
| * | * | ||||
| @@ -14,7 +14,6 @@ import org.apache.avalon.excalibur.i18n.Resources; | |||||
| import org.apache.avalon.excalibur.io.FileUtil; | import org.apache.avalon.excalibur.io.FileUtil; | ||||
| import org.apache.avalon.framework.context.ContextException; | import org.apache.avalon.framework.context.ContextException; | ||||
| import org.apache.avalon.framework.context.DefaultContext; | import org.apache.avalon.framework.context.DefaultContext; | ||||
| import org.apache.myrmidon.api.JavaVersion; | |||||
| import org.apache.myrmidon.api.TaskContext; | import org.apache.myrmidon.api.TaskContext; | ||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| @@ -54,24 +53,6 @@ public class DefaultTaskContext | |||||
| super( parent ); | super( parent ); | ||||
| } | } | ||||
| /** | |||||
| * Retrieve JavaVersion running under. | |||||
| * | |||||
| * @return the version of JVM | |||||
| */ | |||||
| public JavaVersion getJavaVersion() | |||||
| { | |||||
| try | |||||
| { | |||||
| return (JavaVersion)get( JAVA_VERSION ); | |||||
| } | |||||
| catch( final ContextException ce ) | |||||
| { | |||||
| final String message = REZ.getString( "no-version.error" ); | |||||
| throw new IllegalStateException( message ); | |||||
| } | |||||
| } | |||||
| /** | /** | ||||
| * Retrieve Name of tasklet. | * Retrieve Name of tasklet. | ||||
| * | * | ||||
| @@ -210,7 +191,6 @@ public class DefaultTaskContext | |||||
| context.setProperty( TaskContext.NAME, getName() + "." + name ); | context.setProperty( TaskContext.NAME, getName() + "." + name ); | ||||
| context.setProperty( TaskContext.BASE_DIRECTORY, getBaseDirectory() ); | context.setProperty( TaskContext.BASE_DIRECTORY, getBaseDirectory() ); | ||||
| context.setProperty( TaskContext.JAVA_VERSION, getJavaVersion() ); | |||||
| return context; | return context; | ||||
| } | } | ||||
| @@ -237,11 +217,5 @@ public class DefaultTaskContext | |||||
| REZ.getString( "bad-property.error", NAME, String.class.getName() ); | REZ.getString( "bad-property.error", NAME, String.class.getName() ); | ||||
| throw new TaskException( message ); | throw new TaskException( message ); | ||||
| } | } | ||||
| else if( JAVA_VERSION.equals( name ) && !( value instanceof JavaVersion ) ) | |||||
| { | |||||
| final String message = | |||||
| REZ.getString( "bad-property.error", JAVA_VERSION, JavaVersion.class.getName() ); | |||||
| throw new TaskException( message ); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| @@ -10,11 +10,10 @@ package org.apache.tools.ant.taskdefs; | |||||
| import java.io.File; | import java.io.File; | ||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||
| import java.util.Iterator; | import java.util.Iterator; | ||||
| import org.apache.myrmidon.api.TaskException; | |||||
| import org.apache.myrmidon.api.JavaVersion; | import org.apache.myrmidon.api.JavaVersion; | ||||
| import org.apache.myrmidon.api.TaskException; | |||||
| import org.apache.myrmidon.framework.Os; | import org.apache.myrmidon.framework.Os; | ||||
| import org.apache.tools.ant.DirectoryScanner; | import org.apache.tools.ant.DirectoryScanner; | ||||
| import org.apache.tools.ant.Project; | |||||
| import org.apache.tools.ant.taskdefs.compilers.CompilerAdapter; | import org.apache.tools.ant.taskdefs.compilers.CompilerAdapter; | ||||
| import org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory; | import org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory; | ||||
| import org.apache.tools.ant.types.Argument; | import org.apache.tools.ant.types.Argument; | ||||
| @@ -895,7 +894,7 @@ public class Javac extends MatchingTask | |||||
| if( compiler == null ) | if( compiler == null ) | ||||
| { | { | ||||
| if( JavaVersion.JAVA1_2 != getJavaVersion() ) | |||||
| if( JavaVersion.JAVA1_2 != JavaVersion.getCurrentJavaVersion() ) | |||||
| { | { | ||||
| compiler = "modern"; | compiler = "modern"; | ||||
| } | } | ||||
| @@ -13,7 +13,6 @@ import java.io.IOException; | |||||
| import java.io.PrintWriter; | import java.io.PrintWriter; | ||||
| import org.apache.avalon.framework.logger.AbstractLogEnabled; | import org.apache.avalon.framework.logger.AbstractLogEnabled; | ||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| import org.apache.myrmidon.api.JavaVersion; | |||||
| import org.apache.tools.ant.Project; | import org.apache.tools.ant.Project; | ||||
| import org.apache.tools.ant.taskdefs.Javac; | import org.apache.tools.ant.taskdefs.Javac; | ||||
| import org.apache.tools.ant.taskdefs.exec.Execute; | import org.apache.tools.ant.taskdefs.exec.Execute; | ||||
| @@ -268,7 +268,7 @@ public class Javah extends Task | |||||
| String compiler = getProject().getProperty( "build.compiler" ); | String compiler = getProject().getProperty( "build.compiler" ); | ||||
| if( compiler == null ) | if( compiler == null ) | ||||
| { | { | ||||
| if( JavaVersion.JAVA1_2 != getJavaVersion() ) | |||||
| if( JavaVersion.JAVA1_2 != JavaVersion.getCurrentJavaVersion() ) | |||||
| { | { | ||||
| compiler = "modern"; | compiler = "modern"; | ||||
| } | } | ||||
| @@ -10,11 +10,10 @@ package org.apache.tools.ant.taskdefs; | |||||
| import java.io.File; | import java.io.File; | ||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||
| import java.util.Iterator; | import java.util.Iterator; | ||||
| import org.apache.myrmidon.api.TaskException; | |||||
| import org.apache.myrmidon.api.JavaVersion; | import org.apache.myrmidon.api.JavaVersion; | ||||
| import org.apache.myrmidon.api.TaskException; | |||||
| import org.apache.myrmidon.framework.Os; | import org.apache.myrmidon.framework.Os; | ||||
| import org.apache.tools.ant.DirectoryScanner; | import org.apache.tools.ant.DirectoryScanner; | ||||
| import org.apache.tools.ant.Project; | |||||
| import org.apache.tools.ant.taskdefs.compilers.CompilerAdapter; | import org.apache.tools.ant.taskdefs.compilers.CompilerAdapter; | ||||
| import org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory; | import org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory; | ||||
| import org.apache.tools.ant.types.Argument; | import org.apache.tools.ant.types.Argument; | ||||
| @@ -895,7 +894,7 @@ public class Javac extends MatchingTask | |||||
| if( compiler == null ) | if( compiler == null ) | ||||
| { | { | ||||
| if( JavaVersion.JAVA1_2 != getJavaVersion() ) | |||||
| if( JavaVersion.JAVA1_2 != JavaVersion.getCurrentJavaVersion() ) | |||||
| { | { | ||||
| compiler = "modern"; | compiler = "modern"; | ||||
| } | } | ||||
| @@ -13,7 +13,6 @@ import java.io.IOException; | |||||
| import java.io.PrintWriter; | import java.io.PrintWriter; | ||||
| import org.apache.avalon.framework.logger.AbstractLogEnabled; | import org.apache.avalon.framework.logger.AbstractLogEnabled; | ||||
| import org.apache.myrmidon.api.TaskException; | import org.apache.myrmidon.api.TaskException; | ||||
| import org.apache.myrmidon.api.JavaVersion; | |||||
| import org.apache.tools.ant.Project; | import org.apache.tools.ant.Project; | ||||
| import org.apache.tools.ant.taskdefs.Javac; | import org.apache.tools.ant.taskdefs.Javac; | ||||
| import org.apache.tools.ant.taskdefs.exec.Execute; | import org.apache.tools.ant.taskdefs.exec.Execute; | ||||
| @@ -268,7 +268,7 @@ public class Javah extends Task | |||||
| String compiler = getProject().getProperty( "build.compiler" ); | String compiler = getProject().getProperty( "build.compiler" ); | ||||
| if( compiler == null ) | if( compiler == null ) | ||||
| { | { | ||||
| if( JavaVersion.JAVA1_2 != getJavaVersion() ) | |||||
| if( JavaVersion.JAVA1_2 != JavaVersion.getCurrentJavaVersion() ) | |||||
| { | { | ||||
| compiler = "modern"; | compiler = "modern"; | ||||
| } | } | ||||