You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by aj...@apache.org on 2009/04/06 13:59:22 UTC
svn commit: r762297 -
/incubator/jspwiki/trunk/src/java/org/apache/wiki/JCRWikiPage.java
Author: ajaquith
Date: Mon Apr 6 11:59:21 2009
New Revision: 762297
URL: http://svn.apache.org/viewvc?rev=762297&view=rev
Log:
[JSPWIKI-304] Changed all Workflow signatures so that all attribute values are now Serializable. This has required some minor changes to WikiContext get/setAttribute, such that these must also be Serializable too. In practice this is not a problem, because all attributes passed to WikiContext were always Strings anyway. The net effect of this change is that we can now make workflows persistent across engine restarts! (Coming later...)
Modified:
incubator/jspwiki/trunk/src/java/org/apache/wiki/JCRWikiPage.java
Modified: incubator/jspwiki/trunk/src/java/org/apache/wiki/JCRWikiPage.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/java/org/apache/wiki/JCRWikiPage.java?rev=762297&r1=762296&r2=762297&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/java/org/apache/wiki/JCRWikiPage.java (original)
+++ incubator/jspwiki/trunk/src/java/org/apache/wiki/JCRWikiPage.java Mon Apr 6 11:59:21 2009
@@ -114,13 +114,20 @@
/* (non-Javadoc)
* @see org.apache.wiki.WikiPage#getAttribute(java.lang.String)
*/
- public Object getAttribute( String key )
+ public Serializable getAttribute( String key )
{
try
{
Property property = getJCRNode().getProperty( key );
-
- return getValue( property );
+ Object value = getValue( property );
+ if ( value instanceof Serializable )
+ {
+ return (Serializable)value;
+ }
+ else
+ {
+ throw new IllegalStateException( "The value returned by " + key + " was not a Serializalble, as expected.");
+ }
}
catch( ItemNotFoundException e ) {}
catch( RepositoryException e ) {} // FIXME: Should log this at least.
@@ -178,7 +185,7 @@
/* (non-Javadoc)
* @see org.apache.wiki.WikiPage#getAttributes()
*/
- public Map getAttributes()
+ public Map<String,Serializable> getAttributes()
{
return null; // FIXME: m_attributes;
}
@@ -186,16 +193,22 @@
/* (non-Javadoc)
* @see org.apache.wiki.WikiPage#removeAttribute(java.lang.String)
*/
- public Object removeAttribute( String key )
+ public Serializable removeAttribute( String key )
{
try
{
Property p = getJCRNode().getProperty( key );
Object value = getValue(p);
- p.remove();
-
- return value;
+ if ( value instanceof Serializable )
+ {
+ p.remove();
+ return (Serializable)value;
+ }
+ else
+ {
+ throw new IllegalStateException( "The value returned by " + key + " was not a Serializalble, as expected.");
+ }
}
catch(RepositoryException e) {}
@@ -546,7 +559,7 @@
}
- public void setAttribute( String key, Object attribute )
+ public void setAttribute( String key, Serializable attribute )
{
// TODO Auto-generated method stub