diff --git a/src/dynamo-framework/com/silverwrist/dynamo/event/MessagePartPropertyUpdateEvent.java b/src/dynamo-framework/com/silverwrist/dynamo/event/MessagePartPropertyUpdateEvent.java new file mode 100644 index 0000000..9aac40d --- /dev/null +++ b/src/dynamo-framework/com/silverwrist/dynamo/event/MessagePartPropertyUpdateEvent.java @@ -0,0 +1,75 @@ +/* + * The contents of this file are subject to the Mozilla Public License Version 1.1 + * (the "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at . + * + * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT + * WARRANTY OF ANY KIND, either express or implied. See the License for the specific + * language governing rights and limitations under the License. + * + * The Original Code is the Venice Web Communities System. + * + * The Initial Developer of the Original Code is Eric J. Bowersox , + * for Silverwrist Design Studios. Portions created by Eric J. Bowersox are + * Copyright (C) 2003 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved. + * + * Contributor(s): + */ +package com.silverwrist.dynamo.event; + +import com.silverwrist.dynamo.iface.UniStorePart; + +public class MessagePartPropertyUpdateEvent extends MessagePartUpdateEvent +{ + /*-------------------------------------------------------------------------------- + * Attributes + *-------------------------------------------------------------------------------- + */ + + private transient String m_namespace; + private transient String m_name; + + /*-------------------------------------------------------------------------------- + * Constructor + *-------------------------------------------------------------------------------- + */ + + public MessagePartPropertyUpdateEvent(UniStorePart src, String namespace, String name) + { + super(src); + m_namespace = namespace; + m_name = name; + + } // end constructor + + /*-------------------------------------------------------------------------------- + * Overrides from class MessagePartUpdateEvent + *-------------------------------------------------------------------------------- + */ + + public String toString() + { + return "MessagePartPropertyUpdateEvent: message ID#" + getMessagePart().getMessageID() + ", " + + (isBinaryPart() ? "binary" : "text") + " part " + getMessagePart().getPartIdentity() + ", namespace " + + m_namespace + ", m_name " + m_name; + + } // end toString + + /*-------------------------------------------------------------------------------- + * External operations + *-------------------------------------------------------------------------------- + */ + + public String getPropertyNamespace() + { + return m_namespace; + + } // end getPropertyNamespace + + public String getPropertyName() + { + return m_name; + + } // end getPropertyName + +} // end class MessagePartPropertyUpdateEvent diff --git a/src/dynamo-framework/com/silverwrist/dynamo/event/MessagePartRead.java b/src/dynamo-framework/com/silverwrist/dynamo/event/MessagePartRead.java new file mode 100644 index 0000000..5a27ebd --- /dev/null +++ b/src/dynamo-framework/com/silverwrist/dynamo/event/MessagePartRead.java @@ -0,0 +1,47 @@ +/* + * The contents of this file are subject to the Mozilla Public License Version 1.1 + * (the "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at . + * + * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT + * WARRANTY OF ANY KIND, either express or implied. See the License for the specific + * language governing rights and limitations under the License. + * + * The Original Code is the Venice Web Communities System. + * + * The Initial Developer of the Original Code is Eric J. Bowersox , + * for Silverwrist Design Studios. Portions created by Eric J. Bowersox are + * Copyright (C) 2003 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved. + * + * Contributor(s): + */ +package com.silverwrist.dynamo.event; + +import com.silverwrist.dynamo.iface.UniStorePart; + +public class MessagePartRead extends MessagePartUpdateEvent +{ + /*-------------------------------------------------------------------------------- + * Constructor + *-------------------------------------------------------------------------------- + */ + + public MessagePartRead(UniStorePart src) + { + super(src); + + } // end constructor + + /*-------------------------------------------------------------------------------- + * Overrides from class MessagePartUpdateEvent + *-------------------------------------------------------------------------------- + */ + + public String toString() + { + return "MessagePartRead: message ID#" + getMessagePart().getMessageID() + ", " + + (isBinaryPart() ? "binary" : "text") + " part " + getMessagePart().getPartIdentity(); + + } // end toString + +} // end class MessagePartRead diff --git a/src/dynamo-framework/com/silverwrist/dynamo/event/MessagePartUpdateEvent.java b/src/dynamo-framework/com/silverwrist/dynamo/event/MessagePartUpdateEvent.java new file mode 100644 index 0000000..04573af --- /dev/null +++ b/src/dynamo-framework/com/silverwrist/dynamo/event/MessagePartUpdateEvent.java @@ -0,0 +1,65 @@ +/* + * The contents of this file are subject to the Mozilla Public License Version 1.1 + * (the "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at . + * + * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT + * WARRANTY OF ANY KIND, either express or implied. See the License for the specific + * language governing rights and limitations under the License. + * + * The Original Code is the Venice Web Communities System. + * + * The Initial Developer of the Original Code is Eric J. Bowersox , + * for Silverwrist Design Studios. Portions created by Eric J. Bowersox are + * Copyright (C) 2003 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved. + * + * Contributor(s): + */ +package com.silverwrist.dynamo.event; + +import com.silverwrist.dynamo.iface.UniStoreBinaryPart; +import com.silverwrist.dynamo.iface.UniStorePart; + +public class MessagePartUpdateEvent extends UniStoreUpdateEvent +{ + /*-------------------------------------------------------------------------------- + * Constructor + *-------------------------------------------------------------------------------- + */ + + public MessagePartUpdateEvent(UniStorePart src) + { + super(src); + + } // end constructor + + /*-------------------------------------------------------------------------------- + * Overrides from class UniStoreUpdateEvent + *-------------------------------------------------------------------------------- + */ + + public String toString() + { + return "MessagePartUpdateEvent: message ID#" + getMessagePart().getMessageID() + ", " + + (isBinaryPart() ? "binary" : "text") + " part " + getMessagePart().getPartIdentity(); + + } // end toString + + /*-------------------------------------------------------------------------------- + * External operations + *-------------------------------------------------------------------------------- + */ + + public UniStorePart getMessagePart() + { + return (UniStorePart)source; + + } // end getMessagePart + + public boolean isBinaryPart() + { + return (source instanceof UniStoreBinaryPart); + + } // end isBinaryPart + +} // end class MessagePartUpdateEvent diff --git a/src/dynamo-framework/com/silverwrist/dynamo/event/MessagePositionUpdateEvent.java b/src/dynamo-framework/com/silverwrist/dynamo/event/MessagePositionUpdateEvent.java new file mode 100644 index 0000000..20401d7 --- /dev/null +++ b/src/dynamo-framework/com/silverwrist/dynamo/event/MessagePositionUpdateEvent.java @@ -0,0 +1,74 @@ +/* + * The contents of this file are subject to the Mozilla Public License Version 1.1 + * (the "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at . + * + * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT + * WARRANTY OF ANY KIND, either express or implied. See the License for the specific + * language governing rights and limitations under the License. + * + * The Original Code is the Venice Web Communities System. + * + * The Initial Developer of the Original Code is Eric J. Bowersox , + * for Silverwrist Design Studios. Portions created by Eric J. Bowersox are + * Copyright (C) 2003 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved. + * + * Contributor(s): + */ +package com.silverwrist.dynamo.event; + +import com.silverwrist.dynamo.iface.UniStoreMessage; + +public class MessagePositionUpdateEvent extends MessageUpdateEvent +{ + /*-------------------------------------------------------------------------------- + * Attributes + *-------------------------------------------------------------------------------- + */ + + private transient long m_parent; + private transient int m_seq; + + /*-------------------------------------------------------------------------------- + * Constructor + *-------------------------------------------------------------------------------- + */ + + public MessagePositionUpdateEvent(UniStoreMessage src, long parent, int seq) + { + super(src); + m_parent = parent; + m_seq = seq; + + } // end constructor + + /*-------------------------------------------------------------------------------- + * Overrides from class MessageUpdateEvent + *-------------------------------------------------------------------------------- + */ + + public String toString() + { + return "MessagePositionUpdateEvent: message ID#" + getMessage().getMessageID() + ", parent message ID#" + + m_parent + ", sequence = " + m_seq; + + } // end toString + + /*-------------------------------------------------------------------------------- + * External operations + *-------------------------------------------------------------------------------- + */ + + public long getParentMessageID() + { + return m_parent; + + } // end getParentMessageID + + public int getSequence() + { + return m_seq; + + } // end getSequence + +} // end class MessagePositionUpdateEvent diff --git a/src/dynamo-framework/com/silverwrist/dynamo/event/MessagePropertyUpdateEvent.java b/src/dynamo-framework/com/silverwrist/dynamo/event/MessagePropertyUpdateEvent.java new file mode 100644 index 0000000..a038763 --- /dev/null +++ b/src/dynamo-framework/com/silverwrist/dynamo/event/MessagePropertyUpdateEvent.java @@ -0,0 +1,74 @@ +/* + * The contents of this file are subject to the Mozilla Public License Version 1.1 + * (the "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at . + * + * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT + * WARRANTY OF ANY KIND, either express or implied. See the License for the specific + * language governing rights and limitations under the License. + * + * The Original Code is the Venice Web Communities System. + * + * The Initial Developer of the Original Code is Eric J. Bowersox , + * for Silverwrist Design Studios. Portions created by Eric J. Bowersox are + * Copyright (C) 2003 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved. + * + * Contributor(s): + */ +package com.silverwrist.dynamo.event; + +import com.silverwrist.dynamo.iface.UniStoreMessage; + +public class MessagePropertyUpdateEvent extends MessageUpdateEvent +{ + /*-------------------------------------------------------------------------------- + * Attributes + *-------------------------------------------------------------------------------- + */ + + private transient String m_namespace; + private transient String m_name; + + /*-------------------------------------------------------------------------------- + * Constructor + *-------------------------------------------------------------------------------- + */ + + public MessagePropertyUpdateEvent(UniStoreMessage src, String namespace, String name) + { + super(src); + m_namespace = namespace; + m_name = name; + + } // end constructor + + /*-------------------------------------------------------------------------------- + * Overrides from class MessageUpdateEvent + *-------------------------------------------------------------------------------- + */ + + public String toString() + { + return "MessagePropertyUpdateEvent: message ID#" + getMessage().getMessageID() + ", namespace " + m_namespace + + ", name " + m_name; + + } // end toString + + /*-------------------------------------------------------------------------------- + * External operations + *-------------------------------------------------------------------------------- + */ + + public String getPropertyNamespace() + { + return m_namespace; + + } // end getPropertyNamespace + + public String getPropertyName() + { + return m_name; + + } // end getPropertyName + +} // end class MessagePropertyUpdateEvent diff --git a/src/dynamo-framework/com/silverwrist/dynamo/event/MessageSecurityUpdateEvent.java b/src/dynamo-framework/com/silverwrist/dynamo/event/MessageSecurityUpdateEvent.java new file mode 100644 index 0000000..35cf11e --- /dev/null +++ b/src/dynamo-framework/com/silverwrist/dynamo/event/MessageSecurityUpdateEvent.java @@ -0,0 +1,66 @@ +/* + * The contents of this file are subject to the Mozilla Public License Version 1.1 + * (the "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at . + * + * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT + * WARRANTY OF ANY KIND, either express or implied. See the License for the specific + * language governing rights and limitations under the License. + * + * The Original Code is the Venice Web Communities System. + * + * The Initial Developer of the Original Code is Eric J. Bowersox , + * for Silverwrist Design Studios. Portions created by Eric J. Bowersox are + * Copyright (C) 2003 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved. + * + * Contributor(s): + */ +package com.silverwrist.dynamo.event; + +import com.silverwrist.dynamo.iface.DynamoAcl; +import com.silverwrist.dynamo.iface.UniStoreMessage; + +public class MessageSecurityUpdateEvent extends MessageUpdateEvent +{ + /*-------------------------------------------------------------------------------- + * Attributes + *-------------------------------------------------------------------------------- + */ + + private transient DynamoAcl m_acl; + + /*-------------------------------------------------------------------------------- + * Constructor + *-------------------------------------------------------------------------------- + */ + + public MessageSecurityUpdateEvent(UniStoreMessage src, DynamoAcl acl) + { + super(src); + m_acl = acl; + + } // end constructor + + /*-------------------------------------------------------------------------------- + * Overrides from class MessageUpdateEvent + *-------------------------------------------------------------------------------- + */ + + public String toString() + { + return "MessageSecurityUpdateEvent: message ID#" + getMessage().getMessageID() + ", ACL ID#" + m_acl.getAclID(); + + } // end toString + + /*-------------------------------------------------------------------------------- + * External operations + *-------------------------------------------------------------------------------- + */ + + public DynamoAcl getAcl() + { + return m_acl; + + } // end getAcl + +} // end class MessageSecurityUpdateEvent diff --git a/src/dynamo-framework/com/silverwrist/dynamo/event/MessageUpdateEvent.java b/src/dynamo-framework/com/silverwrist/dynamo/event/MessageUpdateEvent.java new file mode 100644 index 0000000..1ba16fb --- /dev/null +++ b/src/dynamo-framework/com/silverwrist/dynamo/event/MessageUpdateEvent.java @@ -0,0 +1,57 @@ +/* + * The contents of this file are subject to the Mozilla Public License Version 1.1 + * (the "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at . + * + * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT + * WARRANTY OF ANY KIND, either express or implied. See the License for the specific + * language governing rights and limitations under the License. + * + * The Original Code is the Venice Web Communities System. + * + * The Initial Developer of the Original Code is Eric J. Bowersox , + * for Silverwrist Design Studios. Portions created by Eric J. Bowersox are + * Copyright (C) 2003 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved. + * + * Contributor(s): + */ +package com.silverwrist.dynamo.event; + +import com.silverwrist.dynamo.iface.UniStoreMessage; + +public class MessageUpdateEvent extends UniStoreUpdateEvent +{ + /*-------------------------------------------------------------------------------- + * Constructor + *-------------------------------------------------------------------------------- + */ + + public MessageUpdateEvent(UniStoreMessage src) + { + super(src); + + } // end constructor + + /*-------------------------------------------------------------------------------- + * Overrides from class UniStoreUpdateEvent + *-------------------------------------------------------------------------------- + */ + + public String toString() + { + return "MessageUpdateEvent: message ID#" + getMessage().getMessageID(); + + } // end toString + + /*-------------------------------------------------------------------------------- + * External operations + *-------------------------------------------------------------------------------- + */ + + public UniStoreMessage getMessage() + { + return (UniStoreMessage)source; + + } // end getMessage + +} // end class MessageUpdateEvent diff --git a/src/dynamo-framework/com/silverwrist/dynamo/event/UniStoreUpdateEvent.java b/src/dynamo-framework/com/silverwrist/dynamo/event/UniStoreUpdateEvent.java new file mode 100644 index 0000000..8090c67 --- /dev/null +++ b/src/dynamo-framework/com/silverwrist/dynamo/event/UniStoreUpdateEvent.java @@ -0,0 +1,44 @@ +/* + * The contents of this file are subject to the Mozilla Public License Version 1.1 + * (the "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at . + * + * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT + * WARRANTY OF ANY KIND, either express or implied. See the License for the specific + * language governing rights and limitations under the License. + * + * The Original Code is the Venice Web Communities System. + * + * The Initial Developer of the Original Code is Eric J. Bowersox , + * for Silverwrist Design Studios. Portions created by Eric J. Bowersox are + * Copyright (C) 2003 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved. + * + * Contributor(s): + */ +package com.silverwrist.dynamo.event; + +public class UniStoreUpdateEvent extends DynamicUpdateEvent +{ + /*-------------------------------------------------------------------------------- + * Constructor + *-------------------------------------------------------------------------------- + */ + + public UniStoreUpdateEvent(Object src) + { + super(src); + + } // end constructor + + /*-------------------------------------------------------------------------------- + * Overrides from class DynamicUpdateEvent + *-------------------------------------------------------------------------------- + */ + + public String toString() + { + return "UniStoreUpdateEvent: source = " + source; + + } // end toString + +} // end class UniStoreUpdateEvent diff --git a/src/dynamo-framework/com/silverwrist/dynamo/iface/UniStorePart.java b/src/dynamo-framework/com/silverwrist/dynamo/iface/UniStorePart.java index 185a65c..cc7ccff 100644 --- a/src/dynamo-framework/com/silverwrist/dynamo/iface/UniStorePart.java +++ b/src/dynamo-framework/com/silverwrist/dynamo/iface/UniStorePart.java @@ -25,6 +25,8 @@ public interface UniStorePart extends SecureObjectStore { public long getMessageID(); + public UniStoreMessage getMessage(); + public int getPartIndex(); public QualifiedNameKey getPartIdentity(); diff --git a/src/dynamo-framework/com/silverwrist/dynamo/unistore/BinaryPartImpl.java b/src/dynamo-framework/com/silverwrist/dynamo/unistore/BinaryPartImpl.java index ea5b185..ccbed52 100644 --- a/src/dynamo-framework/com/silverwrist/dynamo/unistore/BinaryPartImpl.java +++ b/src/dynamo-framework/com/silverwrist/dynamo/unistore/BinaryPartImpl.java @@ -23,6 +23,7 @@ import java.sql.SQLException; import java.util.*; import org.apache.commons.collections.*; import com.silverwrist.dynamo.db.NamespaceCache; +import com.silverwrist.dynamo.event.*; import com.silverwrist.dynamo.except.*; import com.silverwrist.dynamo.iface.*; import com.silverwrist.dynamo.util.*; @@ -128,6 +129,7 @@ class BinaryPartImpl implements UniStoreBinaryPart private BinaryPartOps m_ops; private NamespaceCache m_nscache; + private PostDynamicUpdate m_post; private MessageImpl m_parent; private int m_part; private QualifiedNameKey m_identity; @@ -143,10 +145,12 @@ class BinaryPartImpl implements UniStoreBinaryPart *-------------------------------------------------------------------------------- */ - BinaryPartImpl(BinaryPartOps ops, NamespaceCache nscache, MessageImpl parent, Map params) throws DatabaseException + BinaryPartImpl(BinaryPartOps ops, NamespaceCache nscache, PostDynamicUpdate post, MessageImpl parent, Map params) + throws DatabaseException { m_ops = ops; m_nscache = nscache; + m_post = post; m_parent = parent; m_part = ((Integer)(params.get(MessageOps.PARAM_PART))).intValue(); PropertyKey pk = (PropertyKey)(params.get(MessageOps.PARAM_IDENTITY)); @@ -240,7 +244,7 @@ class BinaryPartImpl implements UniStoreBinaryPart } // end synchronized block - // TODO: m_post.postUpdate(new GlobalPropertyUpdateEvent(this,namespace,name)); + m_post.postUpdate(new MessagePartPropertyUpdateEvent(this,namespace,name)); return rc; } // end setObject @@ -273,7 +277,7 @@ class BinaryPartImpl implements UniStoreBinaryPart } // end synchronized block - // TODO: m_post.postUpdate(new GlobalPropertyUpdateEvent(this,namespace,name)); + m_post.postUpdate(new MessagePartPropertyUpdateEvent(this,namespace,name)); return rc; } // end removeObject @@ -342,6 +346,12 @@ class BinaryPartImpl implements UniStoreBinaryPart } // end getMessageID + public UniStoreMessage getMessage() + { + return m_parent; + + } // end getMessage + public int getPartIndex() { return m_part; @@ -388,7 +398,7 @@ class BinaryPartImpl implements UniStoreBinaryPart } // end synchronized block - // TODO: post an update? + m_post.postUpdate(new MessagePartRead(this)); } // end touchRead diff --git a/src/dynamo-framework/com/silverwrist/dynamo/unistore/MessageImpl.java b/src/dynamo-framework/com/silverwrist/dynamo/unistore/MessageImpl.java index de72334..e17cef6 100644 --- a/src/dynamo-framework/com/silverwrist/dynamo/unistore/MessageImpl.java +++ b/src/dynamo-framework/com/silverwrist/dynamo/unistore/MessageImpl.java @@ -24,6 +24,7 @@ import org.apache.log4j.Logger; import com.silverwrist.dynamo.Namespaces; import com.silverwrist.dynamo.db.NamespaceCache; import com.silverwrist.dynamo.db.UserManagement; +import com.silverwrist.dynamo.event.*; import com.silverwrist.dynamo.except.*; import com.silverwrist.dynamo.iface.*; import com.silverwrist.dynamo.security.SecurityReferenceMonitor; @@ -47,6 +48,7 @@ class MessageImpl implements UniStoreMessage private NamespaceCache m_nscache; // namespace cache private SecurityReferenceMonitor m_srm; // security reference monitor private UserManagement m_users; // user manager + private PostDynamicUpdate m_post; // dynamic update poster private long m_id; // the message ID private long m_parentid; // the parent message ID private int m_seq; // sequence within parent @@ -66,12 +68,14 @@ class MessageImpl implements UniStoreMessage *-------------------------------------------------------------------------------- */ - MessageImpl(MessageOps ops, NamespaceCache nscache, SecurityReferenceMonitor srm, UserManagement users, Map params) + MessageImpl(MessageOps ops, NamespaceCache nscache, SecurityReferenceMonitor srm, UserManagement users, + PostDynamicUpdate post, Map params) { m_ops = ops; m_nscache = nscache; m_srm = srm; m_users = users; + m_post = post; m_id = ((Long)(params.get(ManagerOps.PARAM_MSGID))).longValue(); m_parentid = ((Long)(params.get(ManagerOps.PARAM_PARENT))).longValue(); m_seq = ((Integer)(params.get(ManagerOps.PARAM_SEQ))).intValue(); @@ -166,7 +170,7 @@ class MessageImpl implements UniStoreMessage } // end synchronized block - // TODO: m_post.postUpdate(new GlobalPropertyUpdateEvent(this,namespace,name)); + m_post.postUpdate(new MessagePropertyUpdateEvent(this,namespace,name)); return rc; } // end setObject @@ -199,7 +203,7 @@ class MessageImpl implements UniStoreMessage } // end synchronized block - // TODO: m_post.postUpdate(new GlobalPropertyUpdateEvent(this,namespace,name)); + m_post.postUpdate(new MessagePropertyUpdateEvent(this,namespace,name)); return rc; } // end removeObject @@ -284,7 +288,7 @@ class MessageImpl implements UniStoreMessage } // end synchronized block - // TODO: send out an update? + m_post.postUpdate(new MessagePositionUpdateEvent(this,m_parentid,m_seq)); } // end setParentMessageID @@ -304,7 +308,7 @@ class MessageImpl implements UniStoreMessage } // end if - // TODO: send out an update? + m_post.postUpdate(new MessagePositionUpdateEvent(this,m_parentid,m_seq)); } // end setSequence @@ -345,7 +349,7 @@ class MessageImpl implements UniStoreMessage } // end synchronized block - // TODO: post an update? + m_post.postUpdate(new MessageSecurityUpdateEvent(this,acl)); } // end setAcl @@ -379,7 +383,7 @@ class MessageImpl implements UniStoreMessage rc = (TextPartImpl)(m_pk_to_text.get(otherkey)); if (rc==null) { // need to create a new object - rc = new TextPartImpl(m_ops.getTextPartOps(),m_nscache,this,params); + rc = new TextPartImpl(m_ops.getTextPartOps(),m_nscache,m_post,this,params); m_part_to_text.put(key,rc); m_pk_to_text.put(otherkey,rc); @@ -416,7 +420,7 @@ class MessageImpl implements UniStoreMessage rc = (TextPartImpl)(m_part_to_text.get(otherkey)); if (rc==null) { // OK, need to create the object - rc = new TextPartImpl(m_ops.getTextPartOps(),m_nscache,this,params); + rc = new TextPartImpl(m_ops.getTextPartOps(),m_nscache,m_post,this,params); m_part_to_text.put(otherkey,rc); m_pk_to_text.put(key,rc); @@ -448,7 +452,7 @@ class MessageImpl implements UniStoreMessage rc = (BinaryPartImpl)(m_pk_to_binary.get(otherkey)); if (rc==null) { // need to create a new object - rc = new BinaryPartImpl(m_ops.getBinaryPartOps(),m_nscache,this,params); + rc = new BinaryPartImpl(m_ops.getBinaryPartOps(),m_nscache,m_post,this,params); m_part_to_binary.put(key,rc); m_pk_to_binary.put(otherkey,rc); @@ -485,7 +489,7 @@ class MessageImpl implements UniStoreMessage rc = (BinaryPartImpl)(m_part_to_binary.get(otherkey)); if (rc==null) { // OK, need to create the object - rc = new BinaryPartImpl(m_ops.getBinaryPartOps(),m_nscache,this,params); + rc = new BinaryPartImpl(m_ops.getBinaryPartOps(),m_nscache,m_post,this,params); m_part_to_binary.put(otherkey,rc); m_pk_to_binary.put(key,rc); diff --git a/src/dynamo-framework/com/silverwrist/dynamo/unistore/TextPartImpl.java b/src/dynamo-framework/com/silverwrist/dynamo/unistore/TextPartImpl.java index 449a63b..49cce84 100644 --- a/src/dynamo-framework/com/silverwrist/dynamo/unistore/TextPartImpl.java +++ b/src/dynamo-framework/com/silverwrist/dynamo/unistore/TextPartImpl.java @@ -22,6 +22,7 @@ import java.lang.ref.*; import java.util.*; import org.apache.commons.collections.*; import com.silverwrist.dynamo.db.NamespaceCache; +import com.silverwrist.dynamo.event.*; import com.silverwrist.dynamo.except.*; import com.silverwrist.dynamo.iface.*; import com.silverwrist.dynamo.util.*; @@ -35,6 +36,7 @@ class TextPartImpl implements UniStoreTextPart private TextPartOps m_ops; private NamespaceCache m_nscache; + private PostDynamicUpdate m_post; private MessageImpl m_parent; private int m_part; private QualifiedNameKey m_identity; @@ -51,10 +53,12 @@ class TextPartImpl implements UniStoreTextPart *-------------------------------------------------------------------------------- */ - TextPartImpl(TextPartOps ops, NamespaceCache nscache, MessageImpl parent, Map params) throws DatabaseException + TextPartImpl(TextPartOps ops, NamespaceCache nscache, PostDynamicUpdate post, MessageImpl parent, Map params) + throws DatabaseException { m_ops = ops; m_nscache = nscache; + m_post = post; m_parent = parent; m_part = ((Integer)(params.get(MessageOps.PARAM_PART))).intValue(); PropertyKey pk = (PropertyKey)(params.get(MessageOps.PARAM_IDENTITY)); @@ -150,7 +154,7 @@ class TextPartImpl implements UniStoreTextPart } // end synchronized block - // TODO: m_post.postUpdate(new GlobalPropertyUpdateEvent(this,namespace,name)); + m_post.postUpdate(new MessagePartPropertyUpdateEvent(this,namespace,name)); return rc; } // end setObject @@ -183,7 +187,7 @@ class TextPartImpl implements UniStoreTextPart } // end synchronized block - // TODO: m_post.postUpdate(new GlobalPropertyUpdateEvent(this,namespace,name)); + m_post.postUpdate(new MessagePartPropertyUpdateEvent(this,namespace,name)); return rc; } // end removeObject @@ -252,6 +256,12 @@ class TextPartImpl implements UniStoreTextPart } // end getMessageID + public UniStoreMessage getMessage() + { + return m_parent; + + } // end getMessage + public int getPartIndex() { return m_part; @@ -298,7 +308,7 @@ class TextPartImpl implements UniStoreTextPart } // end synchronized block - // TODO: post an update? + m_post.postUpdate(new MessagePartRead(this)); } // end touchRead diff --git a/src/dynamo-framework/com/silverwrist/dynamo/unistore/UniStoreManager.java b/src/dynamo-framework/com/silverwrist/dynamo/unistore/UniStoreManager.java index 075aea0..da766e3 100644 --- a/src/dynamo-framework/com/silverwrist/dynamo/unistore/UniStoreManager.java +++ b/src/dynamo-framework/com/silverwrist/dynamo/unistore/UniStoreManager.java @@ -51,6 +51,7 @@ public class UniStoreManager implements NamedObject, ComponentInitialize, Compon private ManagerOps m_ops; // database operations object private SecurityReferenceMonitor m_srm; // security reference monitor private UserManagement m_users; // user management object + private PostDynamicUpdate m_post; // dynamic update posting private HardSoftCache m_msgcache; // message cache /*-------------------------------------------------------------------------------- @@ -151,6 +152,7 @@ public class UniStoreManager implements NamedObject, ComponentInitialize, Compon m_srm = (SecurityReferenceMonitor)(GetObjectUtils.getDynamoComponent(services,SecurityReferenceMonitor.class, srm_name)); m_users = (UserManagement)(GetObjectUtils.getDynamoComponent(services,UserManagement.class,users_name)); + m_post = (PostDynamicUpdate)(services.queryService(PostDynamicUpdate.class)); } // end initialize @@ -162,6 +164,7 @@ public class UniStoreManager implements NamedObject, ComponentInitialize, Compon public void shutdown() { m_msgcache.clear(); + m_post = null; m_srm = null; m_users = null; m_ns_cache = null; @@ -182,7 +185,7 @@ public class UniStoreManager implements NamedObject, ComponentInitialize, Compon if (rc==null) { // need to look it up in the database! Map params = m_ops.getMessageData(msgid); - rc = new MessageImpl(m_ops.getMessageOps(),m_ns_cache,m_srm,m_users,params); + rc = new MessageImpl(m_ops.getMessageOps(),m_ns_cache,m_srm,m_users,m_post,params); params.clear(); m_msgcache.put(key,rc); diff --git a/src/dynamo-framework/com/silverwrist/dynamo/util/QualifiedNameKey.java b/src/dynamo-framework/com/silverwrist/dynamo/util/QualifiedNameKey.java index 14a6f20..2b80e40 100644 --- a/src/dynamo-framework/com/silverwrist/dynamo/util/QualifiedNameKey.java +++ b/src/dynamo-framework/com/silverwrist/dynamo/util/QualifiedNameKey.java @@ -11,7 +11,7 @@ * * The Initial Developer of the Original Code is Eric J. Bowersox , * for Silverwrist Design Studios. Portions created by Eric J. Bowersox are - * Copyright (C) 2002 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved. + * Copyright (C) 2002-03 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved. * * Contributor(s): */ @@ -61,7 +61,7 @@ public class QualifiedNameKey public String toString() { - return "{" + m_namespace + "}" + m_name; + return m_namespace + "::" + m_name; } // end toString