Repository: tapestry-5
Updated Branches:
  refs/heads/master cb3b34d4e -> 1c71aec76


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/1c71aec7/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/xml/SAXModuleAdapter.java
----------------------------------------------------------------------
diff --git 
a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/xml/SAXModuleAdapter.java
 
b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/xml/SAXModuleAdapter.java
deleted file mode 100644
index 39494d0..0000000
--- 
a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/xml/SAXModuleAdapter.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/***
- * ASM XML Adapter
- * Copyright (c) 2004-2011, Eugene Kuleshov
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the copyright holders nor the names of its
- *    contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-package org.apache.tapestry5.internal.plastic.asm.xml;
-
-import org.apache.tapestry5.internal.plastic.asm.ModuleVisitor;
-import org.apache.tapestry5.internal.plastic.asm.Opcodes;
-import org.xml.sax.helpers.AttributesImpl;
-
-/**
- * Generate SAX event for a module description.
- * 
- * @author Remi Forax
- */
-public final class SAXModuleAdapter extends ModuleVisitor {
-
-    private final SAXAdapter sa;
-
-    public SAXModuleAdapter(final SAXAdapter sa) {
-        super(Opcodes.ASM6);
-        this.sa = sa;
-    }
-
-    @Override
-    public void visitMainClass(String mainClass) {
-        AttributesImpl att = new AttributesImpl();
-        att.addAttribute("", "name", "name", "", mainClass);
-        sa.addElement("main-class", att);
-    }
-    
-    @Override
-    public void visitPackage(String packaze) {
-        AttributesImpl att = new AttributesImpl();
-        att.addAttribute("", "name", "name", "", packaze);
-        sa.addElement("packages", att);
-    }
-    
-    @Override
-    public void visitRequire(String module, int access, String version) {
-        AttributesImpl att = new AttributesImpl();
-        StringBuilder sb = new StringBuilder();
-        SAXClassAdapter.appendAccess(access | SAXClassAdapter.ACCESS_MODULE, 
sb);
-        att.addAttribute("", "module", "module", "", module);
-        att.addAttribute("", "access", "access", "", sb.toString());
-        if (version != null) {
-            att.addAttribute("", "access", "access", "", version);
-        }
-        sa.addElement("requires", att);
-    }
-    
-    @Override
-    public void visitExport(String packaze, int access, String... modules) {
-        AttributesImpl att = new AttributesImpl();
-        StringBuilder sb = new StringBuilder();
-        SAXClassAdapter.appendAccess(access | SAXClassAdapter.ACCESS_MODULE, 
sb);
-        att.addAttribute("", "name", "name", "", packaze);
-        att.addAttribute("", "access", "access", "", sb.toString());
-        sa.addStart("exports", att);
-        if (modules != null && modules.length > 0) {
-            for (String to : modules) {
-                AttributesImpl atts = new AttributesImpl();
-                atts.addAttribute("", "module", "module", "", to);
-                sa.addElement("to", atts);
-            }
-        }
-        sa.addEnd("exports");
-    }
-    
-    @Override
-    public void visitOpen(String packaze, int access, String... modules) {
-        AttributesImpl att = new AttributesImpl();
-        StringBuilder sb = new StringBuilder();
-        SAXClassAdapter.appendAccess(access | SAXClassAdapter.ACCESS_MODULE, 
sb);
-        att.addAttribute("", "name", "name", "", packaze);
-        att.addAttribute("", "access", "access", "", sb.toString());
-        sa.addStart("opens", att);
-        if (modules != null && modules.length > 0) {
-            for (String to : modules) {
-                AttributesImpl atts = new AttributesImpl();
-                atts.addAttribute("", "module", "module", "", to);
-                sa.addElement("to", atts);
-            }
-        }
-        sa.addEnd("opens");
-    }
-
-    @Override
-    public void visitUse(String service) {
-        AttributesImpl att = new AttributesImpl();
-        att.addAttribute("", "service", "service", "", service);
-        sa.addElement("uses", att);
-    }
-    
-    @Override
-    public void visitProvide(String service, String... providers) {
-        AttributesImpl att = new AttributesImpl();
-        att.addAttribute("", "service", "service", "", service);
-        sa.addStart("provides", att);
-        for (String provider : providers) {
-            AttributesImpl atts = new AttributesImpl();
-            atts.addAttribute("", "provider", "provider", "", provider);
-            sa.addElement("with", atts);
-        }
-        sa.addEnd("provides");
-    }
-    
-    @Override
-    public void visitEnd() {
-        sa.addEnd("module");
-    }
-}

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/1c71aec7/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/xml/asm-xml.dtd
----------------------------------------------------------------------
diff --git 
a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/xml/asm-xml.dtd
 
b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/xml/asm-xml.dtd
deleted file mode 100644
index b2be0d9..0000000
--- 
a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/xml/asm-xml.dtd
+++ /dev/null
@@ -1,363 +0,0 @@
-<!--
-  ASM XML Adapter
-  Copyright (c) 2004-2011, Eugene Kuleshov
-  All rights reserved.
-  
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-  1. Redistributions of source code must retain the above copyright
-     notice, this list of conditions and the following disclaimer.
-  2. Redistributions in binary form must reproduce the above copyright
-     notice, this list of conditions and the following disclaimer in the
-     documentation and/or other materials provided with the distribution.
-  3. Neither the name of the copyright holders nor the names of its
-     contributors may be used to endorse or promote products derived from
-     this software without specific prior written permission.
-  
-  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-  THE POSSIBILITY OF SUCH DAMAGE.
--->
-
-<!--
-  This DTD must be used to create XML documents to be processed by
-  org.objectweb.asm.xml.ASMContentHandler
--->
-
-<!--
-  Root element used to aggregate multiple classes into single document.
--->
-<!ELEMENT classes ( class+ )>
-
-<!--
-  Root element for a single class.
--->
-<!ELEMENT class ( interfaces, module?, ( field | innerclass | method )*)>
-<!ATTLIST class access CDATA #REQUIRED>
-<!ATTLIST class name CDATA #REQUIRED>
-<!ATTLIST class parent CDATA #REQUIRED>
-<!ATTLIST class major CDATA #REQUIRED>
-<!ATTLIST class minor CDATA #REQUIRED>
-<!ATTLIST class source CDATA #IMPLIED>
-
-<!ELEMENT interfaces ( interface* )>
-<!ELEMENT interface EMPTY>
-<!ATTLIST interface name CDATA #REQUIRED>
-
-<!ELEMENT module ( requires*, exports*, uses*, provides* )>
-<!ELEMENT requires EMPTY>
-<!ATTLIST requires module CDATA #REQUIRED>
-<!ATTLIST requires access CDATA #REQUIRED>
-<!ELEMENT exports ( to* )>
-<!ATTLIST exports name CDATA #REQUIRED>
-<!ELEMENT to EMPTY>
-<!ATTLIST to module CDATA #REQUIRED>
-<!ELEMENT uses EMPTY>
-<!ATTLIST uses service CDATA #REQUIRED>
-<!ELEMENT provides EMPTY>
-<!ATTLIST provides service CDATA #REQUIRED>
-<!ATTLIST provides impl CDATA #REQUIRED>
-
-<!ELEMENT field EMPTY>
-<!ATTLIST field access CDATA #REQUIRED>
-<!ATTLIST field desc CDATA #REQUIRED>
-<!ATTLIST field name CDATA #REQUIRED>
-<!--
-  All characters out of interval 0x20 to 0x7f (inclusive) must
-  be encoded (\uXXXX) and character '\' must be replaced by "\\"
--->
-<!ATTLIST field value CDATA #IMPLIED>
-
-<!ELEMENT innerclass EMPTY>
-<!ATTLIST innerclass access CDATA #REQUIRED>
-<!ATTLIST innerclass innerName CDATA #IMPLIED>
-<!ATTLIST innerclass name CDATA #REQUIRED>
-<!ATTLIST innerclass outerName CDATA #IMPLIED>
-
-<!--
-  Root element for method definition.
--->
-<!ELEMENT method ( exceptions, code? )>
-<!ATTLIST method access CDATA #REQUIRED>
-<!ATTLIST method desc CDATA #REQUIRED>
-<!ATTLIST method name CDATA #REQUIRED>
-
-<!ELEMENT exceptions ( exception* )>
-<!ELEMENT exception EMPTY>
-<!ATTLIST exception name CDATA #REQUIRED>
-
-<!--
-  code element contains bytecode instructions and definitions for labels, line 
numbers, try/catch and max
--->
-<!ELEMENT code (( AALOAD | AASTORE | ACONST_NULL | ALOAD | ANEWARRAY | ARETURN 
| ARRAYLENGTH | ASTORE | ATHROW | BALOAD | BASTORE | BIPUSH | CALOAD | CASTORE 
| CHECKCAST | D2F | D2I | D2L | DADD | DALOAD | DASTORE | DCMPG | DCMPL | 
DCONST_0 | DCONST_1 | DDIV | DLOAD | DMUL | DNEG | DREM | DRETURN | DSTORE | 
DSUB | DUP | DUP2 | DUP2_X1 | DUP2_X2 | DUP_X1 | DUP_X2 | SWAP | F2D | F2I | 
F2L | FADD | FALOAD | FASTORE | FCMPG | FCMPL | FCONST_0 | FCONST_1 | FCONST_2 
| FDIV | FLOAD | FMUL | FNEG | FREM | FRETURN | FSTORE | FSUB | GETFIELD | 
GETSTATIC | GOTO | I2B | I2C | I2D | I2F | I2L | I2S | IADD | IALOAD | IAND | 
IASTORE | ICONST_0 | ICONST_1 | ICONST_2 | ICONST_3 | ICONST_4 | ICONST_5 | 
ICONST_M1 | IDIV | IFEQ | IFGE | IFGT | IFLE | IFLT | IFNE | IFNONNULL | IFNULL 
| IF_ACMPEQ | IF_ACMPNE | IF_ICMPEQ | IF_ICMPGE | IF_ICMPGT | IF_ICMPLE | 
IF_ICMPLT | IF_ICMPNE | IINC | ILOAD | IMUL | INEG | INSTANCEOF | 
INVOKEINTERFACE | INVOKESPECIAL | INVOKESTATIC | INVOKEVIRTUAL | IOR | IREM | 
IRETU
 RN | ISHL | ISHR | ISTORE | ISUB | IUSHR | IXOR | JSR | L2D | L2F | L2I | LADD 
| LALOAD | LAND | LASTORE | LCMP | LCONST_0 | LCONST_1 | LDC | LDIV | LLOAD | 
LMUL | LNEG | LOOKUPSWITCH | LOR | LREM | LRETURN | LSHL | LSHR | LSTORE | LSUB 
| LUSHR | LXOR | MONITORENTER | MONITOREXIT | MULTIANEWARRAY | NEW | NEWARRAY | 
NOP | POP | POP2 | PUTFIELD | PUTSTATIC | RET | RETURN | SALOAD | SASTORE | 
SIPUSH | TABLESWITCH | Label | LineNumber | TryCatch )*, Max)>
-
-<!ELEMENT Label EMPTY>
-<!ATTLIST Label name CDATA #REQUIRED>
-
-<!ELEMENT TryCatch EMPTY>
-<!ATTLIST TryCatch end CDATA #REQUIRED>
-<!ATTLIST TryCatch handler CDATA #REQUIRED>
-<!ATTLIST TryCatch start CDATA #REQUIRED>
-<!ATTLIST TryCatch type CDATA #IMPLIED>
-
-<!ELEMENT LineNumber EMPTY>
-<!ATTLIST LineNumber line CDATA #REQUIRED>
-<!ATTLIST LineNumber start CDATA #REQUIRED>
-
-<!ELEMENT Max EMPTY>
-<!ATTLIST Max maxLocals CDATA #REQUIRED>
-<!ATTLIST Max maxStack CDATA #REQUIRED>
-
-<!ELEMENT AALOAD EMPTY>
-<!ELEMENT AASTORE EMPTY>
-<!ELEMENT ACONST_NULL EMPTY>
-<!ELEMENT ALOAD EMPTY>
-<!ATTLIST ALOAD var CDATA #REQUIRED>
-<!ELEMENT ANEWARRAY EMPTY>
-<!ATTLIST ANEWARRAY desc CDATA #REQUIRED>
-<!ELEMENT ARETURN EMPTY>
-<!ELEMENT ARRAYLENGTH EMPTY>
-<!ELEMENT ASTORE EMPTY>
-<!ATTLIST ASTORE var CDATA #REQUIRED>
-<!ELEMENT ATHROW EMPTY>
-<!ELEMENT BALOAD EMPTY>
-<!ELEMENT BASTORE EMPTY>
-<!ELEMENT BIPUSH EMPTY>
-<!ATTLIST BIPUSH value CDATA #REQUIRED>
-<!ELEMENT CALOAD EMPTY>
-<!ELEMENT CASTORE EMPTY>
-<!ELEMENT CHECKCAST EMPTY>
-<!ATTLIST CHECKCAST desc CDATA #REQUIRED>
-<!ELEMENT D2F EMPTY>
-<!ELEMENT D2I EMPTY>
-<!ELEMENT D2L EMPTY>
-<!ELEMENT DADD EMPTY>
-<!ELEMENT DALOAD EMPTY>
-<!ELEMENT DASTORE EMPTY>
-<!ELEMENT DCMPG EMPTY>
-<!ELEMENT DCMPL EMPTY>
-<!ELEMENT DCONST_0 EMPTY>
-<!ELEMENT DCONST_1 EMPTY>
-<!ELEMENT DDIV EMPTY>
-<!ELEMENT DLOAD EMPTY>
-<!ATTLIST DLOAD var CDATA #REQUIRED>
-<!ELEMENT DMUL EMPTY>
-<!ELEMENT DNEG EMPTY>
-<!ELEMENT DREM EMPTY>
-<!ELEMENT DRETURN EMPTY>
-<!ELEMENT DSTORE EMPTY>
-<!ATTLIST DSTORE var CDATA #REQUIRED>
-<!ELEMENT DSUB EMPTY>
-<!ELEMENT DUP EMPTY>
-<!ELEMENT DUP2 EMPTY>
-<!ELEMENT DUP2_X1 EMPTY>
-<!ELEMENT DUP2_X2 EMPTY>
-<!ELEMENT DUP_X1 EMPTY>
-<!ELEMENT DUP_X2 EMPTY>
-<!ELEMENT SWAP EMPTY>
-<!ELEMENT F2D EMPTY>
-<!ELEMENT F2I EMPTY>
-<!ELEMENT F2L EMPTY>
-<!ELEMENT FADD EMPTY>
-<!ELEMENT FALOAD EMPTY>
-<!ELEMENT FASTORE EMPTY>
-<!ELEMENT FCMPG EMPTY>
-<!ELEMENT FCMPL EMPTY>
-<!ELEMENT FCONST_0 EMPTY>
-<!ELEMENT FCONST_1 EMPTY>
-<!ELEMENT FCONST_2 EMPTY>
-<!ELEMENT FDIV EMPTY>
-<!ELEMENT FLOAD EMPTY>
-<!ATTLIST FLOAD var CDATA #REQUIRED>
-<!ELEMENT FMUL EMPTY>
-<!ELEMENT FNEG EMPTY>
-<!ELEMENT FREM EMPTY>
-<!ELEMENT FRETURN EMPTY>
-<!ELEMENT FSTORE EMPTY>
-<!ATTLIST FSTORE var CDATA #REQUIRED>
-<!ELEMENT FSUB EMPTY>
-<!ELEMENT GETFIELD EMPTY>
-<!ATTLIST GETFIELD desc CDATA #REQUIRED>
-<!ATTLIST GETFIELD name CDATA #REQUIRED>
-<!ATTLIST GETFIELD owner CDATA #REQUIRED>
-<!ELEMENT GETSTATIC EMPTY>
-<!ATTLIST GETSTATIC desc CDATA #REQUIRED>
-<!ATTLIST GETSTATIC name CDATA #REQUIRED>
-<!ATTLIST GETSTATIC owner CDATA #REQUIRED>
-<!ELEMENT GOTO EMPTY>
-<!ATTLIST GOTO label CDATA #REQUIRED>
-<!ELEMENT I2B EMPTY>
-<!ELEMENT I2C EMPTY>
-<!ELEMENT I2D EMPTY>
-<!ELEMENT I2F EMPTY>
-<!ELEMENT I2L EMPTY>
-<!ELEMENT I2S EMPTY>
-<!ELEMENT IADD EMPTY>
-<!ELEMENT IALOAD EMPTY>
-<!ELEMENT IAND EMPTY>
-<!ELEMENT IASTORE EMPTY>
-<!ELEMENT ICONST_0 EMPTY>
-<!ELEMENT ICONST_1 EMPTY>
-<!ELEMENT ICONST_2 EMPTY>
-<!ELEMENT ICONST_3 EMPTY>
-<!ELEMENT ICONST_4 EMPTY>
-<!ELEMENT ICONST_5 EMPTY>
-<!ELEMENT ICONST_M1 EMPTY>
-<!ELEMENT IDIV EMPTY>
-<!ELEMENT IFEQ EMPTY>
-<!ATTLIST IFEQ label CDATA #REQUIRED>
-<!ELEMENT IFGE EMPTY>
-<!ATTLIST IFGE label CDATA #REQUIRED>
-<!ELEMENT IFGT EMPTY>
-<!ATTLIST IFGT label CDATA #REQUIRED>
-<!ELEMENT IFLE EMPTY>
-<!ATTLIST IFLE label CDATA #REQUIRED>
-<!ELEMENT IFLT EMPTY>
-<!ATTLIST IFLT label CDATA #REQUIRED>
-<!ELEMENT IFNE EMPTY>
-<!ATTLIST IFNE label CDATA #REQUIRED>
-<!ELEMENT IFNONNULL EMPTY>
-<!ATTLIST IFNONNULL label CDATA #REQUIRED>
-<!ELEMENT IFNULL EMPTY>
-<!ATTLIST IFNULL label CDATA #REQUIRED>
-<!ELEMENT IF_ACMPEQ EMPTY>
-<!ATTLIST IF_ACMPEQ label CDATA #REQUIRED>
-<!ELEMENT IF_ACMPNE EMPTY>
-<!ATTLIST IF_ACMPNE label CDATA #REQUIRED>
-<!ELEMENT IF_ICMPEQ EMPTY>
-<!ATTLIST IF_ICMPEQ label CDATA #REQUIRED>
-<!ELEMENT IF_ICMPGE EMPTY>
-<!ATTLIST IF_ICMPGE label CDATA #REQUIRED>
-<!ELEMENT IF_ICMPGT EMPTY>
-<!ATTLIST IF_ICMPGT label CDATA #REQUIRED>
-<!ELEMENT IF_ICMPLE EMPTY>
-<!ATTLIST IF_ICMPLE label CDATA #REQUIRED>
-<!ELEMENT IF_ICMPLT EMPTY>
-<!ATTLIST IF_ICMPLT label CDATA #REQUIRED>
-<!ELEMENT IF_ICMPNE EMPTY>
-<!ATTLIST IF_ICMPNE label CDATA #REQUIRED>
-<!ELEMENT IINC EMPTY>
-<!ATTLIST IINC inc CDATA #REQUIRED>
-<!ATTLIST IINC var CDATA #REQUIRED>
-<!ELEMENT ILOAD EMPTY>
-<!ATTLIST ILOAD var CDATA #REQUIRED>
-<!ELEMENT IMUL EMPTY>
-<!ELEMENT INEG EMPTY>
-<!ELEMENT INSTANCEOF EMPTY>
-<!ATTLIST INSTANCEOF desc CDATA #REQUIRED>
-<!ELEMENT INVOKEINTERFACE EMPTY>
-<!ATTLIST INVOKEINTERFACE desc CDATA #REQUIRED>
-<!ATTLIST INVOKEINTERFACE name CDATA #REQUIRED>
-<!ATTLIST INVOKEINTERFACE owner CDATA #REQUIRED>
-<!ELEMENT INVOKESPECIAL EMPTY>
-<!ATTLIST INVOKESPECIAL desc CDATA #REQUIRED>
-<!ATTLIST INVOKESPECIAL name CDATA #REQUIRED>
-<!ATTLIST INVOKESPECIAL owner CDATA #REQUIRED>
-<!ELEMENT INVOKESTATIC EMPTY>
-<!ATTLIST INVOKESTATIC desc CDATA #REQUIRED>
-<!ATTLIST INVOKESTATIC name CDATA #REQUIRED>
-<!ATTLIST INVOKESTATIC owner CDATA #REQUIRED>
-<!ELEMENT INVOKEVIRTUAL EMPTY>
-<!ATTLIST INVOKEVIRTUAL desc CDATA #REQUIRED>
-<!ATTLIST INVOKEVIRTUAL name CDATA #REQUIRED>
-<!ATTLIST INVOKEVIRTUAL owner CDATA #REQUIRED>
-<!ELEMENT INVOKEDYNAMIC ( bsmArgs+ )>
-<!ATTLIST INVOKEDYNAMIC desc CDATA #REQUIRED>
-<!ATTLIST INVOKEDYNAMIC name CDATA #REQUIRED>
-<!ATTLIST INVOKEDYNAMIC bsm CDATA #REQUIRED>
-<!ELEMENT bsmArgs EMPTY>
-<!ATTLIST bsmArgs cst CDATA #REQUIRED>
-<!ATTLIST bsmArgs desc CDATA #REQUIRED>
-<!ELEMENT IOR EMPTY>
-<!ELEMENT IREM EMPTY>
-<!ELEMENT IRETURN EMPTY>
-<!ELEMENT ISHL EMPTY>
-<!ELEMENT ISHR EMPTY>
-<!ELEMENT ISTORE EMPTY>
-<!ATTLIST ISTORE var CDATA #REQUIRED>
-<!ELEMENT ISUB EMPTY>
-<!ELEMENT IUSHR EMPTY>
-<!ELEMENT IXOR EMPTY>
-<!ELEMENT JSR EMPTY>
-<!ATTLIST JSR label CDATA #REQUIRED>
-<!ELEMENT L2D EMPTY>
-<!ELEMENT L2F EMPTY>
-<!ELEMENT L2I EMPTY>
-<!ELEMENT LADD EMPTY>
-<!ELEMENT LALOAD EMPTY>
-<!ELEMENT LAND EMPTY>
-<!ELEMENT LASTORE EMPTY>
-<!ELEMENT LCMP EMPTY>
-<!ELEMENT LCONST_0 EMPTY>
-<!ELEMENT LCONST_1 EMPTY>
-<!ELEMENT LDC EMPTY>
-<!--
-  All characters out of interval 0x20 to 0x7f (inclusive) must
-  be encoded (\uXXXX) and character '\' must be replaced by "\\"
--->
-<!ATTLIST LDC cst CDATA #REQUIRED>
-<!ATTLIST LDC desc CDATA #REQUIRED>
-<!ELEMENT LDIV EMPTY>
-<!ELEMENT LLOAD EMPTY>
-<!ATTLIST LLOAD var CDATA #REQUIRED>
-<!ELEMENT LMUL EMPTY>
-<!ELEMENT LNEG EMPTY>
-<!ELEMENT LOR EMPTY>
-<!ELEMENT LREM EMPTY>
-<!ELEMENT LRETURN EMPTY>
-<!ELEMENT LSHL EMPTY>
-<!ELEMENT LSHR EMPTY>
-<!ELEMENT LSTORE EMPTY>
-<!ATTLIST LSTORE var CDATA #REQUIRED>
-<!ELEMENT LSUB EMPTY>
-<!ELEMENT LUSHR EMPTY>
-<!ELEMENT LXOR EMPTY>
-<!ELEMENT MONITORENTER EMPTY>
-<!ELEMENT MONITOREXIT EMPTY>
-<!ELEMENT MULTIANEWARRAY EMPTY>
-<!ATTLIST MULTIANEWARRAY desc CDATA #REQUIRED>
-<!ATTLIST MULTIANEWARRAY dims CDATA #REQUIRED>
-<!ELEMENT NEW EMPTY>
-<!ATTLIST NEW desc CDATA #REQUIRED>
-<!ELEMENT NEWARRAY EMPTY>
-<!ATTLIST NEWARRAY value CDATA #REQUIRED>
-<!ELEMENT NOP EMPTY>
-<!ELEMENT POP EMPTY>
-<!ELEMENT POP2 EMPTY>
-<!ELEMENT PUTFIELD EMPTY>
-<!ATTLIST PUTFIELD desc CDATA #REQUIRED>
-<!ATTLIST PUTFIELD name CDATA #REQUIRED>
-<!ATTLIST PUTFIELD owner CDATA #REQUIRED>
-<!ELEMENT PUTSTATIC EMPTY>
-<!ATTLIST PUTSTATIC desc CDATA #REQUIRED>
-<!ATTLIST PUTSTATIC name CDATA #REQUIRED>
-<!ATTLIST PUTSTATIC owner CDATA #REQUIRED>
-<!ELEMENT RET EMPTY>
-<!ATTLIST RET var CDATA #REQUIRED>
-<!ELEMENT RETURN EMPTY>
-<!ELEMENT SALOAD EMPTY>
-<!ELEMENT SASTORE EMPTY>
-<!ELEMENT SIPUSH EMPTY>
-<!ATTLIST SIPUSH value CDATA #REQUIRED>
-
-<!ELEMENT LOOKUPSWITCH ( label+ )>
-<!ATTLIST LOOKUPSWITCH dflt CDATA #REQUIRED>
-
-<!ELEMENT TABLESWITCH ( label+ )>
-<!ATTLIST TABLESWITCH dflt CDATA #REQUIRED>
-<!ATTLIST TABLESWITCH max CDATA #REQUIRED>
-<!ATTLIST TABLESWITCH min CDATA #REQUIRED>
-
-<!ELEMENT label EMPTY>
-<!ATTLIST label key CDATA #IMPLIED>
-<!ATTLIST label name CDATA #REQUIRED>
-

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/1c71aec7/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/xml/package.html
----------------------------------------------------------------------
diff --git 
a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/xml/package.html
 
b/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/xml/package.html
deleted file mode 100644
index d7bbe66..0000000
--- 
a/plastic/src/external/java/org/apache/tapestry5/internal/plastic/asm/xml/package.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<html>
-<!--
- * ASM XML Adapter
- * Copyright (c) 2004-2011, Eugene Kuleshov
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the copyright holders nor the names of its
- *    contributors may be used to endorse or promote products derived from
- *    this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
--->
-<body>
-Provides <a href="http://sax.sourceforge.net/";>SAX 2.0</a> adapters for ASM
-visitors to convert classes to and from XML.
-These adapters can be chained with other SAX compliant content handlers and
-filters, eg. XSLT or XQuery engines. This package is bundled as
-a separate <tt>asm-xml.jar</tt> library and requires <tt>asm.jar</tt>.
-<p>
-<tt>ASMContentHandler</tt> and <tt>SAXClassAdapter/SAXCodeAdapter</tt>
-are using <a href="asm-xml.dtd">asm-xml.dtd</a>.
-Here is the example of bytecode to bytecode XSLT transformation.
-
-<pre>
-    SAXTransformerFactory saxtf = ( SAXTransformerFactory) 
TransformerFactory.newInstance();
-    Templates templates = saxtf.newTemplates( xsltSource);
-
-    TransformerHandler handler = saxtf.newTransformerHandler( templates);
-    handler.setResult( new SAXResult( new ASMContentHandler( outputStream, 
computeMax)));
-
-    ClassReader cr = new ClassReader( bytecode);
-    cr.accept( new SAXClassAdapter( handler, cr.getVersion(), false), false);
-</pre>
-
-See JAXP and SAX documentation for more detils.
-
-<p>
-There are few illustrations of the bytecode transformation with XSLT in
-examples directory. The following XSLT procesors has been tested.
-
-<blockquote>
-<table border="1" cellspacing="0" cellpadding="3">
-<tr>
-<th>Engine</td>
-<th>javax.xml.transform.TransformerFactory property</td>
-</tr>
-
-<tr>
-<td>jd.xslt</td>
-<td>jd.xml.xslt.trax.TransformerFactoryImpl</td>
-</tr>
-
-<tr>
-<td>Saxon</td>
-<td>net.sf.saxon.TransformerFactoryImpl</td>
-</tr>
-
-<tr>
-<td>Caucho</td>
-<td>com.caucho.xsl.Xsl</td>
-</tr>
-
-<tr>
-<td>Xalan interpeter</td>
-<td>org.apache.xalan.processor.TransformerFactory</td>
-</tr>
-
-<tr>
-<td>Xalan xsltc</td>
-<td>org.apache.xalan.xsltc.trax.TransformerFactoryImpl</td>
-</tr>
-</table>
-</blockquote>
-
-@since ASM 1.4.3
-
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/1c71aec7/plastic/src/main/java/org/apache/tapestry5/internal/plastic/InstructionBuilderImpl.java
----------------------------------------------------------------------
diff --git 
a/plastic/src/main/java/org/apache/tapestry5/internal/plastic/InstructionBuilderImpl.java
 
b/plastic/src/main/java/org/apache/tapestry5/internal/plastic/InstructionBuilderImpl.java
index bbead43..dd44883 100644
--- 
a/plastic/src/main/java/org/apache/tapestry5/internal/plastic/InstructionBuilderImpl.java
+++ 
b/plastic/src/main/java/org/apache/tapestry5/internal/plastic/InstructionBuilderImpl.java
@@ -34,7 +34,7 @@ public class InstructionBuilderImpl extends Lockable 
implements Opcodes, Instruc
     /**
      * Maps from condition to opcode to jump to the false code block.
      */
-    private static final Map<Condition, Integer> conditionToOpcode = new 
HashMap<Condition, Integer>();
+    private static final Map<Condition, Integer> conditionToOpcode = new 
HashMap<>();
 
     static
     {
@@ -50,7 +50,7 @@ public class InstructionBuilderImpl extends Lockable 
implements Opcodes, Instruc
         m.put(Condition.GREATER, IF_ICMPLE);
     }
 
-    private static final Map<String, Integer> typeToSpecialComparisonOpcode = 
new HashMap<String, Integer>();
+    private static final Map<String, Integer> typeToSpecialComparisonOpcode = 
new HashMap<>();
 
     static
     {
@@ -61,7 +61,7 @@ public class InstructionBuilderImpl extends Lockable 
implements Opcodes, Instruc
         m.put("double", DCMPL);
     }
 
-    private static final Map<Object, Integer> constantOpcodes = new 
HashMap<Object, Integer>();
+    private static final Map<Object, Integer> constantOpcodes = new 
HashMap<>();
 
     static
     {
@@ -199,7 +199,7 @@ public class InstructionBuilderImpl extends Lockable 
implements Opcodes, Instruc
     {
         check();
 
-        doInvoke(INVOKESPECIAL, containingClassName, description);
+        doInvoke(INVOKESPECIAL, containingClassName, description, false);
 
         return this;
     }
@@ -223,7 +223,7 @@ public class InstructionBuilderImpl extends Lockable 
implements Opcodes, Instruc
     {
         check();
 
-        doInvoke(INVOKEVIRTUAL, className, returnType, methodName, 
argumentTypes);
+        doInvoke(INVOKEVIRTUAL, className, returnType, methodName, false, 
argumentTypes);
 
         return this;
     }
@@ -234,28 +234,30 @@ public class InstructionBuilderImpl extends Lockable 
implements Opcodes, Instruc
     {
         check();
 
-        doInvoke(INVOKEINTERFACE, interfaceName, returnType, methodName, 
argumentTypes);
+        doInvoke(INVOKEINTERFACE, interfaceName, returnType, methodName, true, 
argumentTypes);
 
         return this;
     }
 
-    private void doInvoke(int opcode, String className, String returnType, 
String methodName, String... argumentTypes)
+    private void doInvoke(int opcode, String className, String returnType, 
String methodName, boolean isInterface,
+                          String... argumentTypes)
     {
         v.visitMethodInsn(opcode, cache.toInternalName(className), methodName,
-                cache.toMethodDescriptor(returnType, argumentTypes));
+                cache.toMethodDescriptor(returnType, argumentTypes), 
isInterface);
     }
 
     @Override
     public InstructionBuilder invokeStatic(Class clazz, Class returnType, 
String methodName, Class... argumentTypes)
     {
-        doInvoke(INVOKESTATIC, clazz, returnType, methodName, argumentTypes);
+        doInvoke(INVOKESTATIC, clazz, returnType, methodName, false, 
argumentTypes);
 
         return this;
     }
 
-    private void doInvoke(int opcode, Class clazz, Class returnType, String 
methodName, Class... argumentTypes)
+    private void doInvoke(int opcode, Class clazz, Class returnType, String 
methodName, boolean isInterface,
+                          Class... argumentTypes)
     {
-        doInvoke(opcode, clazz.getName(), cache.toTypeName(returnType), 
methodName,
+        doInvoke(opcode, clazz.getName(), cache.toTypeName(returnType), 
methodName, isInterface,
                 PlasticUtils.toTypeNames(argumentTypes));
     }
 
@@ -272,15 +274,16 @@ public class InstructionBuilderImpl extends Lockable 
implements Opcodes, Instruc
     {
         check();
 
-        doInvoke(clazz.isInterface() ? INVOKEINTERFACE : INVOKEVIRTUAL, clazz, 
returnType, methodName, argumentTypes);
+        doInvoke(clazz.isInterface() ? INVOKEINTERFACE : INVOKEVIRTUAL, clazz, 
returnType, methodName,
+                clazz.isInterface(), argumentTypes);
 
         return this;
     }
 
-    private void doInvoke(int opcode, String containingClassName, 
MethodDescription description)
+    private void doInvoke(int opcode, String containingClassName, 
MethodDescription description, boolean isInterface)
     {
         v.visitMethodInsn(opcode, cache.toInternalName(containingClassName), 
description.methodName,
-                cache.toDesc(description));
+                cache.toDesc(description), isInterface);
     }
 
     @Override
@@ -306,7 +309,8 @@ public class InstructionBuilderImpl extends Lockable 
implements Opcodes, Instruc
 
         if (type != null && type != PrimitiveType.VOID)
         {
-            v.visitMethodInsn(INVOKESTATIC, type.wrapperInternalName, 
"valueOf", type.valueOfMethodDescriptor);
+            v.visitMethodInsn(INVOKESTATIC, type.wrapperInternalName, 
"valueOf", type.valueOfMethodDescriptor,
+                    false);
         }
 
         return this;
@@ -329,7 +333,8 @@ public class InstructionBuilderImpl extends Lockable 
implements Opcodes, Instruc
 
     private void doUnbox(PrimitiveType type)
     {
-        v.visitMethodInsn(INVOKEVIRTUAL, type.wrapperInternalName, 
type.toValueMethodName, type.toValueMethodDescriptor);
+        v.visitMethodInsn(INVOKEVIRTUAL, type.wrapperInternalName, 
type.toValueMethodName, type.toValueMethodDescriptor,
+                false);
     }
 
     @Override
@@ -498,7 +503,7 @@ public class InstructionBuilderImpl extends Lockable 
implements Opcodes, Instruc
     {
         check();
 
-        doInvoke(INVOKESPECIAL, className, "void", "<init>", argumentTypes);
+        doInvoke(INVOKESPECIAL, className, "void", "<init>", false, 
argumentTypes);
 
         return this;
     }
@@ -661,14 +666,7 @@ public class InstructionBuilderImpl extends Lockable 
implements Opcodes, Instruc
 
         final LocalVariable var = state.startVariable(type);
 
-        new InstructionBuilderCallback()
-        {
-            @Override
-            public void doBuild(InstructionBuilder builder)
-            {
-                callback.doBuild(var, builder);
-            }
-        }.doBuild(this);
+        callback.doBuild(var, this);
 
         state.stopVariable(var);
 
@@ -733,27 +731,13 @@ public class InstructionBuilderImpl extends Lockable 
implements Opcodes, Instruc
 
         v.visitJumpInsn(conditionToOpcode.get(condition), ifFalseLabel);
 
-        new InstructionBuilderCallback()
-        {
-            @Override
-            public void doBuild(InstructionBuilder builder)
-            {
-                callback.ifTrue(builder);
-            }
-        }.doBuild(this);
+        callback.ifTrue(this);
 
         v.visitJumpInsn(GOTO, endIfLabel);
 
         v.visitLabel(ifFalseLabel);
 
-        new InstructionBuilderCallback()
-        {
-            @Override
-            public void doBuild(InstructionBuilder builder)
-            {
-                callback.ifFalse(builder);
-            }
-        }.doBuild(this);
+        callback.ifFalse(this);
 
         v.visitLabel(endIfLabel);
 
@@ -772,25 +756,11 @@ public class InstructionBuilderImpl extends Lockable 
implements Opcodes, Instruc
 
         Label exitLoop = new Label();
 
-        new InstructionBuilderCallback()
-        {
-            @Override
-            public void doBuild(InstructionBuilder builder)
-            {
-                callback.buildTest(builder);
-            }
-        }.doBuild(this);
+        callback.buildTest(this);
 
         v.visitJumpInsn(conditionToOpcode.get(condition), exitLoop);
 
-        new InstructionBuilderCallback()
-        {
-            @Override
-            public void doBuild(InstructionBuilder builder)
-            {
-                callback.buildBody(builder);
-            }
-        }.doBuild(this);
+        callback.buildBody(this);
 
         v.visitJumpInsn(GOTO, doCheck);
 

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/1c71aec7/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java
----------------------------------------------------------------------
diff --git 
a/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java
 
b/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java
index 9683e1c..223109a 100644
--- 
a/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java
+++ 
b/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java
@@ -20,13 +20,10 @@ import org.apache.tapestry5.plastic.*;
 
 import java.io.IOException;
 import java.lang.annotation.Annotation;
-import java.lang.reflect.Array;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 import java.util.*;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
 
 @SuppressWarnings("all")
 public class PlasticClassImpl extends Lockable implements PlasticClass, 
InternalPlasticClassTransformation, Opcodes
@@ -100,9 +97,9 @@ public class PlasticClassImpl extends Lockable implements 
PlasticClass, Internal
 
     private final List<PlasticMethodImpl> methods;
 
-    private final Map<MethodDescription, PlasticMethod> description2method = 
new HashMap<MethodDescription, PlasticMethod>();
+    private final Map<MethodDescription, PlasticMethod> description2method = 
new HashMap<>();
 
-    final Set<String> methodNames = new HashSet<String>();
+    final Set<String> methodNames = new HashSet<>();
 
     private final List<ConstructorCallback> constructorCallbacks = 
PlasticInternalUtils.newList();
 
@@ -212,7 +209,7 @@ public class PlasticClassImpl extends Lockable implements 
PlasticClass, Internal
             inheritanceData.addInterface(interfaceName);
         }
 
-        methods = new ArrayList(classNode.methods.size());
+        methods = new ArrayList<>(classNode.methods.size());
 
         String invalidConstructorMessage = invalidConstructorMessage();
 
@@ -234,7 +231,7 @@ public class PlasticClassImpl extends Lockable implements 
PlasticClass, Internal
                 continue;
             }
 
-            /**
+            /*
              * Static methods are not visible to the main API methods, but 
they must still be transformed,
              * in case they directly access fields. In addition, track their 
names to avoid collisions.
              */
@@ -274,7 +271,7 @@ public class PlasticClassImpl extends Lockable implements 
PlasticClass, Internal
 
         Collections.sort(methods);
 
-        fields = new ArrayList(classNode.fields.size());
+        fields = new ArrayList<>(classNode.fields.size());
 
         for (FieldNode node : classNode.fields)
         {
@@ -443,13 +440,13 @@ public class PlasticClassImpl extends Lockable implements 
PlasticClass, Internal
         if (list != null)
         {
 
-            final Set<String> annotations = new HashSet<String>();
-            final List<AnnotationNode> toBeRemoved = new 
ArrayList<AnnotationNode>();
+            final Set<String> annotations = new HashSet<>();
+            final List<AnnotationNode> toBeRemoved = new ArrayList<>();
             final List<AnnotationNode> toBeIterated;
 
             if (reverse)
             {
-                toBeIterated = new ArrayList<AnnotationNode>(list);
+                toBeIterated = new ArrayList<>(list);
                 Collections.reverse(toBeIterated);
             }
             else {
@@ -508,7 +505,7 @@ public class PlasticClassImpl extends Lockable implements 
PlasticClass, Internal
     private static List<Class> getJavaParameterTypes(MethodNode methodNode) {
         final ClassLoader classLoader = 
PlasticInternalUtils.class.getClassLoader();
         Type[] parameterTypes = Type.getArgumentTypes(methodNode.desc);
-        List<Class> list = new ArrayList<Class>();
+        List<Class> list = new ArrayList<>();
         for (Type type : parameterTypes)
         {
             try
@@ -626,16 +623,16 @@ public class PlasticClassImpl extends Lockable implements 
PlasticClass, Internal
 //        {
 //            introduceMethod(m).delegateTo(field);
 //        }
-        
+
         Map<MethodSignature, MethodDescription> map = 
createMethodSignatureMap(interfaceType);
         for (MethodSignature methodSignature : map.keySet())
         {
             introduceMethod(map.get(methodSignature)).delegateTo(field);
         }
-        
+
         return this;
     }
-    
+
     @Override
     public PlasticClass proxyInterface(Class interfaceType, PlasticMethod 
method)
     {
@@ -651,7 +648,7 @@ public class PlasticClassImpl extends Lockable implements 
PlasticClass, Internal
         {
             introduceMethod(map.get(methodSignature)).delegateTo(method);
         }
-        
+
         return this;
     }
 
@@ -848,7 +845,7 @@ public class PlasticClassImpl extends Lockable implements 
PlasticClass, Internal
     {
         check();
 
-        return new ArrayList<PlasticField>(fields);
+        return new ArrayList<>(fields);
     }
 
     @Override
@@ -860,7 +857,7 @@ public class PlasticClassImpl extends Lockable implements 
PlasticClass, Internal
 
         if (unclaimedFields == null)
         {
-            unclaimedFields = new ArrayList<PlasticField>(fields.size());
+            unclaimedFields = new ArrayList<>(fields.size());
 
             for (PlasticField f : fields)
             {
@@ -931,15 +928,8 @@ public class PlasticClassImpl extends Lockable implements 
PlasticClass, Internal
         check();
 
         List<PlasticMethod> result = getMethods();
-        Iterator<PlasticMethod> iterator = result.iterator();
 
-        while (iterator.hasNext())
-        {
-            PlasticMethod method = iterator.next();
-
-            if (!method.hasAnnotation(annotationType))
-                iterator.remove();
-        }
+        result.removeIf(method -> !method.hasAnnotation(annotationType));
 
         return result;
     }
@@ -949,7 +939,7 @@ public class PlasticClassImpl extends Lockable implements 
PlasticClass, Internal
     {
         check();
 
-        return new ArrayList<PlasticMethod>(methods);
+        return new ArrayList<>(methods);
     }
 
     @Override
@@ -1266,11 +1256,11 @@ public class PlasticClassImpl extends Lockable 
implements PlasticClass, Internal
     {
         InsnList insns = methodNode.instructions;
 
-        ListIterator it = insns.iterator();
+        ListIterator<AbstractInsnNode> it = insns.iterator();
 
         while (it.hasNext())
         {
-            AbstractInsnNode node = (AbstractInsnNode) it.next();
+            AbstractInsnNode node = it.next();
 
             int opcode = node.getOpcode();
 
@@ -1290,7 +1280,7 @@ public class PlasticClassImpl extends Lockable implements 
PlasticClass, Internal
 
             // Replace the field access node with the appropriate method 
invocation.
 
-            insns.insertBefore(fnode, new MethodInsnNode(INVOKEVIRTUAL, 
fnode.owner, instrumentation.methodName, instrumentation.methodDescription));
+            insns.insertBefore(fnode, new MethodInsnNode(INVOKEVIRTUAL, 
fnode.owner, instrumentation.methodName, instrumentation.methodDescription, 
false));
 
             it.remove();
         }
@@ -1456,12 +1446,12 @@ public class PlasticClassImpl extends Lockable 
implements PlasticClass, Internal
 
         addClassAnnotations(interfaceClassNode);
 
-        Set<PlasticMethod> introducedMethods = new HashSet<PlasticMethod>();
-        
+        Set<PlasticMethod> introducedMethods = new HashSet<>();
+
         Map<MethodSignature, MethodDescription> map = 
createMethodSignatureMap(interfaceType);
-        
+
         // for (Method m : interfaceType.getMethods())
-       for (MethodSignature methodSignature : map.keySet())
+        for (MethodSignature methodSignature : map.keySet())
         {
             // MethodDescription description = new MethodDescription(m);
             final MethodDescription description = map.get(methodSignature);
@@ -1479,80 +1469,72 @@ public class PlasticClassImpl extends Lockable 
implements PlasticClass, Internal
     }
 
     private Map<MethodSignature, MethodDescription> 
createMethodSignatureMap(Class interfaceType) {
-       // TAP-2582: preprocessing the method list so we don't add duplicated
+        // TAP-2582: preprocessing the method list so we don't add duplicated
         // methods, something that happens when an interface has 
superinterfaces
         // and they define the same method signature.
         // In addition, we collect all the thrown checked exceptions, just in 
case.
-        Map<MethodSignature, MethodDescription> map = new 
HashMap<MethodSignature, MethodDescription>();
+        Map<MethodSignature, MethodDescription> map = new HashMap<>();
         for (Method m : interfaceType.getMethods())
         {
             final MethodSignature methodSignature = new MethodSignature(m);
             final MethodDescription newMethodDescription = new 
MethodDescription(m);
-            if (!map.containsKey(methodSignature)) 
+            if (!map.containsKey(methodSignature))
             {
-               map.put(methodSignature, newMethodDescription);
+                map.put(methodSignature, newMethodDescription);
             }
-            else 
+            else
             {
-               if (newMethodDescription.checkedExceptionTypes != null && 
newMethodDescription.checkedExceptionTypes.length > 0)
-               {
-                   final MethodDescription methodDescription = 
map.get(methodSignature);
-                    final Set<String> checkedExceptionTypes = new 
HashSet<String>();
-                    
checkedExceptionTypes.addAll(Arrays.asList(methodDescription.checkedExceptionTypes));
-                    
checkedExceptionTypes.addAll(Arrays.asList(newMethodDescription.checkedExceptionTypes));
-                    map.put(methodSignature, new MethodDescription(
-                           methodDescription, 
-                           checkedExceptionTypes.toArray(new 
String[checkedExceptionTypes.size()])));
-               }
+                if (newMethodDescription.checkedExceptionTypes != null && 
newMethodDescription.checkedExceptionTypes.length > 0)
+                {
+                    final MethodDescription methodDescription = 
map.get(methodSignature);
+                        final Set<String> checkedExceptionTypes = new 
HashSet<>();
+                        
checkedExceptionTypes.addAll(Arrays.asList(methodDescription.checkedExceptionTypes));
+                        
checkedExceptionTypes.addAll(Arrays.asList(newMethodDescription.checkedExceptionTypes));
+                        map.put(methodSignature, new MethodDescription(
+                            methodDescription,
+                            checkedExceptionTypes.toArray(new 
String[checkedExceptionTypes.size()])));
+                }
             }
         }
-       return map;
-    }
-    
-    final private static class MethodSignature implements 
Comparable<MethodSignature>{
-       
-       final private Method method;
-       final private String name;
-       final private Class<?>[] parameterTypes;
-       
-       public MethodSignature(Method method) {
-           this.method = method;
-           this.name = method.getName();
-           this.parameterTypes = method.getParameterTypes();
-       }
-
-       @Override
-       public int hashCode() {
-           final int prime = 31;
-           int result = 1;
-           result = prime * result + Arrays.hashCode(parameterTypes);
-           result = prime * result + ((name == null) ? 0 : name.hashCode());
-           return result;
-       }
-
-       @Override
-       public boolean equals(Object obj) {
-           if (this == obj)
-               return true;
-           if (obj == null)
-               return false;
-           if (getClass() != obj.getClass())
-               return false;
-           MethodSignature other = (MethodSignature) obj;
-           if (!Arrays.equals(parameterTypes, other.parameterTypes))
-               return false;
-           if (name == null) {
-               if (other.name != null)
-                   return false;
-           } else if (!name.equals(other.name))
-               return false;
-           return true;
-       }
-
-       @Override
-       public int compareTo(MethodSignature o) {
-           return method.getName().compareTo(o.method.getName());
-       }
+        return map;
+    }
+
+    final private static class MethodSignature implements 
Comparable<MethodSignature> {
+        final private Method method;
+        final private String name;
+        final private Class<?>[] parameterTypes;
+
+        public MethodSignature(Method method) {
+            this.method = method;
+            this.name = method.getName();
+            this.parameterTypes = method.getParameterTypes();
+        }
+
+        @Override
+        public int hashCode() {
+            final int prime = 31;
+            int result = 1;
+            result = prime * result + Arrays.hashCode(parameterTypes);
+            result = prime * result + ((name == null) ? 0 : name.hashCode());
+            return result;
+        }
+
+        @Override
+        public boolean equals(Object obj) {
+            if (this == obj) return true;
+            if (obj == null) return false;
+            if (getClass() != obj.getClass()) return false;
+
+            MethodSignature other = (MethodSignature) obj;
+            if (!Arrays.equals(parameterTypes, other.parameterTypes)) return 
false;
+
+            return name == null ? other.name == null : name.equals(other.name);
+        }
+
+        @Override
+        public int compareTo(MethodSignature o) {
+            return method.getName().compareTo(o.method.getName());
+        }
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/1c71aec7/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassPool.java
----------------------------------------------------------------------
diff --git 
a/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassPool.java
 
b/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassPool.java
index dfbb8cf..8ee547f 100644
--- 
a/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassPool.java
+++ 
b/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassPool.java
@@ -437,7 +437,7 @@ public class PlasticClassPool implements 
ClassLoaderDelegate, Opcodes, PlasticCl
 
             // Replace the field access node with the appropriate method 
invocation.
 
-            insns.insertBefore(fnode, new MethodInsnNode(INVOKEVIRTUAL, 
ownerInternalName, instrumentation.methodName, 
instrumentation.methodDescription));
+            insns.insertBefore(fnode, new MethodInsnNode(INVOKEVIRTUAL, 
ownerInternalName, instrumentation.methodName, 
instrumentation.methodDescription, false));
 
             it.remove();
         }

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/1c71aec7/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/Main.java
----------------------------------------------------------------------
diff --git 
a/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/Main.java 
b/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/Main.java
new file mode 100644
index 0000000..c42fd56
--- /dev/null
+++ b/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/Main.java
@@ -0,0 +1,38 @@
+// Copyright 2013 The Apache Software Foundation
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package org.apache.tapestry5.ioc.internal;
+
+
+import java.util.List;
+
+import org.apache.tapestry5.ioc.MethodAdviceReceiver;
+import org.apache.tapestry5.ioc.ObjectLocator;
+import org.apache.tapestry5.ioc.Registry;
+import org.apache.tapestry5.ioc.RegistryBuilder;
+import org.apache.tapestry5.ioc.ServiceBinder;
+import org.apache.tapestry5.ioc.annotations.Advise;
+import org.hibernate.Session;
+import org.hibernate.cfg.Configuration;
+
+public class Main
+{
+
+    public static void main(String[] args) {
+       Registry registry = 
RegistryBuilder.buildAndStartupRegistry(AdviceModule.class);
+       Session session = registry.getService(Session.class);
+       final List list = session.createSQLQuery("select 1").list();
+       System.out.println(list);
+    }
+    
+}

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/1c71aec7/tapestry-ioc/src/test/resources/hibernate.cfg.xml
----------------------------------------------------------------------
diff --git a/tapestry-ioc/src/test/resources/hibernate.cfg.xml 
b/tapestry-ioc/src/test/resources/hibernate.cfg.xml
new file mode 100644
index 0000000..d02951b
--- /dev/null
+++ b/tapestry-ioc/src/test/resources/hibernate.cfg.xml
@@ -0,0 +1,42 @@
+<?xml version='1.0' encoding='utf-8'?>
+<!-- 
+   Copyright 2007, 2008 The Apache Software Foundation
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+
+<!DOCTYPE hibernate-configuration PUBLIC
+        "-//Hibernate/Hibernate Configuration DTD//EN"
+        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd";>
+
+<hibernate-configuration>
+
+    <session-factory>
+        <property 
name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>
+        <property 
name="hibernate.connection.url">jdbc:hsqldb:mem:test</property>
+        <property name="hibernate.connection.username">sa</property>
+        <property 
name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
+
+        <property name="show_sql">true</property>
+        <property name="format_sql">true</property>
+        <property name="hbm2ddl.auto">update</property>
+
+        <property name="hibernate.c3p0.min_size">5</property>
+        <property name="hibernate.c3p0.max_size">20</property>
+        <property name="hibernate.c3p0.timeout">300</property>
+        <property name="hibernate.c3p0.max_statements">50</property>
+        <property name="hibernate.c3p0.idle_test_period">3000</property>
+    </session-factory>
+
+
+</hibernate-configuration>

Reply via email to