Java Doc for HotSwapSimpleClassWeaver.java in  » Byte-Code » PROSE » ch » ethz » inf » iks » jvmai » jvmdi » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » Byte Code » PROSE » ch.ethz.inf.iks.jvmai.jvmdi 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


java.lang.Object
   ch.ethz.inf.iks.jvmai.jvmdi.HotSwapSimpleClassWeaver

HotSwapSimpleClassWeaver
public class HotSwapSimpleClassWeaver (Code)
Modifies a given class to support advice execution. Container for MethodWeavers, which does the code manipulations. Use the static method HotSwapSimpleClassWeaver.getWeaver(Member) to get an instance of an ch.ethz.jvmai.MethodWeaver .

Simple Class Weaver implementation: Holds one list with all used ClassWeavers. On commit all ClassWeavers in the list are checked, to know if they must be woven or not. A ClassWeaver represents a class that will be instrumented with bytecode instructions.
author:
   Angela Nicoara
author:
   Gerald Linhofer
version:
   $Revision$


Inner Class :protected class MethodWeaver implements ch.ethz.jvmai.MethodWeaver

Field Summary
final public static  StringJVMAI_CLASS
     String representation of the JVMAI class.
final public static  intWEAVER_STATUS_INITIALIZED
    
final public static  intWEAVER_STATUS_MODIFIED
    
final public static  intWEAVER_STATUS_UNINITIALIZED
    
final public static  intWEAVER_STATUS_WOVEN
    
final public static  intWEAVER_UNCHANGED_MASK
    
final public  byte[]originalCode
    
final public  ClasstargetClass
    

Constructor Summary
protected  HotSwapSimpleClassWeaver(Class target)
     Creates a new class weaver.

Method Summary
public static  voidcommit()
     (Re-)Weaves all modified classes and activates them.
protected  byte[]getClassDefinition()
     Returns the instrumented class file.
protected static  HotSwapSimpleClassWeavergetClassWeaver(Class target)
     Get a unique class weaver for 'target'.
Parameters:
  target - class for which a class weaver will be returned.
public  CollectiongetMethodWeavers()
    
protected  MethodWeavergetNewMethodWeaver(Member target)
     Creates a new MethodWeaver and adds it to this weaver.
public  ClassgetTargetClass()
    
public static  MethodWeavergetWeaver(Member target)
     Get a unique method weaver for 'target'.
Parameters:
  target - method for which a method weaver will be returned.
protected  booleanhasStatus(int type)
     Indicates if type was set in classStatus.
public static  MemberidToMethod(int methodId)
     Returns the Member object associated to methodId or null, if methodID is not a valid id.
Parameters:
  methodId - id for the Method that will be returned.
protected  voidprepareClassDefinition()
     Prepares a class for weaving.
public static  voidredefineClass(Class cl, byte[] definition)
     Redefines an existing class, actually only method bodies may be redefined, but the JVMDI and JVMTI functions requieres the whole class code.
public static  voidredefineClasses(Class[] cls, byte[][] definitions)
     Redefines existing classes, actually only method bodies may be redefined, but the JVMDI and JVMTI functions requieres the whole class code.
public static  voidresetAll()
     Resets all woven classes.
public static synchronized  voidsetAspectInterface(HotSwapAspectInterfaceImpl ai)
     Sets the aspect interface, must be called before any call to HotSwapSimpleClassWeaver.commit commit .

Field Detail
JVMAI_CLASS
final public static String JVMAI_CLASS(Code)
String representation of the JVMAI class.



WEAVER_STATUS_INITIALIZED
final public static int WEAVER_STATUS_INITIALIZED(Code)



WEAVER_STATUS_MODIFIED
final public static int WEAVER_STATUS_MODIFIED(Code)



WEAVER_STATUS_UNINITIALIZED
final public static int WEAVER_STATUS_UNINITIALIZED(Code)



WEAVER_STATUS_WOVEN
final public static int WEAVER_STATUS_WOVEN(Code)



WEAVER_UNCHANGED_MASK
final public static int WEAVER_UNCHANGED_MASK(Code)



originalCode
final public byte[] originalCode(Code)
Cached class file of HotSwapSimpleClassWeaver.targetClass



targetClass
final public Class targetClass(Code)
Class bound to this weaver




Constructor Detail
HotSwapSimpleClassWeaver
protected HotSwapSimpleClassWeaver(Class target) throws ClassNotFoundException(Code)
Creates a new class weaver. Use the static method HotSwapSimpleClassWeaver.getClassWeaver(java.lang.Class) getClassWeaver to obtain a weaver.
Parameters:
  target - class that will be woven




Method Detail
commit
public static void commit()(Code)
(Re-)Weaves all modified classes and activates them.



getClassDefinition
protected byte[] getClassDefinition()(Code)
Returns the instrumented class file. HotSwapSimpleClassWeaver.prepareClassDefinition() must be called first.



getClassWeaver
protected static HotSwapSimpleClassWeaver getClassWeaver(Class target) throws ClassNotFoundException(Code)
Get a unique class weaver for 'target'.
Parameters:
  target - class for which a class weaver will be returned. ClassWeaver associated to target.



getMethodWeavers
public Collection getMethodWeavers()(Code)



getNewMethodWeaver
protected MethodWeaver getNewMethodWeaver(Member target)(Code)
Creates a new MethodWeaver and adds it to this weaver. This adds the new weaver also to the global methodWeavers table. Use HotSwapSimpleClassWeaver.getWeaver(java.lang.reflect.Member) getWeaver to create a new MethodWeaver.
Parameters:
  target - Method that will be woven MethodWeaver for the target method.



getTargetClass
public Class getTargetClass()(Code)



getWeaver
public static MethodWeaver getWeaver(Member target)(Code)
Get a unique method weaver for 'target'.
Parameters:
  target - method for which a method weaver will be returned. MethodWeaver associated to target.



hasStatus
protected boolean hasStatus(int type)(Code)
Indicates if type was set in classStatus.
Parameters:
  type - 'true' if the status is set



idToMethod
public static Member idToMethod(int methodId)(Code)
Returns the Member object associated to methodId or null, if methodID is not a valid id.
Parameters:
  methodId - id for the Method that will be returned. Method associated to methodID or null.
throws:
  ArrayOutOfBoundException -



prepareClassDefinition
protected void prepareClassDefinition() throws java.io.IOException, ClassNotFoundException(Code)
Prepares a class for weaving. This mean mainly instrumenting the class file representation, so that the new definition may be fetched with HotSwapSimpleClassWeaver.getClassDefinition() .
throws:
  java.io.IOException - could not read class file
throws:
  ClassNotFoundException - could not find class file



redefineClass
public static void redefineClass(Class cl, byte[] definition)(Code)
Redefines an existing class, actually only method bodies may be redefined, but the JVMDI and JVMTI functions requieres the whole class code. The class that should be redefined must exist in the JVM (they must be loaded in advance). Required for JVMDI/JVMTI HotSwap advice weaving.
Parameters:
  cl - Class objects that should get redefined
Parameters:
  definition - class definition,the definition is in the same form like in a class file.
exception:
  UnmodifiableClassException - cl is a not modifiableclass (for example an interface or a class that's not in the class path).
exception:
  IlligalClassFormatException - definition is a invalideclass definition
exception:
  RuntimeException - could not apply operation.
exception:
  NullPointerException - if cl is null.
exception:
  IlligalArgumentExceptin - definition is null.



redefineClasses
public static void redefineClasses(Class[] cls, byte[][] definitions)(Code)
Redefines existing classes, actually only method bodies may be redefined, but the JVMDI and JVMTI functions requieres the whole class code. The parameters are two arrays of the same size, each entry of one array corresponds to the entry with the same index in the other array. The class that should be redefined must exist in the JVM (they must be loaded in advance). Required for JVMDI/JVMTI HotSwap advice weaving.
Parameters:
  cls - Array of Class objects that should get redefined
Parameters:
  definitions - Array of class definitions, which are arrays of bytes,the definition is in the same form like in a class file.
exception:
  UnmodifiableClassException - cls contains a not modifiableclass (for example an interface or a class that's not in the class path).
exception:
  IlligalClassFormatException - definitions contains a invalideclass definition
exception:
  RuntimeException - could not apply operation.
exception:
  NullPointerException - if cls is null.
exception:
  IlligalArgumentExceptin - definitions is null.



resetAll
public static void resetAll()(Code)
Resets all woven classes.



setAspectInterface
public static synchronized void setAspectInterface(HotSwapAspectInterfaceImpl ai)(Code)
Sets the aspect interface, must be called before any call to HotSwapSimpleClassWeaver.commit commit .
Parameters:
  ai -



Methods inherited from java.lang.Object
native protected Object clone() throws CloneNotSupportedException(Code)(Java Doc)
public boolean equals(Object obj)(Code)(Java Doc)
protected void finalize() throws Throwable(Code)(Java Doc)
final native public Class getClass()(Code)(Java Doc)
native public int hashCode()(Code)(Java Doc)
final native public void notify()(Code)(Java Doc)
final native public void notifyAll()(Code)(Java Doc)
public String toString()(Code)(Java Doc)
final native public void wait(long timeout) throws InterruptedException(Code)(Java Doc)
final public void wait(long timeout, int nanos) throws InterruptedException(Code)(Java Doc)
final public void wait() throws InterruptedException(Code)(Java Doc)

www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.