[eclipselink] 03/08: Initial packaging updates

Andrew Ross rockclimb-guest at alioth.debian.org
Sun Oct 27 22:21:15 UTC 2013


This is an automated email from the git hooks/post-receive script.

rockclimb-guest pushed a commit to branch master
in repository eclipselink.

commit 30e134bfc7397ef00ee1e28413ee5c0bb3d50be4
Author: Andrew Ross <ubuntu at rossfamily.co.uk>
Date:   Fri Sep 27 22:59:14 2013 +0100

    Initial packaging updates
---
 debian/JPQL.g                                    | 1576 ----------------------
 debian/build.properties                          |    6 +-
 debian/build.xml                                 |  135 +-
 debian/classpath-debian                          |   14 +-
 debian/control                                   |   32 +-
 debian/excludesfiles/build                       |    9 +-
 debian/excludesfiles/javadoc                     |   15 +-
 debian/libeclipselink-java.classpath             |    1 -
 debian/libeclipselink-java.jlibs                 |    1 +
 debian/libeclipselink-java.manifest              |   16 +-
 debian/patches/antlr32.diff                      |   79 --
 debian/patches/cast.patch                        |   68 +
 debian/patches/charset.patch                     |   11 +
 debian/patches/disable_antlr3_embedded_copy.diff |  138 +-
 debian/patches/disable_asm_embedded_copy.diff    |  594 ++++----
 debian/patches/java7-compat.diff                 |   20 -
 debian/patches/series                            |    5 +-
 debian/patches/typeparameters.patch              |   11 +
 debian/rules                                     |    6 -
 19 files changed, 618 insertions(+), 2119 deletions(-)

diff --git a/debian/JPQL.g b/debian/JPQL.g
deleted file mode 100644
index 4390602..0000000
--- a/debian/JPQL.g
+++ /dev/null
@@ -1,1576 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 1998, 2008 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the 
- * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 
- * which accompanies this distribution. 
- * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
- * and the Eclipse Distribution License is available at 
- * http://www.eclipse.org/org/documents/edl-v10.php.
- *
- * Contributors:
- *     Oracle - initial API and implementation from Oracle TopLink
- ******************************************************************************/
-
-// Added 20/12/2000 JED. Define the package for the class
-
-
-grammar JPQL;
-
-options {
-    k = 3; // This is the number of tokens to look ahead to
-    superClass = 'org.eclipse.persistence.internal.jpa.parsing.jpql.JPQLParser';
-}
-
-
-tokens {
-    ABS='abs';
-    ALL='all';
-    AND='and';
-    ANY='any';
-    AS='as';
-    ASC='asc';
-    AVG='avg';
-    BETWEEN='between';
-    BOTH='both';
-    BY='by';
-    CASE='case';
-    COALESCE='coalesce';
-    CONCAT='concat';
-    COUNT='count';
-    CURRENT_DATE='current_date';
-    CURRENT_TIME='current_time';
-    CURRENT_TIMESTAMP='current_timestamp';
-    DESC='desc';
-    DELETE='delete';
-    DISTINCT='distinct';
-    ELSE='else';
-    EMPTY='empty';
-    END='end';
-    ENTRY='entry';
-    ESCAPE='escape';
-    EXISTS='exists';
-    FALSE='false';
-    FETCH='fetch';
-    FUNC='func';
-    FROM='from';
-    GROUP='group';
-    HAVING='having';
-    IN='in';
-    INDEX='index';
-    INNER='inner';
-    IS='is';
-    JOIN='join';
-    KEY='key';
-    LEADING='leading';
-    LEFT='left';
-    LENGTH='length';
-    LIKE='like';
-    LOCATE='locate';
-    LOWER='lower';
-    MAX='max';
-    MEMBER='member';
-    MIN='min';
-    MOD='mod';
-    NEW='new';
-    NOT='not';
-    NULL='null';
-    NULLIF='nullif';
-    OBJECT='object';
-    OF='of';
-    OR='or';
-    ORDER='order';
-    OUTER='outer';
-    SELECT='select';
-    SET='set';
-    SIZE='size';
-    SQRT='sqrt';
-    SOME='some';
-    SUBSTRING='substring';
-    SUM='sum';
-    THEN='then';
-    TRAILING='trailing';
-    TREAT='treat';
-    TRIM='trim';
-    TRUE='true';
-    TYPE='type';
-    UNKNOWN='unknown';
-    UPDATE='update';
-    UPPER='upper';
-    VALUE='value';
-    WHEN='when';
-    WHERE='where';
-}
- at header {
-    package org.eclipse.persistence.internal.jpa.parsing.jpql.antlr;
-
-    import java.util.List;
-    import java.util.ArrayList;
-
-    import static org.eclipse.persistence.internal.jpa.parsing.NodeFactory.*;
-    import org.eclipse.persistence.internal.jpa.parsing.jpql.InvalidIdentifierException;
-    import org.eclipse.persistence.exceptions.JPQLException;
-}
-
- at lexer::header {
-    package org.eclipse.persistence.internal.jpa.parsing.jpql.antlr;
-
-    import org.eclipse.persistence.internal.jpa.parsing.jpql.InvalidIdentifierStartException;
-}
-
-
-
- at members{
-    /** The root node of the parsed EJBQL query. */
-    private Object queryRoot;
-
-    /** Flag indicating whether aggregates are allowed. */
-    private boolean aggregatesAllowed = false;
-
-    /** */
-    protected void setAggregatesAllowed(boolean allowed) {
-        this.aggregatesAllowed = allowed;
-    }
-
-    /** */
-    protected boolean aggregatesAllowed() {
-        return aggregatesAllowed;
-    }
-
-    /** */
-    protected void validateAbstractSchemaName(Token token) 
-        throws RecognitionException {
-        String text = token.getText();
-        if (!isValidJavaIdentifier(token.getText())) {
-            throw new InvalidIdentifierException(token);
-        }
-    }
-
-    /** */
-    protected void validateAttributeName(Token token) 
-        throws RecognitionException {
-        String text = token.getText();
-        if (!isValidJavaIdentifier(token.getText())) {
-            throw new InvalidIdentifierException(token);
-        }
-    }
-
-    /** */
-    protected boolean isValidJavaIdentifier(String text) {
-        if ((text == null) || text.equals(""))
-            return false;
-
-        // check first char
-        if (!Character.isJavaIdentifierStart(text.charAt(0)))
-            return false;
-
-        // check remaining characters
-        for (int i = 1; i < text.length(); i++) {
-            if (!Character.isJavaIdentifierPart(text.charAt(i))) {
-                return false;
-            }
-        }
-        
-        return true;
-    }
-
-    protected String convertStringLiteral(String text) {
-        // skip leading and trailing quotes
-        String literal = text.substring(1, text.length() - 1);
-        
-        // convert ''s to 's
-        while (true) {
-            int index = literal.indexOf("''");
-            if (index == -1) {
-                break;
-            }
-            literal = literal.substring(0, index) + 
-                      literal.substring(index + 1, literal.length());
-        }
-
-        return literal;
-    }
-
-    /** */
-    public Object getRootNode() {
-        return queryRoot;
-    }
-}
-
-document
-    : root = selectStatement {queryRoot = $root.node;}
-    | root = updateStatement {queryRoot = $root.node;}
-    | root = deleteStatement {queryRoot = $root.node;}
-    ;
-
-selectStatement returns [Object node]
- at init { 
-    node = null;
-}
-    : select  = selectClause
-      from    = fromClause
-      (where   = whereClause)?
-      (groupBy = groupByClause)?
-      (having  = havingClause)?
-      (orderBy = orderByClause)?
-      EOF 
-        { 
-            $node = factory.newSelectStatement(0, 0, $select.node, $from.node, $where.node, 
-                                              $groupBy.node, $having.node, $orderBy.node); 
-        }
-    ;
-
-//================================================
-
-updateStatement returns [Object node]
- at init { 
-    node = null; 
-}
-    : update = updateClause
-      set    = setClause
-      (where  = whereClause)?
-      EOF { $node = factory.newUpdateStatement(0, 0, $update.node, $set.node, $where.node); }
-    ;
-
-updateClause returns [Object node]
- at init { 
-    node = null; 
-}
-    : u = UPDATE schema = abstractSchemaName 
-        ((AS)? ident = IDENT )?
-        { 
-            String schemaName = null;
-            if ($ident != null){
-                schemaName = $ident.getText();
-            }
-            $node = factory.newUpdateClause($u.getLine(), $u.getCharPositionInLine(), 
-                                           $schema.schema, schemaName); 
-        } 
-    ;  
-
-setClause returns [Object node]
-scope{
-	List assignments;
-}
- at init { 
-    node = null; 
-    $setClause::assignments = new ArrayList();
-}
-    : t = SET n = setAssignmentClause { $setClause::assignments.add($n.node); }
-        (COMMA n = setAssignmentClause { $setClause::assignments.add($n.node); } )*
-        { $node = factory.newSetClause($t.getLine(), $t.getCharPositionInLine(), $setClause::assignments); }
-     ;
-
-setAssignmentClause returns [Object node]
- at init { 
-    node = null;
-}
-        @after{ 
-            $node = factory.newSetAssignmentClause($t.getLine(), $t.getCharPositionInLine(), 
-                                                  $target.node, $value.node); 
-        }
-    : target = setAssignmentTarget t=EQUALS value = newValue
-    ;
-
-setAssignmentTarget returns [Object node]
- at init { 
-    node = null;
-}
-    : n = attribute { $node = $n.node;}
-    | n =  pathExpression {$node = $n.node;}
-    ;
-
-newValue returns [Object node]
- at init { node = null; }
-    : n = scalarExpression {$node = $n.node;}
-    | n1 = NULL 
-        { $node = factory.newNullLiteral($n1.getLine(), $n1.getCharPositionInLine()); } 
-    ;
-
-//================================================
-
-deleteStatement returns [Object node]
- at init { 
-    node = null; 
-}
-    : delete = deleteClause
-      (where = whereClause)?
-      EOF { $node = factory.newDeleteStatement(0, 0, $delete.node, $where.node); }
-    ;
-
-deleteClause returns [Object node]
-scope{
-	String variable;
-}
- at init { 
-    node = null; 
-    $deleteClause::variable = null;
-}
-    : t=DELETE FROM schema = abstractSchemaName 
-        ((AS)? ident=IDENT { $deleteClause::variable = $ident.getText(); })?
-        { 
-            $node = factory.newDeleteClause($t.getLine(), $t.getCharPositionInLine(), 
-                                           $schema.schema, $deleteClause::variable); 
-        }
-    ;
-
-//================================================
-
-selectClause returns [Object node]
-scope{
-    boolean distinct;
-    List exprs;
-    List idents;
-}
- at init { 
-    node = null;
-    $selectClause::distinct = false;
-    $selectClause::exprs = new ArrayList();
-    $selectClause::idents = new ArrayList();
-}
-    : t=SELECT (DISTINCT { $selectClause::distinct = true; })? { setAggregatesAllowed(true); } 
-      n = selectItem  
-          {
-              $selectClause::exprs.add($n.expr);
-              $selectClause::idents.add($n.ident);
-          }
-          ( COMMA n = selectItem  
-               {
-                  $selectClause::exprs.add($n.expr);
-                  $selectClause::idents.add($n.ident);
-               }           
-            
-           )*
-        { 
-            setAggregatesAllowed(false); 
-            $node = factory.newSelectClause($t.getLine(), $t.getCharPositionInLine(), 
-                                           $selectClause::distinct, $selectClause::exprs, $selectClause::idents); 
-        }
-    ;
-    
-selectItem returns [Object expr, Object ident]
-    : e = selectExpression ((AS)? identifier = IDENT)? 
-        {
-            $expr = $e.node;
-            if ($identifier == null){
-                $ident = null;
-            } else {
-                $ident = $identifier.getText();
-            }
-                
-        }
-    ;
-
-
-selectExpression returns [Object node]
- at init { node = null; }
-    : n = aggregateExpression {$node = $n.node;}
-    | n = scalarExpression {$node = $n.node;}
-    | OBJECT LEFT_ROUND_BRACKET n = variableAccessOrTypeConstant RIGHT_ROUND_BRACKET  {$node = $n.node;}
-    | n = constructorExpression  {$node = $n.node;}
-    | n = mapEntryExpression {$node = $n.node;}
-    ;
-        
-mapEntryExpression returns [Object node]
- at init { node = null; }
-    : l = ENTRY LEFT_ROUND_BRACKET n = variableAccessOrTypeConstant RIGHT_ROUND_BRACKET { $node = factory.newMapEntry($l.getLine(), $l.getCharPositionInLine(), $n.node);}
-    ;
-
-pathExprOrVariableAccess returns [Object node]
- at init {
-    node = null;
-}
-    : n = qualifiedIdentificationVariable {$node = $n.node;}
-        (d=DOT right = attribute
-            { $node = factory.newDot($d.getLine(), $d.getCharPositionInLine(), $node, $right.node); }
-        )* 
-    ;
-
-qualifiedIdentificationVariable returns [Object node]
- at init { node = null; }
-    : n = variableAccessOrTypeConstant {$node = $n.node;}
-    | l = KEY LEFT_ROUND_BRACKET n = variableAccessOrTypeConstant RIGHT_ROUND_BRACKET  { $node = factory.newKey($l.getLine(), $l.getCharPositionInLine(), $n.node); }
-    | l = VALUE LEFT_ROUND_BRACKET n = variableAccessOrTypeConstant RIGHT_ROUND_BRACKET { $node = $n.node;}
-    ;
-
-aggregateExpression returns [Object node]
-scope{
-    boolean distinct;
-}
- at init { 
-    node = null; 
-    $aggregateExpression::distinct = false;
-}
-    : t1=AVG LEFT_ROUND_BRACKET (DISTINCT { $aggregateExpression::distinct = true; })?
-        n = scalarExpression RIGHT_ROUND_BRACKET 
-        { $node = factory.newAvg($t1.getLine(), $t1.getCharPositionInLine(), $aggregateExpression::distinct, $n.node); }
-    | t2=MAX LEFT_ROUND_BRACKET (DISTINCT { $aggregateExpression::distinct = true; })? 
-        n = scalarExpression RIGHT_ROUND_BRACKET
-        { $node = factory.newMax($t2.getLine(), $t2.getCharPositionInLine(), $aggregateExpression::distinct, $n.node); }
-    | t3=MIN LEFT_ROUND_BRACKET (DISTINCT { $aggregateExpression::distinct = true; })?
-        n = scalarExpression RIGHT_ROUND_BRACKET
-        { $node = factory.newMin($t3.getLine(), $t3.getCharPositionInLine(), $aggregateExpression::distinct, $n.node); }
-    | t4=SUM LEFT_ROUND_BRACKET (DISTINCT { $aggregateExpression::distinct = true; })?
-        n = scalarExpression RIGHT_ROUND_BRACKET
-        { $node = factory.newSum($t4.getLine(), $t4.getCharPositionInLine(), $aggregateExpression::distinct, $n.node); }
-    | t5=COUNT LEFT_ROUND_BRACKET (DISTINCT { $aggregateExpression::distinct = true; })?
-        n = scalarExpression RIGHT_ROUND_BRACKET
-        { $node = factory.newCount($t5.getLine(), $t5.getCharPositionInLine(), $aggregateExpression::distinct, $n.node); }
-    ;
-
-constructorExpression returns [Object node]
-scope{
-    List args;
-}
- at init { 
-    node = null;
-    $constructorExpression::args = new ArrayList();
-}
-    : t = NEW className = constructorName
-        LEFT_ROUND_BRACKET 
-        n = constructorItem {$constructorExpression::args.add($n.node); } 
-        ( COMMA n = constructorItem { $constructorExpression::args.add($n.node); } )*
-        RIGHT_ROUND_BRACKET
-        { 
-            $node = factory.newConstructor($t.getLine(), $t.getCharPositionInLine(), 
-                                          $className.className, $constructorExpression::args); 
-        }
-    ;
-
-constructorName returns [String className]
-scope{
-    StringBuffer buf;
-}
- at init { 
-    className = null;
-    $constructorName::buf = new StringBuffer(); 
-}
-    : i1=IDENT { $constructorName::buf.append($i1.getText()); }
-        ( DOT i2=IDENT { $constructorName::buf.append('.').append($i2.getText()); })*
-        { $className = $constructorName::buf.toString(); }
-    ;
-
-constructorItem returns [Object node]
- at init { node = null; }
-    : n = scalarExpression {$node = $n.node;}
-    | n = aggregateExpression {$node = $n.node;}
-
-    ;
-
-fromClause returns [Object node]
-scope{
-    List varDecls;
-}
- at init { 
-    node = null; 
-    $fromClause::varDecls = new ArrayList();
-}
-    : t=FROM identificationVariableDeclaration[$fromClause::varDecls]
-        (COMMA  ( identificationVariableDeclaration[$fromClause::varDecls]
-                | n = collectionMemberDeclaration  {$fromClause::varDecls.add($n.node); }
-                ) 
-        )*
-        { $node = factory.newFromClause($t.getLine(), $t.getCharPositionInLine(), $fromClause::varDecls); }
-    ;
-
-identificationVariableDeclaration [List varDecls]
-    : node = rangeVariableDeclaration { varDecls.add($node.node); } 
-        ( node = join { $varDecls.add($node.node); } )*
-    ;
-
-rangeVariableDeclaration returns [Object node]
- at init { 
-    node = null; 
-}
-    : schema = abstractSchemaName (AS)? i=IDENT
-        { 
-            $node = factory.newRangeVariableDecl($i.getLine(), $i.getCharPositionInLine(), 
-                                                $schema.schema, $i.getText()); 
-        }
-    ;
-
-// Non-terminal abstractSchemaName first matches any token to allow abstract 
-// schema names that are keywords (such as order, etc.). 
-// Method validateAbstractSchemaName throws an exception if the text of the 
-// token is not a valid Java identifier.
-abstractSchemaName returns [String schema]
- at init { schema = null; }
-    : ident=. 
-        {
-            $schema = $ident.getText();
-            validateAbstractSchemaName($ident); 
-        }
-    ;
-
-join returns [Object node]
- at init { 
-    node = null;
-}
-    : outerJoin = joinSpec
-      ( n = joinAssociationPathExpression (AS)? i=IDENT 
-        {
-            $node = factory.newJoinVariableDecl($i.getLine(), $i.getCharPositionInLine(), 
-                                               $outerJoin.outer, $n.node, $i.getText(), null); 
-        }
-      | 
-       TREAT LEFT_ROUND_BRACKET n = joinAssociationPathExpression AS castClass = IDENT RIGHT_ROUND_BRACKET (AS)? i=IDENT 
-        {
-            $node = factory.newJoinVariableDecl($i.getLine(), $i.getCharPositionInLine(), 
-                                               $outerJoin.outer, $n.node, $i.getText(), $castClass.getText()); 
-        }
-      | t=FETCH n = joinAssociationPathExpression 
-        { 
-            $node = factory.newFetchJoin($t.getLine(), $t.getCharPositionInLine(), 
-                                        $outerJoin.outer, $n.node); }
-      )
-    ;
-
-joinSpec returns [boolean outer]
- at init { outer = false; }
-    : (LEFT (OUTER)? { $outer = true; }  | INNER  )? JOIN
-    ;
-
-collectionMemberDeclaration returns [Object node]
- at init { node = null; }
-    : t=IN LEFT_ROUND_BRACKET n = collectionValuedPathExpression RIGHT_ROUND_BRACKET 
-      (AS)? i=IDENT
-      { 
-          $node = factory.newCollectionMemberVariableDecl(
-                $t.getLine(), $t.getCharPositionInLine(), $n.node, $i.getText()); 
-        }
-    ;
-
-collectionValuedPathExpression returns [Object node]
- at init { node = null; }
-    : n = pathExpression {$node = $n.node;}
-    ;
-
-associationPathExpression returns [Object node]
- at init { node = null; }
-    : n = pathExpression {$node = $n.node;}
-    ;
-
-joinAssociationPathExpression returns [Object node]
- at init {
-    node = null; 
-}
-    	: n = qualifiedIdentificationVariable {$node = $n.node;}
-        (d=DOT right = attribute
-            { $node = factory.newDot($d.getLine(), $d.getCharPositionInLine(), $node, $right.node); }
-        )+ 
-    ;
-
-singleValuedPathExpression returns [Object node]
- at init { node = null; }
-    : n = pathExpression {$node = $n.node;}
-    ;
-
-stateFieldPathExpression returns [Object node]
- at init { node = null; }
-    : n = pathExpression {$node = $n.node;}
-    ;
-
-pathExpression returns [Object node]
- at init { 
-    node = null; 
-}
-    : n = qualifiedIdentificationVariable {$node = $n.node;}
-        (d=DOT right = attribute
-            {
-                $node = factory.newDot($d.getLine(), $d.getCharPositionInLine(), $node, $right.node); 
-            }
-        )+
-    ;
-
-// Non-terminal attribute first matches any token to allow abstract 
-// schema names that are keywords (such as order, etc.). 
-// Method validateAttributeName throws an exception if the text of the 
-// token is not a valid Java identifier.
-attribute returns [Object node]
- at init { node = null; }
-
-    : i=.
-        { 
-            validateAttributeName($i);
-            $node = factory.newAttribute($i.getLine(), $i.getCharPositionInLine(), $i.getText()); 
-        }
-    ;
-
-variableAccessOrTypeConstant returns [Object node]
- at init { node = null; }
-    : i=IDENT
-        { $node = factory.newVariableAccessOrTypeConstant($i.getLine(), $i.getCharPositionInLine(), $i.getText()); }
-    ;
-
-whereClause returns [Object node]
- at init { node = null; }
-    : t=WHERE n = conditionalExpression 
-        {
-            $node = factory.newWhereClause($t.getLine(), $t.getCharPositionInLine(), $n.node); 
-        } 
-    ;
-
-conditionalExpression returns [Object node]
- at init { 
-    node = null; 
-}
-    : n = conditionalTerm {$node = $n.node;}
-        (t=OR right = conditionalTerm
-            { $node = factory.newOr($t.getLine(), $t.getCharPositionInLine(), $node, $right.node); }
-        )*
-    ;
-
-conditionalTerm returns [Object node]
- at init { 
-    node = null; 
-}
-    : n = conditionalFactor {$node = $n.node;}
-        (t=AND right = conditionalFactor
-            { $node = factory.newAnd($t.getLine(), $t.getCharPositionInLine(), $node, $right.node); }
-        )* 
-    ;
-
-conditionalFactor returns [Object node]
- at init { node = null; }
-    : (n=NOT)? 
-        ( n1 = conditionalPrimary 
-          {
-              $node = $n1.node; 
-              if ($n != null) {
-                  $node = factory.newNot($n.getLine(), $n.getCharPositionInLine(), $n1.node); 
-              }
-          }
-        | n1 = existsExpression[(n!=null)]  {$node = $n1.node;}
-        )
-    ;
-
-conditionalPrimary  returns [Object node]
- at init { node = null; }
-    : (LEFT_ROUND_BRACKET conditionalExpression) =>
-        LEFT_ROUND_BRACKET n = conditionalExpression RIGHT_ROUND_BRACKET {$node = $n.node;}
-    | n = simpleConditionalExpression {$node = $n.node;}
-    ;
-
-simpleConditionalExpression returns [Object node]
- at init { 
-    node = null; 
-}
-    : left = arithmeticExpression n = simpleConditionalExpressionRemainder[$left.node] {$node = $n.node;}
-    | left = nonArithmeticScalarExpression n = simpleConditionalExpressionRemainder[$left.node] {$node = $n.node;}
-    ;
-
-simpleConditionalExpressionRemainder [Object left] returns [Object node]
- at init { node = null; }
-    : n = comparisonExpression[left] {$node = $n.node;}
-    | (n1=NOT)? n = conditionWithNotExpression[(n1!=null), left] {$node = $n.node;}
-    | IS (n2=NOT)? n = isExpression[(n2!=null), left] {$node = $n.node;}
-    ;
-
-conditionWithNotExpression [boolean not, Object left] returns [Object node]
- at init { node = null; }
-    : n = betweenExpression[not, left] {$node = $n.node;}
-    | n = likeExpression[not, left] {$node = $n.node;}
-    | n= inExpression[not, left] {$node = $n.node;}
-    | n= collectionMemberExpression[not, left] {$node = $n.node;}
-    ;
-
-isExpression [boolean not, Object left] returns [Object node]
- at init { node = null; }
-    : n = nullComparisonExpression[not, left] {$node = $n.node;}
-    | n = emptyCollectionComparisonExpression[not, left] {$node = $n.node;}
-    ;
-
-betweenExpression [boolean not, Object left] returns [Object node]
- at init {
-    node = null;
-}
-    : t=BETWEEN
-        lowerBound = scalarOrSubSelectExpression AND upperBound = scalarOrSubSelectExpression
-        {
-            $node = factory.newBetween($t.getLine(), $t.getCharPositionInLine(),
-                                      $not, $left, $lowerBound.node, $upperBound.node);
-        }
-    ;
-
-inExpression [boolean not, Object left] returns [Object node]
-scope{
-    List items; 
-}
- at init {
-    node = null;
-    $inExpression::items = new ArrayList();
-}
-    :  t = IN n = inputParameter 
-            {
-                $node = factory.newIn($t.getLine(), $t.getCharPositionInLine(),
-                                     $not, $left, $n.node);
-            }
-    |   t=IN
-        LEFT_ROUND_BRACKET
-        ( itemNode = scalarOrSubSelectExpression { $inExpression::items.add($itemNode.node); }
-            ( COMMA itemNode = scalarOrSubSelectExpression { $inExpression::items.add($itemNode.node); } )*
-            {
-                $node = factory.newIn($t.getLine(), $t.getCharPositionInLine(),
-                                     $not, $left, $inExpression::items);
-            }
-        | subqueryNode = subquery
-            {
-                $node = factory.newIn($t.getLine(), $t.getCharPositionInLine(),
-                                     $not, $left, $subqueryNode.node);
-            }
-        )
-        RIGHT_ROUND_BRACKET
-    ;
-
-likeExpression [boolean not, Object left] returns [Object node]
- at init {
-    node = null;
-}
-    : t=LIKE pattern = scalarOrSubSelectExpression
-        (escapeChars = escape)?
-        {
-            $node = factory.newLike($t.getLine(), $t.getCharPositionInLine(), $not,
-                                   $left, $pattern.node, $escapeChars.node);
-        }
-    ;
-
-escape returns [Object node]
- at init { 
-    node = null; 
-}
-    : t=ESCAPE escapeClause = scalarExpression
-        { $node = factory.newEscape($t.getLine(), $t.getCharPositionInLine(), $escapeClause.node); }
-    ;
-
-nullComparisonExpression [boolean not, Object left] returns [Object node]
- at init { node = null; }
-    : t= NULL
-        { $node = factory.newIsNull($t.getLine(), $t.getCharPositionInLine(), $not, $left); }
-    ;
-
-emptyCollectionComparisonExpression [boolean not, Object left] returns [Object node]
- at init { node = null; }
-    : t= EMPTY
-        { $node = factory.newIsEmpty($t.getLine(), $t.getCharPositionInLine(), $not, $left); }
-    ;
-
-collectionMemberExpression [boolean not, Object left] returns [Object node]
- at init { node = null; }
-    : t= MEMBER (OF)? n = collectionValuedPathExpression
-        { 
-            $node = factory.newMemberOf($t.getLine(), $t.getCharPositionInLine(), 
-                                       $not, $left, $n.node); 
-        }
-    ;
-
-existsExpression [boolean not] returns [Object node]
- at init { 
-    node = null;
-}
-    : t=EXISTS LEFT_ROUND_BRACKET subqueryNode = subquery RIGHT_ROUND_BRACKET
-        { 
-            $node = factory.newExists($t.getLine(), $t.getCharPositionInLine(), 
-                                     $not, $subqueryNode.node); 
-        }
-    ;
-
-comparisonExpression [Object left] returns [Object node]
- at init { node = null; }
-    : t1=EQUALS n = comparisonExpressionRightOperand 
-        { $node = factory.newEquals($t1.getLine(), $t1.getCharPositionInLine(), $left, $n.node); }
-    | t2=NOT_EQUAL_TO n = comparisonExpressionRightOperand 
-        { $node = factory.newNotEquals($t2.getLine(), $t2.getCharPositionInLine(), $left, $n.node); }
-    | t3=GREATER_THAN n = comparisonExpressionRightOperand 
-        { $node = factory.newGreaterThan($t3.getLine(), $t3.getCharPositionInLine(), $left, $n.node); }
-    | t4=GREATER_THAN_EQUAL_TO n = comparisonExpressionRightOperand 
-        { $node = factory.newGreaterThanEqual($t4.getLine(), $t4.getCharPositionInLine(), $left, $n.node); }
-    | t5=LESS_THAN n = comparisonExpressionRightOperand 
-        { $node = factory.newLessThan($t5.getLine(), $t5.getCharPositionInLine(), $left, $n.node); }
-    | t6=LESS_THAN_EQUAL_TO n = comparisonExpressionRightOperand 
-        { $node = factory.newLessThanEqual($t6.getLine(), $t6.getCharPositionInLine(), $left, $n.node); }
-    ;
-
-comparisonExpressionRightOperand returns [Object node]
- at init { node = null; }
-    : n = arithmeticExpression {$node = $n.node;}
-    | n = nonArithmeticScalarExpression {$node = $n.node;}
-    | n = anyOrAllExpression {$node = $n.node;}
-    ;
-
-arithmeticExpression returns [Object node]
- at init { node = null; }
-    : n = simpleArithmeticExpression {$node = $n.node;}
-    | LEFT_ROUND_BRACKET n = subquery RIGHT_ROUND_BRACKET {$node = $n.node;}
-    ;
-
-simpleArithmeticExpression returns [Object node]
- at init { 
-    node = null; 
-}
-    : n = arithmeticTerm {$node = $n.node;}
-        ( p=PLUS right = arithmeticTerm 
-            { $node = factory.newPlus($p.getLine(), $p.getCharPositionInLine(), $node, $right.node); }
-        | m=MINUS right = arithmeticTerm
-            { $node = factory.newMinus($m.getLine(), $m.getCharPositionInLine(), $node, $right.node); }
-        )* 
-    ;
-
-arithmeticTerm  returns [Object node]
- at init { 
-    node = null; 
-}
-    : n = arithmeticFactor {$node = $n.node;}
-        ( m=MULTIPLY right = arithmeticFactor 
-            { $node = factory.newMultiply($m.getLine(), $m.getCharPositionInLine(), $node, $right.node); }
-        | d=DIVIDE right = arithmeticFactor
-            { $node = factory.newDivide($d.getLine(), $d.getCharPositionInLine(), $node, $right.node); }
-        )* 
-    ;
-
-arithmeticFactor returns [Object node]
- at init { node = null; }
-    : p=PLUS  n = arithmeticPrimary 
-        {$node = factory.newUnaryPlus($p.getLine(), $p.getCharPositionInLine(), $n.node); } 
-    | m=MINUS n = arithmeticPrimary  
-        { $node = factory.newUnaryMinus($m.getLine(), $m.getCharPositionInLine(), $n.node); }
-    | n = arithmeticPrimary {$node = $n.node;}
-    ;
-
-arithmeticPrimary returns [Object node]
- at init { node = null; }
-    : { aggregatesAllowed() }? n = aggregateExpression {$node = $n.node;}
-    | n = pathExprOrVariableAccess {$node = $n.node;}
-    | n = inputParameter {$node = $n.node;}
-    | n = caseExpression {$node = $n.node;}
-    | n = functionsReturningNumerics {$node = $n.node;}
-    | LEFT_ROUND_BRACKET n = simpleArithmeticExpression RIGHT_ROUND_BRACKET {$node = $n.node;}
-    | n = literalNumeric {$node = $n.node;}
-    ;
-
-scalarExpression returns [Object node]
- at init {node = null; }
-    : n = simpleArithmeticExpression {$node = $n.node;}	
-    | n = nonArithmeticScalarExpression {$node = $n.node;}
-    ;
-    
-scalarOrSubSelectExpression returns [Object node]
- at init {node = null; }
-    : n = arithmeticExpression {$node = $n.node;}	
-    | n = nonArithmeticScalarExpression {$node = $n.node;}
-    ;
-
-nonArithmeticScalarExpression returns [Object node]
- at init {node = null; }
-    : n = functionsReturningDatetime {$node = $n.node;}
-    | n = functionsReturningStrings {$node = $n.node;}
-    | n = literalString {$node = $n.node;}
-    | n = literalBoolean {$node = $n.node;}
-    | n = literalTemporal {$node = $n.node;}
-    | n = entityTypeExpression {$node = $n.node;}
-    ;
-
-anyOrAllExpression returns [Object node]
- at init { node = null; }
-    : a=ALL LEFT_ROUND_BRACKET n = subquery RIGHT_ROUND_BRACKET
-        { $node = factory.newAll($a.getLine(), $a.getCharPositionInLine(), $n.node); }
-    | y=ANY LEFT_ROUND_BRACKET n = subquery RIGHT_ROUND_BRACKET
-        { $node = factory.newAny($y.getLine(), $y.getCharPositionInLine(), $n.node); }
-    | s=SOME LEFT_ROUND_BRACKET n = subquery RIGHT_ROUND_BRACKET
-        { $node = factory.newSome($s.getLine(), $s.getCharPositionInLine(), $n.node); }
-    ;
-
-entityTypeExpression returns [Object node]
- at init {node = null;}
-    : n = typeDiscriminator {$node = $n.node;}
-    ;
-
-typeDiscriminator returns [Object node]
- at init {node = null;}
-    : a =  TYPE LEFT_ROUND_BRACKET n = variableOrSingleValuedPath RIGHT_ROUND_BRACKET { $node = factory.newType($a.getLine(), $a.getCharPositionInLine(), $n.node);}
-    | c =  TYPE LEFT_ROUND_BRACKET n = inputParameter RIGHT_ROUND_BRACKET { $node = factory.newType($c.getLine(), $c.getCharPositionInLine(), $n.node);}
-    ;
-    
-caseExpression returns [Object node]
- at init {node = null;}
-   : n = simpleCaseExpression {$node = $n.node;}
-   | n = generalCaseExpression {$node = $n.node;}
-   | n = coalesceExpression {$node = $n.node;}
-   | n = nullIfExpression {$node = $n.node;}
-   ;
-    	
-simpleCaseExpression returns [Object node]
-scope{
-    List whens;
-}
- at init {
-    node = null;
-    $simpleCaseExpression::whens = new ArrayList();
-}
-   : a = CASE c = caseOperand w = simpleWhenClause {$simpleCaseExpression::whens.add($w.node);} (w = simpleWhenClause {$simpleCaseExpression::whens.add($w.node);})* ELSE e = scalarExpression END
-           {
-               $node = factory.newCaseClause($a.getLine(), $a.getCharPositionInLine(), $c.node,
-                    $simpleCaseExpression::whens, $e.node); 
-           }
-   ;
-
-generalCaseExpression returns [Object node]
-scope{
-    List whens;
-}
- at init {
-    node = null;
-    $generalCaseExpression::whens = new ArrayList();
-}
-   : a = CASE w = whenClause {$generalCaseExpression::whens.add($w.node);} (w = whenClause {$generalCaseExpression::whens.add($w.node);})* ELSE e = scalarExpression END
-           {
-               $node = factory.newCaseClause($a.getLine(), $a.getCharPositionInLine(), null,
-                    $generalCaseExpression::whens, $e.node); 
-           }
-   ;
-
-coalesceExpression returns [Object node]
-scope{
-    List primaries;
-}
- at init {
-    node = null;
-    $coalesceExpression::primaries = new ArrayList();
-}
-   : c = COALESCE LEFT_ROUND_BRACKET p = scalarExpression {$coalesceExpression::primaries.add($p.node);} (COMMA s = scalarExpression {$coalesceExpression::primaries.add($s.node);})+ RIGHT_ROUND_BRACKET
-           {
-               $node = factory.newCoalesceClause($c.getLine(), $c.getCharPositionInLine(), 
-                    $coalesceExpression::primaries); 
-           }
-   ;
-
-nullIfExpression returns [Object node]
- at init {node = null;}
-   : n = NULLIF LEFT_ROUND_BRACKET l = scalarExpression COMMA r = scalarExpression RIGHT_ROUND_BRACKET
-           {
-               $node = factory.newNullIfClause($n.getLine(), $n.getCharPositionInLine(), 
-                    $l.node, $r.node); 
-           }
-   ;
-    	
-
-caseOperand returns [Object node]
- at init {node = null;}
-   : n = stateFieldPathExpression {$node = $n.node;}
-   | n =  typeDiscriminator {$node = $n.node;}
-   ;
-    	
-whenClause returns [Object node]
- at init {node = null;}
-   : w = WHEN c = conditionalExpression THEN a = scalarExpression
-       {
-           $node = factory.newWhenClause($w.getLine(), $w.getCharPositionInLine(), 
-               $c.node, $a.node); 
-       }
-   ;
-    	
-simpleWhenClause returns [Object node]
- at init {node = null;}
-   : w = WHEN c = scalarExpression THEN a = scalarExpression
-      {
-           $node = factory.newWhenClause($w.getLine(), $w.getCharPositionInLine(), 
-               $c.node, $a.node); 
-       }
-   ;
-
-variableOrSingleValuedPath returns [Object node]
- at init {node = null;}
-    : n = singleValuedPathExpression {$node = $n.node;}
-    | n = variableAccessOrTypeConstant {$node = $n.node;}
-    ;
-
-stringPrimary returns [Object node]
- at init { node = null; }
-    : n = literalString {$node = $n.node;}
-    | n = functionsReturningStrings {$node = $n.node;}
-    | n = inputParameter {$node = $n.node;}
-    | n = stateFieldPathExpression {$node = $n.node;}
-    ;
-
-// Literals and Low level stuff
-
-literal returns [Object node]
- at init { node = null; }
-    : n = literalNumeric {$node = $n.node;}
-    | n = literalBoolean {$node = $n.node;}
-    | n = literalString {$node = $n.node;}
-    ;
-
-literalNumeric returns [Object node]
- at init { node = null; }
-    : i=INTEGER_LITERAL
-    { 
-            $node = factory.newIntegerLiteral($i.getLine(), $i.getCharPositionInLine(), 
-                                             Integer.valueOf($i.getText())); 
-        }
-    | l=LONG_LITERAL 
-        { 
-            String text = l.getText();
-            // skip the tailing 'l'
-            text = text.substring(0, text.length() - 1);
-            $node = factory.newLongLiteral($l.getLine(), $l.getCharPositionInLine(), 
-                                          Long.valueOf(text)); 
-        }
-    | f=FLOAT_LITERAL
-        { 
-            $node = factory.newFloatLiteral($f.getLine(), $f.getCharPositionInLine(),
-                                           Float.valueOf($f.getText()));
-        }
-    | d=DOUBLE_LITERAL
-        { 
-            $node = factory.newDoubleLiteral($d.getLine(), $d.getCharPositionInLine(),
-                                            Double.valueOf($d.getText()));
-        }
-    ;
-
-literalBoolean returns [Object node]
- at init { node = null; }
-    : t=TRUE  
-        { $node = factory.newBooleanLiteral($t.getLine(), $t.getCharPositionInLine(), Boolean.TRUE); }
-    | f=FALSE 
-        { $node = factory.newBooleanLiteral($f.getLine(), $f.getCharPositionInLine(), Boolean.FALSE); }
-    ;
-
-literalString returns [Object node]
- at init { node = null; }
-    : d=STRING_LITERAL_DOUBLE_QUOTED 
-        { 
-            $node = factory.newStringLiteral($d.getLine(), $d.getCharPositionInLine(), 
-                                            convertStringLiteral($d.getText())); 
-        }
-    | s=STRING_LITERAL_SINGLE_QUOTED
-        { 
-            $node = factory.newStringLiteral($s.getLine(), $s.getCharPositionInLine(), 
-                                            convertStringLiteral($s.getText())); 
-        }
-    ;
-
-literalTemporal returns [Object node]
- at init { node = null; }
-    : d = DATE_LITERAL {$node = factory.newDateLiteral($d.getLine(), $d.getCharPositionInLine(), $d.getText()); }
-    | d = TIME_LITERAL {$node = factory.newTimeLiteral($d.getLine(), $d.getCharPositionInLine(), $d.getText()); }
-    | d = TIMESTAMP_LITERAL {$node = factory.newTimeStampLiteral($d.getLine(), $d.getCharPositionInLine(), $d.getText()); }
-    ;
-
-inputParameter returns [Object node]
- at init { node = null; }
-    : p=POSITIONAL_PARAM
-        { 
-            // skip the leading ?
-            String text = $p.getText().substring(1);
-            $node = factory.newPositionalParameter($p.getLine(), $p.getCharPositionInLine(), text); 
-        }
-    | n=NAMED_PARAM
-        { 
-            // skip the leading :
-            String text = $n.getText().substring(1);
-            $node = factory.newNamedParameter($n.getLine(), $n.getCharPositionInLine(), text); 
-        }
-    ;
-
-functionsReturningNumerics returns [Object node]
- at init { node = null; }
-    : n = abs {$node = $n.node;}
-    | n = length {$node = $n.node;}
-    | n = mod {$node = $n.node;}
-    | n = sqrt {$node = $n.node;}
-    | n = locate {$node = $n.node;}
-    | n = size {$node = $n.node;}
-    | n = index {$node = $n.node;}
-    | n = func {$node = $n.node;}
-    ;
-
-functionsReturningDatetime returns [Object node]
- at init { node = null; }
-    : d=CURRENT_DATE 
-        { $node = factory.newCurrentDate($d.getLine(), $d.getCharPositionInLine()); }
-    | t=CURRENT_TIME
-        { $node = factory.newCurrentTime($t.getLine(), $t.getCharPositionInLine()); }
-    | ts=CURRENT_TIMESTAMP
-        { $node = factory.newCurrentTimestamp($ts.getLine(), $ts.getCharPositionInLine()); }
-    ;
-
-functionsReturningStrings returns [Object node]
- at init { node = null; }
-    : n = concat {$node = $n.node;}
-    | n = substring {$node = $n.node;}
-    | n = trim {$node = $n.node;}
-    | n = upper {$node = $n.node;}
-    | n = lower {$node = $n.node;}
-    ;
-
-// Functions returning strings
-concat returns [Object node]
-scope {
-    List items;
-}
- at init { 
-    node = null;
-    $concat::items = new ArrayList();
-}
-    : c=CONCAT 
-        LEFT_ROUND_BRACKET 
-        firstArg = scalarExpression {$concat::items.add($firstArg.node);} (COMMA arg = scalarExpression {$concat::items.add($arg.node);})+
-        RIGHT_ROUND_BRACKET
-        { $node = factory.newConcat($c.getLine(), $c.getCharPositionInLine(), $concat::items); }
-    ;
-
-substring returns [Object node]
- at init { 
-    node = null;
-    lengthNode = null;
-}
-    : s=SUBSTRING   
-        LEFT_ROUND_BRACKET
-        string = scalarExpression COMMA
-        start = scalarExpression
-        (COMMA lengthNode = scalarExpression)?
-        RIGHT_ROUND_BRACKET
-        { 
-            if (lengthNode != null){
-                $node = factory.newSubstring($s.getLine(), $s.getCharPositionInLine(), 
-                                        $string.node, $start.node, $lengthNode.node); 
-            } else {
-                $node = factory.newSubstring($s.getLine(), $s.getCharPositionInLine(), 
-                                        $string.node, $start.node, null); 
-            }
-        }
-    ;
-
-trim returns [Object node]
- at init { 
-    node = null;
-    trimSpecIndicator = TrimSpecification.BOTH;
-}
-    : t=TRIM
-        LEFT_ROUND_BRACKET 
-        (trimSpecIndicator = trimSpec trimCharNode = trimChar FROM)?
-        n = stringPrimary
-        RIGHT_ROUND_BRACKET
-        {
-            $node = factory.newTrim($t.getLine(), $t.getCharPositionInLine(), 
-                                   $trimSpecIndicator.trimSpec, $trimCharNode.node, $n.node); 
-        }
-    ;
-
-trimSpec returns [TrimSpecification trimSpec]
- at init { trimSpec = TrimSpecification.BOTH; }
-    : LEADING
-        { $trimSpec = TrimSpecification.LEADING; }
-    | TRAILING
-        { $trimSpec = TrimSpecification.TRAILING; }
-    | BOTH
-        { $trimSpec = TrimSpecification.BOTH; }
-    | // empty rule
-    ;
-      
-      
-trimChar returns [Object node]
- at init { node = null; }
-    : n = literalString {$node = $n.node;}
-    | n = inputParameter {$node = $n.node;}
-    | // empty rule
-    ;
-      
-upper returns [Object node]
- at init { node = null; }
-    : u=UPPER LEFT_ROUND_BRACKET n = scalarExpression RIGHT_ROUND_BRACKET
-        { $node = factory.newUpper($u.getLine(), $u.getCharPositionInLine(), $n.node); }
-    ;
-
-lower returns [Object node]
- at init { node = null; }
-    : l=LOWER LEFT_ROUND_BRACKET n = scalarExpression RIGHT_ROUND_BRACKET
-        { $node = factory.newLower($l.getLine(), $l.getCharPositionInLine(), $n.node); }
-    ;
-
-// Functions returning numerics
-abs returns [Object node]
- at init { node = null; }
-    : a=ABS LEFT_ROUND_BRACKET n = simpleArithmeticExpression RIGHT_ROUND_BRACKET
-        { $node = factory.newAbs($a.getLine(), $a.getCharPositionInLine(), $n.node); }
-    ;
-
-length returns [Object node]
- at init { node = null; }
-    : l=LENGTH LEFT_ROUND_BRACKET n = scalarExpression RIGHT_ROUND_BRACKET
-        { $node = factory.newLength($l.getLine(), $l.getCharPositionInLine(), $n.node); }
-    ;
-
-locate returns [Object node]
- at init { 
-    node = null; 
-}
-    : l=LOCATE
-        LEFT_ROUND_BRACKET 
-        pattern = scalarExpression COMMA n = scalarExpression
-        ( COMMA startPos = scalarExpression )?
-        RIGHT_ROUND_BRACKET
-        { 
-            $node = factory.newLocate($l.getLine(), $l.getCharPositionInLine(), 
-                                     $pattern.node, $n.node, $startPos.node); 
-        }
-    ;
-
-size returns [Object node]
- at init { node = null; }
-    : s=SIZE 
-        LEFT_ROUND_BRACKET n = collectionValuedPathExpression RIGHT_ROUND_BRACKET
-        { $node = factory.newSize($s.getLine(), $s.getCharPositionInLine(), $n.node);}
-    ;
-
-mod returns [Object node]
- at init { 
-    node = null; 
-}
-    : m=MOD LEFT_ROUND_BRACKET
-        left = scalarExpression COMMA 
-        right = scalarExpression
-        RIGHT_ROUND_BRACKET
-        { $node = factory.newMod($m.getLine(), $m.getCharPositionInLine(), $left.node, $right.node); }
-    ;
-
-sqrt returns [Object node]
- at init { node = null; }
-    : s=SQRT 
-        LEFT_ROUND_BRACKET n = scalarExpression RIGHT_ROUND_BRACKET
-        { $node = factory.newSqrt($s.getLine(), $s.getCharPositionInLine(), $n.node); }
-    ;
-    
-index returns [Object node]
- at init { node = null; }
-    : s=INDEX LEFT_ROUND_BRACKET n = variableAccessOrTypeConstant RIGHT_ROUND_BRACKET
-        { $node = factory.newIndex($s.getLine(), $s.getCharPositionInLine(), $n.node); }
-    ;
-
-// custom function
-func returns [Object node]
-scope{
-    List exprs;
-}
- at init { 
-    node = null; 
-    $func::exprs = new ArrayList();
-}
-    : f=FUNC LEFT_ROUND_BRACKET
-      name = STRING_LITERAL_SINGLE_QUOTED
-      (COMMA n = newValue
-          {
-            $func::exprs.add($n.node);
-          }
-       )*
-        RIGHT_ROUND_BRACKET
-        {$node = factory.newFunc($f.getLine(), $f.getCharPositionInLine(), $name.getText(), $func::exprs);}
-	;
-
-subquery returns [Object node]
- at init { 
-    node = null; 
-}
-    : select  = simpleSelectClause
-      from    = subqueryFromClause
-      (where   = whereClause)?
-      (groupBy = groupByClause)?
-      (having  = havingClause)?
-        { 
-            $node = factory.newSubquery(0, 0, $select.node, $from.node, 
-                                       $where.node, $groupBy.node, $having.node); 
-        }
-    ;
-
-simpleSelectClause returns [Object node]
-scope{
-    boolean distinct;
-}
- at init { 
-    node = null; 
-    $simpleSelectClause::distinct = false;
-}
-    : s=SELECT (DISTINCT { $simpleSelectClause::distinct = true; })?
-      n = simpleSelectExpression
-        {
-            List exprs = new ArrayList();
-            exprs.add($n.node);
-            $node = factory.newSelectClause($s.getLine(), $s.getCharPositionInLine(), 
-                                           $simpleSelectClause::distinct, exprs);
-        }
-    ;
-
-simpleSelectExpression returns [Object node]
- at init { node = null; }
-    : n = singleValuedPathExpression  {$node = $n.node;}
-    | n = aggregateExpression  {$node = $n.node;}
-    | n = variableAccessOrTypeConstant  {$node = $n.node;}
-    ;
-
-
-subqueryFromClause returns [Object node]
-scope{
-    List varDecls;
-}
- at init { 
-    node = null; 
-    $subqueryFromClause::varDecls = new ArrayList();
-}
-    : f=FROM subselectIdentificationVariableDeclaration[$subqueryFromClause::varDecls] 
-        ( 
-            COMMA 
-                subselectIdentificationVariableDeclaration[$subqueryFromClause::varDecls] 
-                | c = collectionMemberDeclaration {$subqueryFromClause::varDecls.add($c.node);}
-        )*
-        { $node = factory.newFromClause($f.getLine(), $f.getCharPositionInLine(), $subqueryFromClause::varDecls); }
-    ;
-
-subselectIdentificationVariableDeclaration [List varDecls]
- at init { Object node; }
-    : identificationVariableDeclaration[varDecls]
-    | n = associationPathExpression (AS)? i=IDENT (join { varDecls.add($n.node); } )*
-        { 
-            $varDecls.add(factory.newVariableDecl($i.getLine(), $i.getCharPositionInLine(), 
-                                                 $n.node, $i.getText())); 
-        }
-    | n = collectionMemberDeclaration { $varDecls.add($n.node); }
-    ;
-
-orderByClause returns [Object node]
-scope{
-    List items;
-}
- at init { 
-    node = null; 
-    $orderByClause::items = new ArrayList();
-}
-    : o=ORDER BY { setAggregatesAllowed(true); } 
-        n = orderByItem  { $orderByClause::items.add($n.node); } 
-        (COMMA n = orderByItem  { $orderByClause::items.add($n.node); })*
-        { 
-            setAggregatesAllowed(false);
-            $node = factory.newOrderByClause($o.getLine(), $o.getCharPositionInLine(), $orderByClause::items);
-        }
-    ; 
-
-orderByItem returns [Object node]
- at init { node = null; }
-    : n = scalarExpression
-        ( a=ASC 
-            { $node = factory.newAscOrdering($a.getLine(), $a.getCharPositionInLine(), $n.node); }
-        | d=DESC
-            { $node = factory.newDescOrdering($d.getLine(), $d.getCharPositionInLine(), $n.node); }
-        | // empty rule
-            { $node = factory.newAscOrdering(0, 0, $n.node); }
-        )
-     ;
-
-groupByClause returns [Object node]
-scope{
-    List items;
-}
- at init { 
-    node = null; 
-    $groupByClause::items = new ArrayList();
-}
-    : g=GROUP BY
-        n = scalarExpression { $groupByClause::items.add($n.node); }
-        (COMMA n = scalarExpression  { $groupByClause::items.add($n.node); } )*
-        { $node = factory.newGroupByClause($g.getLine(), $g.getCharPositionInLine(), $groupByClause::items); }
-    ;
-
-
-havingClause returns [Object node]
- at init { node = null; }
-    : h=HAVING { setAggregatesAllowed(true); } 
-        n = conditionalExpression 
-        { 
-            setAggregatesAllowed(false); 
-            $node = factory.newHavingClause($h.getLine(), $h.getCharPositionInLine(), $n.node);
-        }
-    ;
-
-
-DOT
-    : '.'
-    ;
-
-WS  : (' ' | '\t' | '\n' | '\r')+
-    { skip(); } ;
-
-LEFT_ROUND_BRACKET
-    : '('
-    ;
-
-LEFT_CURLY_BRACKET
-    : '{'
-    ;	
-
-RIGHT_ROUND_BRACKET
-    : ')'
-    ;
-    
-RIGHT_CURLY_BRACKET
-    : '}'
-    ;
-
-COMMA
-    : ','
-    ;
-
-IDENT 
-    : TEXTCHAR
-    ;
-
-fragment
-TEXTCHAR
-    : ('a'..'z' | 'A'..'Z' | '_' | '$' | '`' | '~' | '@' | '#' | '%' | '^' | '&' | '|' | '[' | ']' | ';'
-       c1='\u0080'..'\uFFFE' 
-       {
-           if (!Character.isJavaIdentifierStart(c1)) {
-                throw new InvalidIdentifierStartException(c1, getLine(), getCharPositionInLine());
-           }
-       }
-      )
-      ('a'..'z' | '_' | '$' | '0'..'9' | 
-       c2='\u0080'..'\uFFFE'
-       {
-           if (!Character.isJavaIdentifierPart(c2)) {
-                throw new InvalidIdentifierStartException(c2, getLine(), getCharPositionInLine());
-           }
-       }
-      )*
-    ;
-
-
-HEX_LITERAL : '0' ('x'|'X') HEX_DIGIT+ ;
-
-INTEGER_LITERAL : MINUS? ('0' | '1'..'9' '0'..'9'*) ;
-
-LONG_LITERAL : INTEGER_LITERAL INTEGER_SUFFIX;
-
-OCTAL_LITERAL : MINUS? '0' ('0'..'7')+ ;
-
-// hexadecimal digit 
-fragment
-HEX_DIGIT
-    :   ('0'..'9'|'a'..'f' | 'A'..'F')
-    ;
-
-fragment
-INTEGER_SUFFIX : ('l'|'L') ;
-
-fragment
-NUMERIC_DIGITS
-    :   MINUS? ('0'..'9')+ '.' ('0'..'9')*
-    |   MINUS? '.' ('0'..'9')+
-    |   MINUS? ('0'..'9')+
-    ;
-
-DOUBLE_LITERAL
-    :   NUMERIC_DIGITS DOUBLE_SUFFIX?
-	;
-
-FLOAT_LITERAL
-    :   NUMERIC_DIGITS EXPONENT FLOAT_SUFFIX?
-    |   NUMERIC_DIGITS FLOAT_SUFFIX
-	;
-
-// a couple protected methods to assist in matching floating point numbers
-fragment
-EXPONENT
-    :   ('e' | 'E') ('+'|'-')? ('0'..'9')+
-    ;
-
-
-fragment
-FLOAT_SUFFIX 
-    :   'f'
-    ;
-  
-DATE_LITERAL
-    : LEFT_CURLY_BRACKET ('d') (' ' | '\t')+ '\'' DATE_STRING '\'' (' ' | '\t')* RIGHT_CURLY_BRACKET
-    ;
-
-TIME_LITERAL
-    : LEFT_CURLY_BRACKET ('t') (' ' | '\t')+ '\'' TIME_STRING '\'' (' ' | '\t')* RIGHT_CURLY_BRACKET
-    ;
-    
-TIMESTAMP_LITERAL
-    : LEFT_CURLY_BRACKET ('ts') (' ' | '\t')+ '\'' DATE_STRING ' ' TIME_STRING '\'' (' ' | '\t')* RIGHT_CURLY_BRACKET
-    ;
-
-DATE_STRING
-    : '0'..'9' '0'..'9' '0'..'9' '0'..'9' '-' '0'..'9' '0'..'9' '-' '0'..'9' '0'..'9'
-    ;
-    
-TIME_STRING
-    : '0'..'9' ('0'..'9')? ':' '0'..'9' '0'..'9' ':' '0'..'9' '0'..'9' '.' '0'..'9'*
-    ;
-
-fragment
-DOUBLE_SUFFIX
-    : 'd'
-    ;
-
-EQUALS
-    : '='
-    ;
-
-GREATER_THAN
-    : '>'
-    ;
-
-GREATER_THAN_EQUAL_TO
-    : '>='
-    ;
-
-LESS_THAN
-    : '<'
-    ;
-
-LESS_THAN_EQUAL_TO
-    : '<='
-    ;
-
-NOT_EQUAL_TO
-    : '<>'
-    | '!='
-    ;
-
-MULTIPLY
-    : '*'
-    ;
-
-DIVIDE
-    : '/'
-    ;
-
-PLUS
-    : '+'
-    ;
-
-MINUS
-    : '-'
-    ;
-
-
-POSITIONAL_PARAM
-    : '?' ('1'..'9') ('0'..'9')*
-    ;
-
-NAMED_PARAM
-    : ':' TEXTCHAR
-    ;
-
-// Added Jan 9, 2001 JED
-// string literals
-STRING_LITERAL_DOUBLE_QUOTED
-    : '"' (~ ('"'))* '"'
-    ;
-
-STRING_LITERAL_SINGLE_QUOTED
-    : '\'' (~ ('\'') | ('\'\''))* '\'' 
-    ;
-
- 
-
diff --git a/debian/build.properties b/debian/build.properties
index f7defcc..54cee72 100644
--- a/debian/build.properties
+++ b/debian/build.properties
@@ -2,6 +2,6 @@ debug=on
 target=1.6
 source=1.5
 
-dir.src=${basedir}/..
-dir.debian=${basedir}
-dir.build=${basedir}/../target
+dir.src=.
+dir.debian=debian
+dir.build=target/
diff --git a/debian/build.xml b/debian/build.xml
index a5b2a59..120f947 100644
--- a/debian/build.xml
+++ b/debian/build.xml
@@ -1,69 +1,80 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project name="build-eclipselink" default="package">
-	<property file="build.properties"/>
+<project basedir="../" name="build-eclipselink" default="package">
+  <property file="debian/build.properties"/>
+  
+  <path id="classpath">
+    <fileset dir="/" includesfile="${dir.debian}/classpath-debian"/>
+  </path>
 
-	<path id="classpath">
-		<fileset dir="/" includesfile="classpath-debian"/>
-	</path>
+  <target name="init">
+    <mkdir dir="${dir.build}/classes"/>
+    <mkdir dir="${dir.build}/modelgen"/>
+  </target>
 
-	<target name="init">
-		<mkdir dir="${dir.build}/classes"/>
-	</target>
+  <target name="clean">
+    <delete dir="${dir.build}"/>
+  </target>
 
-	<target name="clean">
-		<delete dir="${dir.build}"/>
-	</target>
+  <target name="compile" depends="init">
+    <javac
+	srcdir="${dir.src}"
+	destdir="${dir.build}/classes"
+	classpathref="classpath"
+	debug="${debug}"
+	source="${source}"
+	target="${target}"
+	excludesfile="${dir.debian}/excludesfiles/build"
+	includeantruntime="false">
+      <include name="org/eclipse/persistence/**"/>
+      <include name="commonj/**"/>
+    </javac>
+    <copy todir="${dir.build}/classes">
+      <fileset dir=".">
+	<include name="*.html"/>
+	<include name="org/**"/>
+	<include name="OSGI-INF/**"/>
+	<exclude name="**/*.java"/>
+      </fileset>
+    </copy>
+  </target>
 
-	<target name="compile" depends="init">
-		<javac
-			srcdir="${dir.src}"
-			destdir="${dir.build}/classes"
-			classpathref="classpath"
-			debug="${debug}"
-			source="${source}"
-			target="${target}"
-			excludesfile="${dir.debian}/excludesfiles/build"
-			includeantruntime="false">
-			<include name="org/eclipse/persistence/**"/>
-			<include name="commonj/**"/>
-		</javac>
-	</target>
-
-	<target name="jar" depends="compile">
-       <jar
-            destfile="${dir.build}/eclipselink.jar"
-            basedir="${dir.build}/classes"
-			excludes="org/eclipse/persistence/internal/libraries/**">
-			<zipfileset dir="${dir.src}/xsd" prefix="xsd"/>
-			<zipfileset file="${dir.src}/eclipselink_oxm_2_0.xsd" prefix="xsd"/>
-			<zipfileset file="${dir.src}/eclipselink_oxm_2_1.xsd" prefix="xsd"/>
-			<fileset dir="${dir.src}">
-                <include name="org/eclipse/persistence/internal/helper/VendorNameToPlatformMapping.properties"/>
-                <include name="org/eclipse/persistence/jpa/*.xsd"/>
-            </fileset>
-            <service type="javax.persistence.spi.PersistenceProvider"
-				provider="org.eclipse.persistence.jpa.PersistenceProvider"/>
-		</jar>
-	</target>
-
-	<target name="javadoc" depends="init">
-        <mkdir dir="${dir.build}/api"/>
-        <javadoc
-			destdir="${dir.build}/api"
-			classpathref="classpath"
-			access="public"
-			defaultexcludes="yes"
-			source="1.5">
-            <packageset
-				dir="${dir.src}"
-				excludesfile="${dir.debian}/excludesfiles/javadoc">
-				<include name="org/eclipse/persistence/**"/>
-			</packageset>
-			<link href="/usr/share/doc/default-jdk-doc/api/"
-				packagelistLoc="/usr/share/doc/default-jdk-doc/api/package-list"/>
-		</javadoc>
-	</target>
-
-	<target name="package" depends="jar,javadoc"/>
+  <target name="jar" depends="compile">
+    <jar
+	destfile="${dir.build}/eclipselink.jar"
+	basedir="${dir.build}/classes"
+	excludes="org/eclipse/persistence/internal/libraries/**">
+      <service type="javax.persistence.spi.PersistenceProvider"
+	       provider="org.eclipse.persistence.jpa.PersistenceProvider"/>
+    </jar>
+    <jar
+	destfile="${dir.build}/org.eclipse.persistence.jpa.modelgen.processor.jar"
+	basedir="${dir.build}/modelgen">
+      <fileset dir=".">
+        <include name="*.html"/>
+      </fileset>
+      <service type="javax.annotation.processing.Processor"
+               provider="org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor"/>
+    </jar>
+  </target>
 
+  <target name="javadoc" depends="init">
+    <mkdir dir="${dir.build}/api"/>
+    <javadoc
+	destdir="${dir.build}/api"
+	classpathref="classpath"
+	access="public"
+	defaultexcludes="yes"
+	source="1.5">
+      <packageset
+	  dir="${dir.src}"
+	  excludesfile="${dir.debian}/excludesfiles/javadoc">
+	<include name="org/eclipse/persistence/**"/>
+      </packageset>
+      <link href="/usr/share/doc/default-jdk-doc/api/"
+	    packagelistLoc="/usr/share/doc/default-jdk-doc/api/package-list"/>
+    </javadoc>
+  </target>
+  
+  <target name="package" depends="jar,javadoc"/>
+  
 </project>
diff --git a/debian/classpath-debian b/debian/classpath-debian
index 460c340..8025470 100644
--- a/debian/classpath-debian
+++ b/debian/classpath-debian
@@ -1,11 +1,15 @@
-usr/share/java/glassfish-javaee.jar
-usr/share/java/geronimo-jpa-2.0-spec.jar
+usr/share/java/javax.persistence-api.jar
+usr/share/java/geronimo-jta_1.1_spec.jar
 usr/share/java/geronimo-validation.jar
+usr/share/java/geronimo-javamail-1.4-spec.jar
+usr/share/java/geronimo-jms-1.1-spec.jar
+usr/share/java/geronimo-j2ee-connector-1.5-spec.jar
 usr/share/java/aspectjtools.jar
 usr/share/java/ant.jar
 usr/share/java/sdo-api.jar
+usr/share/java/cdi-api.jar
+usr/share/java/jsr311-api.jar
+usr/share/java/servlet-api-3.0.jar
 usr/share/java/antlr3.jar
 usr/share/java/antlr3-runtime.jar
-usr/share/java/asm.jar
-usr/share/java/asm-attrs.jar
-usr/share/java/asm2-commons.jar
+usr/share/java/asm3-all.jar
diff --git a/debian/control b/debian/control
index e315038..36f8b65 100644
--- a/debian/control
+++ b/debian/control
@@ -1,13 +1,21 @@
 Source: eclipselink
 Maintainer: Debian Java Maintainers <pkg-java-maintainers at lists.alioth.debian.org>
-Uploaders: Miguel Landaeta <miguel at miguel.cc>
+Uploaders: Miguel Landaeta <miguel at miguel.cc>,
+ Andrew Ross <ubuntu at rossfamily.co.uk>
 Section: java
 Priority: optional
 Build-Depends: debhelper (>= 7.0.50), default-jdk, javahelper, ant,
- glassfish-javaee, libgeronimo-jpa-2.0-spec-java, aspectj, libsdo-api-java,
- libgeronimo-validation-1.0-spec-java, libasm-java, libasm2-java,
- antlr3 (>= 3.2), default-jdk-doc
-Standards-Version: 3.9.3
+ libjavax.persistence-java (>= 2.1.0),
+ libgeronimo-jta-1.1-spec-java,
+ libgeronimo-validation-1.0-spec-java,
+ libgeronimo-javamail-1.4-spec-java,
+ libgeronimo-jms-1.1-spec-java,
+ libgeronimo-j2ee-connector-1.5-spec-java,
+ libservlet3.0-java
+ aspectj, libsdo-api-java,
+ libcdi-api-java, libjsr311-api-java
+ libasm3-java, antlr3 (>= 3.2), default-jdk-doc
+Standards-Version: 3.9.4
 DM-Upload-Allowed: yes
 Homepage: http://www.eclipse.org/eclipselink/
 Vcs-Git: git://git.debian.org/git/pkg-java/eclipselink.git
@@ -15,10 +23,16 @@ Vcs-Browser: http://git.debian.org/?p=pkg-java/eclipselink.git
 
 Package: libeclipselink-java
 Architecture: all
-Depends: glassfish-javaee, libgeronimo-jpa-2.0-spec-java,
- libgeronimo-validation-1.0-spec-java, libasm-java, libasm2-java,
- antlr3 (>= 3.2), ${misc:Depends}
-Recommends: aspectj, libsdo-api-java
+Depends: 
+ libjavax.persistence-java (>= 2.1.0),
+ libgeronimo-jta-1.1-spec-java,
+ libgeronimo-validation-1.0-spec-java,
+ libgeronimo-javamail-1.4-spec-java,
+ libgeronimo-jms-1.1-spec-java,
+ libgeronimo-j2ee-connector-1.5-spec-java,
+ libcdi-api-java, libjsr311-api-java
+ libasm3-java, antlr3 (>= 3.2), ${misc:Depends}
+Recommends: aspectj, libsdo-api-java, libservlet3.0-java
 Suggests: libeclipselink-java-doc (= ${binary:Version})
 Description: Eclipse Persistence Services Project
  Eclipse Persistence Services Project, more commonly known as EclipseLink,
diff --git a/debian/excludesfiles/build b/debian/excludesfiles/build
index 9e485f1..34a3678 100644
--- a/debian/excludesfiles/build
+++ b/debian/excludesfiles/build
@@ -1,10 +1,15 @@
 # Oracle
-org/eclipse/persistence/internal/eis/adapters/aq/**
-org/eclipse/persistence/eis/adapters/aq/**
 org/eclipse/persistence/internal/platform/database/oracle/**
 org/eclipse/persistence/platform/database/oracle/*.java
 org/eclipse/persistence/platform/database/oracle/converters/**
 org/eclipse/persistence/platform/xml/xdk/**
+org/eclipse/persistence/platform/database/oracle/dcn/**
+org/eclipse/persistence/platform/database/oracle/ucp/**
+org/eclipse/persistence/tools/profiler/oracle/**
 
 # Embedded libraries
 org/eclipse/persistence/internal/libraries/**
+
+# Jaxb-XJC
+org/eclipse/persistence/jaxb/dynamic/metadata/SchemaMetadata.java
+org/eclipse/persistence/jaxb/javamodel/xjc/**
diff --git a/debian/excludesfiles/javadoc b/debian/excludesfiles/javadoc
index 656845d..bc558ea 100644
--- a/debian/excludesfiles/javadoc
+++ b/debian/excludesfiles/javadoc
@@ -1,7 +1,18 @@
 # Oracle
-org/eclipse/persistence/eis/adapters/aq/**
-org/eclipse/persistence/platform/database/oracle/**
+org/eclipse/persistence/internal/platform/database/oracle/**
+org/eclipse/persistence/platform/database/oracle/*.java
+org/eclipse/persistence/platform/database/oracle/converters/**
 org/eclipse/persistence/platform/xml/xdk/**
+org/eclipse/persistence/platform/database/oracle/dcn/**
+org/eclipse/persistence/platform/database/oracle/ucp/**
+org/eclipse/persistence/tools/profiler/oracle/**
+
+# Embedded libraries
+org/eclipse/persistence/internal/libraries/**
+
+# Jaxb-XJC
+org/eclipse/persistence/jaxb/dynamic/metadata/SchemaMetadata.java
+org/eclipse/persistence/jaxb/javamodel/xjc/**
 
 # internal code
 org/eclipse/persistence/internal/**
diff --git a/debian/libeclipselink-java.classpath b/debian/libeclipselink-java.classpath
deleted file mode 100644
index 9c92c06..0000000
--- a/debian/libeclipselink-java.classpath
+++ /dev/null
@@ -1 +0,0 @@
-target/eclipselink.jar /usr/share/java/glassfish-javaee.jar /usr/share/java/geronimo-jpa-2.0-spec.jar /usr/share/java/geronimo-validation.jar /usr/share/java/aspectjtools.jar /usr/share/java/sdo-api.jar /usr/share/java/antlr3.jar /usr/share/java/asm.jar /usr/share/java/asm-attrs.jar /usr/share/java/asm2-commons.jar /usr/share/java/antlr3-runtime.jar
diff --git a/debian/libeclipselink-java.jlibs b/debian/libeclipselink-java.jlibs
index 52e1063..9bd2c5e 100644
--- a/debian/libeclipselink-java.jlibs
+++ b/debian/libeclipselink-java.jlibs
@@ -1 +1,2 @@
 target/eclipselink.jar
+target/org.eclipse.persistence.jpa.modelgen.processor.jar
diff --git a/debian/libeclipselink-java.manifest b/debian/libeclipselink-java.manifest
index 1c6d910..e8012cb 100644
--- a/debian/libeclipselink-java.manifest
+++ b/debian/libeclipselink-java.manifest
@@ -1,9 +1,11 @@
 usr/share/java/eclipselink.jar:
- Specification-Title: Eclipse Persistence Services Source
- Specification-Vendor: Eclipse.org - EclipseLink Project
- Specification-Version: 2.1.3
- Implementation-Title: org.eclipse.persistence
+ Release-Designation: EclipseLink 2.5.0
  Implementation-Vendor: Eclipse.org - EclipseLink Project
- Implementation-Version: 2.1.3.v20110304-r9073
- Release-Designation: EclipseLink 2.1.3
- Class-Path: /usr/share/java/glassfish-javaee.jar /usr/share/java/geronimo-jpa-2.0-spec.jar /usr/share/java/geronimo-validation.jar /usr/share/java/aspectjtools.jar /usr/share/java/sdo-api.jar /usr/share/java/antlr3.jar /usr/share/java/asm.jar /usr/share/java/asm-attrs.jar /usr/share/java/asm2-commons.jar /usr/share/java/antlr3-runtime.jar
+ Implementation-Title: org.eclipse.persistence
+ Implementation-Version: 2.5.0.v20130507-3faac2b
+ Specification-Vendor: Eclipse.org - EclipseLink Project
+ Premain-Class: org.eclipse.persistence.internal.jpa.deployment.JavaSECMPInitializerAgent
+ Specification-Title: Eclipse Persistence Services
+ Specification-Version: 2.5.0
+ Main-Class: org.eclipse.persistence.Version
+ Class-Path: /usr/share/java/javax.persistence-api.jar /usr/share/java/geronimo-jta_1.1_spec.jar /usr/share/java/geronimo-validation.jar /usr/share/java/geronimo-javamail-1.4-spec.jar /usr/share/java/geronimo-jms-1.1-spec.jar /usr/share/java/geronimo-j2ee-connector-1.5-spec.jar /usr/share/java/aspectjtools.jar /usr/share/java/sdo-api.jar /usr/share/java/antlr3.jar /usr/share/java/antlr3-runtime.jar /usr/share/java/asm3-all.jar /usr/share/java/cdi-api.jar /usr/share/java/jsr311-api.jar /u [...]
diff --git a/debian/patches/antlr32.diff b/debian/patches/antlr32.diff
deleted file mode 100644
index f80f177..0000000
--- a/debian/patches/antlr32.diff
+++ /dev/null
@@ -1,79 +0,0 @@
-Description: Fix build with ANTLR >= 3.2
-Author: Damien Raude-Morvan
-Forwarded: no
-Last-Update: 2010-07-06
-
---- a/org/eclipse/persistence/internal/jpa/parsing/jpql/CaseInsensitiveJPQLLexer.java
-+++ b/org/eclipse/persistence/internal/jpa/parsing/jpql/CaseInsensitiveJPQLLexer.java
-@@ -29,8 +29,8 @@
-         	int currentChar = Character.toLowerCase(input.LA(1));
-         	int stringChar = Character.toLowerCase(s.charAt(i));
-             if ( currentChar != stringChar ) {
--				if ( backtracking>0 ) {
--					failed = true;
-+				if ( state.backtracking>0 ) {
-+					state.failed = true;
- 					return;
- 				}
- 				MismatchedTokenException mte =
-@@ -40,7 +40,7 @@
-             }
-             i++;
-             input.consume();
--			failed = false;
-+			state.failed = false;
-         }
-     }
- 
-@@ -48,8 +48,8 @@
-     	int currentChar = Character.toLowerCase(input.LA(1));
-     	int stringChar = Character.toLowerCase(c);
-         if ( currentChar != stringChar ) {
--			if ( backtracking>0 ) {
--				failed = true;
-+			if ( state.backtracking>0 ) {
-+				state.failed = true;
- 				return;
- 			}
- 			MismatchedTokenException mte =
-@@ -58,7 +58,7 @@
- 			throw mte;
-         }
-         input.consume();
--		failed = false;
-+		state.failed = false;
-     }
- 
-     public void matchRange(int a, int b)
-@@ -68,8 +68,8 @@
-     	int aChar = Character.toLowerCase(a);
-     	int bChar = Character.toLowerCase(b);
-         if ( currentChar<aChar || currentChar>bChar ) {
--			if ( backtracking>0 ) {
--				failed = true;
-+			if ( state.backtracking>0 ) {
-+				state.failed = true;
- 				return;
- 			}
-             MismatchedRangeException mre =
-@@ -78,6 +78,6 @@
- 			throw mre;
-         }
-         input.consume();
--		failed = false;
-+		state.failed = false;
-     }
- }
---- a/org/eclipse/persistence/internal/jpa/parsing/jpql/JPQLParser.java
-+++ b/org/eclipse/persistence/internal/jpa/parsing/jpql/JPQLParser.java
-@@ -64,6 +64,10 @@
-         super(stream);
-     }
- 
-+    protected JPQLParser(TokenStream input, RecognizerSharedState state) {
-+            super(input, state);
-+    }
-+
-     /**
-      * INTERNAL
-      * Returns the ANTLR version currently used.
diff --git a/debian/patches/cast.patch b/debian/patches/cast.patch
new file mode 100644
index 0000000..6baa1ce
--- /dev/null
+++ b/debian/patches/cast.patch
@@ -0,0 +1,68 @@
+--- a/org/eclipse/persistence/internal/xr/QueryOperation.java
++++ b/org/eclipse/persistence/internal/xr/QueryOperation.java
+@@ -593,8 +593,8 @@
+                             Class oracleSQLXML;
+                             Method getStringMethod;
+                             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
+-                                oracleSQLXML = AccessController.doPrivileged(new PrivilegedClassForName(ORACLESQLXML_STR, true, this.getClass().getClassLoader()));
+-                                getStringMethod = AccessController.doPrivileged(new PrivilegedGetDeclaredMethod(oracleSQLXML, GETSTRING_METHOD, new Class[] {}));
++                                oracleSQLXML = (Class)AccessController.doPrivileged(new PrivilegedClassForName(ORACLESQLXML_STR, true, this.getClass().getClassLoader()));
++                                getStringMethod = (Method)AccessController.doPrivileged(new PrivilegedGetDeclaredMethod(oracleSQLXML, GETSTRING_METHOD, new Class[] {}));
+                                 fieldValue = (String) AccessController.doPrivileged(new PrivilegedMethodInvoker(getStringMethod, fieldValue, new Object[] {}));
+                             } else {
+                                 oracleSQLXML = PrivilegedAccessHelper.getClassForName(ORACLESQLXML_STR, true, this.getClass().getClassLoader());
+@@ -613,11 +613,11 @@
+                             Object xmlTypeFactory;
+                             Method getStringMethod;
+                             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
+-                                oracleOPAQUE = AccessController.doPrivileged(new PrivilegedClassForName(ORACLEOPAQUE_STR, true, this.getClass().getClassLoader()));
+-                                xmlTypeFactoryClass = AccessController.doPrivileged(new PrivilegedClassForName(XMLTYPEFACTORY_STR, true, this.getClass().getClassLoader()));
+-                                xmlTypeFactoryConstructor = AccessController.doPrivileged(new PrivilegedGetConstructorFor(xmlTypeFactoryClass, new Class[0], true));
++                                oracleOPAQUE = (Class)AccessController.doPrivileged(new PrivilegedClassForName(ORACLEOPAQUE_STR, true, this.getClass().getClassLoader()));
++                                xmlTypeFactoryClass = (Class)AccessController.doPrivileged(new PrivilegedClassForName(XMLTYPEFACTORY_STR, true, this.getClass().getClassLoader()));
++                                xmlTypeFactoryConstructor = (Constructor)AccessController.doPrivileged(new PrivilegedGetConstructorFor(xmlTypeFactoryClass, new Class[0], true));
+                                 xmlTypeFactory = AccessController.doPrivileged(new PrivilegedInvokeConstructor(xmlTypeFactoryConstructor, new Object[0]));
+-                                getStringMethod = AccessController.doPrivileged(new PrivilegedGetDeclaredMethod(xmlTypeFactoryClass, GETSTRING_METHOD, new Class[] {oracleOPAQUE}));
++                                getStringMethod = (Method)AccessController.doPrivileged(new PrivilegedGetDeclaredMethod(xmlTypeFactoryClass, GETSTRING_METHOD, new Class[] {oracleOPAQUE}));
+                                 fieldValue = (String) AccessController.doPrivileged(new PrivilegedMethodInvoker(getStringMethod, fieldValue, new Object[] {}));
+                             } else {
+                                 oracleOPAQUE = PrivilegedAccessHelper.getClassForName(ORACLEOPAQUE_STR, false, this.getClass().getClassLoader());
+--- a/org/eclipse/persistence/jpa/rs/PersistenceContext.java
++++ b/org/eclipse/persistence/jpa/rs/PersistenceContext.java
+@@ -527,7 +527,7 @@
+                 }
+                 Field[] fields = null;
+                 if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
+-                    fields = AccessController.doPrivileged(new PrivilegedGetDeclaredFields(clazz));
++                    fields = (Field[])AccessController.doPrivileged(new PrivilegedGetDeclaredFields(clazz));
+                 } else {
+                     fields = PrivilegedAccessHelper.getDeclaredFields(clazz);
+                 }
+--- a/org/eclipse/persistence/internal/jpa/metadata/converters/ConverterClass.java
++++ b/org/eclipse/persistence/internal/jpa/metadata/converters/ConverterClass.java
+@@ -110,12 +110,12 @@
+                 if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
+                     try {
+                         attributeConverterClass = (Class) AccessController.doPrivileged(new PrivilegedClassForName(attributeConverterClassName, true, loader));
+-                        attributeConverter = AccessController.doPrivileged(new PrivilegedNewInstanceFromClass(attributeConverterClass));
++                        attributeConverter = (AttributeConverter)AccessController.doPrivileged(new PrivilegedNewInstanceFromClass(attributeConverterClass));
+                     } catch (PrivilegedActionException exception) {
+                         throw ValidationException.classNotFoundWhileConvertingClassNames(attributeConverterClassName, exception.getException());
+                     }
+                 } else {
+-                    attributeConverterClass = PrivilegedAccessHelper.getClassForName(attributeConverterClassName, true, loader);
++                    attributeConverterClass = (Class)PrivilegedAccessHelper.getClassForName(attributeConverterClassName, true, loader);
+                     attributeConverter = (AttributeConverter) PrivilegedAccessHelper.newInstanceFromClass(attributeConverterClass);   
+                 }
+             } catch (ClassNotFoundException exception) {
+--- a/org/eclipse/persistence/internal/jaxb/XMLJavaTypeConverter.java
++++ b/org/eclipse/persistence/internal/jaxb/XMLJavaTypeConverter.java
+@@ -271,7 +271,7 @@
+         	} catch (IllegalAccessException e) {
+ 	            Constructor ctor = null;
+ 	            if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
+-	            	ctor = AccessController.doPrivileged(new PrivilegedGetConstructorFor(xmlAdapterClass, new Class[0], true));	            			            
++	            	ctor = (Constructor)AccessController.doPrivileged(new PrivilegedGetConstructorFor(xmlAdapterClass, new Class[0], true));	            			            
+ 	            } else {
+ 	            	ctor = PrivilegedAccessHelper.getDeclaredConstructorFor(xmlAdapterClass, new Class[0], true);
+ 	            }
diff --git a/debian/patches/charset.patch b/debian/patches/charset.patch
new file mode 100644
index 0000000..9128576
--- /dev/null
+++ b/debian/patches/charset.patch
@@ -0,0 +1,11 @@
+--- a/org/eclipse/persistence/internal/jpa/transaction/JTATransactionWrapper.java
++++ b/org/eclipse/persistence/internal/jpa/transaction/JTATransactionWrapper.java
+@@ -114,7 +114,7 @@
+ //                In general, a persistence context will be synchronized to the database as described below. However, a
+ //                persistence context of type SynchronizationType.UNSYNCHRONIZED or an application-managed
+ //                persistence context that has been created outside the scope of the current transaction will only be
+-//                synchronized to the database if it has been joined to the current transaction by the application�s use of
++//                synchronized to the database if it has been joined to the current transaction by the applications use of
+ //                the EntityManager joinTransaction method.
+ //                ..
+ //                If there is no transaction active
diff --git a/debian/patches/disable_antlr3_embedded_copy.diff b/debian/patches/disable_antlr3_embedded_copy.diff
index 89398dd..3a11ef7 100644
--- a/debian/patches/disable_antlr3_embedded_copy.diff
+++ b/debian/patches/disable_antlr3_embedded_copy.diff
@@ -1,11 +1,27 @@
-Description: Remove references to ANTLR embedded copy 
-Author: Miguel Landaeta <miguel at miguel.cc>
-Bug-Debian: http://bugs.debian.org/581861
-Forwarded: no
-Last-Update: 2010-07-07
-
---- eclipselink-2.1.0.orig/org/eclipse/persistence/internal/jpa/parsing/jpql/CaseInsensitiveJPQLLexer.java
-+++ eclipselink-2.1.0/org/eclipse/persistence/internal/jpa/parsing/jpql/CaseInsensitiveJPQLLexer.java
+--- a/about.html
++++ b/about.html
+@@ -127,7 +127,7 @@
+   <p>The <a href="http://www.antlr.org/">ANTLR library</a> (<a href="http://www.antlr.org/license.html">license</a>)
+     is included within EclipseLink Project to enable parsing of the Java Persistence
+     Query language (JP QL). The ANTLR library is re-packaged within the project
+-    in the org.eclipse.persistence.internal.libraries.antlr.* packages. </p>
++    in the org.antlr.* packages. </p>
+   <p>The source is available with the project's subversion repository. The binaries
+     are distributed within the eclipselink.jar and in the org.eclipse.persistence.antlr_3.2.0.v*.jar
+     bundle.</p>
+--- a/org/eclipse/persistence/internal/jpa/parsing/jpql/CaseInsensitiveANTLRStringStream.java
++++ b/org/eclipse/persistence/internal/jpa/parsing/jpql/CaseInsensitiveANTLRStringStream.java
+@@ -12,7 +12,7 @@
+  ******************************************************************************/  
+ package org.eclipse.persistence.internal.jpa.parsing.jpql;
+ 
+-import org.eclipse.persistence.internal.libraries.antlr.runtime.ANTLRStringStream;
++import org.antlr.runtime.ANTLRStringStream;
+ 
+ /**
+  * This Stream is used when tokenizing JPQL queries
+--- a/org/eclipse/persistence/internal/jpa/parsing/jpql/CaseInsensitiveJPQLLexer.java
++++ b/org/eclipse/persistence/internal/jpa/parsing/jpql/CaseInsensitiveJPQLLexer.java
 @@ -12,7 +12,7 @@
   ******************************************************************************/  
  package org.eclipse.persistence.internal.jpa.parsing.jpql;
@@ -15,8 +31,8 @@ Last-Update: 2010-07-07
  import org.eclipse.persistence.internal.jpa.parsing.jpql.antlr.JPQLLexer;
  
  /*
---- eclipselink-2.1.0.orig/org/eclipse/persistence/internal/jpa/parsing/jpql/InvalidIdentifierException.java
-+++ eclipselink-2.1.0/org/eclipse/persistence/internal/jpa/parsing/jpql/InvalidIdentifierException.java
+--- a/org/eclipse/persistence/internal/jpa/parsing/jpql/InvalidIdentifierException.java
++++ b/org/eclipse/persistence/internal/jpa/parsing/jpql/InvalidIdentifierException.java
 @@ -12,8 +12,8 @@
   ******************************************************************************/  
  package org.eclipse.persistence.internal.jpa.parsing.jpql;
@@ -28,19 +44,8 @@ Last-Update: 2010-07-07
  
  /**
   * This is a custom Exception class that is thrown from ANTLR JPQL code when we 
---- eclipselink-2.1.0.orig/org/eclipse/persistence/internal/jpa/parsing/jpql/CaseInsensitiveANTLRStringStream.java
-+++ eclipselink-2.1.0/org/eclipse/persistence/internal/jpa/parsing/jpql/CaseInsensitiveANTLRStringStream.java
-@@ -12,7 +12,7 @@
-  ******************************************************************************/  
- package org.eclipse.persistence.internal.jpa.parsing.jpql;
- 
--import org.eclipse.persistence.internal.libraries.antlr.runtime.ANTLRStringStream;
-+import org.antlr.runtime.ANTLRStringStream;
- 
- /**
-  * This Stream is used when tokenizing JPQL queries
---- eclipselink-2.1.0.orig/org/eclipse/persistence/internal/jpa/parsing/jpql/InvalidIdentifierStartException.java
-+++ eclipselink-2.1.0/org/eclipse/persistence/internal/jpa/parsing/jpql/InvalidIdentifierStartException.java
+--- a/org/eclipse/persistence/internal/jpa/parsing/jpql/InvalidIdentifierStartException.java
++++ b/org/eclipse/persistence/internal/jpa/parsing/jpql/InvalidIdentifierStartException.java
 @@ -12,7 +12,7 @@
   ******************************************************************************/  
  package org.eclipse.persistence.internal.jpa.parsing.jpql;
@@ -50,9 +55,9 @@ Last-Update: 2010-07-07
  
  /*
   * This is a custom Exception class that is thrown from ANTLR JPQL code when we 
---- eclipselink-2.1.0.orig/org/eclipse/persistence/internal/jpa/parsing/jpql/JPQLParser.java
-+++ eclipselink-2.1.0/org/eclipse/persistence/internal/jpa/parsing/jpql/JPQLParser.java
-@@ -15,21 +15,21 @@ package org.eclipse.persistence.internal
+--- a/org/eclipse/persistence/internal/jpa/parsing/jpql/JPQLParser.java
++++ b/org/eclipse/persistence/internal/jpa/parsing/jpql/JPQLParser.java
+@@ -15,21 +15,21 @@
  import java.util.List;
  import java.util.ArrayList;
  
@@ -88,7 +93,7 @@ Last-Update: 2010-07-07
  
  //toplink imports
  import org.eclipse.persistence.exceptions.JPQLException;
-@@ -41,7 +41,7 @@ import org.eclipse.persistence.internal.
+@@ -41,7 +41,7 @@
  /**
   * EJBQLParser is the superclass of the ANTLR generated parser.
   */
@@ -97,44 +102,30 @@ Last-Update: 2010-07-07
  
      /** List of errors. */
      private List errors = new ArrayList();
---- eclipselink-2.1.0.orig/org/eclipse/persistence/internal/jpa/parsing/jpql/antlr/JPQLLexer.java
-+++ eclipselink-2.1.0/org/eclipse/persistence/internal/jpa/parsing/jpql/antlr/JPQLLexer.java
+--- a/org/eclipse/persistence/internal/jpa/parsing/jpql/antlr/JPQLLexer.java
++++ b/org/eclipse/persistence/internal/jpa/parsing/jpql/antlr/JPQLLexer.java
 @@ -5,7 +5,7 @@
      import org.eclipse.persistence.internal.jpa.parsing.jpql.InvalidIdentifierStartException;
  
  
 -import org.eclipse.persistence.internal.libraries.antlr.runtime.*;
-+import org.antlr.runtime.*;
++import org.antlr.runtime.*;
  
  public class JPQLLexer extends Lexer {
      public static final int EXPONENT=116;
-@@ -5144,4 +5145,4 @@ public class JPQLLexer extends Lexer {
-     }
-  
- 
--}
-\ No newline at end of file
-+}
---- eclipselink-2.1.0.orig/org/eclipse/persistence/internal/jpa/parsing/jpql/antlr/JPQLParser.java
-+++ eclipselink-2.1.0/org/eclipse/persistence/internal/jpa/parsing/jpql/antlr/JPQLParser.java
+--- a/org/eclipse/persistence/internal/jpa/parsing/jpql/antlr/JPQLParser.java
++++ b/org/eclipse/persistence/internal/jpa/parsing/jpql/antlr/JPQLParser.java
 @@ -9,7 +9,7 @@
      import org.eclipse.persistence.internal.jpa.parsing.jpql.InvalidIdentifierException;
  
  
 -import org.eclipse.persistence.internal.libraries.antlr.runtime.*;
 +import org.antlr.runtime.*;
+ 
  import java.util.Stack;
- import java.util.HashMap;
  /*******************************************************************************
-@@ -22082,4 +22082,4 @@ public class JPQLParser extends org.ecli
-     public static final BitSet FOLLOW_LEFT_ROUND_BRACKET_in_synpred13610 = new BitSet(new long[]{0x80ADD221601FC410L,0x000003FF9809338DL});
-     public static final BitSet FOLLOW_conditionalExpression_in_synpred13612 = new BitSet(new long[]{0x0000000000000002L});
- 
--}
-\ No newline at end of file
-+}
---- eclipselink-2.1.0.orig/org/eclipse/persistence/internal/jpa/parsing/jpql/antlr/JPQLParserBuilder.java
-+++ eclipselink-2.1.0/org/eclipse/persistence/internal/jpa/parsing/jpql/antlr/JPQLParserBuilder.java
+--- a/org/eclipse/persistence/internal/jpa/parsing/jpql/antlr/JPQLParserBuilder.java
++++ b/org/eclipse/persistence/internal/jpa/parsing/jpql/antlr/JPQLParserBuilder.java
 @@ -12,8 +12,8 @@
   ******************************************************************************/  
  package org.eclipse.persistence.internal.jpa.parsing.jpql.antlr;
@@ -146,3 +137,52 @@ Last-Update: 2010-07-07
  
  //eclipselink imports
  import org.eclipse.persistence.internal.jpa.parsing.jpql.CaseInsensitiveJPQLLexer;
+--- a/org/eclipse/persistence/internal/oxm/record/json/JSONLexer.java
++++ b/org/eclipse/persistence/internal/oxm/record/json/JSONLexer.java
+@@ -12,7 +12,7 @@
+  ******************************************************************************/
+ package org.eclipse.persistence.internal.oxm.record.json;
+ 
+-import org.eclipse.persistence.internal.libraries.antlr.runtime.*;
++import org.antlr.runtime.*;
+ 
+ class JSONLexer extends Lexer {
+     public static final int EOF=-1;
+--- a/org/eclipse/persistence/internal/oxm/record/json/JSONParser.java
++++ b/org/eclipse/persistence/internal/oxm/record/json/JSONParser.java
+@@ -12,8 +12,8 @@
+  ******************************************************************************/
+ package org.eclipse.persistence.internal.oxm.record.json;
+ 
+-import org.eclipse.persistence.internal.libraries.antlr.runtime.*;
+-import org.eclipse.persistence.internal.libraries.antlr.runtime.tree.*;
++import org.antlr.runtime.*;
++import org.antlr.runtime.tree.*;
+ 
+ class JSONParser extends Parser {
+     public static final String[] tokenNames = new String[] {
+--- a/org/eclipse/persistence/internal/oxm/record/json/JSONReader.java
++++ b/org/eclipse/persistence/internal/oxm/record/json/JSONReader.java
+@@ -27,14 +27,14 @@
+ import javax.xml.namespace.QName;
+ 
+ import org.eclipse.persistence.exceptions.XMLMarshalException;
+-import org.eclipse.persistence.internal.libraries.antlr.runtime.ANTLRInputStream;
+-import org.eclipse.persistence.internal.libraries.antlr.runtime.ANTLRReaderStream;
+-import org.eclipse.persistence.internal.libraries.antlr.runtime.CharStream;
+-import org.eclipse.persistence.internal.libraries.antlr.runtime.RecognitionException;
+-import org.eclipse.persistence.internal.libraries.antlr.runtime.TokenRewriteStream;
+-import org.eclipse.persistence.internal.libraries.antlr.runtime.TokenStream;
+-import org.eclipse.persistence.internal.libraries.antlr.runtime.tree.CommonTree;
+-import org.eclipse.persistence.internal.libraries.antlr.runtime.tree.Tree;
++import org.antlr.runtime.ANTLRInputStream;
++import org.antlr.runtime.ANTLRReaderStream;
++import org.antlr.runtime.CharStream;
++import org.antlr.runtime.RecognitionException;
++import org.antlr.runtime.TokenRewriteStream;
++import org.antlr.runtime.TokenStream;
++import org.antlr.runtime.tree.CommonTree;
++import org.antlr.runtime.tree.Tree;
+ import org.eclipse.persistence.internal.oxm.CollectionGroupingElementNodeValue;
+ import org.eclipse.persistence.internal.oxm.Constants;
+ import org.eclipse.persistence.internal.oxm.ContainerValue;
diff --git a/debian/patches/disable_asm_embedded_copy.diff b/debian/patches/disable_asm_embedded_copy.diff
index 579ae78..1d9043e 100644
--- a/debian/patches/disable_asm_embedded_copy.diff
+++ b/debian/patches/disable_asm_embedded_copy.diff
@@ -1,110 +1,176 @@
-Description: Remove reference to ASM 1.5 embedded copy
-Author: Miguel Landaeta <miguel at miguel.cc>
-Forwarded: no
-Last-Update: 2010-07-07
-
---- eclipselink-2.1.0.orig/org/eclipse/persistence/internal/jpa/metadata/accessors/objects/MetadataClass.java
-+++ eclipselink-2.1.0/org/eclipse/persistence/internal/jpa/metadata/accessors/objects/MetadataClass.java
-@@ -30,7 +30,7 @@ import java.util.Map;
- import java.util.Set;
- 
+--- a/org/eclipse/persistence/dynamic/DynamicClassWriter.java
++++ b/org/eclipse/persistence/dynamic/DynamicClassWriter.java
+@@ -25,41 +25,41 @@
+ import org.eclipse.persistence.internal.dynamic.DynamicEntityImpl;
+ import org.eclipse.persistence.internal.dynamic.DynamicPropertiesManager;
  import org.eclipse.persistence.internal.helper.Helper;
--import org.eclipse.persistence.internal.libraries.asm.Constants;
-+import org.objectweb.asm.Constants;
+-import org.eclipse.persistence.internal.libraries.asm.ClassWriter;
+-import org.eclipse.persistence.internal.libraries.asm.MethodVisitor;
+-import org.eclipse.persistence.internal.libraries.asm.Type;
++import org.objectweb.asm.ClassWriter;
++import org.objectweb.asm.MethodVisitor;
++import org.objectweb.asm.Type;
+ 
+ import static org.eclipse.persistence.internal.dynamic.DynamicPropertiesManager.PROPERTIES_MANAGER_FIELD;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.AASTORE;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.ACC_ENUM;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.ACC_FINAL;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.ACC_PRIVATE;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.ACC_PUBLIC;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.ACC_STATIC;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.ACC_SUPER;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.ACC_SYNTHETIC;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.ALOAD;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.ANEWARRAY;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.ARETURN;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.BIPUSH;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.SIPUSH;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.CHECKCAST;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.DUP;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.GETSTATIC;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.ICONST_0;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.ICONST_1;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.ICONST_2;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.ICONST_3;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.ICONST_4;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.ICONST_5;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.ILOAD;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.INVOKESPECIAL;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.INVOKESTATIC;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.INVOKEVIRTUAL;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.NEW;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.PUTSTATIC;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.RETURN;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.V1_5;
++import static org.objectweb.asm.Opcodes.AASTORE;
++import static org.objectweb.asm.Opcodes.ACC_ENUM;
++import static org.objectweb.asm.Opcodes.ACC_FINAL;
++import static org.objectweb.asm.Opcodes.ACC_PRIVATE;
++import static org.objectweb.asm.Opcodes.ACC_PUBLIC;
++import static org.objectweb.asm.Opcodes.ACC_STATIC;
++import static org.objectweb.asm.Opcodes.ACC_SUPER;
++import static org.objectweb.asm.Opcodes.ACC_SYNTHETIC;
++import static org.objectweb.asm.Opcodes.ALOAD;
++import static org.objectweb.asm.Opcodes.ANEWARRAY;
++import static org.objectweb.asm.Opcodes.ARETURN;
++import static org.objectweb.asm.Opcodes.BIPUSH;
++import static org.objectweb.asm.Opcodes.SIPUSH;
++import static org.objectweb.asm.Opcodes.CHECKCAST;
++import static org.objectweb.asm.Opcodes.DUP;
++import static org.objectweb.asm.Opcodes.GETSTATIC;
++import static org.objectweb.asm.Opcodes.ICONST_0;
++import static org.objectweb.asm.Opcodes.ICONST_1;
++import static org.objectweb.asm.Opcodes.ICONST_2;
++import static org.objectweb.asm.Opcodes.ICONST_3;
++import static org.objectweb.asm.Opcodes.ICONST_4;
++import static org.objectweb.asm.Opcodes.ICONST_5;
++import static org.objectweb.asm.Opcodes.ILOAD;
++import static org.objectweb.asm.Opcodes.INVOKESPECIAL;
++import static org.objectweb.asm.Opcodes.INVOKESTATIC;
++import static org.objectweb.asm.Opcodes.INVOKEVIRTUAL;
++import static org.objectweb.asm.Opcodes.NEW;
++import static org.objectweb.asm.Opcodes.PUTSTATIC;
++import static org.objectweb.asm.Opcodes.RETURN;
++import static org.objectweb.asm.Opcodes.V1_5;
  
  /**
-  * INTERNAL:
---- eclipselink-2.1.0.orig/org/eclipse/persistence/internal/jpa/metadata/accessors/objects/MetadataAsmFactory.java
-+++ eclipselink-2.1.0/org/eclipse/persistence/internal/jpa/metadata/accessors/objects/MetadataAsmFactory.java
-@@ -23,15 +23,15 @@ import java.util.Map;
+  * Write the byte codes of a dynamic entity class. The class writer will create
+--- a/org/eclipse/persistence/internal/dbws/SOAPResponseClassLoader.java
++++ b/org/eclipse/persistence/internal/dbws/SOAPResponseClassLoader.java
+@@ -18,14 +18,14 @@
+ // Java extension imports
+ 
+ // EclipseLink imports
+-import org.eclipse.persistence.internal.libraries.asm.ClassWriter;
+-import org.eclipse.persistence.internal.libraries.asm.MethodVisitor;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.ACC_PUBLIC;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.ACC_SUPER;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.ALOAD;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.INVOKESPECIAL;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.RETURN;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.V1_5;
++import org.objectweb.asm.ClassWriter;
++import org.objectweb.asm.MethodVisitor;
++import static org.objectweb.asm.Opcodes.ACC_PUBLIC;
++import static org.objectweb.asm.Opcodes.ACC_SUPER;
++import static org.objectweb.asm.Opcodes.ALOAD;
++import static org.objectweb.asm.Opcodes.INVOKESPECIAL;
++import static org.objectweb.asm.Opcodes.RETURN;
++import static org.objectweb.asm.Opcodes.V1_5;
+ 
+ /**
+  * <p><b>INTERNAL</b>: A subclass of {@link ClassLoader} that exposes a build method to the hidden
+--- a/org/eclipse/persistence/internal/jpa/metadata/MetadataDynamicClassWriter.java
++++ b/org/eclipse/persistence/internal/jpa/metadata/MetadataDynamicClassWriter.java
+@@ -13,20 +13,20 @@
+  ******************************************************************************/
+ package org.eclipse.persistence.internal.jpa.metadata;
+ 
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.ACC_PUBLIC;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.ALOAD;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.ARETURN;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.CHECKCAST;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.INVOKESPECIAL;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.POP;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.RETURN;
++import static org.objectweb.asm.Opcodes.ACC_PUBLIC;
++import static org.objectweb.asm.Opcodes.ALOAD;
++import static org.objectweb.asm.Opcodes.ARETURN;
++import static org.objectweb.asm.Opcodes.CHECKCAST;
++import static org.objectweb.asm.Opcodes.INVOKESPECIAL;
++import static org.objectweb.asm.Opcodes.POP;
++import static org.objectweb.asm.Opcodes.RETURN;
+ 
+ import org.eclipse.persistence.dynamic.DynamicClassWriter;
+ import org.eclipse.persistence.internal.helper.ClassConstants;
+ import org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.MappingAccessor;
+-import org.eclipse.persistence.internal.libraries.asm.ClassWriter;
+-import org.eclipse.persistence.internal.libraries.asm.MethodVisitor;
+-import org.eclipse.persistence.internal.libraries.asm.Type;
++import org.objectweb.asm.ClassWriter;
++import org.objectweb.asm.MethodVisitor;
++import org.objectweb.asm.Type;
+ 
+ /**
+  * Custom {@link DynamicClassWriter} adding getter methods for virtual
+--- a/org/eclipse/persistence/internal/jpa/metadata/accessors/objects/MetadataAsmFactory.java
++++ b/org/eclipse/persistence/internal/jpa/metadata/accessors/objects/MetadataAsmFactory.java
+@@ -28,14 +28,14 @@
  import org.eclipse.persistence.internal.helper.Helper;
  import org.eclipse.persistence.internal.jpa.metadata.MetadataDescriptor;
  import org.eclipse.persistence.internal.jpa.metadata.MetadataLogger;
+-import org.eclipse.persistence.internal.libraries.asm.AnnotationVisitor;
 -import org.eclipse.persistence.internal.libraries.asm.Attribute;
 -import org.eclipse.persistence.internal.libraries.asm.ClassReader;
 -import org.eclipse.persistence.internal.libraries.asm.ClassVisitor;
--import org.eclipse.persistence.internal.libraries.asm.CodeVisitor;
+-import org.eclipse.persistence.internal.libraries.asm.FieldVisitor;
+-import org.eclipse.persistence.internal.libraries.asm.MethodVisitor;
 -import org.eclipse.persistence.internal.libraries.asm.Type;
--import org.eclipse.persistence.internal.libraries.asm.attrs.Annotation;
--import org.eclipse.persistence.internal.libraries.asm.attrs.RuntimeVisibleAnnotations;
--import org.eclipse.persistence.internal.libraries.asm.attrs.RuntimeVisibleParameterAnnotations;
--import org.eclipse.persistence.internal.libraries.asm.attrs.SignatureAttribute;
+-import org.eclipse.persistence.internal.libraries.asm.commons.EmptyVisitor;
++import org.objectweb.asm.AnnotationVisitor;
 +import org.objectweb.asm.Attribute;
 +import org.objectweb.asm.ClassReader;
 +import org.objectweb.asm.ClassVisitor;
-+import org.objectweb.asm.CodeVisitor;
++import org.objectweb.asm.FieldVisitor;
++import org.objectweb.asm.MethodVisitor;
 +import org.objectweb.asm.Type;
-+import org.objectweb.asm.attrs.Annotation;
-+import org.objectweb.asm.attrs.RuntimeVisibleAnnotations;
-+import org.objectweb.asm.attrs.RuntimeVisibleParameterAnnotations;
-+import org.objectweb.asm.attrs.SignatureAttribute;
++import org.objectweb.asm.commons.EmptyVisitor;
  
  /**
-  * INTERNAL:
---- eclipselink-2.1.0.orig/org/eclipse/persistence/internal/jpa/weaving/ClassWeaver.java
-+++ eclipselink-2.1.0/org/eclipse/persistence/internal/jpa/weaving/ClassWeaver.java
-@@ -17,10 +17,10 @@ import java.util.*;
+  * INTERNAL: A metadata factory that uses ASM technology and no reflection
+--- a/org/eclipse/persistence/internal/jpa/metadata/accessors/objects/MetadataClass.java
++++ b/org/eclipse/persistence/internal/jpa/metadata/accessors/objects/MetadataClass.java
+@@ -32,7 +32,7 @@
+ import java.util.Set;
  
  import org.eclipse.persistence.internal.helper.Helper;
- import org.eclipse.persistence.internal.jpa.EntityManagerImpl;
--import org.eclipse.persistence.internal.libraries.asm.*;
--import org.eclipse.persistence.internal.libraries.asm.commons.*;
--import org.eclipse.persistence.internal.libraries.asm.attrs.RuntimeVisibleAnnotations;
--import org.eclipse.persistence.internal.libraries.asm.attrs.Annotation;
-+import org.objectweb.asm.*;
-+import org.objectweb.asm.commons.*;
-+import org.objectweb.asm.attrs.RuntimeVisibleAnnotations;
-+import org.objectweb.asm.attrs.Annotation;
+-import org.eclipse.persistence.internal.libraries.asm.Opcodes;
++import org.objectweb.asm.Opcodes;
  
  /**
   * INTERNAL:
-@@ -82,7 +82,7 @@ public class ClassWeaver extends ClassAd
-     /** Stores information on the class gathered from the temp class loader and descriptor. */
-     protected ClassDetails classDetails;
-     /** Used to generate the serialization serial UUID based on the original class. */
--    protected SerialVersionUIDAdder uuidGenerator;
-+    protected EclipseLinkSerialVersionUIDAdder uuidGenerator;
-     
-     // Keep track of what was weaved.
-     protected boolean alreadyWeaved = false;
-@@ -182,7 +182,7 @@ public class ClassWeaver extends ClassAd
-     public ClassWeaver(ClassWriter classWriter, ClassDetails classDetails) {
-         super(classWriter);
-         this.classDetails = classDetails;
--        this.uuidGenerator = new SerialVersionUIDAdder(classWriter);
-+        this.uuidGenerator = new EclipseLinkSerialVersionUIDAdder(classWriter);
-     }
- 
-     /**
-@@ -1349,3 +1349,26 @@ public class ClassWeaver extends ClassAd
-         super.visitEnd();
-     }
- }
-+
-+/**
-+ * INTERNAL:
-+ * Just a hack to access some protected methods in org.objectweb.asm.SerialVersionUIDAdder class.
-+ * This is necessary because in the embedded copy of ASM library those method
-+ * were declared public but in the proper library those are declared as
-+ * protected.
-+ * @see org.objectweb.asm.SerialVersionUIDAdder
-+ */
-+class EclipseLinkSerialVersionUIDAdder extends SerialVersionUIDAdder {
-+
-+    public EclipseLinkSerialVersionUIDAdder(ClassVisitor cv) {
-+        super(cv);
-+    }
-+
-+    public boolean hasSVUID() {
-+        return hasSVUID();
-+    }
-+
-+    public long computeSVUID() {
-+        return computeSVUID();
-+    }
-+}
---- eclipselink-2.1.0.orig/org/eclipse/persistence/internal/jpa/weaving/AttributeDetails.java
-+++ eclipselink-2.1.0/org/eclipse/persistence/internal/jpa/weaving/AttributeDetails.java
+--- a/org/eclipse/persistence/internal/jpa/weaving/AttributeDetails.java
++++ b/org/eclipse/persistence/internal/jpa/weaving/AttributeDetails.java
 @@ -12,7 +12,7 @@
   ******************************************************************************/  
  package org.eclipse.persistence.internal.jpa.weaving;
@@ -114,252 +180,188 @@ Last-Update: 2010-07-07
  
  import org.eclipse.persistence.mappings.DatabaseMapping;
  
---- eclipselink-2.1.0.orig/org/eclipse/persistence/internal/jpa/weaving/MethodWeaver.java
-+++ eclipselink-2.1.0/org/eclipse/persistence/internal/jpa/weaving/MethodWeaver.java
-@@ -13,7 +13,7 @@
-  package org.eclipse.persistence.internal.jpa.weaving;
+--- a/org/eclipse/persistence/internal/jpa/weaving/ClassWeaver.java
++++ b/org/eclipse/persistence/internal/jpa/weaving/ClassWeaver.java
+@@ -20,14 +20,14 @@
+ import java.util.Iterator;
+ 
+ import org.eclipse.persistence.internal.helper.Helper;
+-import org.eclipse.persistence.internal.libraries.asm.ClassWriter;
+-import org.eclipse.persistence.internal.libraries.asm.FieldVisitor;
+-import org.eclipse.persistence.internal.libraries.asm.Label;
+-import org.eclipse.persistence.internal.libraries.asm.MethodVisitor;
+-import org.eclipse.persistence.internal.libraries.asm.Opcodes;
+-import org.eclipse.persistence.internal.libraries.asm.Type;
+-import org.eclipse.persistence.internal.libraries.asm.commons.SerialVersionUIDAdder;
+-import org.eclipse.persistence.internal.libraries.asm.signature.SignatureReader;
++import org.objectweb.asm.ClassWriter;
++import org.objectweb.asm.FieldVisitor;
++import org.objectweb.asm.Label;
++import org.objectweb.asm.MethodVisitor;
++import org.objectweb.asm.Opcodes;
++import org.objectweb.asm.Type;
++import org.objectweb.asm.commons.SerialVersionUIDAdder;
++import org.objectweb.asm.signature.SignatureReader;
+ 
+ /**
+  * INTERNAL: Weaves classes to allow them to support EclipseLink indirection.
+--- a/org/eclipse/persistence/internal/jpa/weaving/ComputeClassWriter.java
++++ b/org/eclipse/persistence/internal/jpa/weaving/ComputeClassWriter.java
+@@ -33,9 +33,9 @@
+ import java.io.IOException;
+ import java.io.InputStream;
+ 
+-import org.eclipse.persistence.internal.libraries.asm.ClassReader;
+-import org.eclipse.persistence.internal.libraries.asm.ClassWriter;
+-import org.eclipse.persistence.internal.libraries.asm.Opcodes;
++import org.objectweb.asm.ClassReader;
++import org.objectweb.asm.ClassWriter;
++import org.objectweb.asm.Opcodes;
+ 
+ /**
+  * A ClassWriter that computes the common super class of two classes without
+--- a/org/eclipse/persistence/internal/jpa/weaving/MethodWeaver.java
++++ b/org/eclipse/persistence/internal/jpa/weaving/MethodWeaver.java
+@@ -14,7 +14,7 @@
  
  //ASM imports
+ import org.eclipse.persistence.internal.descriptors.VirtualAttributeMethodInfo;
 -import org.eclipse.persistence.internal.libraries.asm.*;
 +import org.objectweb.asm.*;
  
  /**
   * Processes all the methods of a class to weave in persistence code such as,
---- eclipselink-2.1.0.orig/org/eclipse/persistence/internal/jpa/weaving/PersistenceWeaver.java
-+++ eclipselink-2.1.0/org/eclipse/persistence/internal/jpa/weaving/PersistenceWeaver.java
-@@ -23,8 +23,8 @@ import javax.persistence.spi.ClassTransf
+--- a/org/eclipse/persistence/internal/jpa/weaving/PersistenceWeaver.java
++++ b/org/eclipse/persistence/internal/jpa/weaving/PersistenceWeaver.java
+@@ -21,8 +21,8 @@
  
- // ASM imports
  import org.eclipse.persistence.config.SystemProperties;
--import org.eclipse.persistence.internal.libraries.asm.*;
--import org.eclipse.persistence.internal.libraries.asm.attrs.Attributes;
-+import org.objectweb.asm.*;
-+import org.objectweb.asm.attrs.Attributes;
- 
- // TopLink imports
+ import org.eclipse.persistence.internal.helper.Helper;
+-import org.eclipse.persistence.internal.libraries.asm.ClassReader;
+-import org.eclipse.persistence.internal.libraries.asm.ClassWriter;
++import org.objectweb.asm.ClassReader;
++import org.objectweb.asm.ClassWriter;
  import org.eclipse.persistence.internal.sessions.AbstractSession;
---- eclipselink-2.1.0.orig/org/eclipse/persistence/internal/jpa/weaving/TransformerFactory.java
-+++ eclipselink-2.1.0/org/eclipse/persistence/internal/jpa/weaving/TransformerFactory.java
-@@ -14,7 +14,7 @@ package org.eclipse.persistence.internal
- 
- import java.util.*;
- 
+ import org.eclipse.persistence.logging.SessionLog;
+ import org.eclipse.persistence.sessions.Session;
+--- a/org/eclipse/persistence/internal/jpa/weaving/RestAdapterClassWriter.java
++++ b/org/eclipse/persistence/internal/jpa/weaving/RestAdapterClassWriter.java
+@@ -14,9 +14,9 @@
+ 
+ import org.eclipse.persistence.dynamic.DynamicClassLoader;
+ import org.eclipse.persistence.dynamic.EclipseLinkClassWriter;
+-import org.eclipse.persistence.internal.libraries.asm.ClassWriter;
+-import org.eclipse.persistence.internal.libraries.asm.MethodVisitor;
+-import org.eclipse.persistence.internal.libraries.asm.Opcodes;
++import org.objectweb.asm.ClassWriter;
++import org.objectweb.asm.MethodVisitor;
++import org.objectweb.asm.Opcodes;
+ 
+ public class RestAdapterClassWriter implements EclipseLinkClassWriter, Opcodes {
+ 
+--- a/org/eclipse/persistence/internal/jpa/weaving/TransformerFactory.java
++++ b/org/eclipse/persistence/internal/jpa/weaving/TransformerFactory.java
+@@ -31,7 +31,7 @@
+ import org.eclipse.persistence.internal.jpa.metadata.accessors.objects.MetadataClass;
+ import org.eclipse.persistence.internal.jpa.metadata.accessors.objects.MetadataField;
+ import org.eclipse.persistence.internal.jpa.metadata.accessors.objects.MetadataMethod;
 -import org.eclipse.persistence.internal.libraries.asm.Type;
 +import org.objectweb.asm.Type;
- 
- import org.eclipse.persistence.indirection.ValueHolderInterface;
+ import org.eclipse.persistence.internal.sessions.AbstractSession;
+ import org.eclipse.persistence.internal.weaving.PersistenceWeavedChangeTracking;
  import org.eclipse.persistence.logging.SessionLog;
---- eclipselink-2.1.0.orig/org/eclipse/persistence/internal/dbws/SOAPResponseClassLoader.java
-+++ eclipselink-2.1.0/org/eclipse/persistence/internal/dbws/SOAPResponseClassLoader.java
-@@ -18,14 +18,14 @@ package org.eclipse.persistence.internal
- // Java extension imports
- 
- // EclipseLink imports
--import org.eclipse.persistence.internal.libraries.asm.ClassWriter;
--import org.eclipse.persistence.internal.libraries.asm.CodeVisitor;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.ACC_PUBLIC;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.ACC_SUPER;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.ALOAD;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.INVOKESPECIAL;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.RETURN;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.V1_5;
-+import org.objectweb.asm.ClassWriter;
-+import org.objectweb.asm.CodeVisitor;
-+import static org.objectweb.asm.Constants.ACC_PUBLIC;
-+import static org.objectweb.asm.Constants.ACC_SUPER;
-+import static org.objectweb.asm.Constants.ALOAD;
-+import static org.objectweb.asm.Constants.INVOKESPECIAL;
-+import static org.objectweb.asm.Constants.RETURN;
-+import static org.objectweb.asm.Constants.V1_5;
- 
- /**
-  * <p><b>INTERNAL</b>: A subclass of {@link ClassLoader} that exposes a build method to the hidden
---- eclipselink-2.1.3.orig/org/eclipse/persistence/internal/xr/XRClassWriter.java
-+++ eclipselink-2.1.3/org/eclipse/persistence/internal/xr/XRClassWriter.java
-@@ -17,21 +17,21 @@ package org.eclipse.persistence.internal
+--- a/org/eclipse/persistence/internal/xr/XRClassWriter.java
++++ b/org/eclipse/persistence/internal/xr/XRClassWriter.java
+@@ -17,21 +17,21 @@
  //EclipseLink imports
  import org.eclipse.persistence.dynamic.DynamicClassLoader;
  import org.eclipse.persistence.dynamic.DynamicClassWriter;
 -import org.eclipse.persistence.internal.libraries.asm.ClassWriter;
--import org.eclipse.persistence.internal.libraries.asm.CodeVisitor;
+-import org.eclipse.persistence.internal.libraries.asm.MethodVisitor;
 +import org.objectweb.asm.ClassWriter;
-+import org.objectweb.asm.CodeVisitor;
- import org.eclipse.persistence.internal.xr.XRFieldInfo;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.ACC_PUBLIC;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.ACC_STATIC;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.ACC_SUPER;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.ALOAD;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.ARETURN;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.DUP;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.GETSTATIC;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.INVOKESPECIAL;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.NEW;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.PUTSTATIC;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.RETURN;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.V1_5;
-+import static org.objectweb.asm.Constants.ACC_PUBLIC;
-+import static org.objectweb.asm.Constants.ACC_STATIC;
-+import static org.objectweb.asm.Constants.ACC_SUPER;
-+import static org.objectweb.asm.Constants.ALOAD;
-+import static org.objectweb.asm.Constants.ARETURN;
-+import static org.objectweb.asm.Constants.DUP;
-+import static org.objectweb.asm.Constants.GETSTATIC;
-+import static org.objectweb.asm.Constants.INVOKESPECIAL;
-+import static org.objectweb.asm.Constants.NEW;
-+import static org.objectweb.asm.Constants.PUTSTATIC;
-+import static org.objectweb.asm.Constants.RETURN;
-+import static org.objectweb.asm.Constants.V1_5;
++import org.objectweb.asm.MethodVisitor;
+ import static org.eclipse.persistence.internal.dynamic.DynamicPropertiesManager.PROPERTIES_MANAGER_FIELD;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.ACC_PUBLIC;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.ACC_STATIC;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.ACC_SUPER;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.ALOAD;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.ARETURN;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.DUP;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.GETSTATIC;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.INVOKESPECIAL;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.NEW;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.PUTSTATIC;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.RETURN;
+-import static org.eclipse.persistence.internal.libraries.asm.Opcodes.V1_5;
++import static org.objectweb.asm.Opcodes.ACC_PUBLIC;
++import static org.objectweb.asm.Opcodes.ACC_STATIC;
++import static org.objectweb.asm.Opcodes.ACC_SUPER;
++import static org.objectweb.asm.Opcodes.ALOAD;
++import static org.objectweb.asm.Opcodes.ARETURN;
++import static org.objectweb.asm.Opcodes.DUP;
++import static org.objectweb.asm.Opcodes.GETSTATIC;
++import static org.objectweb.asm.Opcodes.INVOKESPECIAL;
++import static org.objectweb.asm.Opcodes.NEW;
++import static org.objectweb.asm.Opcodes.PUTSTATIC;
++import static org.objectweb.asm.Opcodes.RETURN;
++import static org.objectweb.asm.Opcodes.V1_5;
  import static org.eclipse.persistence.internal.xr.XRDynamicClassLoader.COLLECTION_WRAPPER_SUFFIX;
- import static org.eclipse.persistence.internal.xr.XRDynamicEntity.XR_FIELD_INFO_STATIC;
  
-@@ -124,4 +124,4 @@ public class XRClassWriter extends Dynam
-         cw.visitEnd();
-         return cw.toByteArray();
-     }
--}
-\ No newline at end of file
-+}
---- eclipselink-2.1.0.orig/org/eclipse/persistence/jaxb/compiler/AnnotationsProcessor.java
-+++ eclipselink-2.1.0/org/eclipse/persistence/jaxb/compiler/AnnotationsProcessor.java
-@@ -71,15 +71,15 @@ import org.eclipse.persistence.internal.
- import org.eclipse.persistence.internal.helper.ClassConstants;
- import org.eclipse.persistence.internal.helper.ConversionManager;
- import org.eclipse.persistence.internal.jaxb.JaxbClassLoader;
+ /**
+--- a/org/eclipse/persistence/jaxb/compiler/AnnotationsProcessor.java
++++ b/org/eclipse/persistence/jaxb/compiler/AnnotationsProcessor.java
+@@ -82,13 +82,13 @@
+ import org.eclipse.persistence.internal.jaxb.many.ManyValue;
+ import org.eclipse.persistence.internal.jaxb.many.MultiDimensionalArrayValue;
+ import org.eclipse.persistence.internal.jaxb.many.MultiDimensionalCollectionValue;
+-import org.eclipse.persistence.internal.libraries.asm.AnnotationVisitor;
 -import org.eclipse.persistence.internal.libraries.asm.ClassWriter;
--import org.eclipse.persistence.internal.libraries.asm.CodeVisitor;
--import org.eclipse.persistence.internal.libraries.asm.Constants;
+-import org.eclipse.persistence.internal.libraries.asm.FieldVisitor;
+-import org.eclipse.persistence.internal.libraries.asm.MethodVisitor;
+-import org.eclipse.persistence.internal.libraries.asm.Opcodes;
 -import org.eclipse.persistence.internal.libraries.asm.Label;
 -import org.eclipse.persistence.internal.libraries.asm.Type;
--import org.eclipse.persistence.internal.libraries.asm.attrs.Annotation;
--import org.eclipse.persistence.internal.libraries.asm.attrs.LocalVariableTypeTableAttribute;
--import org.eclipse.persistence.internal.libraries.asm.attrs.RuntimeVisibleAnnotations;
--import org.eclipse.persistence.internal.libraries.asm.attrs.SignatureAttribute;
++import org.objectweb.asm.AnnotationVisitor;
 +import org.objectweb.asm.ClassWriter;
-+import org.objectweb.asm.CodeVisitor;
-+import org.objectweb.asm.Constants;
++import org.objectweb.asm.FieldVisitor;
++import org.objectweb.asm.MethodVisitor;
++import org.objectweb.asm.Opcodes;
 +import org.objectweb.asm.Label;
 +import org.objectweb.asm.Type;
-+import org.objectweb.asm.attrs.Annotation;
-+import org.objectweb.asm.attrs.LocalVariableTypeTableAttribute;
-+import org.objectweb.asm.attrs.RuntimeVisibleAnnotations;
-+import org.objectweb.asm.attrs.SignatureAttribute;
+ import org.eclipse.persistence.internal.oxm.Constants;
+ import org.eclipse.persistence.internal.oxm.Namespace;
  import org.eclipse.persistence.internal.oxm.XMLConversionManager;
- import org.eclipse.persistence.internal.security.PrivilegedAccessHelper;
- import org.eclipse.persistence.jaxb.TypeMappingInfo;
---- eclipselink-2.1.0.orig/org/eclipse/persistence/jaxb/compiler/MappingsGenerator.java
-+++ eclipselink-2.1.0/org/eclipse/persistence/jaxb/compiler/MappingsGenerator.java
-@@ -72,8 +72,8 @@ import org.eclipse.persistence.internal.
+--- a/org/eclipse/persistence/jaxb/compiler/MappingsGenerator.java
++++ b/org/eclipse/persistence/jaxb/compiler/MappingsGenerator.java
+@@ -72,10 +72,10 @@
+ import org.eclipse.persistence.internal.jaxb.many.ManyValue;
+ import org.eclipse.persistence.internal.jaxb.many.MapValue;
  import org.eclipse.persistence.internal.jaxb.many.MapValueAttributeAccessor;
- import org.eclipse.persistence.sessions.Project;
- 
--import org.eclipse.persistence.internal.libraries.asm.*;
--import org.eclipse.persistence.internal.libraries.asm.attrs.SignatureAttribute;
-+import org.objectweb.asm.*;
-+import org.objectweb.asm.attrs.SignatureAttribute;
- import org.eclipse.persistence.internal.oxm.XMLConversionManager;
- import org.eclipse.persistence.internal.queries.ContainerPolicy;
- import org.eclipse.persistence.internal.security.PrivilegedAccessHelper;
-@@ -2386,7 +2386,7 @@ public class MappingsGenerator {
-     }
- 
-     public Class generateWrapperClass(String className, String attributeType, boolean isList, QName theQName) {
--        org.eclipse.persistence.internal.libraries.asm.ClassWriter cw = new org.eclipse.persistence.internal.libraries.asm.ClassWriter(false);
-+        org.objectweb.asm.ClassWriter cw = new org.objectweb.asm.ClassWriter(false);
+-import org.eclipse.persistence.internal.libraries.asm.ClassWriter;
+-import org.eclipse.persistence.internal.libraries.asm.MethodVisitor;
+-import org.eclipse.persistence.internal.libraries.asm.Opcodes;
+-import org.eclipse.persistence.internal.libraries.asm.Type;
++import org.objectweb.asm.ClassWriter;
++import org.objectweb.asm.MethodVisitor;
++import org.objectweb.asm.Opcodes;
++import org.objectweb.asm.Type;
+ import org.eclipse.persistence.internal.oxm.Constants;
  
-         CodeVisitor cv;
-         cw.visit(Constants.V1_5, Constants.ACC_PUBLIC, className.replace(".", "/"), org.eclipse.persistence.internal.libraries.asm.Type.getType(WrappedValue.class).getInternalName(), new String[0], null);
---- eclipselink-2.1.0.orig/org/eclipse/persistence/sdo/helper/DynamicClassWriter.java
-+++ eclipselink-2.1.0/org/eclipse/persistence/sdo/helper/DynamicClassWriter.java
-@@ -25,10 +25,10 @@ import org.eclipse.persistence.sdo.SDODa
+ import org.eclipse.persistence.internal.oxm.NamespaceResolver;
+--- a/org/eclipse/persistence/sdo/helper/DynamicClassWriter.java
++++ b/org/eclipse/persistence/sdo/helper/DynamicClassWriter.java
+@@ -25,10 +25,10 @@
  import org.eclipse.persistence.sdo.SDOProperty;
  import org.eclipse.persistence.sdo.SDOType;
  import org.eclipse.persistence.sdo.helper.extension.SDOUtil;
 -import org.eclipse.persistence.internal.libraries.asm.ClassWriter;
--import org.eclipse.persistence.internal.libraries.asm.CodeVisitor;
--import org.eclipse.persistence.internal.libraries.asm.Constants;
+-import org.eclipse.persistence.internal.libraries.asm.MethodVisitor;
+-import org.eclipse.persistence.internal.libraries.asm.Opcodes;
 -import org.eclipse.persistence.internal.libraries.asm.Type;
 +import org.objectweb.asm.ClassWriter;
-+import org.objectweb.asm.CodeVisitor;
-+import org.objectweb.asm.Constants;
++import org.objectweb.asm.MethodVisitor;
++import org.objectweb.asm.Opcodes;
 +import org.objectweb.asm.Type;
  import org.eclipse.persistence.internal.security.PrivilegedAccessHelper;
  
  import commonj.sdo.helper.HelperContext;
---- eclipselink-2.1.0.orig/org/eclipse/persistence/dynamic/DynamicClassWriter.java
-+++ eclipselink-2.1.0/org/eclipse/persistence/dynamic/DynamicClassWriter.java
-@@ -27,41 +27,41 @@ import org.eclipse.persistence.dynamic.D
- import org.eclipse.persistence.exceptions.DynamicException;
- import org.eclipse.persistence.internal.dynamic.DynamicEntityImpl;
- import org.eclipse.persistence.internal.helper.Helper;
--import org.eclipse.persistence.internal.libraries.asm.ClassWriter;
--import org.eclipse.persistence.internal.libraries.asm.CodeVisitor;
--import org.eclipse.persistence.internal.libraries.asm.Type;
--import org.eclipse.persistence.internal.libraries.asm.attrs.SignatureAttribute;
-+import org.objectweb.asm.ClassWriter;
-+import org.objectweb.asm.CodeVisitor;
-+import org.objectweb.asm.Type;
-+import org.objectweb.asm.attrs.SignatureAttribute;
- 
--import static org.eclipse.persistence.internal.libraries.asm.Constants.AASTORE;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.ACC_ENUM;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.ACC_FINAL;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.ACC_PRIVATE;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.ACC_PROTECTED;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.ACC_PUBLIC;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.ACC_STATIC;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.ACC_SUPER;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.ACC_SYNTHETIC;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.ALOAD;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.ANEWARRAY;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.ARETURN;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.BIPUSH;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.CHECKCAST;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.DUP;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.GETSTATIC;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.ICONST_0;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.ICONST_1;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.ICONST_2;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.ICONST_3;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.ICONST_4;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.ICONST_5;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.ILOAD;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.INVOKESPECIAL;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.INVOKESTATIC;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.INVOKEVIRTUAL;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.NEW;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.PUTSTATIC;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.RETURN;
--import static org.eclipse.persistence.internal.libraries.asm.Constants.V1_5;
-+import static org.objectweb.asm.Constants.AASTORE;
-+import static org.objectweb.asm.Constants.ACC_ENUM;
-+import static org.objectweb.asm.Constants.ACC_FINAL;
-+import static org.objectweb.asm.Constants.ACC_PRIVATE;
-+import static org.objectweb.asm.Constants.ACC_PROTECTED;
-+import static org.objectweb.asm.Constants.ACC_PUBLIC;
-+import static org.objectweb.asm.Constants.ACC_STATIC;
-+import static org.objectweb.asm.Constants.ACC_SUPER;
-+import static org.objectweb.asm.Constants.ACC_SYNTHETIC;
-+import static org.objectweb.asm.Constants.ALOAD;
-+import static org.objectweb.asm.Constants.ANEWARRAY;
-+import static org.objectweb.asm.Constants.ARETURN;
-+import static org.objectweb.asm.Constants.BIPUSH;
-+import static org.objectweb.asm.Constants.CHECKCAST;
-+import static org.objectweb.asm.Constants.DUP;
-+import static org.objectweb.asm.Constants.GETSTATIC;
-+import static org.objectweb.asm.Constants.ICONST_0;
-+import static org.objectweb.asm.Constants.ICONST_1;
-+import static org.objectweb.asm.Constants.ICONST_2;
-+import static org.objectweb.asm.Constants.ICONST_3;
-+import static org.objectweb.asm.Constants.ICONST_4;
-+import static org.objectweb.asm.Constants.ICONST_5;
-+import static org.objectweb.asm.Constants.ILOAD;
-+import static org.objectweb.asm.Constants.INVOKESPECIAL;
-+import static org.objectweb.asm.Constants.INVOKESTATIC;
-+import static org.objectweb.asm.Constants.INVOKEVIRTUAL;
-+import static org.objectweb.asm.Constants.NEW;
-+import static org.objectweb.asm.Constants.PUTSTATIC;
-+import static org.objectweb.asm.Constants.RETURN;
-+import static org.objectweb.asm.Constants.V1_5;
- 
- /**
-  * Write the byte codes of a dynamic entity class. The class writer will create
diff --git a/debian/patches/java7-compat.diff b/debian/patches/java7-compat.diff
deleted file mode 100644
index 77706a6..0000000
--- a/debian/patches/java7-compat.diff
+++ /dev/null
@@ -1,20 +0,0 @@
-Description: FTBFS with Java7 as default-java due to an API change in Java's SQL libraries
-Author: Niels Thykier <niels at thykier.net>
-Bug-Debian: http://bugs.debian.org/678288
-Forwarded: no
-Last-Update: <2012-06-20>
-
---- eclipselink-2.1.3.orig/org/eclipse/persistence/internal/jpa/jdbc/DataSourceImpl.java
-+++ eclipselink-2.1.3/org/eclipse/persistence/internal/jpa/jdbc/DataSourceImpl.java
-@@ -154,4 +154,11 @@ public class DataSourceImpl implements DataSource {
-         return false;
-     }
- 
-+    /*
-+     * Java7 compat.
-+     */
-+    public java.util.logging.Logger getParentLogger() throws java.sql.SQLFeatureNotSupportedException {
-+        throw new java.sql.SQLFeatureNotSupportedException();
-+    }
-+
- }
diff --git a/debian/patches/series b/debian/patches/series
index cdad540..78b2c3c 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,4 +1,5 @@
+charset.patch
+cast.patch
+typeparameters.patch
 disable_antlr3_embedded_copy.diff
 disable_asm_embedded_copy.diff
-antlr32.diff
-java7-compat.diff
diff --git a/debian/patches/typeparameters.patch b/debian/patches/typeparameters.patch
new file mode 100644
index 0000000..9abef31
--- /dev/null
+++ b/debian/patches/typeparameters.patch
@@ -0,0 +1,11 @@
+--- a/org/eclipse/persistence/internal/oxm/XMLMarshaller.java
++++ b/org/eclipse/persistence/internal/oxm/XMLMarshaller.java
+@@ -69,7 +69,7 @@
+ public abstract class XMLMarshaller<
+     ABSTRACT_SESSION extends CoreAbstractSession,
+     CONTEXT extends Context<ABSTRACT_SESSION, DESCRIPTOR, ?, ?, ?, ?, ?>,
+-    DESCRIPTOR extends Descriptor,
++    DESCRIPTOR extends Descriptor<?,?,?,?,?,?,?,?,?>,
+     MEDIA_TYPE extends MediaType,
+     NAMESPACE_PREFIX_MAPPER extends NamespacePrefixMapper,
+     OBJECT_BUILDER extends ObjectBuilder<?, ABSTRACT_SESSION, ?, XMLMarshaller>> extends Marshaller<CONTEXT, MEDIA_TYPE, NAMESPACE_PREFIX_MAPPER> {
diff --git a/debian/rules b/debian/rules
index 8a8e6f0..f48fe26 100755
--- a/debian/rules
+++ b/debian/rules
@@ -6,17 +6,11 @@ export JAVA_HOME=/usr/lib/jvm/default-java
 	dh --with javahelper $@
 
 override_dh_auto_build:
-	# Use upstream JPQL.g (copied to debian/) to rebuild JPQL lexer using ANTLR 3.2
-	antlr3 -fo org/eclipse/persistence/internal/jpa/parsing/jpql/antlr/ debian/JPQL.g
 	ant -f debian/build.xml
 
 override_dh_auto_clean:
 	ant -f debian/build.xml clean
 
-override_jh_installlibs:
-	jh_installlibs
-	jh_manifest -v
-
 get-orig-source:
 	cd $(dir $(firstword $(MAKEFILE_LIST)))../ && \
 	uscan \

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/eclipselink.git



More information about the pkg-java-commits mailing list