public class DirectCopyClassTransformer extends AbstractClassTransformer implements BroadleafClassTransformer
| Modifier and Type | Class and Description |
|---|---|
protected class |
DirectCopyClassTransformer.XFormParams |
| Modifier and Type | Field and Description |
|---|---|
protected static List<String> |
annotationTransformedClasses |
protected ConditionalDirectCopyTransformersManager |
conditionalDirectCopyTransformersManager |
protected List<DirectCopyIgnorePattern> |
ignorePatterns |
protected String |
moduleName |
protected Boolean |
renameMethodOverlaps |
protected String |
renameMethodPrefix |
protected Boolean |
skipOverlaps |
protected Map<String,String> |
templateTokens |
protected static List<String> |
transformedMethods |
protected Map<String,String> |
xformTemplates |
alreadyLoadedClasses, preLoadClassNamePatterns| Constructor and Description |
|---|
DirectCopyClassTransformer(String moduleName) |
| Modifier and Type | Method and Description |
|---|---|
DirectCopyClassTransformer |
addXformTemplate(String classToTransform,
String contributingClass) |
protected void |
buildClassCacheAnnotation(javassist.bytecode.ClassFile classFile,
javassist.bytecode.ClassFile templateClassFile,
javassist.bytecode.ConstPool constantPool)
Allows replacing of Cache annotations at the class level
|
protected void |
buildClassLevelAnnotations(javassist.bytecode.ClassFile classFile,
javassist.bytecode.ClassFile templateClassFile,
javassist.bytecode.ConstPool constantPool) |
protected void |
buildEntityListenerAnnotations(javassist.bytecode.ClassFile classFile,
javassist.bytecode.ClassFile templateClassFile,
javassist.bytecode.ConstPool constantPool) |
protected javassist.bytecode.annotation.Annotation |
cloneIndexAnnotation(javassist.bytecode.annotation.Annotation annotation,
javassist.bytecode.ConstPool constantPool) |
protected javassist.bytecode.annotation.Annotation |
cloneUniqueAnnotation(javassist.bytecode.annotation.Annotation annotation,
javassist.bytecode.ConstPool constantPool) |
protected DirectCopyClassTransformer.XFormParams |
combineXFormParams(DirectCopyClassTransformer.XFormParams defaultParams,
DirectCopyClassTransformer.XFormParams conditionalParams)
Combines two
DirectCopyClassTransformer.XFormParams together with
first passed in xformParama supercedes the second passed in parameter. |
void |
compileJPAProperties(Properties props,
Object key) |
protected javassist.bytecode.annotation.Annotation |
getEntityListeners(javassist.bytecode.ConstPool constantPool,
javassist.bytecode.annotation.Annotation existingEntityListeners,
javassist.bytecode.annotation.Annotation templateEntityListeners) |
List<DirectCopyIgnorePattern> |
getIgnorePatterns() |
protected String |
getImplementationType(String className)
This method will do its best to return an implementation type for a given classname.
|
protected javassist.bytecode.annotation.Annotation |
getIndexes(javassist.bytecode.ConstPool constantPool,
javassist.bytecode.annotation.Annotation existingTable,
javassist.bytecode.annotation.Annotation templateTable) |
protected javassist.bytecode.annotation.Annotation |
getNewCacheAnnotation(javassist.bytecode.ConstPool constantPool,
javassist.bytecode.annotation.Annotation annotation) |
Boolean |
getRenameMethodOverlaps() |
String |
getRenameMethodPrefix() |
Boolean |
getSkipOverlaps() |
Map<String,String> |
getTemplateTokens() |
Map<String,String> |
getXformTemplates() |
protected String |
methodDescription(javassist.CtMethod method) |
protected DirectCopyClassTransformer.XFormParams |
reviewConditionalDirectCopyTransforms(String convertedClassName,
List<DirectCopyIgnorePattern> matchedPatterns)
Retrieves
DirectCopyTransformTypes that are conditionally/optionally included via properties file. |
protected DirectCopyClassTransformer.XFormParams |
reviewDirectCopyTransformAnnotations(javassist.CtClass clazz,
boolean mySkipOverlaps,
boolean myRenameMethodOverlaps,
List<DirectCopyIgnorePattern> matchedPatterns)
Retrieves
DirectCopyTransformTypes that are placed as annotations on classes. |
protected List<String> |
reviewTemplateTokens(List<DirectCopyIgnorePattern> matchedPatterns,
String val) |
void |
setIgnorePatterns(List<DirectCopyIgnorePattern> ignorePatterns) |
void |
setRenameMethodOverlaps(Boolean renameMethodOverlaps) |
void |
setRenameMethodPrefix(String renameMethodPrefix) |
void |
setSkipOverlaps(Boolean skipOverlaps) |
void |
setTemplateTokens(Map<String,String> templateTokens) |
void |
setXformTemplates(Map<String,String> xformTemplates) |
byte[] |
transform(ClassLoader loader,
String className,
Class<?> classBeingRedefined,
ProtectionDomain protectionDomain,
byte[] classfileBuffer) |
protected void |
transformIndexAnnotations(javassist.bytecode.ClassFile classFile,
javassist.bytecode.ClassFile templateClassFile,
javassist.bytecode.ConstPool constantPool) |
afterPropertiesSet, setPreLoadClassNamePatternsprotected String moduleName
protected Boolean renameMethodOverlaps
protected String renameMethodPrefix
protected Boolean skipOverlaps
protected List<DirectCopyIgnorePattern> ignorePatterns
protected ConditionalDirectCopyTransformersManager conditionalDirectCopyTransformersManager
public DirectCopyClassTransformer(String moduleName)
public void compileJPAProperties(Properties props, Object key) throws Exception
compileJPAProperties in interface BroadleafClassTransformerExceptionpublic byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException
transform in interface javax.persistence.spi.ClassTransformerIllegalClassFormatExceptionprotected DirectCopyClassTransformer.XFormParams combineXFormParams(DirectCopyClassTransformer.XFormParams defaultParams, DirectCopyClassTransformer.XFormParams conditionalParams)
DirectCopyClassTransformer.XFormParams together with
first passed in xformParama supercedes the second passed in parameter.defaultParams - conditionalParams - protected DirectCopyClassTransformer.XFormParams reviewDirectCopyTransformAnnotations(javassist.CtClass clazz, boolean mySkipOverlaps, boolean myRenameMethodOverlaps, List<DirectCopyIgnorePattern> matchedPatterns)
DirectCopyTransformTypes that are placed as annotations on classes.clazz - mySkipOverlaps - myRenameMethodOverlaps - matchedPatterns - protected DirectCopyClassTransformer.XFormParams reviewConditionalDirectCopyTransforms(String convertedClassName, List<DirectCopyIgnorePattern> matchedPatterns)
DirectCopyTransformTypes that are conditionally/optionally included via properties file.convertedClassName - matchedPatterns - ConditionalDirectCopyTransformersManagerprotected List<String> reviewTemplateTokens(List<DirectCopyIgnorePattern> matchedPatterns, String val)
protected void transformIndexAnnotations(javassist.bytecode.ClassFile classFile,
javassist.bytecode.ClassFile templateClassFile,
javassist.bytecode.ConstPool constantPool)
throws javassist.NotFoundException
javassist.NotFoundExceptionprotected javassist.bytecode.annotation.Annotation getIndexes(javassist.bytecode.ConstPool constantPool,
javassist.bytecode.annotation.Annotation existingTable,
javassist.bytecode.annotation.Annotation templateTable)
protected javassist.bytecode.annotation.Annotation cloneIndexAnnotation(javassist.bytecode.annotation.Annotation annotation,
javassist.bytecode.ConstPool constantPool)
protected javassist.bytecode.annotation.Annotation cloneUniqueAnnotation(javassist.bytecode.annotation.Annotation annotation,
javassist.bytecode.ConstPool constantPool)
protected void buildClassLevelAnnotations(javassist.bytecode.ClassFile classFile,
javassist.bytecode.ClassFile templateClassFile,
javassist.bytecode.ConstPool constantPool)
throws javassist.NotFoundException
javassist.NotFoundExceptionprotected void buildEntityListenerAnnotations(javassist.bytecode.ClassFile classFile,
javassist.bytecode.ClassFile templateClassFile,
javassist.bytecode.ConstPool constantPool)
throws javassist.NotFoundException
javassist.NotFoundExceptionprotected javassist.bytecode.annotation.Annotation getEntityListeners(javassist.bytecode.ConstPool constantPool,
javassist.bytecode.annotation.Annotation existingEntityListeners,
javassist.bytecode.annotation.Annotation templateEntityListeners)
protected void buildClassCacheAnnotation(javassist.bytecode.ClassFile classFile,
javassist.bytecode.ClassFile templateClassFile,
javassist.bytecode.ConstPool constantPool)
throws javassist.NotFoundException
classFile - templateClassFile - constantPool - javassist.NotFoundExceptionprotected javassist.bytecode.annotation.Annotation getNewCacheAnnotation(javassist.bytecode.ConstPool constantPool,
javassist.bytecode.annotation.Annotation annotation)
protected String getImplementationType(String className)
protected String methodDescription(javassist.CtMethod method)
public DirectCopyClassTransformer addXformTemplate(String classToTransform, String contributingClass)
classToTransform - the class that will be transformed at runtimecontributingClass - the class that should be bytecode-merged into classToTransformpublic Boolean getRenameMethodOverlaps()
public void setRenameMethodOverlaps(Boolean renameMethodOverlaps)
public String getRenameMethodPrefix()
public void setRenameMethodPrefix(String renameMethodPrefix)
public Boolean getSkipOverlaps()
public void setSkipOverlaps(Boolean skipOverlaps)
public List<DirectCopyIgnorePattern> getIgnorePatterns()
public void setIgnorePatterns(List<DirectCopyIgnorePattern> ignorePatterns)
Copyright © 2023. All rights reserved.