Author: bdaw
Date: 2009-04-07 14:58:01 -0400 (Tue, 07 Apr 2009)
New Revision: 431
Added:
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectBinaryAttributeValue.java
Modified:
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectBinaryAttribute.java
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectCredential.java
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/store/hibernate/HibernateIdentityStoreImpl.java
idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/IdentityTestPOJO.java
idm/trunk/idm/src/test/resources/datasources/hibernates.xml
Log:
another binary mapping fix
Modified:
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectBinaryAttribute.java
===================================================================
---
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectBinaryAttribute.java 2009-04-06
20:35:09 UTC (rev 430)
+++
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectBinaryAttribute.java 2009-04-07
18:58:01 UTC (rev 431)
@@ -28,6 +28,10 @@
import javax.persistence.Table;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.OneToMany;
+import javax.persistence.Column;
+import javax.persistence.JoinColumn;
+import javax.persistence.FetchType;
+import javax.persistence.CascadeType;
import java.util.Set;
import java.util.HashSet;
import java.util.Collections;
@@ -43,8 +47,11 @@
public class HibernateIdentityObjectBinaryAttribute extends
HibernateIdentityObjectAttribute
{
- @CollectionOfElements(targetElement =
org.jboss.identity.idm.impl.model.hibernate.MaterializedBlobType.class)
- private Set<byte[]> values = new HashSet<byte[]>();
+ @OneToMany(fetch = FetchType.EAGER, cascade = {CascadeType.ALL})
+ @org.hibernate.annotations.Cascade(
+ value = {org.hibernate.annotations.CascadeType.DELETE_ORPHAN}
+ )
+ private Set<HibernateIdentityObjectBinaryAttributeValue> values = new
HashSet<HibernateIdentityObjectBinaryAttributeValue>();
public HibernateIdentityObjectBinaryAttribute()
{
@@ -53,24 +60,40 @@
public HibernateIdentityObjectBinaryAttribute(HibernateIdentityObject identityObject,
String name, Set<byte[]> values)
{
super(identityObject, name);
- this.values = values;
+
+ for (byte[] value : values)
+ {
+ addValue(value);
+ }
+
}
public Set<byte[]> getValues()
{
- return values;
+ Set<byte[]> vals = new HashSet<byte[]>();
+ for (HibernateIdentityObjectBinaryAttributeValue value : values)
+ {
+ vals.add(value.getValue());
+ }
+
+ return vals;
+
}
public void setValues(Set<byte[]> values)
{
- this.values = Collections.unmodifiableSet(values);
+ this.values = new HashSet<HibernateIdentityObjectBinaryAttributeValue>();
+ for (byte[] value : values)
+ {
+ addValue(value);
+ }
}
public byte[] getValue()
{
if (values.size() > 0)
{
- return values.iterator().next();
+ return values.iterator().next().getValue();
}
else
{
@@ -85,10 +108,15 @@
public void addValue(Object value)
{
- if (value instanceof byte[])
+ if (value != null && value instanceof byte[])
{
- values.add((byte[])value);
+ addValue(new HibernateIdentityObjectBinaryAttributeValue((byte[])value));
}
}
+ public void addValue(HibernateIdentityObjectBinaryAttributeValue value)
+ {
+ values.add(value);
+ }
+
}
Copied:
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectBinaryAttributeValue.java
(from rev 425,
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectBinaryAttribute.java)
===================================================================
---
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectBinaryAttributeValue.java
(rev 0)
+++
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectBinaryAttributeValue.java 2009-04-07
18:58:01 UTC (rev 431)
@@ -0,0 +1,86 @@
+/*
+* JBoss, a division of Red Hat
+* Copyright 2006, Red Hat Middleware, LLC, 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.jboss.identity.idm.impl.model.hibernate;
+
+import org.hibernate.annotations.CollectionOfElements;
+
+import javax.persistence.Entity;
+import javax.persistence.Table;
+import javax.persistence.PrimaryKeyJoinColumn;
+import javax.persistence.OneToMany;
+import javax.persistence.Column;
+import javax.persistence.JoinColumn;
+import javax.persistence.Id;
+import javax.persistence.GeneratedValue;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.Collections;
+
+/**
+ * @author <a href="mailto:boleslaw.dawidowicz at redhat.com">Boleslaw
Dawidowicz</a>
+ * @version : 0.1 $
+ */
+
+@Entity
+//The table name need to fit in oracle constrants (ORA-00972: identifier is too long)
+@Table(name = "jbid_io_bin")
+public class HibernateIdentityObjectBinaryAttributeValue
+{
+
+ @Id
+ @GeneratedValue
+ private Long id;
+
+
+ @Column(length = 10240000)
+ private byte[] value;
+
+ public HibernateIdentityObjectBinaryAttributeValue()
+ {
+ }
+
+ public HibernateIdentityObjectBinaryAttributeValue(byte[] value)
+ {
+ this.value = value;
+ }
+
+ public Long getId()
+ {
+ return id;
+ }
+
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ public byte[] getValue()
+ {
+ return value;
+ }
+
+ public void setValue(byte[] value)
+ {
+ this.value = value;
+ }
+}
\ No newline at end of file
Modified:
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectCredential.java
===================================================================
---
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectCredential.java 2009-04-06
20:35:09 UTC (rev 430)
+++
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectCredential.java 2009-04-07
18:58:01 UTC (rev 431)
@@ -68,8 +68,7 @@
@Column(name= "TEXT", nullable = true)
private String textValue;
- @Column(name= "BINARY_VALUE", nullable = true)
- @Type(type =
"org.jboss.identity.idm.impl.model.hibernate.MaterializedBlobType")
+ @Column(name= "BINARY_VALUE", nullable = true, length = 10240000)
private byte[] binaryValue;
@CollectionOfElements
Modified:
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/store/hibernate/HibernateIdentityStoreImpl.java
===================================================================
---
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/store/hibernate/HibernateIdentityStoreImpl.java 2009-04-06
20:35:09 UTC (rev 430)
+++
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/store/hibernate/HibernateIdentityStoreImpl.java 2009-04-07
18:58:01 UTC (rev 431)
@@ -52,6 +52,7 @@
import org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectTextAttribute;
import org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectType;
import org.jboss.identity.idm.impl.model.hibernate.HibernateRealm;
+import
org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectBinaryAttributeValue;
import org.jboss.identity.idm.impl.store.FeaturesMetaDataImpl;
import
org.jboss.identity.idm.spi.configuration.metadata.IdentityObjectAttributeMetaData;
import org.jboss.identity.idm.spi.configuration.metadata.IdentityObjectTypeMetaData;
@@ -373,6 +374,7 @@
return config.addAnnotatedClass(HibernateIdentityObject.class)
.addAnnotatedClass(HibernateIdentityObjectAttribute.class)
.addAnnotatedClass(HibernateIdentityObjectBinaryAttribute.class)
+ .addAnnotatedClass(HibernateIdentityObjectBinaryAttributeValue.class)
.addAnnotatedClass(HibernateIdentityObjectTextAttribute.class)
.addAnnotatedClass(HibernateIdentityObjectCredential.class)
.addAnnotatedClass(HibernateIdentityObjectCredentialType.class)
Modified: idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/IdentityTestPOJO.java
===================================================================
---
idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/IdentityTestPOJO.java 2009-04-06
20:35:09 UTC (rev 430)
+++
idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/IdentityTestPOJO.java 2009-04-07
18:58:01 UTC (rev 431)
@@ -41,6 +41,7 @@
import
org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectRelationshipType;
import org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectType;
import org.jboss.identity.idm.impl.model.hibernate.HibernateRealm;
+import
org.jboss.identity.idm.impl.model.hibernate.HibernateIdentityObjectBinaryAttributeValue;
import org.jboss.identity.idm.test.HibernateAnnotationsSupport;
import org.jboss.identity.idm.opends.OpenDSService;
import org.opends.server.tools.LDAPModify;
@@ -120,6 +121,7 @@
annotatedClasses.add(HibernateIdentityObject.class.getName());
annotatedClasses.add(HibernateIdentityObjectAttribute.class.getName());
annotatedClasses.add(HibernateIdentityObjectBinaryAttribute.class.getName());
+ annotatedClasses.add(HibernateIdentityObjectBinaryAttributeValue.class.getName());
annotatedClasses.add(HibernateIdentityObjectTextAttribute.class.getName());
annotatedClasses.add(HibernateIdentityObjectCredential.class.getName());
annotatedClasses.add(HibernateIdentityObjectCredentialType.class.getName());
Modified: idm/trunk/idm/src/test/resources/datasources/hibernates.xml
===================================================================
--- idm/trunk/idm/src/test/resources/datasources/hibernates.xml 2009-04-06 20:35:09 UTC
(rev 430)
+++ idm/trunk/idm/src/test/resources/datasources/hibernates.xml 2009-04-07 18:58:01 UTC
(rev 431)
@@ -35,6 +35,10 @@
<name>hibernate.cache.use_query_cache</name>
<value>false</value>
</property>
+ <!--<property>-->
+ <!--<name>hibernate.jdbc.batch_size</name>-->
+ <!--<value>0</value>-->
+ <!--</property>-->
</properties>
</configuration>
<!-- The hsqldb configuration -->
@@ -85,10 +89,10 @@
<value>org.hibernate.dialect.Oracle9Dialect</value>
</property>
<!-- Needed in order to avoid the bug described in HBX-146 to happen in
instance container test case -->
- <property>
- <name>hibernate.cache.use_second_level_cache</name>
- <value>true</value>
- </property>
+ <!--<property>-->
+ <!--<name>hibernate.cache.use_second_level_cache</name>-->
+ <!--<value>true</value>-->
+ <!--</property>-->
</properties>
</configuration>
<configuration>
@@ -99,10 +103,10 @@
<value>org.hibernate.dialect.Oracle9Dialect</value>
</property>
<!-- Needed in order to avoid the bug described in HBX-146 to happen in
instance container test case -->
- <property>
- <name>hibernate.cache.use_second_level_cache</name>
- <value>true</value>
- </property>
+ <!--<property>-->
+
<!--<name>hibernate.cache.use_second_level_cache</name>-->
+ <!--<value>true</value>-->
+ <!--</property>-->
</properties>
</configuration>
<!-- The sqlserver configuration -->