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>