Author: ieb
Date: Wed Dec 10 21:04:33 2008
New Revision: 725579
URL: http://svn.apache.org/viewvc?rev=725579&view=rev
Log:
SHINDIG-770
Patch from Chico Charlesworth
fixes
Converting PersonDb to Json using BeanJson fails with the following exception:
Caused by: java.lang.IllegalAccessException: Class
org.apache.shindig.social.core.util.BeanJsonConverter can not access a member
of class org.apache.shindig.social.opensocial.jpa.PersonDb$1 with modifiers
"public"
at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:65)
at java.lang.reflect.Method.invoke(Method.java:588)
at
org.apache.shindig.social.core.util.BeanJsonConverter.convertMethodsToJson(BeanJsonConverter.java:160)
... 27 more
Thanks
Added:
incubator/shindig/trunk/java/samples/src/test/java/org/apache/shindig/social/opensocial/jpa/test/PersonDbToJsonTest.java
(with props)
Modified:
incubator/shindig/trunk/java/samples/src/main/java/org/apache/shindig/social/opensocial/jpa/PersonDb.java
incubator/shindig/trunk/java/samples/src/main/java/org/apache/shindig/social/opensocial/jpa/api/FilterCapability.java
incubator/shindig/trunk/java/samples/src/main/java/org/apache/shindig/social/opensocial/jpa/hibernate/Bootstrap.java
incubator/shindig/trunk/java/samples/src/main/java/org/apache/shindig/social/opensocial/jpa/spi/PersonServiceDb.java
Modified:
incubator/shindig/trunk/java/samples/src/main/java/org/apache/shindig/social/opensocial/jpa/PersonDb.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/samples/src/main/java/org/apache/shindig/social/opensocial/jpa/PersonDb.java?rev=725579&r1=725578&r2=725579&view=diff
==============================================================================
---
incubator/shindig/trunk/java/samples/src/main/java/org/apache/shindig/social/opensocial/jpa/PersonDb.java
(original)
+++
incubator/shindig/trunk/java/samples/src/main/java/org/apache/shindig/social/opensocial/jpa/PersonDb.java
Wed Dec 10 21:04:33 2008
@@ -173,7 +173,7 @@
/**
* [EMAIL PROTECTED]
*/
- public String getFilterableProperty(String fieldName, FilterOperation
filterOperation) {
+ public String findFilterableProperty(String fieldName, FilterOperation
filterOperation) {
FilterSpecification spec = FILTER_COLUMNS.get(fieldName);
if (spec != null) {
return spec.translateProperty(filterOperation);
Modified:
incubator/shindig/trunk/java/samples/src/main/java/org/apache/shindig/social/opensocial/jpa/api/FilterCapability.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/samples/src/main/java/org/apache/shindig/social/opensocial/jpa/api/FilterCapability.java?rev=725579&r1=725578&r2=725579&view=diff
==============================================================================
---
incubator/shindig/trunk/java/samples/src/main/java/org/apache/shindig/social/opensocial/jpa/api/FilterCapability.java
(original)
+++
incubator/shindig/trunk/java/samples/src/main/java/org/apache/shindig/social/opensocial/jpa/api/FilterCapability.java
Wed Dec 10 21:04:33 2008
@@ -33,5 +33,5 @@
* @return the final property that is being filtered or null is the filter
operation specified is
* not applicable
*/
- String getFilterableProperty(String fieldName, PersonService.FilterOperation
filterOperation);
+ String findFilterableProperty(String fieldName,
PersonService.FilterOperation filterOperation);
}
Modified:
incubator/shindig/trunk/java/samples/src/main/java/org/apache/shindig/social/opensocial/jpa/hibernate/Bootstrap.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/samples/src/main/java/org/apache/shindig/social/opensocial/jpa/hibernate/Bootstrap.java?rev=725579&r1=725578&r2=725579&view=diff
==============================================================================
---
incubator/shindig/trunk/java/samples/src/main/java/org/apache/shindig/social/opensocial/jpa/hibernate/Bootstrap.java
(original)
+++
incubator/shindig/trunk/java/samples/src/main/java/org/apache/shindig/social/opensocial/jpa/hibernate/Bootstrap.java
Wed Dec 10 21:04:33 2008
@@ -66,6 +66,10 @@
this.minWrite = minWrite;
}
+
+ public Bootstrap() {
+
+ }
public void init(String unitName) {
Modified:
incubator/shindig/trunk/java/samples/src/main/java/org/apache/shindig/social/opensocial/jpa/spi/PersonServiceDb.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/samples/src/main/java/org/apache/shindig/social/opensocial/jpa/spi/PersonServiceDb.java?rev=725579&r1=725578&r2=725579&view=diff
==============================================================================
---
incubator/shindig/trunk/java/samples/src/main/java/org/apache/shindig/social/opensocial/jpa/spi/PersonServiceDb.java
(original)
+++
incubator/shindig/trunk/java/samples/src/main/java/org/apache/shindig/social/opensocial/jpa/spi/PersonServiceDb.java
Wed Dec 10 21:04:33 2008
@@ -164,7 +164,7 @@
private int addFilterClause(StringBuilder sb, FilterCapability filterable,
CollectionOptions collectionOptions, int lastPos) {
// this makes the filter value safe
- String filter =
filterable.getFilterableProperty(collectionOptions.getFilter(),
+ String filter =
filterable.findFilterableProperty(collectionOptions.getFilter(),
collectionOptions.getFilterOperation());
String filterValue = collectionOptions.getFilterValue();
int filterPos = 0;
Added:
incubator/shindig/trunk/java/samples/src/test/java/org/apache/shindig/social/opensocial/jpa/test/PersonDbToJsonTest.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/samples/src/test/java/org/apache/shindig/social/opensocial/jpa/test/PersonDbToJsonTest.java?rev=725579&view=auto
==============================================================================
---
incubator/shindig/trunk/java/samples/src/test/java/org/apache/shindig/social/opensocial/jpa/test/PersonDbToJsonTest.java
(added)
+++
incubator/shindig/trunk/java/samples/src/test/java/org/apache/shindig/social/opensocial/jpa/test/PersonDbToJsonTest.java
Wed Dec 10 21:04:33 2008
@@ -0,0 +1,55 @@
+/*
+ * 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.shindig.social.opensocial.jpa.test;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+
+import org.apache.shindig.social.core.util.BeanJsonConverter;
+import org.apache.shindig.social.opensocial.jpa.hibernate.Bootstrap;
+import org.apache.shindig.social.opensocial.jpa.spi.JPASocialModule;
+import org.apache.shindig.social.opensocial.model.Person;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.Random;
+
+import javax.persistence.EntityManager;
+
+public class PersonDbToJsonTest {
+
+ private BeanJsonConverter jsonConverter;
+ private EntityManager entityManager;
+
+ @Before
+ public void setup() {
+ Injector injector = Guice.createInjector(new JPASocialModule());
+ this.jsonConverter = injector.getInstance(BeanJsonConverter.class);
+
+ Bootstrap b = new Bootstrap();
+ this.entityManager = b.getEntityManager("hibernate");
+ }
+
+ @Test
+ public void convertPersonToJson() {
+ Person person = new PersonPopulate(entityManager).createPerson(1, System
+ .currentTimeMillis(), new Random());
+ jsonConverter.convertToJson(person);
+ }
+}
Propchange:
incubator/shindig/trunk/java/samples/src/test/java/org/apache/shindig/social/opensocial/jpa/test/PersonDbToJsonTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/shindig/trunk/java/samples/src/test/java/org/apache/shindig/social/opensocial/jpa/test/PersonDbToJsonTest.java
------------------------------------------------------------------------------
svn:keywords = Date Revision Author HeadURL Id