Author: bdaw
Date: 2009-04-06 05:47:36 -0400 (Mon, 06 Apr 2009)
New Revision: 425
Added:
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/MaterializedBlobType.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/test/java/org/jboss/identity/idm/impl/api/OrganizationTest.java
idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/store/CommonIdentityStoreTest.java
Log:
- use MaterializedBlobType to fix binary data handling and test with 500 and 900 kilobytes
attributes/credentials
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-03
11:53:45 UTC (rev 424)
+++
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectBinaryAttribute.java 2009-04-06
09:47:36 UTC (rev 425)
@@ -43,7 +43,7 @@
public class HibernateIdentityObjectBinaryAttribute extends
HibernateIdentityObjectAttribute
{
- @CollectionOfElements(targetElement = byte[].class)
+ @CollectionOfElements(targetElement =
org.jboss.identity.idm.impl.model.hibernate.MaterializedBlobType.class)
private Set<byte[]> values = new HashSet<byte[]>();
public HibernateIdentityObjectBinaryAttribute()
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-03
11:53:45 UTC (rev 424)
+++
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/HibernateIdentityObjectCredential.java 2009-04-06
09:47:36 UTC (rev 425)
@@ -69,7 +69,7 @@
private String textValue;
@Column(name= "BINARY_VALUE", nullable = true)
- //@Type(type = "binary")
+ @Type(type =
"org.jboss.identity.idm.impl.model.hibernate.MaterializedBlobType")
private byte[] binaryValue;
@CollectionOfElements
Added:
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/MaterializedBlobType.java
===================================================================
---
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/MaterializedBlobType.java
(rev 0)
+++
idm/trunk/idm/src/main/java/org/jboss/identity/idm/impl/model/hibernate/MaterializedBlobType.java 2009-04-06
09:47:36 UTC (rev 425)
@@ -0,0 +1,61 @@
+/*
+* 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.type.AbstractBynaryType;
+
+import java.sql.Types;
+
+/**
+ * {@inheritDoc}
+ *
+ * @author Steve Ebersole
+ */
+public class MaterializedBlobType extends AbstractBynaryType
+{
+
+ public int sqlType()
+ {
+ return Types.BLOB;
+ }
+
+ public String getName()
+ {
+ return "materialized-blob";
+ }
+
+ public Class getReturnedClass()
+ {
+ return byte[].class;
+ }
+
+ protected Object toExternalFormat(byte[] bytes)
+ {
+ return bytes;
+ }
+
+ protected byte[] toInternalFormat(Object bytes)
+ {
+ return ( byte[] ) bytes;
+ }
+}
\ No newline at end of file
Modified:
idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/api/OrganizationTest.java
===================================================================
---
idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/api/OrganizationTest.java 2009-04-03
11:53:45 UTC (rev 424)
+++
idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/api/OrganizationTest.java 2009-04-06
09:47:36 UTC (rev 425)
@@ -282,7 +282,8 @@
// Generate random binary data for binary attribute
Random random = new Random();
- byte[] picture = new byte[255];
+ // 900 kilobytes
+ byte[] picture = new byte[921600];
random.nextBytes(picture);
// User attributes
@@ -335,7 +336,8 @@
if (session.getAttributesManager().hasCredential(anotherOne,
BinaryCredential.TYPE))
{
- byte[] cert = new byte[255];
+ // 500 kilobytes
+ byte[] cert = new byte[512000];
random.nextBytes(cert);
Credential binaryCredential = new BinaryCredential(cert);
session.getAttributesManager().updateCredential(anotherOne, binaryCredential);
Modified:
idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/store/CommonIdentityStoreTest.java
===================================================================
---
idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/store/CommonIdentityStoreTest.java 2009-04-03
11:53:45 UTC (rev 424)
+++
idm/trunk/idm/src/test/java/org/jboss/identity/idm/impl/store/CommonIdentityStoreTest.java 2009-04-06
09:47:36 UTC (rev 425)
@@ -330,9 +330,10 @@
Random random = new Random();
- byte[] data1 = new byte[255];
+
+ byte[] data1 = new byte[512000];
random.nextBytes(data1);
- byte[] data2 = new byte[128];
+ byte[] data2 = new byte[921600];
random.nextBytes(data2);
IdentityObjectCredential binaryCredential1 = new BinaryCredential(data1);