Author: bdaw
Date: 2009-11-09 11:00:13 -0500 (Mon, 09 Nov 2009)
New Revision: 918
Added:
idm/trunk/idm-hibernate/src/main/resources/mappings/
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObject.hbm.xml
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectAttribute.hbm.xml
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectCredential.hbm.xml
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectCredentialType.hbm.xml
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectRelationship.hbm.xml
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectRelationshipName.hbm.xml
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectRelationshipType.hbm.xml
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectType.hbm.xml
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateRealm.hbm.xml
Modified:
idm/trunk/idm-hibernate/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectAttribute.java
idm/trunk/idm-hibernate/src/main/java/org/jboss/identity/idm/impl/store/hibernate/HibernateIdentityStoreImpl.java
idm/trunk/idm-testsuite/src/test/java/org/jboss/identity/idm/impl/store/hibernate/HibernateIdentityStoreTestCase.java
Log:
- missing mappings files
- more schema tweaks
Modified:
idm/trunk/idm-hibernate/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectAttribute.java
===================================================================
---
idm/trunk/idm-hibernate/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectAttribute.java 2009-11-09
13:12:00 UTC (rev 917)
+++
idm/trunk/idm-hibernate/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectAttribute.java 2009-11-09
16:00:13 UTC (rev 918)
@@ -47,7 +47,7 @@
private String type;
- private Set<byte[]> binaryValues = new HashSet<byte[]>();
+ private byte[] binaryValue = null;
private Set<String> textValues = new HashSet<String>();
@@ -103,21 +103,16 @@
this.type = newType;
}
- public Set<byte[]> getBinaryValues()
+ public byte[] getBinaryValue()
{
- return binaryValues;
+ return binaryValue;
}
- public void setBinaryValues(Set<byte[]> binaryValues)
+ public void setBinaryValue(byte[] binaryValue)
{
- this.binaryValues = binaryValues;
+ this.binaryValue = binaryValue;
}
- public void addBinValue(byte[] value)
- {
- getBinaryValues().add(value);
- }
-
public Set<String> getTextValues()
{
return textValues;
@@ -148,14 +143,7 @@
}
else if (type.equals(TYPE_BINARY))
{
- if (getBinaryValues().size() > 0)
- {
- return getBinaryValues().iterator().next();
- }
- else
- {
- return null;
- }
+ return getBinaryValue();
}
else
{
@@ -180,7 +168,7 @@
throw new IllegalArgumentException("byte[] value expected with a set
type");
}
- addBinValue((byte[])value);
+ setBinaryValue((byte[])value);
}
else
{
@@ -196,7 +184,9 @@
}
else if (type.equals(TYPE_BINARY))
{
- return getBinaryValues();
+ Set vals = new HashSet();
+ vals.add(getBinaryValue());
+ return vals;
}
else
{
@@ -212,7 +202,11 @@
}
else if (type.equals(TYPE_BINARY))
{
- return getBinaryValues().size();
+ if (getBinaryValue() != null)
+ {
+ return 1;
+ }
+ return 0;
}
else
{
Modified:
idm/trunk/idm-hibernate/src/main/java/org/jboss/identity/idm/impl/store/hibernate/HibernateIdentityStoreImpl.java
===================================================================
---
idm/trunk/idm-hibernate/src/main/java/org/jboss/identity/idm/impl/store/hibernate/HibernateIdentityStoreImpl.java 2009-11-09
13:12:00 UTC (rev 917)
+++
idm/trunk/idm-hibernate/src/main/java/org/jboss/identity/idm/impl/store/hibernate/HibernateIdentityStoreImpl.java 2009-11-09
16:00:13 UTC (rev 918)
@@ -1725,6 +1725,11 @@
+ attribute.getName() + " / " + value);
}
}
+ if (type.equals(IdentityObjectAttributeMetaData.BINARY_TYPE) &&
attribute.getValues().size() > 1)
+ {
+ throw new IdentityException("Cannot add binary type attribute with
more than one value - this implementation" +
+ "support only single value binary attributes: " +
attribute.getName() );
+ }
}
}
@@ -1775,13 +1780,9 @@
+ type + ". Attribute name: " + name);
}
- Set<byte[]> v = new HashSet<byte[]>();
- for (Object value : attribute.getValues())
- {
- v.add((byte[])value);
- }
- storeAttribute.setBinaryValues(v);
+
+ storeAttribute.setBinaryValue((byte[])attribute.getValue());
}
else
{
@@ -1870,7 +1871,13 @@
throw new IdentityException("Cannot add binary type attribute with
not byte[] type value: "
+ attribute.getName() + " / " + value);
}
+
}
+ if (type.equals(IdentityObjectAttributeMetaData.BINARY_TYPE) &&
attribute.getValues().size() > 1)
+ {
+ throw new IdentityException("Cannot add binary type attribute with
more than one value - this implementation" +
+ "support only single value binary attributes: " +
attribute.getName() );
+ }
}
}
@@ -1924,13 +1931,7 @@
+ type + ". Attribute name: " + name);
}
- Set<byte[]> mergedValues = new
HashSet<byte[]>(hibernateAttribute.getValues());
- for (Object value : attribute.getValues())
- {
- mergedValues.add((byte[])value);
- }
-
- hibernateAttribute.setBinaryValues(mergedValues);
+
hibernateAttribute.setBinaryValue((byte[])hibernateAttribute.getValue());
}
else
{
@@ -1961,7 +1962,7 @@
values.add((byte[])value);
}
hibernateAttribute = new HibernateIdentityObjectAttribute(hibernateObject,
name, HibernateIdentityObjectAttribute.TYPE_BINARY);
- hibernateAttribute.setBinaryValues(values);
+ hibernateAttribute.setBinaryValue((byte[])attribute.getValue());
}
Added:
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObject.hbm.xml
===================================================================
--- idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObject.hbm.xml
(rev 0)
+++
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObject.hbm.xml 2009-11-09
16:00:13 UTC (rev 918)
@@ -0,0 +1,85 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD
3.0//EN"
+ "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+<hibernate-mapping>
+ <class
name="org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObject"
+ table="jbid_io">
+ <cache usage="read-write"/>
+ <id name="id"
+ type="java.lang.Long"
+ access="field">
+ <column name="ID" />
+ <generator class="native"/>
+ </id>
+ <set name="attributes"
+ inverse="true"
+ cascade="all, delete-orphan">
+ <cache usage="read-write"/>
+ <key>
+ <column name="IDENTITY_OBJECT_ID" />
+ </key>
+ <one-to-many
class="org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectAttribute"
/>
+ </set>
+ <set name="credentials"
+ inverse="true"
+ cascade="all, delete-orphan">
+ <cache usage="read-write"/>
+ <key>
+ <column name="IDENTITY_OBJECT_ID" />
+ </key>
+ <one-to-many
class="org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectCredential"
/>
+ </set>
+ <set name="fromRelationships"
+ inverse="true">
+ <cache usage="read-write"/>
+ <key>
+ <column name="FROM_IDENTITY" />
+ </key>
+ <one-to-many
class="org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectRelationship"
/>
+ </set>
+ <many-to-one name="identityType"
+
class="org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectType"
+ access="field"
+ fetch="join"
+ lazy="false">
+ <column name="IDENTITY_TYPE"
+ not-null="true"
+ unique-key="id"/>
+ </many-to-one>
+ <property name="name"
+ type="java.lang.String"
+ access="field">
+ <column name="NAME"
+ not-null="true"
+ unique-key="id"/>
+ </property>
+ <map name="properties"
+ table="jbid_io_props"
+ cascade="all, delete-orphan">
+ <cache usage="read-write"/>
+ <key column="PROP_ID"/>
+ <map-key type="string"
+ column="PROP_NAME"/>
+ <element type="string"
+ column="PROP_VALUE"
+ not-null="true"/>
+ </map>
+ <many-to-one name="realm"
+
class="org.jboss.identity.idm.impl.model.hibernate.HibernateRealm"
+ access="field"
+ fetch="join">
+ <column name="REALM"
+ not-null="true"
+ unique-key="id"/>
+ </many-to-one>
+ <set name="toRelationships"
+ inverse="true">
+ <cache usage="read-write"/>
+ <key>
+ <column name="TO_IDENTITY" />
+ </key>
+ <one-to-many
class="org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectRelationship"
/>
+ </set>
+
+ </class>
+</hibernate-mapping>
Added:
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectAttribute.hbm.xml
===================================================================
---
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectAttribute.hbm.xml
(rev 0)
+++
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectAttribute.hbm.xml 2009-11-09
16:00:13 UTC (rev 918)
@@ -0,0 +1,52 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD
3.0//EN"
+ "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+<hibernate-mapping>
+ <class
name="org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectAttribute"
+ table="jbid_io_attr">
+ <cache usage="read-write"/>
+ <id name="id"
+ type="java.lang.Long"
+ access="field">
+ <column name="ATTRIBUTE_ID" />
+ <generator class="native"/>
+ </id>
+ <many-to-one name="identityObject"
+
class="org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObject"
+ access="field"
+ fetch="join">
+ <column name="IDENTITY_OBJECT_ID" not-null="true"
unique-key="id"/>
+ </many-to-one>
+ <property name="name"
+ type="java.lang.String"
+ access="property"
+ lazy="false">
+ <column name="NAME"
+ unique-key="id" />
+ </property>
+ <property name="type"
+ type="java.lang.String"
+ access="field"
+ lazy="false"
+ not-null="true">
+ <column name="ATTRIBUTE_TYPE"/>
+ </property>
+ <set name="textValues"
+ table="jbid_io_attr_text_values"
+ cascade="all, delete-orphan"
+ lazy="false">
+ <cache usage="read-write"/>
+ <key column="TEXT_ATTR_VALUE_ID"/>
+ <element type="string"
+ column="ATTR_VALUE"/>
+ </set>
+ <property name="binaryValue"
+ type="binary"
+ access="field"
+ lazy="false"
+ not-null="true">
+ <column name="BINARY_VALUE"/>
+ </property>
+
+ </class>
+</hibernate-mapping>
Added:
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectCredential.hbm.xml
===================================================================
---
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectCredential.hbm.xml
(rev 0)
+++
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectCredential.hbm.xml 2009-11-09
16:00:13 UTC (rev 918)
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD
3.0//EN"
+ "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+<hibernate-mapping>
+ <class
name="org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectCredential"
+ table="jbid_io_creden">
+ <cache usage="read-write"/>
+
+ <id name="id"
+ type="java.lang.Long"
+ access="field">
+ <column name="ID" />
+ <generator class="native"/>
+ </id>
+ <property name="binaryValue"
+ type="binary"
+ access="field"
+ lazy="false">
+ <column name="BINARY_VAL"
+ length="10240000" />
+ </property>
+ <many-to-one name="identityObject"
+
class="org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObject"
+ access="field"
+ fetch="join"
+ lazy="false">
+ <column name="IDENTITY_OBJECT_ID"
+ not-null="true"
+ unique-key="id" />
+ </many-to-one>
+ <map name="properties"
+ table="jbid_io_creden_props"
+ cascade="all, delete-orphan">
+ <cache usage="read-write"/>
+ <key column="PROP_ID"/>
+ <map-key type="string"
+ column="PROP_NAME"/>
+ <element type="string"
+ column="PROP_VALUE"
+ not-null="true"/>
+ </map>
+ <property name="textValue"
+ type="java.lang.String"
+ access="field"
+ lazy="false">
+ <column name="TEXT" />
+ </property>
+ <many-to-one name="type"
+
class="org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectCredentialType"
+ access="field"
+ fetch="join"
+ lazy="false">
+ <column name="CREDENTIAL_TYPE"
+ not-null="true"
+ unique-key="id"/>
+ </many-to-one>
+ </class>
+</hibernate-mapping>
Added:
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectCredentialType.hbm.xml
===================================================================
---
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectCredentialType.hbm.xml
(rev 0)
+++
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectCredentialType.hbm.xml 2009-11-09
16:00:13 UTC (rev 918)
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD
3.0//EN"
+"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+<hibernate-mapping>
+ <class
name="org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectCredentialType"
+ table="jbid_io_creden_type">
+ <cache usage="read-write"/>
+
+ <id name="id"
+ type="java.lang.Long"
+ access="field">
+ <column name="ID" />
+ <generator class="native"/>
+ </id>
+ <property name="name"
+ type="java.lang.String"
+ access="field">
+ <column name="NAME"
+ unique="true" />
+ </property>
+ </class>
+</hibernate-mapping>
Added:
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectRelationship.hbm.xml
===================================================================
---
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectRelationship.hbm.xml
(rev 0)
+++
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectRelationship.hbm.xml 2009-11-09
16:00:13 UTC (rev 918)
@@ -0,0 +1,61 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD
3.0//EN"
+ "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+<hibernate-mapping>
+ <class
name="org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectRelationship"
+ table="jbid_io_rel">
+ <cache usage="read-write"/>
+ <id name="id"
+ type="java.lang.Long"
+ access="field">
+ <column name="ID" />
+ <generator class="native"/>
+ </id>
+ <many-to-one name="fromIdentityObject"
+
class="org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObject"
+ access="field"
+ fetch="join"
+ lazy="false">
+ <column name="FROM_IDENTITY"
+ not-null="true"
+ unique-key="id"/>
+ </many-to-one>
+ <many-to-one name="name"
+
class="org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectRelationshipName"
+ access="field"
+ fetch="join"
+ lazy="false">
+ <column name="NAME"
+ unique-key="id"/>
+ </many-to-one>
+ <many-to-one name="toIdentityObject"
+
class="org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObject"
+ access="field"
+ fetch="join"
+ lazy="false">
+ <column name="TO_IDENTITY"
+ not-null="true"
+ unique-key="id"/>
+ </many-to-one>
+ <many-to-one name="type"
+
class="org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectRelationshipType"
+ access="field"
+ fetch="join"
+ lazy="false">
+ <column name="REL_TYPE"
+ not-null="true"
+ unique-key="id" />
+ </many-to-one>
+ <map name="properties"
+ table="jbid_io_rel_props"
+ cascade="all, delete-orphan">
+ <cache usage="read-write"/>
+ <key column="PROP_ID"/>
+ <map-key type="string"
+ column="PROP_NAME"/>
+ <element type="string"
+ column="PROP_VALUE"
+ not-null="true"/>
+ </map>
+ </class>
+</hibernate-mapping>
Added:
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectRelationshipName.hbm.xml
===================================================================
---
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectRelationshipName.hbm.xml
(rev 0)
+++
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectRelationshipName.hbm.xml 2009-11-09
16:00:13 UTC (rev 918)
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD
3.0//EN"
+"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+<hibernate-mapping>
+ <class
name="org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectRelationshipName"
+ table="jbid_io_rel_name">
+ <cache usage="read-write"/>
+
+ <id name="id"
+ type="java.lang.Long"
+ access="field">
+ <column name="ID"/>
+ <generator class="native"/>
+ </id>
+ <property name="name"
+ type="java.lang.String"
+ access="field">
+ <column name="NAME"
+ not-null="true"
+ unique="true"
+ unique-key="id"/>
+ </property>
+ <map name="properties"
+ table="jbid_io_rel_name_props"
+ cascade="all, delete-orphan">
+ <cache usage="read-write"/>
+ <key column="PROP_ID"/>
+ <map-key type="string"
+ column="PROP_NAME"/>
+ <element type="string"
+ column="PROP_VALUE"
+ not-null="true"/>
+ </map>
+ <many-to-one name="realm"
+
class="org.jboss.identity.idm.impl.model.hibernate.HibernateRealm"
+ access="field"
+ fetch="join">
+ <column name="REALM"
+ not-null="true"
+ unique-key="id"/>
+ </many-to-one>
+
+ </class>
+</hibernate-mapping>
Added:
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectRelationshipType.hbm.xml
===================================================================
---
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectRelationshipType.hbm.xml
(rev 0)
+++
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectRelationshipType.hbm.xml 2009-11-09
16:00:13 UTC (rev 918)
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD
3.0//EN"
+ "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+<hibernate-mapping>
+ <class
name="org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectRelationshipType"
+ table="jbid_io_rel_type">
+ <cache usage="read-write"/>
+ <id name="id"
+ type="java.lang.Long"
+ access="field">
+ <column name="ID" />
+ <generator class="native"/>
+ </id>
+ <property name="name"
+ type="java.lang.String"
+ access="field">
+ <column name="NAME"
+ not-null="true"
+ unique="true" />
+ </property>
+ </class>
+</hibernate-mapping>
Added:
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectType.hbm.xml
===================================================================
---
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectType.hbm.xml
(rev 0)
+++
idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateIdentityObjectType.hbm.xml 2009-11-09
16:00:13 UTC (rev 918)
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD
3.0//EN"
+ "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+<hibernate-mapping>
+ <class
name="org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectType"
+ table="jbid_io_type">
+ <cache usage="read-write"/>
+
+ <id name="id"
+ type="java.lang.Long"
+ access="field">
+ <column name="ID" />
+ <generator class="native"/>
+ </id>
+ <property name="name"
+ type="java.lang.String"
+ access="field">
+ <column name="NAME"
+ not-null="true"
+ unique="true" />
+ </property>
+ </class>
+</hibernate-mapping>
Added: idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateRealm.hbm.xml
===================================================================
--- idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateRealm.hbm.xml
(rev 0)
+++ idm/trunk/idm-hibernate/src/main/resources/mappings/HibernateRealm.hbm.xml 2009-11-09
16:00:13 UTC (rev 918)
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD
3.0//EN"
+"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+<hibernate-mapping>
+ <class name="org.jboss.identity.idm.impl.model.hibernate.HibernateRealm"
+ table="jbid_realm">
+ <cache usage="read-write"/>
+ <id name="id"
+ type="java.lang.Long"
+ access="field">
+ <column name="ID" />
+ <generator class="native"/>
+ </id>
+ <property name="name"
+ type="java.lang.String"
+ access="field">
+ <column name="NAME"
+ not-null="true"
+ unique-key="id"/>
+ </property>
+ <map name="properties"
+ table="jbid_real_props"
+ cascade="all, delete-orphan">
+ <cache usage="read-write"/>
+ <key column="PROP_ID"/>
+ <map-key type="string"
+ column="PROP_NAME"/>
+ <element type="string"
+ column="PROP_VALUE"
+ not-null="true"/>
+ </map>
+ </class>
+</hibernate-mapping>
Modified:
idm/trunk/idm-testsuite/src/test/java/org/jboss/identity/idm/impl/store/hibernate/HibernateIdentityStoreTestCase.java
===================================================================
---
idm/trunk/idm-testsuite/src/test/java/org/jboss/identity/idm/impl/store/hibernate/HibernateIdentityStoreTestCase.java 2009-11-09
13:12:00 UTC (rev 917)
+++
idm/trunk/idm-testsuite/src/test/java/org/jboss/identity/idm/impl/store/hibernate/HibernateIdentityStoreTestCase.java 2009-11-09
16:00:13 UTC (rev 918)
@@ -47,6 +47,7 @@
import org.hibernate.SessionFactory;
import java.util.Map;
+import java.util.Random;
/**
* @author <a href="mailto:boleslaw.dawidowicz at redhat.com">Boleslaw
Dawidowicz</a>
@@ -186,6 +187,56 @@
}
+ public void testBinaryAttributes() throws Exception
+ {
+ begin();
+
+ IdentityObject user1 = store.createIdentityObject(ctx, "Adam",
IdentityTypeEnum.USER);
+ IdentityObject user2 = store.createIdentityObject(ctx, "Eva",
IdentityTypeEnum.USER);
+
+ flush();
+
+ IdentityObjectAttribute[] attrs = new IdentityObjectAttribute[]{
+ new SimpleAttribute("key1", new String[]{"val1",
"val2", "val3"}),
+ new SimpleAttribute("key2", new String[]{"val1",
"val2", "val3", "val4"})
+ };
+
+ store.addAttributes(ctx, user1, attrs);
+
+ Random random = new Random();
+
+ // 900 kilobytes
+ byte[] picture1 = new byte[921600];
+ random.nextBytes(picture1);
+ byte[] picture2 = new byte[921600];
+ random.nextBytes(picture2);
+
+ attrs = new IdentityObjectAttribute[]{
+ new SimpleAttribute("key1", new byte[][]{picture1}),
+ };
+
+ store.addAttributes(ctx, user1, attrs);
+
+ attrs = new IdentityObjectAttribute[]{
+ new SimpleAttribute("key2", new byte[][]{picture1, picture2}),
+ };
+
+ store.addAttributes(ctx, user1, attrs);
+
+ attrs = new IdentityObjectAttribute[]{
+ new SimpleAttribute("key1", new byte[][]{picture2}),
+ };
+
+ store.updateAttributes(ctx, user1, attrs);
+
+ store.removeAttributes(ctx, user1, new String[]{"key1",
"key2"});
+
+ assertNull(store.findIdentityObjectByUniqueAttribute(ctx, IdentityTypeEnum.USER,
new SimpleAttribute("key1", new String[]{"toto"})));
+
+
+ commit();
+ }
+
@Test
public void testAttributes() throws Exception
{