You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by de...@apache.org on 2009/04/17 01:27:02 UTC
svn commit: r765801 - in /openjpa/trunk:
openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java
openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java
Author: dezzio
Date: Thu Apr 16 23:27:02 2009
New Revision: 765801
URL: http://svn.apache.org/viewvc?rev=765801&view=rev
Log:
Fix for OpenJPA-1002, patch submitted by Ravi Palacherla
Added:
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java (with props)
Modified:
openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java
Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java?rev=765801&r1=765800&r2=765801&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java (original)
+++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java Thu Apr 16 23:27:02 2009
@@ -289,7 +289,8 @@
public Executor newDataStoreExecutor(ClassMetaData meta, boolean subs) {
Executor ex = _query.newDataStoreExecutor(meta, subs);
- return new QueryCacheExecutor(ex, meta, subs);
+ return new QueryCacheExecutor(ex, meta, subs,
+ getContext().getFetchConfiguration());
}
public boolean supportsAbstractExecutors() {
@@ -322,12 +323,14 @@
private final Executor _ex;
private final Class _candidate;
private final boolean _subs;
+ private final FetchConfiguration _fc;
public QueryCacheExecutor(Executor ex, ClassMetaData meta,
- boolean subs) {
+ boolean subs, FetchConfiguration fc) {
_ex = ex;
_candidate = (meta == null) ? null : meta.getDescribedType();
_subs = subs;
+ _fc = fc;
}
public ResultObjectProvider executeQuery(StoreQuery q, Object[] params,
@@ -342,7 +345,10 @@
ResultObjectProvider rop = _ex.executeQuery(cq.getDelegate(),
params, range);
- return cq.wrapResult(rop, key);
+ if (_fc.getQueryCacheEnabled())
+ return cq.wrapResult(rop, key);
+ else
+ return rop;
}
/**
@@ -694,8 +700,8 @@
public final Object oid;
public CachedObjectId (Object oid)
- {
- this.oid = oid;
- }
- }
+ {
+ this.oid = oid;
+ }
+ }
}
Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java?rev=765801&view=auto
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java (added)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java Thu Apr 16 23:27:02 2009
@@ -0,0 +1,84 @@
+/*
+ * 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.datacache;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import javax.persistence.EntityManagerFactory;
+import org.apache.openjpa.datacache.*;
+import javax.persistence.*;
+import org.apache.openjpa.persistence.*;
+
+
+import org.apache.openjpa.persistence.datacache.common.apps.CacheObjectE;
+import org.apache.openjpa.persistence.common.utils.AbstractTestCase;
+
+import org.apache.openjpa.persistence.OpenJPAEntityManager;
+import org.apache.openjpa.persistence.OpenJPAQuery;
+
+public class TestQueryResultSize
+ extends AbstractTestCase {
+
+ public TestQueryResultSize(String test) {
+ super(test, "datacachecactusapp");
+ }
+
+ private EntityManagerFactory _pmf;
+ private OpenJPAEntityManager pm;
+
+ public void setUp() {
+ System.out.println("****Deleted Records "
+ + deleteAll(CacheObjectE.class));
+ Map propsMap = new HashMap();
+ propsMap.put("openjpa.DataCache", "true");
+ propsMap.put("openjpa.QueryCache", "true");
+ propsMap.put("openjpa.RemoteCommitProvider", "sjvm");
+ _pmf = getEmf(propsMap);
+ }
+
+ public void test() {
+ CacheObjectE pc1 = new CacheObjectE();
+ pc1.setStr("pc1");
+
+ pm = (OpenJPAEntityManager) _pmf.createEntityManager();
+
+ startTx(pm);
+ pm.persist(pc1);
+ endTx(pm);
+
+ pm.getFetchPlan().setQueryResultCacheEnabled(false);
+ OpenJPAQuery q = pm.createQuery(
+ "select a FROM " + CacheObjectE.class.getSimpleName() +
+ " a where a.str = 'pc1'");
+ List res = (List) q.getResultList();
+ assertEquals(0, getQueryCacheSize());
+ endEm(pm);
+
+ System.out.println("****Deleted Records " +
+ deleteAll(CacheObjectE.class));
+ }
+
+ private int getQueryCacheSize() {
+ return ( ((ConcurrentQueryCache)(OpenJPAPersistence.cast(
+ pm.getEntityManagerFactory()).getQueryResultCache().getDelegate())).
+ getCacheMap().size());
+ }
+}
Propchange: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java
------------------------------------------------------------------------------
svn:eol-style = native
Re: svn commit: r765801 - in /openjpa/trunk: openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java
openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java
Posted by Kevin Sutter <kw...@gmail.com>.
Okay, I just had to keep looking... :-) Here's the note from Mike a few
weeks back...
*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*
David, can you try out these mechanisms and try to get the JIRA issues
cleaned up?
Thanks,
Kevin
On Fri, Apr 17, 2009 at 7:26 AM, Kevin Sutter <kw...@gmail.com> wrote:
> Hi David,
> Recently, someone posted how to re-assign the code changes from one JIRA to
> another when a mistake like this happens. But, now I can't find the
> posting. Does anybody know the magic incantations to get this cleaned up?
> Thanks.
>
> Kevin
>
>
> On Thu, Apr 16, 2009 at 7:05 PM, David Ezzio <de...@apache.org> wrote:
>
>> Due to my thinking one thing and typing another, the patch applies to
>> OpenJPA-1006, NOT OpenJPA-1002.
>>
>> David
>>
>>
>> dezzio@apache.org wrote:
>>
>>> Author: dezzio
>>> Date: Thu Apr 16 23:27:02 2009
>>> New Revision: 765801
>>>
>>> URL: http://svn.apache.org/viewvc?rev=765801&view=rev
>>> Log:
>>> Fix for OpenJPA-1002, patch submitted by Ravi Palacherla
>>>
>>> Added:
>>>
>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java
>>> (with props)
>>> Modified:
>>>
>>> openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java
>>>
>>> Modified:
>>> openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java
>>> URL:
>>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java?rev=765801&r1=765800&r2=765801&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java
>>> (original)
>>> +++
>>> openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java
>>> Thu Apr 16 23:27:02 2009
>>> @@ -289,7 +289,8 @@
>>> public Executor newDataStoreExecutor(ClassMetaData meta, boolean
>>> subs) {
>>> Executor ex = _query.newDataStoreExecutor(meta, subs);
>>> - return new QueryCacheExecutor(ex, meta, subs);
>>> + return new QueryCacheExecutor(ex, meta, subs,
>>> + getContext().getFetchConfiguration());
>>> }
>>> public boolean supportsAbstractExecutors() {
>>> @@ -322,12 +323,14 @@
>>> private final Executor _ex;
>>> private final Class _candidate;
>>> private final boolean _subs;
>>> + private final FetchConfiguration _fc;
>>> public QueryCacheExecutor(Executor ex, ClassMetaData meta,
>>> - boolean subs) {
>>> + boolean subs, FetchConfiguration fc) {
>>> _ex = ex;
>>> _candidate = (meta == null) ? null : meta.getDescribedType();
>>> _subs = subs;
>>> + _fc = fc;
>>> }
>>> public ResultObjectProvider executeQuery(StoreQuery q, Object[]
>>> params,
>>> @@ -342,7 +345,10 @@
>>> ResultObjectProvider rop =
>>> _ex.executeQuery(cq.getDelegate(),
>>> params, range);
>>> - return cq.wrapResult(rop, key);
>>> + if (_fc.getQueryCacheEnabled())
>>> + return cq.wrapResult(rop, key);
>>> + else
>>> + return rop;
>>> }
>>> /**
>>> @@ -694,8 +700,8 @@
>>> public final Object oid;
>>> public CachedObjectId (Object oid)
>>> - {
>>> - this.oid = oid;
>>> - }
>>> - }
>>> + {
>>> + this.oid = oid;
>>> + }
>>> + }
>>> }
>>>
>>> Added:
>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java
>>> URL:
>>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java?rev=765801&view=auto
>>>
>>> ==============================================================================
>>> ---
>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java
>>> (added)
>>> +++
>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java
>>> Thu Apr 16 23:27:02 2009
>>> @@ -0,0 +1,84 @@
>>> +/*
>>> + * 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.datacache;
>>> +
>>> +import java.util.HashMap;
>>> +import java.util.Iterator;
>>> +import java.util.List;
>>> +import java.util.Map;
>>> +import javax.persistence.EntityManagerFactory;
>>> +import org.apache.openjpa.datacache.*;
>>> +import javax.persistence.*;
>>> +import org.apache.openjpa.persistence.*;
>>> +
>>> +
>>> +import
>>> org.apache.openjpa.persistence.datacache.common.apps.CacheObjectE;
>>> +import org.apache.openjpa.persistence.common.utils.AbstractTestCase;
>>> +
>>> +import org.apache.openjpa.persistence.OpenJPAEntityManager;
>>> +import org.apache.openjpa.persistence.OpenJPAQuery;
>>> +
>>> +public class TestQueryResultSize
>>> + extends AbstractTestCase {
>>> +
>>> + public TestQueryResultSize(String test) {
>>> + super(test, "datacachecactusapp");
>>> + }
>>> +
>>> + private EntityManagerFactory _pmf;
>>> + private OpenJPAEntityManager pm;
>>> +
>>> + public void setUp() {
>>> + System.out.println("****Deleted Records "
>>> + + deleteAll(CacheObjectE.class));
>>> + Map propsMap = new HashMap();
>>> + propsMap.put("openjpa.DataCache", "true");
>>> + propsMap.put("openjpa.QueryCache", "true");
>>> + propsMap.put("openjpa.RemoteCommitProvider", "sjvm");
>>> + _pmf = getEmf(propsMap);
>>> + }
>>> +
>>> + public void test() {
>>> + CacheObjectE pc1 = new CacheObjectE();
>>> + pc1.setStr("pc1");
>>> +
>>> + pm = (OpenJPAEntityManager) _pmf.createEntityManager();
>>> +
>>> + startTx(pm);
>>> + pm.persist(pc1);
>>> + endTx(pm);
>>> +
>>> + pm.getFetchPlan().setQueryResultCacheEnabled(false);
>>> + OpenJPAQuery q = pm.createQuery(
>>> + "select a FROM " + CacheObjectE.class.getSimpleName() +
>>> + " a where a.str = 'pc1'");
>>> + List res = (List) q.getResultList();
>>> + assertEquals(0, getQueryCacheSize());
>>> + endEm(pm);
>>> +
>>> + System.out.println("****Deleted Records " + +
>>> deleteAll(CacheObjectE.class));
>>> + }
>>> +
>>> + private int getQueryCacheSize() {
>>> + return ( ((ConcurrentQueryCache)(OpenJPAPersistence.cast(
>>> +
>>> pm.getEntityManagerFactory()).getQueryResultCache().getDelegate())).
>>> + getCacheMap().size());
>>> + }
>>> +}
>>>
>>> Propchange:
>>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java
>>>
>>> ------------------------------------------------------------------------------
>>> svn:eol-style = native
>>>
>>>
>>>
>>>
>
Re: svn commit: r765801 - in /openjpa/trunk: openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java
openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java
Posted by Kevin Sutter <kw...@gmail.com>.
Hi David,
Recently, someone posted how to re-assign the code changes from one JIRA to
another when a mistake like this happens. But, now I can't find the
posting. Does anybody know the magic incantations to get this cleaned up?
Thanks.
Kevin
On Thu, Apr 16, 2009 at 7:05 PM, David Ezzio <de...@apache.org> wrote:
> Due to my thinking one thing and typing another, the patch applies to
> OpenJPA-1006, NOT OpenJPA-1002.
>
> David
>
>
> dezzio@apache.org wrote:
>
>> Author: dezzio
>> Date: Thu Apr 16 23:27:02 2009
>> New Revision: 765801
>>
>> URL: http://svn.apache.org/viewvc?rev=765801&view=rev
>> Log:
>> Fix for OpenJPA-1002, patch submitted by Ravi Palacherla
>>
>> Added:
>>
>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java
>> (with props)
>> Modified:
>>
>> openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java
>>
>> Modified:
>> openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java
>> URL:
>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java?rev=765801&r1=765800&r2=765801&view=diff
>>
>> ==============================================================================
>> ---
>> openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java
>> (original)
>> +++
>> openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java
>> Thu Apr 16 23:27:02 2009
>> @@ -289,7 +289,8 @@
>> public Executor newDataStoreExecutor(ClassMetaData meta, boolean
>> subs) {
>> Executor ex = _query.newDataStoreExecutor(meta, subs);
>> - return new QueryCacheExecutor(ex, meta, subs);
>> + return new QueryCacheExecutor(ex, meta, subs,
>> + getContext().getFetchConfiguration());
>> }
>> public boolean supportsAbstractExecutors() {
>> @@ -322,12 +323,14 @@
>> private final Executor _ex;
>> private final Class _candidate;
>> private final boolean _subs;
>> + private final FetchConfiguration _fc;
>> public QueryCacheExecutor(Executor ex, ClassMetaData meta,
>> - boolean subs) {
>> + boolean subs, FetchConfiguration fc) {
>> _ex = ex;
>> _candidate = (meta == null) ? null : meta.getDescribedType();
>> _subs = subs;
>> + _fc = fc;
>> }
>> public ResultObjectProvider executeQuery(StoreQuery q, Object[]
>> params,
>> @@ -342,7 +345,10 @@
>> ResultObjectProvider rop =
>> _ex.executeQuery(cq.getDelegate(),
>> params, range);
>> - return cq.wrapResult(rop, key);
>> + if (_fc.getQueryCacheEnabled())
>> + return cq.wrapResult(rop, key);
>> + else
>> + return rop;
>> }
>> /**
>> @@ -694,8 +700,8 @@
>> public final Object oid;
>> public CachedObjectId (Object oid)
>> - {
>> - this.oid = oid;
>> - }
>> - }
>> + {
>> + this.oid = oid;
>> + }
>> + }
>> }
>>
>> Added:
>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java
>> URL:
>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java?rev=765801&view=auto
>>
>> ==============================================================================
>> ---
>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java
>> (added)
>> +++
>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java
>> Thu Apr 16 23:27:02 2009
>> @@ -0,0 +1,84 @@
>> +/*
>> + * 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.datacache;
>> +
>> +import java.util.HashMap;
>> +import java.util.Iterator;
>> +import java.util.List;
>> +import java.util.Map;
>> +import javax.persistence.EntityManagerFactory;
>> +import org.apache.openjpa.datacache.*;
>> +import javax.persistence.*;
>> +import org.apache.openjpa.persistence.*;
>> +
>> +
>> +import org.apache.openjpa.persistence.datacache.common.apps.CacheObjectE;
>> +import org.apache.openjpa.persistence.common.utils.AbstractTestCase;
>> +
>> +import org.apache.openjpa.persistence.OpenJPAEntityManager;
>> +import org.apache.openjpa.persistence.OpenJPAQuery;
>> +
>> +public class TestQueryResultSize
>> + extends AbstractTestCase {
>> +
>> + public TestQueryResultSize(String test) {
>> + super(test, "datacachecactusapp");
>> + }
>> +
>> + private EntityManagerFactory _pmf;
>> + private OpenJPAEntityManager pm;
>> +
>> + public void setUp() {
>> + System.out.println("****Deleted Records "
>> + + deleteAll(CacheObjectE.class));
>> + Map propsMap = new HashMap();
>> + propsMap.put("openjpa.DataCache", "true");
>> + propsMap.put("openjpa.QueryCache", "true");
>> + propsMap.put("openjpa.RemoteCommitProvider", "sjvm");
>> + _pmf = getEmf(propsMap);
>> + }
>> +
>> + public void test() {
>> + CacheObjectE pc1 = new CacheObjectE();
>> + pc1.setStr("pc1");
>> +
>> + pm = (OpenJPAEntityManager) _pmf.createEntityManager();
>> +
>> + startTx(pm);
>> + pm.persist(pc1);
>> + endTx(pm);
>> +
>> + pm.getFetchPlan().setQueryResultCacheEnabled(false);
>> + OpenJPAQuery q = pm.createQuery(
>> + "select a FROM " + CacheObjectE.class.getSimpleName() +
>> + " a where a.str = 'pc1'");
>> + List res = (List) q.getResultList();
>> + assertEquals(0, getQueryCacheSize());
>> + endEm(pm);
>> +
>> + System.out.println("****Deleted Records " + +
>> deleteAll(CacheObjectE.class));
>> + }
>> +
>> + private int getQueryCacheSize() {
>> + return ( ((ConcurrentQueryCache)(OpenJPAPersistence.cast(
>> +
>> pm.getEntityManagerFactory()).getQueryResultCache().getDelegate())).
>> + getCacheMap().size());
>> + }
>> +}
>>
>> Propchange:
>> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java
>>
>> ------------------------------------------------------------------------------
>> svn:eol-style = native
>>
>>
>>
>>
Re: svn commit: r765801 - in /openjpa/trunk: openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java
openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java
Posted by David Ezzio <de...@apache.org>.
Due to my thinking one thing and typing another, the patch applies to
OpenJPA-1006, NOT OpenJPA-1002.
David
dezzio@apache.org wrote:
> Author: dezzio
> Date: Thu Apr 16 23:27:02 2009
> New Revision: 765801
>
> URL: http://svn.apache.org/viewvc?rev=765801&view=rev
> Log:
> Fix for OpenJPA-1002, patch submitted by Ravi Palacherla
>
> Added:
> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java (with props)
> Modified:
> openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java
>
> Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java
> URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java?rev=765801&r1=765800&r2=765801&view=diff
> ==============================================================================
> --- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java (original)
> +++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java Thu Apr 16 23:27:02 2009
> @@ -289,7 +289,8 @@
>
> public Executor newDataStoreExecutor(ClassMetaData meta, boolean subs) {
> Executor ex = _query.newDataStoreExecutor(meta, subs);
> - return new QueryCacheExecutor(ex, meta, subs);
> + return new QueryCacheExecutor(ex, meta, subs,
> + getContext().getFetchConfiguration());
> }
>
> public boolean supportsAbstractExecutors() {
> @@ -322,12 +323,14 @@
> private final Executor _ex;
> private final Class _candidate;
> private final boolean _subs;
> + private final FetchConfiguration _fc;
>
> public QueryCacheExecutor(Executor ex, ClassMetaData meta,
> - boolean subs) {
> + boolean subs, FetchConfiguration fc) {
> _ex = ex;
> _candidate = (meta == null) ? null : meta.getDescribedType();
> _subs = subs;
> + _fc = fc;
> }
>
> public ResultObjectProvider executeQuery(StoreQuery q, Object[] params,
> @@ -342,7 +345,10 @@
>
> ResultObjectProvider rop = _ex.executeQuery(cq.getDelegate(),
> params, range);
> - return cq.wrapResult(rop, key);
> + if (_fc.getQueryCacheEnabled())
> + return cq.wrapResult(rop, key);
> + else
> + return rop;
> }
>
> /**
> @@ -694,8 +700,8 @@
> public final Object oid;
>
> public CachedObjectId (Object oid)
> - {
> - this.oid = oid;
> - }
> - }
> + {
> + this.oid = oid;
> + }
> + }
> }
>
> Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java
> URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java?rev=765801&view=auto
> ==============================================================================
> --- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java (added)
> +++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java Thu Apr 16 23:27:02 2009
> @@ -0,0 +1,84 @@
> +/*
> + * 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.datacache;
> +
> +import java.util.HashMap;
> +import java.util.Iterator;
> +import java.util.List;
> +import java.util.Map;
> +import javax.persistence.EntityManagerFactory;
> +import org.apache.openjpa.datacache.*;
> +import javax.persistence.*;
> +import org.apache.openjpa.persistence.*;
> +
> +
> +import org.apache.openjpa.persistence.datacache.common.apps.CacheObjectE;
> +import org.apache.openjpa.persistence.common.utils.AbstractTestCase;
> +
> +import org.apache.openjpa.persistence.OpenJPAEntityManager;
> +import org.apache.openjpa.persistence.OpenJPAQuery;
> +
> +public class TestQueryResultSize
> + extends AbstractTestCase {
> +
> + public TestQueryResultSize(String test) {
> + super(test, "datacachecactusapp");
> + }
> +
> + private EntityManagerFactory _pmf;
> + private OpenJPAEntityManager pm;
> +
> + public void setUp() {
> + System.out.println("****Deleted Records "
> + + deleteAll(CacheObjectE.class));
> + Map propsMap = new HashMap();
> + propsMap.put("openjpa.DataCache", "true");
> + propsMap.put("openjpa.QueryCache", "true");
> + propsMap.put("openjpa.RemoteCommitProvider", "sjvm");
> + _pmf = getEmf(propsMap);
> + }
> +
> + public void test() {
> + CacheObjectE pc1 = new CacheObjectE();
> + pc1.setStr("pc1");
> +
> + pm = (OpenJPAEntityManager) _pmf.createEntityManager();
> +
> + startTx(pm);
> + pm.persist(pc1);
> + endTx(pm);
> +
> + pm.getFetchPlan().setQueryResultCacheEnabled(false);
> + OpenJPAQuery q = pm.createQuery(
> + "select a FROM " + CacheObjectE.class.getSimpleName() +
> + " a where a.str = 'pc1'");
> + List res = (List) q.getResultList();
> + assertEquals(0, getQueryCacheSize());
> + endEm(pm);
> +
> + System.out.println("****Deleted Records " +
> + deleteAll(CacheObjectE.class));
> + }
> +
> + private int getQueryCacheSize() {
> + return ( ((ConcurrentQueryCache)(OpenJPAPersistence.cast(
> + pm.getEntityManagerFactory()).getQueryResultCache().getDelegate())).
> + getCacheMap().size());
> + }
> +}
>
> Propchange: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java
> ------------------------------------------------------------------------------
> svn:eol-style = native
>
>
>
Re: svn commit: r765801 - in /openjpa/trunk: openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java
openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java
Posted by David Ezzio <de...@apache.org>.
Due to my thinking one thing and typing another, the patch applies to
OpenJPA-1006, NOT OpenJPA-1002.
David
dezzio@apache.org wrote:
> Author: dezzio
> Date: Thu Apr 16 23:27:02 2009
> New Revision: 765801
>
> URL: http://svn.apache.org/viewvc?rev=765801&view=rev
> Log:
> Fix for OpenJPA-1002, patch submitted by Ravi Palacherla
>
> Added:
> openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java (with props)
> Modified:
> openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java
>
> Modified: openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java
> URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java?rev=765801&r1=765800&r2=765801&view=diff
> ==============================================================================
> --- openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java (original)
> +++ openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/datacache/QueryCacheStoreQuery.java Thu Apr 16 23:27:02 2009
> @@ -289,7 +289,8 @@
>
> public Executor newDataStoreExecutor(ClassMetaData meta, boolean subs) {
> Executor ex = _query.newDataStoreExecutor(meta, subs);
> - return new QueryCacheExecutor(ex, meta, subs);
> + return new QueryCacheExecutor(ex, meta, subs,
> + getContext().getFetchConfiguration());
> }
>
> public boolean supportsAbstractExecutors() {
> @@ -322,12 +323,14 @@
> private final Executor _ex;
> private final Class _candidate;
> private final boolean _subs;
> + private final FetchConfiguration _fc;
>
> public QueryCacheExecutor(Executor ex, ClassMetaData meta,
> - boolean subs) {
> + boolean subs, FetchConfiguration fc) {
> _ex = ex;
> _candidate = (meta == null) ? null : meta.getDescribedType();
> _subs = subs;
> + _fc = fc;
> }
>
> public ResultObjectProvider executeQuery(StoreQuery q, Object[] params,
> @@ -342,7 +345,10 @@
>
> ResultObjectProvider rop = _ex.executeQuery(cq.getDelegate(),
> params, range);
> - return cq.wrapResult(rop, key);
> + if (_fc.getQueryCacheEnabled())
> + return cq.wrapResult(rop, key);
> + else
> + return rop;
> }
>
> /**
> @@ -694,8 +700,8 @@
> public final Object oid;
>
> public CachedObjectId (Object oid)
> - {
> - this.oid = oid;
> - }
> - }
> + {
> + this.oid = oid;
> + }
> + }
> }
>
> Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java
> URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java?rev=765801&view=auto
> ==============================================================================
> --- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java (added)
> +++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java Thu Apr 16 23:27:02 2009
> @@ -0,0 +1,84 @@
> +/*
> + * 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.datacache;
> +
> +import java.util.HashMap;
> +import java.util.Iterator;
> +import java.util.List;
> +import java.util.Map;
> +import javax.persistence.EntityManagerFactory;
> +import org.apache.openjpa.datacache.*;
> +import javax.persistence.*;
> +import org.apache.openjpa.persistence.*;
> +
> +
> +import org.apache.openjpa.persistence.datacache.common.apps.CacheObjectE;
> +import org.apache.openjpa.persistence.common.utils.AbstractTestCase;
> +
> +import org.apache.openjpa.persistence.OpenJPAEntityManager;
> +import org.apache.openjpa.persistence.OpenJPAQuery;
> +
> +public class TestQueryResultSize
> + extends AbstractTestCase {
> +
> + public TestQueryResultSize(String test) {
> + super(test, "datacachecactusapp");
> + }
> +
> + private EntityManagerFactory _pmf;
> + private OpenJPAEntityManager pm;
> +
> + public void setUp() {
> + System.out.println("****Deleted Records "
> + + deleteAll(CacheObjectE.class));
> + Map propsMap = new HashMap();
> + propsMap.put("openjpa.DataCache", "true");
> + propsMap.put("openjpa.QueryCache", "true");
> + propsMap.put("openjpa.RemoteCommitProvider", "sjvm");
> + _pmf = getEmf(propsMap);
> + }
> +
> + public void test() {
> + CacheObjectE pc1 = new CacheObjectE();
> + pc1.setStr("pc1");
> +
> + pm = (OpenJPAEntityManager) _pmf.createEntityManager();
> +
> + startTx(pm);
> + pm.persist(pc1);
> + endTx(pm);
> +
> + pm.getFetchPlan().setQueryResultCacheEnabled(false);
> + OpenJPAQuery q = pm.createQuery(
> + "select a FROM " + CacheObjectE.class.getSimpleName() +
> + " a where a.str = 'pc1'");
> + List res = (List) q.getResultList();
> + assertEquals(0, getQueryCacheSize());
> + endEm(pm);
> +
> + System.out.println("****Deleted Records " +
> + deleteAll(CacheObjectE.class));
> + }
> +
> + private int getQueryCacheSize() {
> + return ( ((ConcurrentQueryCache)(OpenJPAPersistence.cast(
> + pm.getEntityManagerFactory()).getQueryResultCache().getDelegate())).
> + getCacheMap().size());
> + }
> +}
>
> Propchange: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/TestQueryResultSize.java
> ------------------------------------------------------------------------------
> svn:eol-style = native
>
>
>