Hi,
I've backported a subset of the JDK 1.7 tools.jar library to J2SEv1.4,
it's licensed under GPLv2 with Classpath Exception, it would allow River
to compile and build without requiring the SUN PROPRIETARY/CONFIDENTIAL
tools.jar library, instead relying only on the J2SEv1.4 Public API.
Much of the code within this library is depreciated and there's an
opportunity to modernise this code, although the code is well commented
with bugs etc. Long term support would be dependent on changes to the
java bytecode format and language constructs themselves, which are the
least likely part of the Java platform to break backward compatibility,
hence the code should be less likely to break by divorcing from
undocumented API changes, the replacement library can be compiled
together with River but would remain separate and should allow River to
be built on Harmony also, I wonder, will it run on Android?
The tools.jar , sun.tools.javac.Main compiler has been depreciated since
java 1.3 (was replaced by com.sun.tools.javac.Main) and since Java 6
(1.6) has been replaced by the public API javax.tools.JavaCompiler. The
new JavaCompiler allows code to be composed, compiled and run on the fly
from within a Java program.
How would one go about getting a ReplacementTools.jar library added to
River? It isn't licensed under Apache v2.
Cheers,
Peter Firmstone.
Here's the output of ClassDep checking its own class dependencies,
compiled with jdk1.4.2, test run with jdk1.4.2, jdk1.5.0 and jdk1.6.0
$java -jar ./dist/RiverToolsReplacement.jar -cp ./build/classes
com.sun.jini.tool.ClassDep -in suncompat.sun.tools -in com.sun.jini.tool
-files
com/sun/jini/tool/ClassDep.class
com/sun/jini/tool/ClassDep$1.class
com/sun/jini/tool/ClassDep$Compare.class
com/sun/jini/tool/ClassDep$Env.class
suncompat/sun/tools/asm/ArrayData.class
suncompat/sun/tools/asm/Assembler.class
suncompat/sun/tools/asm/CatchData.class
suncompat/sun/tools/asm/ClassConstantData.class
suncompat/sun/tools/asm/ConstantPool.class
suncompat/sun/tools/asm/ConstantPoolData.class
suncompat/sun/tools/asm/Cover.class
suncompat/sun/tools/asm/FieldConstantData.class
suncompat/sun/tools/asm/Instruction.class
suncompat/sun/tools/asm/Label.class
suncompat/sun/tools/asm/LocalVariable.class
suncompat/sun/tools/asm/LocalVariableTable.class
suncompat/sun/tools/asm/NameAndTypeConstantData.class
suncompat/sun/tools/asm/NameAndTypeData.class
suncompat/sun/tools/asm/NumberConstantData.class
suncompat/sun/tools/asm/StringConstantData.class
suncompat/sun/tools/asm/StringExpressionConstantData.class
suncompat/sun/tools/asm/SwitchData.class
suncompat/sun/tools/asm/SwitchDataEnumeration.class
suncompat/sun/tools/asm/TryData.class
suncompat/sun/tools/java/AmbiguousClass.class
suncompat/sun/tools/java/AmbiguousMember.class
suncompat/sun/tools/java/ArrayType.class
suncompat/sun/tools/java/BinaryAttribute.class
suncompat/sun/tools/java/BinaryClass.class
suncompat/sun/tools/java/BinaryConstantPool.class
suncompat/sun/tools/java/BinaryMember.class
suncompat/sun/tools/java/ClassDeclaration.class
suncompat/sun/tools/java/ClassDefinition.class
suncompat/sun/tools/java/ClassFile.class
suncompat/sun/tools/java/ClassNotFound.class
suncompat/sun/tools/java/ClassPath.class
suncompat/sun/tools/java/ClassPathEntry.class
suncompat/sun/tools/java/ClassType.class
suncompat/sun/tools/java/CompilerError.class
suncompat/sun/tools/java/Constants.class
suncompat/sun/tools/java/Environment.class
suncompat/sun/tools/java/Identifier.class
suncompat/sun/tools/java/IdentifierToken.class
suncompat/sun/tools/java/ImportEnvironment.class
suncompat/sun/tools/java/Imports.class
suncompat/sun/tools/java/MemberDefinition.class
suncompat/sun/tools/java/MethodSet.class
suncompat/sun/tools/java/MethodSet$1MethodIterator.class
suncompat/sun/tools/java/MethodType.class
suncompat/sun/tools/java/Package.class
suncompat/sun/tools/java/Parser.class
suncompat/sun/tools/java/ParserActions.class
suncompat/sun/tools/java/RuntimeConstants.class
suncompat/sun/tools/java/Scanner.class
suncompat/sun/tools/java/ScannerInputReader.class
suncompat/sun/tools/java/SyntaxError.class
suncompat/sun/tools/java/Type.class
suncompat/sun/tools/javac/BatchEnvironment.class
suncompat/sun/tools/javac/BatchParser.class
suncompat/sun/tools/javac/CompilerMember.class
suncompat/sun/tools/javac/ErrorConsumer.class
suncompat/sun/tools/javac/ErrorMessage.class
suncompat/sun/tools/javac/Main.class
suncompat/sun/tools/javac/SourceClass.class
suncompat/sun/tools/javac/SourceMember.class
suncompat/sun/tools/tree/AddExpression.class
suncompat/sun/tools/tree/AndExpression.class
suncompat/sun/tools/tree/ArrayAccessExpression.class
suncompat/sun/tools/tree/ArrayExpression.class
suncompat/sun/tools/tree/AssignAddExpression.class
suncompat/sun/tools/tree/AssignBitAndExpression.class
suncompat/sun/tools/tree/AssignBitOrExpression.class
suncompat/sun/tools/tree/AssignBitXorExpression.class
suncompat/sun/tools/tree/AssignDivideExpression.class
suncompat/sun/tools/tree/AssignExpression.class
suncompat/sun/tools/tree/AssignMultiplyExpression.class
suncompat/sun/tools/tree/AssignOpExpression.class
suncompat/sun/tools/tree/AssignRemainderExpression.class
suncompat/sun/tools/tree/AssignShiftLeftExpression.class
suncompat/sun/tools/tree/AssignShiftRightExpression.class
suncompat/sun/tools/tree/AssignSubtractExpression.class
suncompat/sun/tools/tree/AssignUnsignedShiftRightExpression.class
suncompat/sun/tools/tree/BinaryArithmeticExpression.class
suncompat/sun/tools/tree/BinaryAssignExpression.class
suncompat/sun/tools/tree/BinaryBitExpression.class
suncompat/sun/tools/tree/BinaryCompareExpression.class
suncompat/sun/tools/tree/BinaryEqualityExpression.class
suncompat/sun/tools/tree/BinaryExpression.class
suncompat/sun/tools/tree/BinaryLogicalExpression.class
suncompat/sun/tools/tree/BinaryShiftExpression.class
suncompat/sun/tools/tree/BitAndExpression.class
suncompat/sun/tools/tree/BitNotExpression.class
suncompat/sun/tools/tree/BitOrExpression.class
suncompat/sun/tools/tree/BitXorExpression.class
suncompat/sun/tools/tree/BooleanExpression.class
suncompat/sun/tools/tree/BreakStatement.class
suncompat/sun/tools/tree/ByteExpression.class
suncompat/sun/tools/tree/CaseStatement.class
suncompat/sun/tools/tree/CastExpression.class
suncompat/sun/tools/tree/CatchStatement.class
suncompat/sun/tools/tree/CharExpression.class
suncompat/sun/tools/tree/CheckContext.class
suncompat/sun/tools/tree/CodeContext.class
suncompat/sun/tools/tree/CommaExpression.class
suncompat/sun/tools/tree/CompoundStatement.class
suncompat/sun/tools/tree/ConditionVars.class
suncompat/sun/tools/tree/ConditionalExpression.class
suncompat/sun/tools/tree/ConstantExpression.class
suncompat/sun/tools/tree/Context.class
suncompat/sun/tools/tree/ContextEnvironment.class
suncompat/sun/tools/tree/ContinueStatement.class
suncompat/sun/tools/tree/ConvertExpression.class
suncompat/sun/tools/tree/DeclarationStatement.class
suncompat/sun/tools/tree/DivRemExpression.class
suncompat/sun/tools/tree/DivideExpression.class
suncompat/sun/tools/tree/DoStatement.class
suncompat/sun/tools/tree/DoubleExpression.class
suncompat/sun/tools/tree/EqualExpression.class
suncompat/sun/tools/tree/ExprExpression.class
suncompat/sun/tools/tree/Expression.class
suncompat/sun/tools/tree/ExpressionStatement.class
suncompat/sun/tools/tree/FieldExpression.class
suncompat/sun/tools/tree/FieldUpdater.class
suncompat/sun/tools/tree/FinallyStatement.class
suncompat/sun/tools/tree/FloatExpression.class
suncompat/sun/tools/tree/ForStatement.class
suncompat/sun/tools/tree/GreaterExpression.class
suncompat/sun/tools/tree/GreaterOrEqualExpression.class
suncompat/sun/tools/tree/IdentifierExpression.class
suncompat/sun/tools/tree/IfStatement.class
suncompat/sun/tools/tree/IncDecExpression.class
suncompat/sun/tools/tree/InlineMethodExpression.class
suncompat/sun/tools/tree/InlineNewInstanceExpression.class
suncompat/sun/tools/tree/InlineReturnStatement.class
suncompat/sun/tools/tree/InstanceOfExpression.class
suncompat/sun/tools/tree/IntExpression.class
suncompat/sun/tools/tree/IntegerExpression.class
suncompat/sun/tools/tree/LengthExpression.class
suncompat/sun/tools/tree/LessExpression.class
suncompat/sun/tools/tree/LessOrEqualExpression.class
suncompat/sun/tools/tree/LocalMember.class
suncompat/sun/tools/tree/LongExpression.class
suncompat/sun/tools/tree/MethodExpression.class
suncompat/sun/tools/tree/MultiplyExpression.class
suncompat/sun/tools/tree/NaryExpression.class
suncompat/sun/tools/tree/NegativeExpression.class
suncompat/sun/tools/tree/NewArrayExpression.class
suncompat/sun/tools/tree/NewInstanceExpression.class
suncompat/sun/tools/tree/Node.class
suncompat/sun/tools/tree/NotEqualExpression.class
suncompat/sun/tools/tree/NotExpression.class
suncompat/sun/tools/tree/NullExpression.class
suncompat/sun/tools/tree/OrExpression.class
suncompat/sun/tools/tree/PositiveExpression.class
suncompat/sun/tools/tree/PostDecExpression.class
suncompat/sun/tools/tree/PostIncExpression.class
suncompat/sun/tools/tree/PreDecExpression.class
suncompat/sun/tools/tree/PreIncExpression.class
suncompat/sun/tools/tree/RemainderExpression.class
suncompat/sun/tools/tree/ReturnStatement.class
suncompat/sun/tools/tree/ShiftLeftExpression.class
suncompat/sun/tools/tree/ShiftRightExpression.class
suncompat/sun/tools/tree/ShortExpression.class
suncompat/sun/tools/tree/Statement.class
suncompat/sun/tools/tree/StringExpression.class
suncompat/sun/tools/tree/SubtractExpression.class
suncompat/sun/tools/tree/SuperExpression.class
suncompat/sun/tools/tree/SwitchStatement.class
suncompat/sun/tools/tree/SynchronizedStatement.class
suncompat/sun/tools/tree/ThisExpression.class
suncompat/sun/tools/tree/ThrowStatement.class
suncompat/sun/tools/tree/TryStatement.class
suncompat/sun/tools/tree/TypeExpression.class
suncompat/sun/tools/tree/UnaryExpression.class
suncompat/sun/tools/tree/UnsignedShiftRightExpression.class
suncompat/sun/tools/tree/UplevelReference.class
suncompat/sun/tools/tree/VarDeclarationStatement.class
suncompat/sun/tools/tree/Vset.class
suncompat/sun/tools/tree/WhileStatement.class
suncompat/sun/tools/util/CommandLine.class