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

Reply via email to