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"; | ||||
} | } | ||||