Alon Bar-Lev has uploaded a new change for review. Change subject: extapi: support serializable interfaces ......................................................................
extapi: support serializable interfaces we may need to manage serializable form of the entities for ejb and other technologies that enforce serialization. Change-Id: I79e29ec5067b87687024c7426f54625a2f89ca35 Signed-off-by: Alon Bar-Lev <[email protected]> --- M backend/manager/modules/extensions-api-root/extensions-api/src/main/java/org/ovirt/engine/api/extensions/ExtKey.java M backend/manager/modules/extensions-api-root/extensions-api/src/main/java/org/ovirt/engine/api/extensions/ExtMap.java M backend/manager/modules/extensions-api-root/extensions-api/src/main/java/org/ovirt/engine/api/extensions/ExtUUID.java 3 files changed, 29 insertions(+), 4 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/90/27390/1 diff --git a/backend/manager/modules/extensions-api-root/extensions-api/src/main/java/org/ovirt/engine/api/extensions/ExtKey.java b/backend/manager/modules/extensions-api-root/extensions-api/src/main/java/org/ovirt/engine/api/extensions/ExtKey.java index c70a021..5f91ecd 100644 --- a/backend/manager/modules/extensions-api-root/extensions-api/src/main/java/org/ovirt/engine/api/extensions/ExtKey.java +++ b/backend/manager/modules/extensions-api-root/extensions-api/src/main/java/org/ovirt/engine/api/extensions/ExtKey.java @@ -1,16 +1,34 @@ package org.ovirt.engine.api.extensions; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.Serializable; import java.util.UUID; /** * Extension map key. * Provides type safe mapping between key and value. */ -public class ExtKey implements Cloneable { +public class ExtKey implements Cloneable, Serializable { - private Class type; + private static final long serialVersionUID = 7373830750276947742L; + + private transient Class type; + private String typeName; private ExtUUID uuid; private boolean sensitive; + + private void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException { + ois.defaultReadObject(); + try { + type = Class.forName(typeName); + } catch(ClassNotFoundException e) { + throw new IOException( + String.format("Cannot resolve ExtKey type '%s'", typeName), + e + ); + } + } /** * Constructor. @@ -22,6 +40,8 @@ this.type = type; this.uuid = uuid; this.sensitive = sensitive; + + this.typeName = this.type.getName(); } /** diff --git a/backend/manager/modules/extensions-api-root/extensions-api/src/main/java/org/ovirt/engine/api/extensions/ExtMap.java b/backend/manager/modules/extensions-api-root/extensions-api/src/main/java/org/ovirt/engine/api/extensions/ExtMap.java index 43c7c46..2ca4b63 100644 --- a/backend/manager/modules/extensions-api-root/extensions-api/src/main/java/org/ovirt/engine/api/extensions/ExtMap.java +++ b/backend/manager/modules/extensions-api-root/extensions-api/src/main/java/org/ovirt/engine/api/extensions/ExtMap.java @@ -1,5 +1,6 @@ package org.ovirt.engine.api.extensions; +import java.io.Serializable; import java.util.Collection; import java.util.Map; import java.util.Set; @@ -11,7 +12,9 @@ * Keys are bundle of uuid and type, each value added is checked against key * type. */ -public class ExtMap implements ConcurrentMap<ExtKey, Object>, Cloneable { +public class ExtMap implements ConcurrentMap<ExtKey, Object>, Cloneable, Serializable { + + private static final long serialVersionUID = 4065309872012801647L; /** * Wrapped map. diff --git a/backend/manager/modules/extensions-api-root/extensions-api/src/main/java/org/ovirt/engine/api/extensions/ExtUUID.java b/backend/manager/modules/extensions-api-root/extensions-api/src/main/java/org/ovirt/engine/api/extensions/ExtUUID.java index 77ea663..8e85a10 100644 --- a/backend/manager/modules/extensions-api-root/extensions-api/src/main/java/org/ovirt/engine/api/extensions/ExtUUID.java +++ b/backend/manager/modules/extensions-api-root/extensions-api/src/main/java/org/ovirt/engine/api/extensions/ExtUUID.java @@ -9,7 +9,9 @@ * Extension UUID. * Provides named GUID. */ -public class ExtUUID implements Comparable<ExtUUID>, Cloneable { +public class ExtUUID implements Comparable<ExtUUID>, Cloneable, Serializable { + + private static final long serialVersionUID = -1381185377164713737L; private String name; private UUID uuid; -- To view, visit http://gerrit.ovirt.org/27390 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I79e29ec5067b87687024c7426f54625a2f89ca35 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Alon Bar-Lev <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
