Author: tom.baeyens(a)jboss.com
Date: 2009-06-30 09:58:20 -0400 (Tue, 30 Jun 2009)
New Revision: 5165
Added:
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/type/variable/TextVariable.java
Modified:
jbpm4/trunk/modules/pvm/src/main/resources/jbpm.execution.hbm.xml
jbpm4/trunk/modules/pvm/src/main/resources/jbpm.task.hbm.xml
jbpm4/trunk/modules/pvm/src/main/resources/jbpm.variable.types.xml
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/type/VariableAutoTypeResolutionTest.java
Log:
schema review updates: changed some hibernate strings to text and pruned unused lob field
mappings
Added:
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/type/variable/TextVariable.java
===================================================================
---
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/type/variable/TextVariable.java
(rev 0)
+++
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/type/variable/TextVariable.java 2009-06-30
13:58:20 UTC (rev 5165)
@@ -0,0 +1,52 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jbpm.pvm.internal.type.variable;
+
+import org.jbpm.pvm.internal.type.Variable;
+
+
+public class TextVariable extends Variable {
+
+ private static final long serialVersionUID = 1L;
+
+ protected String text = null;
+
+ public boolean isStorable(Object value) {
+ if (value==null) return true;
+ return (char[].class==value.getClass());
+ }
+
+ public Object getObject() {
+ if (text==null) {
+ return null;
+ }
+ return text.toCharArray();
+ }
+
+ public void setObject(Object value) {
+ if (value!=null) {
+ this.text = new String((char[])value);
+ } else {
+ this.text = null;
+ }
+ }
+}
Property changes on:
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/type/variable/TextVariable.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: jbpm4/trunk/modules/pvm/src/main/resources/jbpm.execution.hbm.xml
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/resources/jbpm.execution.hbm.xml 2009-06-30 13:53:27
UTC (rev 5164)
+++ jbpm4/trunk/modules/pvm/src/main/resources/jbpm.execution.hbm.xml 2009-06-30 13:58:20
UTC (rev 5165)
@@ -113,7 +113,7 @@
<property name="userId" column="USERID_" />
<property name="time" column="TIME_" />
- <property name="message" column="MESSAGE_" />
+ <property name="message" column="MESSAGE_"
type="text" />
<list name="comments"
cascade="all-delete-orphan"
@@ -154,34 +154,38 @@
index="IDX_VAR_PROCINST"/>
</class>
- <subclass name="org.jbpm.pvm.internal.type.variable.DateVariable"
extends="org.jbpm.pvm.internal.type.Variable"
discriminator-value="T">
+ <subclass name="org.jbpm.pvm.internal.type.variable.DateVariable"
extends="org.jbpm.pvm.internal.type.Variable"
discriminator-value="date">
<property name="date" column="DATE_VALUE_"
type="timestamp"/>
</subclass>
- <subclass name="org.jbpm.pvm.internal.type.variable.DoubleVariable"
extends="org.jbpm.pvm.internal.type.Variable"
discriminator-value="D">
+ <subclass name="org.jbpm.pvm.internal.type.variable.DoubleVariable"
extends="org.jbpm.pvm.internal.type.Variable"
discriminator-value="double">
<property name="d" column="DOUBLE_VALUE_"
type="double"/>
</subclass>
- <subclass name="org.jbpm.pvm.internal.type.variable.HibernateLongVariable"
extends="org.jbpm.pvm.internal.type.Variable"
discriminator-value="l">
+ <subclass name="org.jbpm.pvm.internal.type.variable.HibernateLongVariable"
extends="org.jbpm.pvm.internal.type.Variable"
discriminator-value="hib-long">
<property name="hibernatable" column="LONG_VALUE_"
type="long"/>
</subclass>
- <subclass name="org.jbpm.pvm.internal.type.variable.LongVariable"
extends="org.jbpm.pvm.internal.type.Variable"
discriminator-value="L">
+ <subclass name="org.jbpm.pvm.internal.type.variable.LongVariable"
extends="org.jbpm.pvm.internal.type.Variable"
discriminator-value="long">
<property name="l" column="LONG_VALUE_"
type="long"/>
</subclass>
- <subclass
name="org.jbpm.pvm.internal.type.variable.HibernateStringVariable"
extends="org.jbpm.pvm.internal.type.Variable"
discriminator-value="s">
+ <subclass
name="org.jbpm.pvm.internal.type.variable.HibernateStringVariable"
extends="org.jbpm.pvm.internal.type.Variable"
discriminator-value="hib-string">
<property name="hibernatable" column="STRING_VALUE_"
type="string"/>
</subclass>
- <subclass name="org.jbpm.pvm.internal.type.variable.StringVariable"
extends="org.jbpm.pvm.internal.type.Variable"
discriminator-value="S">
+ <subclass name="org.jbpm.pvm.internal.type.variable.StringVariable"
extends="org.jbpm.pvm.internal.type.Variable"
discriminator-value="string">
<property name="string" column="STRING_VALUE_"
type="string"/>
</subclass>
- <subclass name="org.jbpm.pvm.internal.type.variable.NullVariable"
extends="org.jbpm.pvm.internal.type.Variable"
discriminator-value="N">
+ <subclass name="org.jbpm.pvm.internal.type.variable.TextVariable"
extends="org.jbpm.pvm.internal.type.Variable"
discriminator-value="text">
+ <property name="text" column="TEXT_VALUE_"
type="text"/>
</subclass>
- <subclass name="org.jbpm.pvm.internal.type.variable.BlobVariable"
extends="org.jbpm.pvm.internal.type.Variable"
discriminator-value="B">
+ <subclass name="org.jbpm.pvm.internal.type.variable.NullVariable"
extends="org.jbpm.pvm.internal.type.Variable"
discriminator-value="null">
+ </subclass>
+
+ <subclass name="org.jbpm.pvm.internal.type.variable.BlobVariable"
extends="org.jbpm.pvm.internal.type.Variable"
discriminator-value="blob">
<many-to-one name="lob"
column="LOB_"
cascade="all"
@@ -189,14 +193,6 @@
foreign-key="FK_VAR_LOB"
index="IDX_VAR_LOB" />
</subclass>
-
- <subclass name="org.jbpm.pvm.internal.type.variable.ClobVariable"
extends="org.jbpm.pvm.internal.type.Variable"
discriminator-value="C">
- <many-to-one name="lob"
- column="LOB_"
- cascade="all"
- class="org.jbpm.pvm.internal.lob.Lob"
- foreign-key="none"/>
- </subclass>
<!-- ### LOB ############################################################ -->
<class name="org.jbpm.pvm.internal.lob.Lob"
table="JBPM4_LOB">
@@ -205,9 +201,12 @@
</id>
<version name="dbversion" column="DBVERSION_" />
<property name="blob" type="blob"><column
name="BLOB_VALUE_" /></property>
+ <!--
+ should only be re-introduced if there comes a concrete need for it.
<property name="bytes" type="binary"
column="BINARY_VALUE_"/>
<property name="clob" type="clob"
column="CLOB_VALUE_" />
<property name="text" type="text"
column="TEXT_VALUE_"/>
+ -->
</class>
<class name="org.jbpm.pvm.internal.job.JobImpl"
table="JBPM4_JOB" discriminator-value="Job">
Modified: jbpm4/trunk/modules/pvm/src/main/resources/jbpm.task.hbm.xml
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/resources/jbpm.task.hbm.xml 2009-06-30 13:53:27 UTC
(rev 5164)
+++ jbpm4/trunk/modules/pvm/src/main/resources/jbpm.task.hbm.xml 2009-06-30 13:58:20 UTC
(rev 5165)
@@ -15,7 +15,7 @@
<version name="dbversion" column="DBVERSION_" />
<property name="name" column="NAME_"/>
- <property name="description" column="DESCR_"/>
+ <property name="description" column="DESCR_"
type="text"/>
<property name="state" column="STATE_"/>
<property name="suspendHistoryState" column="SUSPHISTSTATE_"
/>
<property name="assignee" column="ASSIGNEE_"/>
Modified: jbpm4/trunk/modules/pvm/src/main/resources/jbpm.variable.types.xml
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/resources/jbpm.variable.types.xml 2009-06-30 13:53:27
UTC (rev 5164)
+++ jbpm4/trunk/modules/pvm/src/main/resources/jbpm.variable.types.xml 2009-06-30 13:58:20
UTC (rev 5165)
@@ -20,7 +20,7 @@
<!-- byte[] and char[] -->
<type name="byte[]" class="[B"
variable-class="org.jbpm.pvm.internal.type.variable.BlobVariable" />
- <type name="char[]" class="[C"
variable-class="org.jbpm.pvm.internal.type.variable.ClobVariable" />
+ <type name="char[]" class="[C"
variable-class="org.jbpm.pvm.internal.type.variable.TextVariable" />
<type name="hibernate-long-id" class="hibernate"
id-type="long"
variable-class="org.jbpm.pvm.internal.type.variable.HibernateLongVariable"
/>
<type name="hibernate-string-id" class="hibernate"
id-type="string"
variable-class="org.jbpm.pvm.internal.type.variable.HibernateStringVariable"
/>
Modified:
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/type/VariableAutoTypeResolutionTest.java
===================================================================
---
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/type/VariableAutoTypeResolutionTest.java 2009-06-30
13:53:27 UTC (rev 5164)
+++
jbpm4/trunk/modules/pvm/src/test/java/org/jbpm/pvm/internal/type/VariableAutoTypeResolutionTest.java 2009-06-30
13:58:20 UTC (rev 5165)
@@ -37,6 +37,7 @@
import org.jbpm.pvm.internal.type.variable.DoubleVariable;
import org.jbpm.pvm.internal.type.variable.LongVariable;
import org.jbpm.pvm.internal.type.variable.StringVariable;
+import org.jbpm.pvm.internal.type.variable.TextVariable;
import org.jbpm.pvm.test.EnvironmentTestCase;
/**
@@ -218,10 +219,11 @@
ExecutionImpl execution = startProcessInstance();
char[] chars = generateChars("a lot of bytes ", 500);
+ assertTrue(chars.length>4500);
execution.setVariable("v", chars);
Variable variable = execution.getVariableObject("v");
- assertEquals(ClobVariable.class, variable.getClass());
+ assertEquals(TextVariable.class, variable.getClass());
assertTrue(Arrays.equals(chars, (char[]) execution.getVariable("v")));
}