You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by cu...@apache.org on 2010/12/17 13:19:47 UTC
svn commit: r1050361 - in /openjpa/branches/2.1.x:
openjpa-kernel/src/main/java/org/apache/openjpa/util/
openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/
openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/...
Author: curtisr7
Date: Fri Dec 17 12:19:46 2010
New Revision: 1050361
URL: http://svn.apache.org/viewvc?rev=1050361&view=rev
Log:
OPENJPA-1900: Merge changes from trunk. Changes contributed by Mark Struberg.
Added:
openjpa/branches/2.1.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/TestEntitySerialize.java
- copied unchanged from r1050168, openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/TestEntitySerialize.java
Modified:
openjpa/branches/2.1.x/openjpa-kernel/src/main/java/org/apache/openjpa/util/Proxies.java
openjpa/branches/2.1.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/entities/Annuity.java
openjpa/branches/2.1.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/entities/EquityAnnuity.java
openjpa/branches/2.1.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/entities/IAnnuity.java
Modified: openjpa/branches/2.1.x/openjpa-kernel/src/main/java/org/apache/openjpa/util/Proxies.java
URL: http://svn.apache.org/viewvc/openjpa/branches/2.1.x/openjpa-kernel/src/main/java/org/apache/openjpa/util/Proxies.java?rev=1050361&r1=1050360&r2=1050361&view=diff
==============================================================================
--- openjpa/branches/2.1.x/openjpa-kernel/src/main/java/org/apache/openjpa/util/Proxies.java (original)
+++ openjpa/branches/2.1.x/openjpa-kernel/src/main/java/org/apache/openjpa/util/Proxies.java Fri Dec 17 12:19:46 2010
@@ -127,8 +127,15 @@ public class Proxies {
ClassMetaData meta = null; // if null, no proxies?
boolean useDSFForUnproxy = false; // default to false for old 1.0 behavior
- // DetachedStateMnager has no context or metadata, so we can't get configuration settings
- if (!proxy.getOwner().isDetached()) {
+ // Don't rely on sm.isDetached() method because if we are serializing an attached Entity
+ // the sm will still be a StateManagerImpl, but isDetached() will return true.
+
+ // Using a DetachedStateManager, so use the new flag since there is no context or
+ // metadata
+ if (sm instanceof DetachedStateManager) {
+ useDSFForUnproxy = ((DetachedStateManager) sm).getUseDSFForUnproxy();
+ } else{
+ // DetachedStateManager has no context or metadata, so we can't get configuration settings
Compatibility compat = null;
meta = sm.getMetaData();
if (meta != null) {
@@ -142,9 +149,6 @@ public class Proxies {
// new 2.0 behavior of using DetachedStateField to determine unproxy during serialization
useDSFForUnproxy = !compat.getIgnoreDetachedStateFieldForProxySerialization();
}
- } else {
- // Using a DetachedStateManager, so use the new flag since there is no context or metadata
- useDSFForUnproxy = ((DetachedStateManager)sm).getUseDSFForUnproxy();
}
if (useDSFForUnproxy) {
Modified: openjpa/branches/2.1.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/entities/Annuity.java
URL: http://svn.apache.org/viewvc/openjpa/branches/2.1.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/entities/Annuity.java?rev=1050361&r1=1050360&r2=1050361&view=diff
==============================================================================
--- openjpa/branches/2.1.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/entities/Annuity.java (original)
+++ openjpa/branches/2.1.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/entities/Annuity.java Fri Dec 17 12:19:46 2010
@@ -20,6 +20,7 @@ package org.apache.openjpa.persistence.p
import java.text.DecimalFormat;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
import javax.persistence.AttributeOverride;
@@ -28,6 +29,7 @@ import javax.persistence.Column;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.DiscriminatorType;
import javax.persistence.DiscriminatorValue;
+import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Inheritance;
@@ -36,6 +38,9 @@ import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
+import javax.persistence.OneToOne;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
@SuppressWarnings("serial")
@@ -53,7 +58,10 @@ public class Annuity extends AnnuityPers
private List<IPayout> payouts = new ArrayList<IPayout>();
private List<IRider> riders = new ArrayList<IRider>();
private List<IPayor> payors = new ArrayList<IPayor>();
+ private List<String> comments;
+ private Date approvedAt;
+ private Annuity previousAnnuity;
public Annuity(){
}
@@ -134,7 +142,27 @@ public class Annuity extends AnnuityPers
this.riders = riders;
}
-
-
-
+ @ElementCollection
+ public List<String> getComments() {
+ return comments;
+ }
+ public void setComments(List<String> comments) {
+ this.comments = comments;
+ }
+
+ @Temporal(TemporalType.DATE)
+ public Date getApprovedAt() {
+ return approvedAt;
+ }
+ public void setApprovedAt(Date approvedAt) {
+ this.approvedAt = approvedAt;
+ }
+
+ @OneToOne
+ public Annuity getPreviousAnnuity() {
+ return previousAnnuity;
+ }
+ public void setPreviousAnnuity(Annuity previousAnnuity) {
+ this.previousAnnuity = previousAnnuity;
+ }
}
Modified: openjpa/branches/2.1.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/entities/EquityAnnuity.java
URL: http://svn.apache.org/viewvc/openjpa/branches/2.1.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/entities/EquityAnnuity.java?rev=1050361&r1=1050360&r2=1050361&view=diff
==============================================================================
--- openjpa/branches/2.1.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/entities/EquityAnnuity.java (original)
+++ openjpa/branches/2.1.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/entities/EquityAnnuity.java Fri Dec 17 12:19:46 2010
@@ -19,6 +19,7 @@
package org.apache.openjpa.persistence.proxy.entities;
import java.text.DecimalFormat;
+import java.text.ParseException;
import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
@@ -48,12 +49,22 @@ public class EquityAnnuity extends Annui
return indexRate;
}
- public void setIndexRate(Double indexRate) {
- this.indexRate = indexRate;
- if (this.indexRate != null) {
- DecimalFormat df = new DecimalFormat("#.##");
- this.indexRate= new Double(df.format(indexRate));
- }
- }
+ public void setIndexRate(Double indexRate) {
+ if (indexRate != null) {
+ DecimalFormat df = new DecimalFormat("#.##");
+ try
+ {
+ // parse back via the DateFormat because countries might use ',' as comma separator
+ this.indexRate= df.parse(df.format(indexRate)).doubleValue();
+ }
+ catch (ParseException e)
+ {
+ throw new RuntimeException(e);
+ }
+ }
+ else {
+ this.indexRate = null;
+ }
+ }
}
Modified: openjpa/branches/2.1.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/entities/IAnnuity.java
URL: http://svn.apache.org/viewvc/openjpa/branches/2.1.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/entities/IAnnuity.java?rev=1050361&r1=1050360&r2=1050361&view=diff
==============================================================================
--- openjpa/branches/2.1.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/entities/IAnnuity.java (original)
+++ openjpa/branches/2.1.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/entities/IAnnuity.java Fri Dec 17 12:19:46 2010
@@ -18,6 +18,7 @@
*/
package org.apache.openjpa.persistence.proxy.entities;
+import java.util.Date;
import java.util.List;
public interface IAnnuity extends IAnnuityObject {
@@ -45,5 +46,13 @@ public interface IAnnuity extends IAnnui
public abstract List<IPayor> getPayors();
public abstract void setPayors(List<IPayor> payors);
-
+
+ public abstract List<String> getComments();
+ public abstract void setComments(List<String> comments);
+
+ public abstract Date getApprovedAt();
+ public void setApprovedAt(Date approvedAt);
+
+ public Annuity getPreviousAnnuity();
+ public void setPreviousAnnuity(Annuity previousAnnuity);
}