All Versions
Latest Version
Avg Release Cycle
204 days
Latest Release
799 days ago

Changelog History
Page 5

  • v2.6 Changes

    August 01, 2003
    • The behavior of CtClass.setSuperclass() was changed. To obtain the previous behavior, call CtClass.replaceClassName().

    • CtConstructor.setBody() now works for class initializers.

    • CtNewMethod.delegator() now works for static methods.

    • javassist.expr.Expr.indexOfBytecode() has been added.

    • 📦 javassist.Loader has been modified so that getPackage() returns a package object.

    • Now, the compiler can correctly compile a try statement and an infinite while-loop.

  • v2.5.1 Changes

    May 01, 2003

    Simple changes for integration with JBoss AOP

    • Made ClassPool.get0 protected so that subclasses of ClassPool can call it.

    • 🚚 Moved all access to the class cache (the field ClassPool.classes) to a method called getCached(String classname). This is so subclasses of ClassPool can override this behavior.

  • v2.5 Changes

    May 01, 2003

    From this version, Javassist is part of the JBoss project.

    • The license was changed from MPL to MPL/LGPL dual.

    • 🚚 ClassPool.removeClassPath() and ClassPath.close() have been added.

    • ClassPool.makeClass(InputStream) has been added.

    • CtClass.makeClassInitializer() has been added.

    • javassist.expr.Expr has been changed to a public class.

    • javassist.expr.Handler has been added.

    • javassist.expr.MethodCall.isSuper() has been added.

    • CtMethod.isEmpty() and CtConstructor.isEmpty() have been added.

    • LoaderClassPath has been implemented.

  • v2.4 Changes

    February 01, 2003
    • The compiler included in Javassist did not correctly work with interface methods. This bug was fixed.

    • Now javassist.bytecode.Bytecode allows more than 255 local variables in the same method.

    • javassist.expr.Instanceof and Cast have been added.

    • javassist.expr.{MethodCall,NewExpr,FieldAccess,Instanceof,Cast}.where() have been added. They return the caller-side method surrounding the expression.

    • javassist.expr.{MethodCall,NewExpr,FieldAccess,Instanceof,Cast}.mayThrow() have been added.

    • $class has been introduced.

    • The parameters to replaceFieldRead(), replaceFieldWrite(), and redirectFieldAccess() in javassist.CodeConverter are changed.

    • The compiler could not correctly handle a try-catch statement. This bug has been fixed.

  • v2.3 Changes

    December 01, 2002
    • The tutorial has been revised a bit.

    • SerialVersionUID class was donated by Bob Lee. Thanks.

    • CtMethod.setBody() and CtConstructor.setBody() have been added.

    • javassist.reflect.ClassMetaobject.useContextClassLoader has been added. If true, the reflection package does not use Class.forName() but uses a context class loader specified by the user.

    • $sig and $type are now available.

    • 🐛 Bugs in Bytecode.write() and read() have been fixed.

  • v2.2 Changes

    October 01, 2002
    • The tutorial has been revised.

    • 📦 A new package javassist.expr has been added. This is replacement of classic CodeConverter.

    • javassist.ConstParameter was changed into javassist.CtMethod.ConstParameter.

    • javassist.FieldInitializer was renamed into javassist.CtField.Initializer.

    • A bug in javassist.bytecode.Bytecode.addInvokeinterface() has been fixed.

    • In javassist.bytecode.Bytecode, addGetfield(), addGetstatic(), addInvokespecial(), addInvokestatic(), addInvokevirtual(), and addInvokeinterface() have been modified to update the current statck depth.

  • v2.1 Changes

    July 01, 2002
    • javassist.CtMember and javassist.CtBehavior have been added.

    • javassist.CtClass.toBytecode() has been added.

    • javassist.CtClass.toClass() and javassist.ClassPool.writeAsClass() has been added.

    • javassist.ByteArrayClassPath has been added.

    • javassist.bytecode.Mnemonic has been added.

    • 🛠 Several bugs have been fixed.

  • v2.0 Changes

    • 📦 The javassist.bytecode package has been provided. It is a lower-level API for directly modifying a class file although the users must have detailed knowledge of the Java bytecode.

    • The mechanism for creating CtClass objects have been changed.

    • 📦 javassist.tool.Dump moves to the javassist package.

    🔖 version 1.0 in July, 2001.

    • javassist.reflect.Metaobject and ClassMetaobject was changed. Now they throw the same exception that they receive from a base-level object.
  • v0.8 Changes

    • javassist.tool.Dump was added. It is a class file viewer.

    • javassist.FiledInitializer.byNewArray() was added. It is for initializing a field with an array object.

    • javassist.CodeConverter.redirectMethodCall() was added.

    • javassist.Run was added.

  • v0.7 Changes

    • javassit.Loader was largely modified. javassist.UserLoader was deleted. Instead, Codebase was renamed to ClassPath and UserClassPath was added. Now programmers who want to customize Loader must write a class implementing UserClassPath instead of UserLoader. This change is for sharing class search paths between Loader and CtClass.CtClass(String).

    • CtClass.addField(), addMethod(), addConstructor(), addWrapper() were also largely modified so that it receives CtNewMethod, CtNewConstructor, or CtNewField. The static methods for creating these objects were added to the API.

    • Constructors are now represented by CtConstructor objects. CtConstructor is a subclass of CtMethod.

    • 🚚 CtClass.getUserAttribute() was removed. Use CtClass.getAttribute().

    • javassist.rmi.RmiLoader was added.

    • javassist.reflect.Metalevel._setMetaobject() was added. Now metaobjects can be replaced at runtime.