Sophie

Sophie

distrib > Mageia > 4 > i586 > by-pkgid > e1d07a60ca8f94b256cdc4fcd2e6cf3a > files > 3

jiapi-0.4.0-3.mga4.noarch.rpm

2010-03-01  mcr70  <mcr70@linux-6hdv>
	* RuntimeVisibleAnnotation & RuntimeInvisibleAnnotation read-only support in 
	  alt.jiapi.file package
	  	

2010-03-01  mcr70  <mcr70@linux-6hdv>
	* Moved attributes to own package: alt.jiapi.file.attribute
	

2010-02-19  mcr70  <mcr70@linux-6hdv>
	* Checked for Java6 compatibility. StackMapFrame, LocalVariableTableAttribute
	and LocalVariableTypeTableAttribute in class file version 50.0.
	
	* Removed alt.jiapi.instrumentor package as it was obsolete and confusing.
	

2005-06-13  mcr70  <mcr70@haaratie.net>

	* Fix this again. 

	* Bug fix. Copying of instructions from another list caused a bug,
	if branch-instruction was copied, but not its target. Fixed so,
	that if target is not found, branch offset is left as is. This
	works for the most cases.
	

2005-06-03  mcr70  <mcr70@haaratie.net>

	* Fixed a bug. If hotspot was a target of branch instruction,
	before advice was inserted into dead code segment. This caused
	verify error to occur, because stack became inconsistent.

2005-05-24  mcr70  <mcr70@haaratie.net>

	* Added Initial hooks for jdk1.5 agents/transformers
	NOTE: you must use jdk1.5 compiler. If do not need jdk1.5
	agents, remove alt/jiapi/agent/* from compilation
	
2004-08-11  Mika Riekkinen  <mcr70@dungeon>

	* Added support for having local variables used in
	HotSpotAdvice.advice() method

	* Added missing local variables factory methods to
	InstructionFactory

2004-08-10  Mika Riekkinen  <mcr70@dungeon>

	* Added resolutions to HotSpot related classes

	* Removed call to newInstance() in Bootstrapper

	* Added getHotSpotName() to HotSpotAdvice

2004-08-08  Mika Riekkinen  <mcr70@dungeon>

	* Added HotSpotAdvisor and HotSpotAdvice

	* Bug-fix. InstructionList.insert(...) did not handle correctly
	Instruction(List)s from other methods, with different Constantpool.

2004-08-04  Mika Riekkinen  <mcr70@dungeon>

	* Bug-Fix. If invocationInterceptor instrumented for a method
	that had long or double in its arguments, instrumentation failed on
	'expecting double/long on stack'. 

2004-04-11  Mika Riekkinen  <mcr70@snowhite.dungeon>

	* Added stack-consumption to the output of Javap.

	* Added Instruction.stackConsumption(), which is used by
	HotSpotLocator

2004-04-10  Mika Riekkinen  <mcr70@snowhite.dungeon>

	* Added AccessAdvisor; A different strategy for FieldInterceptor.
	This provides roughly 100 times faster response time compared
	to reflection.

	* Fixed long/double handling when calculating max-stack
	for the Code attribute of the method

2004-04-08  Mika Riekkinen  <mcr70@snowhite.dungeon>

	* Added jazzpect, an implementation of aopalliance-1.0
	interfaces.

2004-04-04  Mika Riekkinen  <mcr70@snowhite.dungeon>

	* Made some visibility changes on APIs

	* Lot's of other bug fixes

	* Added alt.jiapi.util.HotSpotLocator

	* Fixed a bug in IINC creation

	* Fixed a bug finding negative offsets.

2004-03-31  Mika Riekkinen  <mcr70@snowhite.dungeon>

	* Added FieldInterceptor

2004-03-29  Mika Riekkinen  <mcr70@snowhite.dungeon>

	* Fixed indexing bug in InvocationInterceptor. This caused some
	of the methods to be skipped instrumentation.

	* Added junit test cases back.

	* Fixed Signature handling

2004-03-28  Mika Riekkinen  <mcr70@snowhite.dungeon>

	* Fixed parsing of long_Info and double_Info. They take up
	2 entries in constant pool.

	* Added workaround for bug in ZipFileInputStream. We do not
	rely on InputStream.available(). Instead, read bytes into
	byte buffer, and use ByteArrayInputStream. 

2004-03-26  Mika Riekkinen  <mcr70@snowhite.dungeon>

	* Removed reflection field generation for instrumented classes
	in InvocationInterceptor. This fixed a ClassLoader bug. Now 
	reflection Method is created in the interceptor, when they
	are needed. NOTE: this could benefit from caching.

	* Fixed stack scanning in InvocationInterceptor. Instructions
	were scanned backwards, and resulted in Instructions being in
	wrong order in instrumented bytecode.

	* Fixed primitive support in InvocationInterceptor. Now it 
	doesn't make any false assumptions.
	

2004-03-25  Mika Riekkinen  <mcr70@snowhite.dungeon>

	* Added support for primitive types in InvocationInterceptor.
	Code makes a false assumption, that each java.lang.Integer etc.
	allways represents a primitive type

	* Fixed ClassLoader bugs in InvocationInterceptor

	* Support for virtual calls in InvocationInterceptor. 

2004-03-22  Mika Riekkinen  <mcr70@snowhite.dungeon>

	* Added support for unwrapping of primitive types from
	method return values

	* Support for multiple arguments in invocation handlers.

2004-03-21  Mika Riekkinen  <mcr70@snowhite.dungeon>

	* Introduced Jiapi interceptors

2004-03-15  Mika Riekkinen  <mcr70@snowhite.dungeon>

	* Refactored instrumentation framework. Now all the chain
	stuff resides in alt.jiapi.instrumentor package.
	alt.jiapi package binds together ctx, descriptor, classloader
	ant Instrumentor interface. This interface has one method:
	    public void instrument(JiapiClass clazz);
	After this refactoring, we are not forced into using one model
	for higher level instrumentation. 
	alt.jiapi.instrumentor is from now on just one possible 
	instrumentation framework. In future, we miht create something
	totally different. Or someone else might create his/her own
	framework, which suits better for particular needs.

	* Release 0.1.1

	* Added code to keep exception table in sync, when instrumenting
	code.

2004-03-14  Mika Riekkinen  <mcr70@snowhite.dungeon>

	* Added code to keep line-number table in sync, when instrumenting
	code. Stack traces are now printed correctly, even if there is 
	some instrumentation screwing ln-table offsets.

	* Release 0.1

2004-03-13  Mika Riekkinen  <mcr70@snowhite.dungeon>

	* Added verbose mode to Javap. Fine tuned output of Javap

	* JiapiClass.getClassFile() --> JiapiClass.getConstantPool()
	Changed this, because exposing ClassFile in public APIs could
	break the whole reflection package.

2004-03-10  Mika Riekkinen  <mcr70@snowhite.dungeon>

	* jiapi-events.sh

	* BranchInstruction, Invocation, CPInstruction, SwitchInstruction

2004-02-22  Mika Riekkinen  <mcr70@snowhite.dungeon>

	* Using alt.jiapi.file package instead of BCEL

	* Moved Instruction(Factory/List) to alt.jiapi.reflect package.

	* new package: alt.jiapi.file

2004-02-10  Mika Riekkinen  <mcr70@snowhite.dungeon>

	* Started Jiapi2 project. First thing to do, is to get 
	rid of dependent libraries.

2002-06-18  Mika Riekkinen  <mcr70@linux.local>

	* Fixed constant pool index bugs in get/setField in 
	InstructionFactory

2002-06-05  Joni Suominen  <inhuman@iki.fi>

	* ProviderFactory:
	Removed provider factory concept.

	* JiapiClass:
	getMethod and getField methods are now renamed as 
	getDeclaredMethod and getDeclaredField respectively. This is more
	in par with Java Reflection API. New getMethod and getField
	methods are implemented. They examine the superclasses too.

2002-06-04  Mika Riekkinen  <mcr70@linux.local>

	* Removed JikesBT code

	* Moved alt.bcel.jiapi.BCEL* classes to alt.jiapi.reflect 
	package.

2002-06-02  Joni Suominen  <inhuman@moeob063>

	* InstructionFactory:
	Instructions are now generated at 
	alt.jiapi.reflect.instruction.InstructionFactory instead of
	utilizing provider (e.g. BCEL). The reason for this was
	difficulties to map our InstructionList concept properly
	with BCEL provider. As a consequence the whole SPI concept
	will be removed. BCEL will be still used to parse the bytecode,
	to manipulate constant pool and to marshall the bytecode.

2002-05-31  Joni Suominen  <inhuman@iki.fi>

	* Switch:
	Added a new inner class for Branch. This inner class is used
	to implement TABLESWITCH and LOOKUPSWITCH instructions.

2002-05-30  Mika Riekkinen  <mcr70@linux.local>

	* Changed InstructionFactory from being an interface to an
	abstract class. Moved most of the methods from BCELInstructionFactory
	to InstructionFactory

2002-05-29  Mika Riekkinen  <mcr70@linux.local>

	* Added jiapi.sh for bootstrapping Jiapi from command line.

	* Changed ExceptionTable handling. It's now done internally while
	mofifying classes. 

2002-05-09  Mika Riekkinen  <mcr70@linux.local>

	* Changed some of the return types in InstructionFactory from
	InstructionList to AbstractInstruction.

2002-05-05  Joni Suominen  <inhuman@moeob063>

	* InstrumentorChain:
	Changed the way the chain is dispatched. The old way was to
	loop over all methods in a class and call chain for each method.
	This block of code is now moved to MethodDispatcherInstrumentor
	and the chain is started just by setting the currentClass,
	the InstructionList passed will be null.

2002-05-03  Joni Suominen  <inhuman@moeob063>

	* instruction-refactoring:
	Merged instruction-refactoring branch to main branch. 
	There's a new subpackage alt.jiapi.reflect.instruction which
	includes abstractions for instructions.

	* InstructionFactory:
	Renamed most of the methods. They now follow a more consistent
	naming convention. Removed also some of the methods which
	accepted java.lang.reflect types.

2002-05-03  Mika Riekkinen  <mcr70@linux.local>

	* Added new instrumentor: ChangeReferenceInstrumentor.
	Added set methods for FieldAccess & Invocation.

2002-04-19  Joni Suominen  <inhuman@moeob063>

	* InstructionList:
	Changed API to use AbstractInstruction instead of Instruction.
	The biggest change is that 'addAll' is replaced by a more generic
	'add' method.

2002-04-19  Mika Riekkinen  <mcr70@linux.local>

	* Moved opcodes from class Instruction to new interface Opcodes.
	interface OpcodeGroups contains groupings of opcodes.

	* Added AbstractInstruction. Changed extend/implement stuff
	accordingly. 

	* Converted short to byte, when it comes to opcodes.

	* Added Constant instruction.

2002-04-16  Mika Riekkinen  <mcr70@linux.local>

	* Added FieldAcces instruction.

	* Moved alt.jiapi.reflect.Instruction* to alt.jiapi.reflect.instruction
	package. Removed concept of Operand. Introduced first higher level
	instruction: Invocation. Instruction and its derivatives are now
	interfaces, thus giving provider all the freedom to choose an
	implementation model it sees fit.

2002-04-09  Joni Suominen  <inhuman@moeob063>

	* Bootstrapping:
	Made a utility which can be used to bootstrap an application
	written on top of Jiapi framework. This utility can be
	found from alt.jiapi.util.Bootstrapper. As a consequence 
	InstrumentingClassLoader was also moved to util package and
	alt.jiapi.util.Launcher was removed. 

2002-04-05  Mika Riekkinen  <mcr70@linux.local>

	* Support for changing modifiers of the JiapiField

	* JiapiFields cannot be instantiated directly. They behave like 
	JiapiMethods. That is, through JiapiClass.

2002-04-05  Joni Suominen  <inhuman@iki.fi>

	* Loader.loadClass:
	Changed code to use Loader.loadClass instead of 
	ProviderFactory.createClass. ProviderFactory.createClass
	methods should be removed later.

2002-04-04  Mika Riekkinen  <mcr70@linux.local>

	* Loader moved to package alt.jiapi.reflect

	* Added addMethod(int, String, String, String[]), which uses simple
	form of parameters. I.e. no signatures.

	* Finished with getMethod(String,String[]). Moved alt.jiapi.Loader to
	alt.jiapi.reflect.Loader. Context now has instrument() method.

2002-04-03  Joni Suominen  <inhuman@moeob063>

	* LocalVariable:
	Added a support to add local variables.

2002-04-02  Mika Riekkinen  <mcr70@linux.local>

	* added JiapiClass.getSuperclass(); JiapiField.getDeclaringClass(); 
	JiapiMethod.getDeclaringClass();

2002-03-28  Mika Riekkinen  <mcr70@linux.local>

	* Changed Instruction.getOperand() from abstract to non-
	abstract.

	* Removed getReturnTypeSize() from JiapiMethod

	* -Ddump=... specifies now a directory, instead of a file.

2002-03-26  Mika Riekkinen  <mcr70@linux.local>

	* Added protection mechanism for event loops.

2002-03-21  Mika Riekkinen  <mcr70@linux.local>

	* MethodCallInstrumentor added field assignment to the end of 
	<clinit>. If there were a try-catch block at the end before
	field assignment, Exception table was not updated to reflect new
	instructions. Fixed this so, that field assignment is done
	before any instructions in <clinit>. 
	Bug #????? closed :-)

	* pre/post instrumentation was is done only once / JiapiClass.

	* Fixed a bug in JiapiEvent.toString(). This bug caused
	a recursion. When converting to String, we used
	sourceObject.toString(), which was at some cases instrumented,
	which caused an event, toString(), event, toString()....

	* Changed how Rule replaces characters. That fixed 
	anonymous/inner class bug, which had crawled back to haunt us.

2002-03-19  Joni Suominen  <inhuman@iki.fi>

	* alt.jiapi.reflect:
	Renamed alt.jiapi.spi package as alt.jiapi.reflect.

2002-03-12  Joni Suominen  <inhuman@moeob063>

	* new-framework
	Merged new-framework branch to main branch. It contains too
	numerous changes to mention here. Summary:
	In previous framework instrumentation components were
	assembled from an 'instrumentor' and 'patch'. These were
	'binded' together as a pair. In a new framework all
	components are 'instrumentors' and they are 'chained' together
	as a pipe. A good analogy is Unix command line were simple
	applications can be piped together.

2002-02-27  Joni Suominen  <inhuman@moeob063>

	* InstructionFactory:
	Moved instruction factory methods from InstructionList to
	a new class.

2002-02-22  Mika Riekkinen  <mcr70@linux.local>

	* Added Field events to event model. Minor changes in event model.

2002-02-18  Mika Riekkinen  <mcr70@linux.local>

	* Changed event model slightly. 'this' gets passed to JiapiEvent
	from method being called. On static methods 'nameOfTheClass' is
	passed instead of 'this'. 

2002-02-11  Mika Riekkinen  <mcr70@linux.local>

        * Added FieldGet/SetInstrumentors
	
	* BCELJiapiClass
	Fixed default method addition. Max locals was not set.

2002-02-11  Joni Suominen  <inhuman@moeob063>

	* BCEL provider:
	Upgraded from BCEL 4.4.0 to 5.0.

	* InstructionList:
	Removed getInstructions method.

	* JiapiClass:
	Removed 'doInit' and 'doPostDefine' lifecycle methods.

	* Rule:
	Renamed 'significance' as 'precedence'.

2002-02-10  Joni Suominen  <inhuman@moeob063>

	* InstructionList:
	Added an inner class which provides a view on an InstructionList.
	Unlike Java Collection API's subList, this implementation
	allows structural changes for the list regardless of where
	the modification is made from (original list or one of its views).
	Some issues still remain:
	- the current iterators do not fail fast like in Collection API
	- the instruction factory methods must be removed somewhere or
	  they have to implemented other way around
	- there's one extremely dangerous method: getInstructions which
	  exposes the internal data structure to the client, this must
	  be removed since the InstructionList will get screwed up if
	  modifications are done through the exposed List
	- needs more testing, there's only some basic Junit tests

2002-02-06  Mika Riekkinen  <mcr70@linux.local>

	* Added initial versions of CatchInstrumentor and TryBlockInstrumentor.
	
2002-02-04  Joni Suominen  <inhuman@moeob063>

	* InstrumentationContext:
	Renamed createLoader as getLoader and changed it so that 
	it no longer creates a new instance every time.

2002-02-04  Mika Riekkinen  <mcr70@linux.local>

	* Bug number 482028 closed. Due to change of design in field
	initialization, this bug is no longer valid.

	* Added MethodCallInstrumentor. 

2002-02-03  Joni Suominen  <inhuman@moeob063>

	* CopyPatch:
	A new patch which can be used to copy instructions from one
	class to another.
	
	* JiapiClass:
	Renamed createMethod-methods as addMethod. Implemented
	addition of empty body as a default and added a new method
	getMethod(String, Class[]) to get a specific method from a class.

2002-02-01  Mika Riekkinen  <mcr70@linux.local>

	* Added naive implementation of method resolution. At
	the moment, methods are compared only by their names,
	like 'getName matches get*'

2002-01-28  Joni Suominen  <inhuman@moeob063>

	* Loader:
	Splitted the loading of a class and instrumenting a class.
	They are now accomplished with separate methods. It is
	still unclear where the instrumentation part should go.
	A potential candidate is InstrumentationContext.
	
	* Loader, ProviderFactory:
	loadClass methods throw a ClassNotFoundException if
	the class can't be located.

2002-01-23  Mika Riekkinen  <mcr70@linux.local>

	* Added log4j. Jiapi won't compile wothout it anymore.

2002-01-16  Joni Suominen  <inhuman@moeob063>

	* MethodCallPatch:
	Reimplemented dynamic calls using static initializer.
	The implementation takes advantage of various new instrumentors
	and patches (CreateMethodInstrumentor, CreateFieldInstrumentor,
	FieldInitializerPatch) + Runtime class. The new implementation
	adds these helper instrumentations in its init method to
	the InstrumentationDescriptor.

2002-01-14  Mika Riekkinen  <mcr70@linux.local>

	* Support for adding methods. Code regarding to this is 
	ugly, lot's of bugs and hardcodings. But it works.

2002-01-13  Joni Suominen  <inhuman@moeob063>

	* Instrumentation:
	Added a new abstraction which replaces previous "binding"
	concept. The role of Instrumentation is to group an Instrumentor
	and Patch as a component to be used in instrumentation.
	It also helps in implementing a new important concept where
	Instrumentors and Patches can create and add other 
	Instrumentations to an InstrumentationDescriptor.

	* UML:
	Created a class diagram for core Jiapi framework.

2002-01-11  Mika Riekkinen  <mcr70@linux.local>

	* Added MethodInstrumentor; It is a base class for all the
	Instrumentors, that deal with methods. Idea is to have a
	ClassInstrumentor also, that deals with class level things
	like adding fields/methods.

2002-01-09  Joni Suominen  <inhuman@moeob063>

	* InstructionList:
	The provider implementation is now more loosly coupled with
	service provider interface. alt.jiapi.InstructionList has
	much more freedom to manipulate its instructions. It is
	a responsibility of service provider implementation to
	synchronize the modified InstructionList with the original
	InstructionList in JiapiClass#doPreDefine method.

2002-01-06  Joni Suominen  <inhuman@moeob063>

	* InstrumentingClassLoader:
	The previous version of InstrumentingClassLoader completely
	by passed the Java security framework. The new version fixes
	this. As a consequence it is now subclassed from URLClassLoader
	and it has to be created using a factory method:
	InstrumentingClassLoader.createClassLoader.

2002-01-03  Joni Suominen  <inhuman@moeob063>

	* spi-polish-branch:
	Merged to main branch.

2002-01-02  Joni Suominen  <inhuman@moeob063>

	* JUnit: Started to use JUnit 3.7 for unit testing. The root level
	test suite can be found from src/test/alt/jiapi/AllTests. 
	The test packages match with the package of tested class.
	Arranging it this way it is possible to also test package
	protected classes and methods.

	* InstrumentationDescriptor: Added regexps to inclusion and 
	exclusion rules. There's a new internal class called
	alt.jiapi.Rule which does most of the work. The class
	alt.jiapi.RuleMap is not needed anymore and is removed now.

2001-12-30  Mika Riekkinen  <mcr70@linux.local>

	* InstructionList : Added method 'List instructions()' which 
	return the List of instructions stored. Iterator might throw
	ConcurrentModificationException, if iterating and modifying 
	the InstructionList at the same time.

	* MethodExitInstrumentor.instrument(...) : Code wrongly assumed,
	that return instruction ath the end of method is the only return 
	instruction in a method. Now it loops through each instruction 
	and checks for the return variants.

	* BCELInstructionList.addAll(...) : BCEL InstructionList.insert(...) 
	consumes its parameter list. I.e. it becomes empty. Fixed so, that
	it will take a deep-copy of the parameter list before inserting.