You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tamaya.apache.org by an...@apache.org on 2014/12/26 02:47:02 UTC

incubator-tamaya git commit: TAMAYA-34: Fixed serialization.

Repository: incubator-tamaya
Updated Branches:
  refs/heads/master 644a7b1de -> 986f99212


TAMAYA-34: Fixed serialization.


Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/commit/986f9921
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/tree/986f9921
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/diff/986f9921

Branch: refs/heads/master
Commit: 986f99212a42a3ff7b4e267059d005631e1db031
Parents: 644a7b1
Author: anatole <an...@apache.org>
Authored: Fri Dec 26 02:46:55 2014 +0100
Committer: anatole <an...@apache.org>
Committed: Fri Dec 26 02:46:55 2014 +0100

----------------------------------------------------------------------
 .../core/config/DefaultConfiguredValue.java     | 26 +++++++++++++++++++-
 1 file changed, 25 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/986f9921/core/src/main/java/org/apache/tamaya/core/config/DefaultConfiguredValue.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/tamaya/core/config/DefaultConfiguredValue.java b/core/src/main/java/org/apache/tamaya/core/config/DefaultConfiguredValue.java
index eae4057..311fb19 100644
--- a/core/src/main/java/org/apache/tamaya/core/config/DefaultConfiguredValue.java
+++ b/core/src/main/java/org/apache/tamaya/core/config/DefaultConfiguredValue.java
@@ -4,6 +4,10 @@ import org.apache.tamaya.ConfiguredValue;
 import org.apache.tamaya.annotation.LoadPolicy;
 
 import java.beans.PropertyChangeEvent;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.Serializable;
 import java.util.Objects;
 import java.util.Optional;
 import java.util.concurrent.atomic.AtomicLong;
@@ -15,7 +19,7 @@ import java.util.function.Supplier;
 /**
  * Implementation of a configured value (in progress).
  */
-public class DefaultConfiguredValue<T> implements ConfiguredValue<T>{
+public class DefaultConfiguredValue<T> implements ConfiguredValue<T>, Serializable{
 
     private LoadPolicy loadPolicy = LoadPolicy.INITIAL;
     private AtomicLong lastUpdate;
@@ -155,4 +159,24 @@ public class DefaultConfiguredValue<T> implements ConfiguredValue<T>{
     public Optional<T> toOptional(){
         return value;
     }
+
+    private void writeObject(ObjectOutputStream oos)throws IOException{
+        oos.writeLong(this.lastAccess.get());
+        oos.writeLong(this.lastUpdate.get());
+        if(isPresent()) {
+            oos.writeObject(this.value.get());
+        }
+        else{
+            oos.writeObject(null);
+        }
+    }
+
+    private void readObject(ObjectInputStream ois) throws IOException, ClassNotFoundException {
+        this.lastAccess.set(ois.readLong());
+        this.lastUpdate.set(ois.readLong());
+        if(isPresent()) {
+            this.value = Optional.of((T)ois.readObject());
+        }
+
+    }
 }