- GitHub PR #480, #484, #486, #491, #492
- GitHub PR #473, 475, 476
- GitHub Issue #471
- GitHub PR #434, 448, 463 (Issue #462), 466, 467, 468, 469, 470,
- GitHub Issue #427.
-
GitHub Issue #423.
-
Readme.html
was deleted (GitHub Issue #414).
- GitHub Issue #378, PR #278, #299, #382, #383, #390, #391, #395, #399, #409.
- GitHub Issue #305, #328, #339, #350, #357, and PR #363.
- GitHub Issue #271 (PR #279), #280 (PR #281), #282, and PR #294.
- GitHub Issue #270 (PR #272), #265 (PR #267), #271, #222, and #275.
- GitHub Issue #72 (PR #231), #241, #242 (PR #243), PR #244, #246 (PR #247), PR #250, #252 (PR #253), PR #254.
- GitHub Issue #228, #229
- Java 11 supports.
- JIRA JASSIST-267.
- Github PR #218.
- Github PR #171.
- Fix leaking file handlers in ClassPool and removed ClassPath.close(). Github issue #165.
- Java 9 supports.
- JIRA JASSIST-261.
- JIRA JASSIST-244, 245, 248, 250, 255, 256, 259, 262.
javassist.tools.Callback
was modified to be Java 1.4 compatible. The parameter type ofCallback#result()
was changed.- The algorithm for generating a stack-map table was modified to fix github issue #83.
- A bug of ProxyFactory related to default methods was fixed. It is github issue #45.
- JIRA JASSIST-241, 242, 246.
- JIRA JASSIST-158, 205, 206, 207, 208, 209, 211, 212, 216, 220, 223, 224, 227, 230, 234, 235, 236, 237, 238, 240.
-
The source code repository has been moved to GitHub.
-
JIRA JASSIST-181, 183, 184, 189, 162, 185, 186, 188, 190, 195, 199, 201.
- JIRA JASSIST-177, 178, 182.
-
OSGi bundle info is now included in the jar file.
-
A stackmap generator has been rewritten.
-
JIRA JASSIST-160, 163, 166, 168, 170, 171, 174, 175, 176 have been fixed.
- Maven now works. JIRA JASSIST-44, 106, 156 have been fixed.
-
JIRA JASSIST-126, 127, 144, 145, 146, 147, 149, 150, 151, 152, 153, 155.
-
javassist.bytecode.analysis.ControlFlow
was added. -
Java 7 compatibility.
-
The license was changed to MPL/LGPL/Apache triple.
-
JIRA JASSIST-138 and 142 were fixed.
- JIRA JASSIST-121, 123, 128, 129, 130, 131, 132.
- JIRA JASSIST-118, 119, 122, 124, 125.
-
JIRA JASSIST-67, 68, 74, 75, 76, 77, 81, 83, 84, 85, 86, 87 were fixed.
-
Now javassist.bytecode.CodeIterator can insert a gap into a large method body more than 32KB. (JIRA JASSIST-79, 80)
- JIRA JASSIST-69, 70, 71 were fixed.
-
ClassPool.makeClassIfNew(InputStream) was implemented.
-
CtNewMethod.wrapped(..) and CtNewConstructor.wrapped(..) implicitly append a method like _added_m$0. This method now has a synthetic attribute.
-
JIRA JASSIST-66 has been fixed.
-
CtClass.rebuildClassFile() has been added.
-
A few bugs of javassist.bytecode.analysis have been fixed. 3.8.0 could not correctly deal with one letter class name such as I and J.
-
javassist.bytecode.analysis was implemented.
-
JASSIST-45, 47, 51, 54-57, 60, 62 were fixed.
- a bug of javassist.util.proxy has been fixed.
- Several minor bugs have been fixed.
-
The stack map table introduced since Java 6 has been supported.
-
CtClass#getDeclaredBehaviors() now returns a class initializer as well as methods and constructors.
-
The default status of automatic pruning was made off. Instead of pruning, this version of Javassist compresses the data structure of a class file after toBytecode() is called. The compressed class file is automatically decompressed when needed. This saves memory space better than pruning.
-
JIRA JASSIST-33 has been fixed.
- Various minor updates.
-
A bug in CodeConverter#replaceFieldRead() and CodeConverter#replaceFieldWrite() was fixed. JBAOP-284.
-
A synchronization bug and a performance bug in
javassist.util.proxy
have been fixed (JASSIST-28). Now generated proxy classes are cached. To turn the caching off, setProxyFactory.useCache
tofalse
.
-
CtClass#toClass() and ClassPool#toClass() were modified to accept a
ProtectionDomain
(JASSIST-23). Now ClassPool#toClass(CtClass, ClassLoader) should not be overridden. All subclasses of ClassPool must override toClass(CtClass, ClassLoader, ProtectionDomain). -
CtClass#getAvailableAnnotations() etc. have been implemented.
-
A bug related to a way of dealing with a bridge method was fixed (HIBERNATE-37).
-
javassist.scopedpool package was added.
- The behavior of CtBehavior#getParameterAnnotations() has been changed. It is now compatible to Java Reflection API (JASSIST-19).
-
A bug of replace(String,ExprEditor) in javassist.expr.Expr has been fixed.
-
Updated ProxyFactory getClassLoader to choose the javassit class loader when the proxy superclass has a null class loader (a jdk/endorsed class) (JASSIST-18).
-
Updated the throws clause of the javassist.util.proxy.MethodHandler to be Throwable rather than Exception (JASSIST-16).
-
Annotations enhancements to javassist.bytecode.MethodInfo.
-
Allow a ClassPool to override the "guess" at the classloader to use.
-
getFields(), getMethods(), and getConstructors() in CtClass were changed to return non-private memebers instead of only public members.
-
getEnclosingClass() in javassist.CtClass was renamed to getEnclosingMethod().
-
getModifiers() was extended to return Modifier.STATIC if the class is a static inner class.
-
The return type of CtClass.stopPruning() was changed from void to boolean.
-
toMethod() in javassist.CtConstructor has been implemented.
-
It includes new javassist.util.proxy package similar to Enhancer of CGLIB.
-
The subpackages of Javassist were restructured.
-
javassist.tool package was renamed to javassist.tools.
-
HotSwapper was moved to javassist.util.
-
Several subpackages were moved to javassist.tools.
-
javassist.preproc package was elminated and the source was moved to the sample directory.
-
-
RC2 is released mainly for an administrative reason.
-
A few bugs have been fixed.
-
Better annotation supports. See
CtClass.getAnnotations()
-
javassist.tool.HotSwapper was added.
-
javassist.ClassPool.importPackage() was added.
-
The compiler now accepts array initializers (only one dimensional arrays).
-
javassist.Dump was moved to javassist.tool.Dump.
-
Many bugs were fixed.
-
The compiler now supports synchronized statements and finally clauses.
-
You can now remove a method and a field.
-
CtClass.toClass() has been reimplemented. The behavior has been changed.
-
javassist.expr.NewArray has been implemented. It enables modifying an expression for array creation.
-
.class
notation has been supported. The modified class file needs javassist.runtime.DotClass at runtime. -
a bug in
CtClass.getMethods()
has been fixed. -
The compiler supports a switch statement.
-
The ClassPool framework has been redesigned.
-
writeFile(), write(), ... in ClassPool have been moved to CtClass.
-
The design of javassist.Translator has been changed.
-
-
javassist.bytecode.annotation has been added for meta tags.
-
CtClass.makeNestedClass() has been added.
-
The methods declared in javassist.bytecode.InnerClassesAttribute have been renamed a bit.
-
Now local variables were made available in the source text passed to CtBehavior.insertBefore(), MethodCall.replace(), etc.
-
CtClass.main(), which prints the version number, has been added.
-
ClassPool.SimpleLoader has been public.
-
javassist.bytecode.DeprecatedAttribute has been added.
-
javassist.bytecode.LocalVariableAttribute has been added.
-
CtClass.getURL() and javassist.ClassPath.find() has been added.
-
CtBehavior.insertAt() has been added.
-
CtClass.detach() has been added.
-
CodeAttribute.computeMaxStack() has been added.
-
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.
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.
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.
-
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.
-
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.
-
The tutorial has been revised.
-
A new package
javassist.expr
has been added. This is replacement of classicCodeConverter
. -
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.
-
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.
-
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.
-
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.
-
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.
-
Javassist was modified to correctly deal with array types appearing in signatures.
-
A bug crashed resulting bytecode if a class includes a private static filed. It has been fixed.
-
javassist.CtNewInterface was added.
-
javassist.Loader.recordClass() was renamed into makeClass().
-
javassist.UserLoader.loadClass() was changed to take the second parameter.
- a bug-fix version.
- Major update again. Many classes and methods were changed. Most of methods taking java.lang.Class have been changed to take javassist.CtClass.
- Major update. Many classes and methods were changed.
- Jar/zip files are supported.
- The first release.