public abstract static class WebPluginInstaller.ApplyPatch extends Base implements com.tangosol.dev.assembler.Constants
Base.LoggingWriter, Base.StackFrame
Modifier and Type | Field and Description |
---|---|
static byte[] |
BLOCK_BUF
The buffer to use for buffered I/O.
|
static int |
BLOCK_SIZE
The size (in bytes) to perform buffered I/O on.
|
static String |
INSTALL_DESCRIPTOR
The name of the XML file that contains information about the plugin installation.
|
protected File |
m_fileLib
The target web container library file.
|
static String |
MANIFEST_NAME
The JAR manifest file name.
|
LOG_ALWAYS, LOG_DEBUG, LOG_ERR, LOG_INFO, LOG_MAX, LOG_MIN, LOG_QUIET, LOG_WARN, POWER_0, POWER_G, POWER_K, POWER_M, POWER_T, UNIT_D, UNIT_H, UNIT_M, UNIT_MS, UNIT_NS, UNIT_S, UNIT_US
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ACCESS_MASK, ACC_ALL, ACC_ANNOTATION, ACC_BRIDGE, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PACKAGE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_VARARGS, ACC_VOLATILE, ACONST, ACONST_NULL, ALOAD, ALOAD_0, ALOAD_1, ALOAD_2, ALOAD_3, ANEWARRAY, ARETURN, ARRAYLENGTH, ASTORE, ASTORE_0, ASTORE_1, ASTORE_2, ASTORE_3, ATHROW, ATTR_ANNOTDEFAULT, ATTR_BOOTSTRAPMETHODS, ATTR_CODE, ATTR_CONSTANT, ATTR_DEPRECATED, ATTR_ENCMETHOD, ATTR_EXCEPTIONS, ATTR_FILENAME, ATTR_INNERCLASSES, ATTR_LINENUMBERS, ATTR_METHODPARAMS, ATTR_RTINVISANNOT, ATTR_RTINVISPARAMANNOT, ATTR_RTINVISTANNOT, ATTR_RTVISANNOT, ATTR_RTVISPARAMANNOT, ATTR_RTVISTANNOT, ATTR_SIGNATURE, ATTR_STACKMAPTABLE, ATTR_SYNTHETIC, ATTR_VARIABLES, ATTR_VARIABLETYPES, AVAR, BALOAD, BASTORE, BEGIN, BIPUSH, BNEWARRAY, CALOAD, CASE, CASTORE, CATCH, CHECKCAST, CLASS_COOKIE, CNEWARRAY, CONSTANT_CLASS, CONSTANT_DCONST_0, CONSTANT_DCONST_1, CONSTANT_DOUBLE, CONSTANT_FCONST_0, CONSTANT_FCONST_1, CONSTANT_FCONST_2, CONSTANT_FIELDREF, CONSTANT_FLOAT, CONSTANT_ICONST_0, CONSTANT_ICONST_1, CONSTANT_ICONST_2, CONSTANT_ICONST_3, CONSTANT_ICONST_4, CONSTANT_ICONST_5, CONSTANT_ICONST_M1, CONSTANT_INTEGER, CONSTANT_INTERFACEMETHODREF, CONSTANT_INVOKEDYNAMIC, CONSTANT_LCONST_0, CONSTANT_LCONST_1, CONSTANT_LONG, CONSTANT_METHODHANDLE, CONSTANT_METHODREF, CONSTANT_METHODTYPE, CONSTANT_NAMEANDTYPE, CONSTANT_ORDER, CONSTANT_SIZE, CONSTANT_STRING, CONSTANT_UNICODE, CONSTANT_UTF8, CONSTRUCTOR_NAME, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST, DCONST_0, DCONST_1, DDIV, DEFAULT_SUPER, DLOAD, DLOAD_0, DLOAD_1, DLOAD_2, DLOAD_3, DMUL, DNEG, DNEWARRAY, DREM, DRETURN, DSTORE, DSTORE_0, DSTORE_1, DSTORE_2, DSTORE_3, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, DVAR, END, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAD_0, FLOAD_1, FLOAD_2, FLOAD_3, FMUL, FNEG, FNEWARRAY, FREM, FRETURN, FSTORE, FSTORE_0, FSTORE_1, FSTORE_2, FSTORE_3, FSUB, FVAR, GETFIELD, GETSTATIC, GOTO, GOTO_W, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, ILOAD_0, ILOAD_1, ILOAD_2, ILOAD_3, IMUL, INEG, INEWARRAY, INITIALIZER_NAME, INITIALIZER_SIG, INSTANCEOF, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISTORE_0, ISTORE_1, ISTORE_2, ISTORE_3, ISUB, IUSHR, IVAR, IXOR, JSR, JSR_W, L2D, L2F, L2I, LABEL, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST, LCONST_0, LCONST_1, LDC, LDC_W, LDC2_W, LDIV, LLOAD, LLOAD_0, LLOAD_1, LLOAD_2, LLOAD_3, LMUL, LNEG, LNEWARRAY, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSTORE_0, LSTORE_1, LSTORE_2, LSTORE_3, LSUB, LUSHR, LVAR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, OPEFFECT, OPNAME, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, RSTORE, RVAR, SALOAD, SASTORE, SIPUSH, SNEWARRAY, SWAP, SWITCH, TABLESWITCH, TRY, UNKNOWN, VERSION_MAJOR, VERSION_MAJOR_MAX, VERSION_MAJOR_MIN, VERSION_MINOR, VERSION_MINOR_MAX, VERSION_MINOR_MIN, WIDE, ZNEWARRAY
Constructor and Description |
---|
ApplyPatch()
Default constructor.
|
Modifier and Type | Method and Description |
---|---|
protected String |
convertClassToEntry(String sClass)
Convert the given Java class name to its corresponding Jar entry name.
|
protected String |
convertEntryToClass(String sEntry)
Convert the given Jar entry name to its corresponding Java class name.
|
protected void |
copyEntry(com.tangosol.engarde.ApplicationEntry entry, com.tangosol.engarde.ApplicationReader reader, com.tangosol.engarde.ApplicationWriter writer)
Copy an entry from one application archive to another.
|
protected void |
copyEntry(com.tangosol.engarde.ApplicationEntry entry, InputStream in, com.tangosol.engarde.ApplicationWriter writer)
Copy an entry from a stream to an application archive.
|
protected void |
createDelegateEntry(com.tangosol.engarde.ApplicationEntry entry, com.tangosol.engarde.ApplicationReader reader, com.tangosol.engarde.ApplicationWriter writer)
Create a new delegate class entry that extends the given class entry and delegates all methods to a wrapped instance of the class entry.
|
protected void |
createDelegateMethod(com.tangosol.dev.assembler.ClassFile classfile, com.tangosol.dev.assembler.Method method, String sClass, com.tangosol.dev.assembler.Method methodGet)
Creates a delegate method in the given ClassFile that delegates the given method to the object returned by the given accessor method.
|
protected void |
extendEntry(com.tangosol.engarde.ApplicationEntry entry, com.tangosol.engarde.ApplicationReader reader, com.tangosol.engarde.ApplicationWriter writer)
Process the given class entry, making any non-private final methods non-final and if necessary, adding a default contructor.
|
abstract String |
getContainerName()
Return the name of the target web container for this utility.
|
File |
getLibrary()
Return the library to be patched by this utility.
|
abstract String |
getLibraryName()
Return the name of the web container library modified by this utility.
|
abstract void |
init(File fileDir)
Initialize the utility with the installation directory of the target web container.
|
void |
install()
Install extension classes.
|
protected abstract void |
processEntry(com.tangosol.engarde.ApplicationEntry entry, com.tangosol.engarde.ApplicationReader reader, com.tangosol.engarde.ApplicationWriter writer)
Perform any necessary processing on the given class entry.
|
protected byte[] |
readEntry(com.tangosol.engarde.ApplicationEntry entry, com.tangosol.engarde.ApplicationReader reader)
Read an entry and return its content.
|
protected String |
readManifestAttribute(File fileJar, String sName)
Read and return the value of the main Manifest attribute with the given name from the Manifest file contained in the specified JAR file.
|
protected void |
setLibrary(File fileLib)
Set the library to be patched by this utility.
|
void |
uninstall()
Uninstall extension classes.
|
protected void |
writeEntry(com.tangosol.engarde.ApplicationEntry entry, com.tangosol.engarde.ApplicationWriter writer, byte[] ab)
Write the contents of an entry.
|
azzert, azzert, azzert, azzertFailed, breakLines, breakLines, capitalize, checkNotEmpty, checkNotNull, checkRange, computeSafeWaitTime, decimalValue, dup, dup, ensureBigDecimal, ensureClassLoader, ensureRuntimeException, ensureRuntimeException, equals, equalsDeep, err, err, err, err, err, escape, formatDateTime, getCallerStackFrame, getCommonMonitor, getCommonMonitor, getCommonMonitor, getContextClassLoader, getContextClassLoader, getDeepMessage, getErr, getLastSafeTimeMillis, getLog, getMaxDecDigits, getMaxHexDigits, getOriginalException, getOut, getRandom, getRandomBinary, getRandomBinary, getRandomString, getSafeTimeMillis, getStackFrame, getStackFrames, getStackTrace, getStackTrace, getThreadFactory, getTimeZone, getUpTimeMillis, hashCode, hexValue, indentString, indentString, isDecimal, isHex, isLogEcho, isOctal, log, log, log, log, log, makeInteger, makeLong, makeThread, mod, mod, octalValue, out, out, out, out, out, pad, parseBandwidth, parseBandwidth, parseDelimitedString, parseHex, parseHex, parseMemorySize, parseMemorySize, parsePercentage, parseTime, parseTime, parseTimeNanos, parseTimeNanos, printStackTrace, randomize, randomize, randomize, read, read, read, read, read, read, read, replace, setErr, setLog, setLogEcho, setOut, sleep, toBandwidthString, toBandwidthString, toCharEscape, toCrc, toCrc, toCrc, toCrc, toCrc, toDecString, toDelimitedString, toDelimitedString, toDelimitedString, toDelimitedString, toHex, toHex, toHexDump, toHexEscape, toHexEscape, toHexEscape, toHexEscape, toHexString, toMemorySizeString, toMemorySizeString, toQuotedCharEscape, toQuotedStringEscape, toSqlString, toString, toString, toStringEscape, toUnicodeEscape, trace, trace, trace, trace, trace, trace, trace, trace, trace, truncateString, truncateString, wait
public static final String INSTALL_DESCRIPTOR
public static final int BLOCK_SIZE
public static final byte[] BLOCK_BUF
public static final String MANIFEST_NAME
protected File m_fileLib
public abstract void init(File fileDir)
install()
or uninstall()
is called. If the given directory does not exist or is not an installation directory of a web container of the appropriate type, an exception must be thrown. Implementations of this method must call setLibrary(File)
with the resolved target web container library before returning.fileDir
- the installation directory of the target web containerpublic abstract String getContainerName()
public abstract String getLibraryName()
protected abstract void processEntry(com.tangosol.engarde.ApplicationEntry entry, com.tangosol.engarde.ApplicationReader reader, com.tangosol.engarde.ApplicationWriter writer) throws IOException
entry
- the ApplicationEntry to processreader
- the ApplicationReader used to read from a JAR filewriter
- the ApplicationWriter used to write to a JAR fileIOException
- on processing errorpublic void install()
public void uninstall()
protected String convertClassToEntry(String sClass)
sClass
- the Java class name to convertprotected String convertEntryToClass(String sEntry)
sEntry
- the Jar entry name to convertprotected String readManifestAttribute(File fileJar, String sName)
fileJar
- the File object that represents the target JAR filesName
- the name of the main Manifest attribute to readprotected byte[] readEntry(com.tangosol.engarde.ApplicationEntry entry, com.tangosol.engarde.ApplicationReader reader) throws IOException
entry
- the ApplicationEntry to processreader
- the ApplicationReader to read from a JAR fileIOException
- on I/O errorprotected void writeEntry(com.tangosol.engarde.ApplicationEntry entry, com.tangosol.engarde.ApplicationWriter writer, byte[] ab) throws IOException
entry
- the ApplicationEntry to processwriter
- the ApplicationWriter to write to a JAR fileab
- the entry contents, as a byte arrayIOException
- on I/O errorprotected void copyEntry(com.tangosol.engarde.ApplicationEntry entry, com.tangosol.engarde.ApplicationReader reader, com.tangosol.engarde.ApplicationWriter writer) throws IOException
entry
- the ApplicationEntry to processreader
- the ApplicationReader to read from a JAR filewriter
- the ApplicationWriter to write to a JAR fileIOException
- on I/O errorprotected void copyEntry(com.tangosol.engarde.ApplicationEntry entry, InputStream in, com.tangosol.engarde.ApplicationWriter writer) throws IOException
entry
- the ApplicationEntry to processin
- the stream containing the entry datawriter
- the ApplicationWriter to write to a JAR fileIOException
- on I/O errorprotected void extendEntry(com.tangosol.engarde.ApplicationEntry entry, com.tangosol.engarde.ApplicationReader reader, com.tangosol.engarde.ApplicationWriter writer) throws IOException
entry
- the ApplicationEntry to processreader
- the ApplicationReader used to read from a JAR filewriter
- the ApplicationWriter used to write to a JAR fileIOException
- on processing errorprotected void createDelegateEntry(com.tangosol.engarde.ApplicationEntry entry, com.tangosol.engarde.ApplicationReader reader, com.tangosol.engarde.ApplicationWriter writer) throws IOException
entry
- the ApplicationEntry for which a delegate is createdreader
- the ApplicationReader used to read from a JAR filewriter
- the ApplicationWriter used to write to a JAR fileIOException
- on processing errorprotected void createDelegateMethod(com.tangosol.dev.assembler.ClassFile classfile, com.tangosol.dev.assembler.Method method, String sClass, com.tangosol.dev.assembler.Method methodGet)
classfile
- the ClassFile to which to add the delegate methodmethod
- the method to delegatesClass
- the name of the class in which the target method is declaredmethodGet
- the accessor method that returns the target objectpublic File getLibrary()
protected void setLibrary(File fileLib)
fileLib
- the library to be patched