openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Dick <michael.d.d...@gmail.com>
Subject Re: svn commit: r750788 - in /openjpa/trunk: openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/ openjpa-persistence/src/main/java/org/apache/openjpa/persistence/ openjpa-persistence/src/main/resources/org/apache/openjpa/persistenc
Date Fri, 06 Mar 2009 16:20:02 GMT
Should be fixed now. JIRA *should* sync up properly.

-mike

On Fri, Mar 6, 2009 at 9:38 AM, Michael Dick <michael.d.dick@gmail.com>wrote:

> I didn't think this could be done until Donald mentioned it, but apparently
> it can be done [1], [2].
>
> [1] http://subversion.tigris.org/faq.html#change-log-msg
> [2] http://www.mail-archive.com/dev@forrest.apache.org/msg13378.html
>
> -mike
>
> On Fri, Mar 6, 2009 at 7:53 AM, Donald Woods <dwoods@apache.org> wrote:
>
>> Can you update the svn log to refer to OPENJPA-960 instead?
>>
>>
>> -Donald
>>
>>
>>
>> ppoddar@apache.org wrote:
>>
>>> Author: ppoddar
>>> Date: Fri Mar  6 07:08:20 2009
>>> New Revision: 750788
>>>
>>> URL: http://svn.apache.org/viewvc?rev=750788&view=rev
>>> Log:
>>> OPENJPA-966: Support unwrap() for JPA 2.0
>>>
>>> Added:
>>>
>>>  openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/TestUnwrap.java
>>> Modified:
>>>
>>>  openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
>>>
>>>  openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java
>>>
>>>  openjpa/trunk/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/localizer.properties
>>>
>>> Added:
>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/TestUnwrap.java
>>> URL:
>>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/TestUnwrap.java?rev=750788&view=auto
>>>
>>> ==============================================================================
>>> ---
>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/TestUnwrap.java
>>> (added)
>>> +++
>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/TestUnwrap.java
>>> Fri Mar  6 07:08:20 2009
>>> @@ -0,0 +1,68 @@
>>> +/*
>>> + * Licensed to the Apache Software Foundation (ASF) under one
>>> + * or more contributor license agreements.  See the NOTICE file
>>> + * distributed with this work for additional information
>>> + * regarding copyright ownership.  The ASF licenses this file
>>> + * to you under the Apache License, Version 2.0 (the
>>> + * "License"); you may not use this file except in compliance
>>> + * with the License.  You may obtain a copy of the License at
>>> + *
>>> + * http://www.apache.org/licenses/LICENSE-2.0
>>> + *
>>> + * Unless required by applicable law or agreed to in writing,
>>> + * software distributed under the License is distributed on an
>>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>>> + * KIND, either express or implied.  See the License for the
>>> + * specific language governing permissions and limitations
>>> + * under the License.
>>> + */
>>> +package org.apache.openjpa.persistence;
>>> +
>>> +import javax.persistence.EntityManager;
>>> +import javax.persistence.Query;
>>> +
>>> +import org.apache.openjpa.kernel.QueryLanguages;
>>> +import org.apache.openjpa.persistence.test.SingleEMFTestCase;
>>> +
>>> +public class TestUnwrap extends SingleEMFTestCase {
>>> +    +    /**
>>> +     * Tests a query can be unwrapped as an instance of a series of
>>> class or +     * interface. +     */
>>> +    public void testValidQueryUnwrap() {
>>> +        OpenJPAEntityManager em = emf.createEntityManager();
>>> +        Query query = em.createQuery(QueryLanguages.LANG_SQL,"");
>>> +        +        Class[] validCasts = new Class[] {
>>> +            org.apache.openjpa.persistence.OpenJPAQuery.class,
>>> +            org.apache.openjpa.persistence.OpenJPAQuerySPI.class,
>>> +            org.apache.openjpa.kernel.DelegatingQuery.class,
>>> +            org.apache.openjpa.kernel.Query.class,
>>> +            org.apache.openjpa.kernel.QueryImpl.class
>>> +        };
>>> +        for (Class c : validCasts) {
>>> +            Object unwrapped = query.unwrap(c);
>>> +            assertTrue(c.isInstance(unwrapped));
>>> +        }
>>> +    }
>>> +
>>> +    /**
>>> +     * Tests a EntityManager can be unwrapped as an instance of a series
>>> of +     * class or interface. +     */
>>> +    public void testValidEntityManagerUnwrap() {
>>> +        EntityManager em = emf.createEntityManager();
>>> +        +        Class[] validCasts = new Class[] {
>>> +            org.apache.openjpa.persistence.OpenJPAEntityManager.class,
>>> +
>>>  org.apache.openjpa.persistence.OpenJPAEntityManagerSPI.class,
>>> +            org.apache.openjpa.kernel.DelegatingBroker.class,
>>> +            org.apache.openjpa.kernel.Broker.class
>>> +        };
>>> +        for (Class c : validCasts) {
>>> +            Object unwrapped = em.unwrap(c);
>>> +            assertTrue(c.isInstance(unwrapped));
>>> +        }
>>> +    }
>>> +}
>>>
>>> Modified:
>>> openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
>>> URL:
>>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java?rev=750788&r1=750787&r2=750788&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
>>> (original)
>>> +++
>>> openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/EntityManagerImpl.java
>>> Fri Mar  6 07:08:20 2009
>>> @@ -1525,8 +1525,14 @@
>>>     }
>>>       public <T> T unwrap(Class<T> cls) {
>>> -        throw new UnsupportedOperationException(
>>> -            "JPA 2.0 - Method not yet implemented");
>>> +        Object[] delegates = new
>>> Object[]{_broker.getInnermostDelegate(),
>>> +            _broker.getDelegate(), _broker, this};
>>> +        for (Object o : delegates) {
>>> +            if (cls.isInstance(o))
>>> +                return (T)o;
>>> +        }
>>> +        throw new PersistenceException(_loc.get("unwrap-em-invalid",
>>> cls)
>>> +            .toString(), null, this, false);
>>>     }
>>>
>>> Modified:
>>> openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java
>>> URL:
>>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java?rev=750788&r1=750787&r2=750788&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java
>>> (original)
>>> +++
>>> openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/QueryImpl.java
>>> Fri Mar  6 07:08:20 2009
>>> @@ -562,9 +562,24 @@
>>>             "JPA 2.0 - Method not yet implemented");
>>>     }
>>>  +    /**
>>> +     * Returns the innermost implementation that is an instance of the
>>> given +     * class. +     * +     * @throws PersistenceException if none in
>>> the delegate chain is an +     * instance of the given class.
>>> +     * +     * @since 2.0.0
>>> +     */
>>>     public <T> T unwrap(Class<T> cls) {
>>> -        throw new UnsupportedOperationException(
>>> -            "JPA 2.0 - Method not yet implemented");
>>> +        Object[] delegates = new Object[]{_query.getInnermostDelegate(),
>>> +            _query.getDelegate(), _query, this};
>>> +        for (Object o : delegates) {
>>> +            if (cls.isInstance(o))
>>> +                return (T)o;
>>> +        }
>>> +        throw new PersistenceException(_loc.get("unwrap-query-invalid",
>>> cls)
>>> +            .toString(), null, this, false);
>>>     }
>>>         //
>>>
>>> Modified:
>>> openjpa/trunk/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/localizer.properties
>>> URL:
>>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/localizer.properties?rev=750788&r1=750787&r2=750788&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> openjpa/trunk/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/localizer.properties
>>> (original)
>>> +++
>>> openjpa/trunk/openjpa-persistence/src/main/resources/org/apache/openjpa/persistence/localizer.properties
>>> Fri Mar  6 07:08:20 2009
>>> @@ -164,4 +164,6 @@
>>>  version-check-error: An error occurred while attempting to determine the
>>> \
>>>     version of "{0}".
>>>  no-result: Query "{0}" selected no result, but expected unique result.
>>> -non-unique-result: Query "{0}" selected {1} results, but expected unique
>>> result.
>>> \ No newline at end of file
>>> +non-unique-result: Query "{0}" selected {1} results, but expected unique
>>> result.
>>> +unwrap-em-invalid: EntityManager can not be unwrapped to an instance of
>>> "{0}".
>>> +unwrap-query-invalid: Query can not be unwrapped to an instance of
>>> "{0}".
>>> \ No newline at end of file
>>>
>>>
>>>
>>>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message