Hibernate SVN: r10610 - branches/Branch_3_2
by hibernate-commits@lists.jboss.org
Author: epbernard
Date: 2006-10-18 12:14:49 -0400 (Wed, 18 Oct 2006)
New Revision: 10610
Added:
branches/Branch_3_2/HibernateExt/
Log:
copy HibernateExt to Branch_3_2
Copied: branches/Branch_3_2/HibernateExt (from rev 10609, trunk/HibernateExt)
17 years, 6 months
Hibernate SVN: r10609 - trunk/Hibernate3/test/org/hibernate/test/hql
by hibernate-commits@lists.jboss.org
Author: steve.ebersole(a)jboss.com
Date: 2006-10-18 10:40:34 -0400 (Wed, 18 Oct 2006)
New Revision: 10609
Modified:
trunk/Hibernate3/test/org/hibernate/test/hql/ClassificationType.java
Log:
fixed test bug
Modified: trunk/Hibernate3/test/org/hibernate/test/hql/ClassificationType.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/hql/ClassificationType.java 2006-10-18 14:40:17 UTC (rev 10608)
+++ trunk/Hibernate3/test/org/hibernate/test/hql/ClassificationType.java 2006-10-18 14:40:34 UTC (rev 10609)
@@ -73,7 +73,7 @@
}
public String objectToSQLString(Object value) {
- return '\'' + extractName( value ) + '\'';
+ return '\'' + extractOrdinalString( value ) + '\'';
}
public String toXMLString(Object value) {
@@ -87,4 +87,12 @@
private String extractName(Object obj) {
return ( ( Classification ) obj ).name();
}
+
+ private int extractOrdinal(Object value) {
+ return ( ( Classification ) value ).ordinal();
+ }
+
+ private String extractOrdinalString(Object value) {
+ return Integer.toString( extractOrdinal( value ) );
+ }
}
17 years, 6 months
Hibernate SVN: r10608 - branches/Branch_3_2/Hibernate3/test/org/hibernate/test/hql
by hibernate-commits@lists.jboss.org
Author: steve.ebersole(a)jboss.com
Date: 2006-10-18 10:40:17 -0400 (Wed, 18 Oct 2006)
New Revision: 10608
Modified:
branches/Branch_3_2/Hibernate3/test/org/hibernate/test/hql/ClassificationType.java
Log:
fixed test bug
Modified: branches/Branch_3_2/Hibernate3/test/org/hibernate/test/hql/ClassificationType.java
===================================================================
--- branches/Branch_3_2/Hibernate3/test/org/hibernate/test/hql/ClassificationType.java 2006-10-18 14:12:11 UTC (rev 10607)
+++ branches/Branch_3_2/Hibernate3/test/org/hibernate/test/hql/ClassificationType.java 2006-10-18 14:40:17 UTC (rev 10608)
@@ -73,7 +73,7 @@
}
public String objectToSQLString(Object value) {
- return '\'' + extractName( value ) + '\'';
+ return '\'' + extractOrdinalString( value ) + '\'';
}
public String toXMLString(Object value) {
@@ -87,4 +87,12 @@
private String extractName(Object obj) {
return ( ( Classification ) obj ).name();
}
+
+ private int extractOrdinal(Object value) {
+ return ( ( Classification ) value ).ordinal();
+ }
+
+ private String extractOrdinalString(Object value) {
+ return Integer.toString( extractOrdinal( value ) );
+ }
}
17 years, 6 months
Hibernate SVN: r10607 - branches/Branch_3_2/Hibernate3/test/org/hibernate/test/hql
by hibernate-commits@lists.jboss.org
Author: steve.ebersole(a)jboss.com
Date: 2006-10-18 10:12:11 -0400 (Wed, 18 Oct 2006)
New Revision: 10607
Modified:
branches/Branch_3_2/Hibernate3/test/org/hibernate/test/hql/ASTParserLoadingTest.java
Log:
fixed erroneous assertions for Sybase/SQLServer
Modified: branches/Branch_3_2/Hibernate3/test/org/hibernate/test/hql/ASTParserLoadingTest.java
===================================================================
--- branches/Branch_3_2/Hibernate3/test/org/hibernate/test/hql/ASTParserLoadingTest.java 2006-10-18 14:10:09 UTC (rev 10606)
+++ branches/Branch_3_2/Hibernate3/test/org/hibernate/test/hql/ASTParserLoadingTest.java 2006-10-18 14:12:11 UTC (rev 10607)
@@ -29,6 +29,8 @@
import org.hibernate.dialect.HSQLDialect;
import org.hibernate.dialect.MySQLDialect;
import org.hibernate.dialect.Oracle9Dialect;
+import org.hibernate.dialect.SQLServerDialect;
+import org.hibernate.dialect.SybaseDialect;
import org.hibernate.stat.QueryStatistics;
import org.hibernate.test.TestCase;
import org.hibernate.test.any.PropertyValue;
@@ -824,20 +826,28 @@
if ( getDialect() instanceof DB2Dialect ) {
assertTrue( str.startsWith("1.234") );
}
+ else if ( getDialect() instanceof SQLServerDialect ) {
+ // no assertion as SQLServer always returns nulls here; even trying directly against the
+ // database, it seems to have problems with str() in the where clause...
+ }
else {
assertTrue( str.startsWith("123.4") );
}
- String dateStr1 = (String) session.createQuery("select str(current_date) from Animal").uniqueResult();
- String dateStr2 = (String) session.createQuery("select str(year(current_date))||'-'||str(month(current_date))||'-'||str(day(current_date)) from Animal").uniqueResult();
- System.out.println(dateStr1 + '=' + dateStr2);
- if ( ! ( getDialect() instanceof Oracle9Dialect ) ) { //Oracle renders the name of the month :(
- String[] dp1 = StringHelper.split("-", dateStr1);
- String[] dp2 = StringHelper.split("-", dateStr2);
- for (int i=0; i<3; i++) {
- if ( dp1[i].startsWith( "0" ) ) {
- dp1[i] = dp1[i].substring( 1 );
+ if ( ! ( getDialect() instanceof SybaseDialect ) ) {
+ // In TransactSQL (the variant spoken by Sybase and SQLServer), the str() function
+ // is explicitly intended for numeric values only...
+ String dateStr1 = (String) session.createQuery("select str(current_date) from Animal").uniqueResult();
+ String dateStr2 = (String) session.createQuery("select str(year(current_date))||'-'||str(month(current_date))||'-'||str(day(current_date)) from Animal").uniqueResult();
+ System.out.println(dateStr1 + '=' + dateStr2);
+ if ( ! ( getDialect() instanceof Oracle9Dialect ) ) { //Oracle renders the name of the month :(
+ String[] dp1 = StringHelper.split("-", dateStr1);
+ String[] dp2 = StringHelper.split("-", dateStr2);
+ for (int i=0; i<3; i++) {
+ if ( dp1[i].startsWith( "0" ) ) {
+ dp1[i] = dp1[i].substring( 1 );
+ }
+ assertEquals( dp1[i], dp2[i] );
}
- assertEquals( dp1[i], dp2[i] );
}
}
session.delete(an);
17 years, 6 months
Hibernate SVN: r10606 - trunk/Hibernate3/test/org/hibernate/test/hql
by hibernate-commits@lists.jboss.org
Author: steve.ebersole(a)jboss.com
Date: 2006-10-18 10:10:09 -0400 (Wed, 18 Oct 2006)
New Revision: 10606
Modified:
trunk/Hibernate3/test/org/hibernate/test/hql/ASTParserLoadingTest.java
Log:
fixed erroneous assertions for Sybase/SQLServer
Modified: trunk/Hibernate3/test/org/hibernate/test/hql/ASTParserLoadingTest.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/hql/ASTParserLoadingTest.java 2006-10-18 12:33:29 UTC (rev 10605)
+++ trunk/Hibernate3/test/org/hibernate/test/hql/ASTParserLoadingTest.java 2006-10-18 14:10:09 UTC (rev 10606)
@@ -29,6 +29,8 @@
import org.hibernate.dialect.HSQLDialect;
import org.hibernate.dialect.MySQLDialect;
import org.hibernate.dialect.Oracle9Dialect;
+import org.hibernate.dialect.SQLServerDialect;
+import org.hibernate.dialect.SybaseDialect;
import org.hibernate.stat.QueryStatistics;
import org.hibernate.test.TestCase;
import org.hibernate.test.any.PropertyValue;
@@ -897,25 +899,33 @@
if ( getDialect() instanceof DB2Dialect ) {
assertTrue( str.startsWith("1.234") );
}
+ else if ( getDialect() instanceof SQLServerDialect) {
+ // no assertion as SQLServer always returns nulls here; even trying directly against the
+ // database, it seems to have problems with str() in the where clause...
+ }
else {
assertTrue( str.startsWith("123.4") );
}
- String dateStr1 = (String) session.createQuery("select str(current_date) from Animal").uniqueResult();
- String dateStr2 = (String) session.createQuery("select str(year(current_date))||'-'||str(month(current_date))||'-'||str(day(current_date)) from Animal").uniqueResult();
- System.out.println(dateStr1 + '=' + dateStr2);
- if ( ! ( getDialect() instanceof Oracle9Dialect ) ) { //Oracle renders the name of the month :(
- String[] dp1 = StringHelper.split("-", dateStr1);
- String[] dp2 = StringHelper.split("-", dateStr2);
- for (int i=0; i<3; i++) {
- if ( dp1[i].startsWith( "0" ) ) {
- dp1[i] = dp1[i].substring( 1 );
+ if ( ! ( getDialect() instanceof SybaseDialect) ) {
+ // In TransactSQL (the variant spoken by Sybase and SQLServer), the str() function
+ // is explicitly intended for numeric values only...
+ String dateStr1 = (String) session.createQuery("select str(current_date) from Animal").uniqueResult();
+ String dateStr2 = (String) session.createQuery("select str(year(current_date))||'-'||str(month(current_date))||'-'||str(day(current_date)) from Animal").uniqueResult();
+ System.out.println(dateStr1 + '=' + dateStr2);
+ if ( ! ( getDialect() instanceof Oracle9Dialect ) ) { //Oracle renders the name of the month :(
+ String[] dp1 = StringHelper.split("-", dateStr1);
+ String[] dp2 = StringHelper.split("-", dateStr2);
+ for (int i=0; i<3; i++) {
+ if ( dp1[i].startsWith( "0" ) ) {
+ dp1[i] = dp1[i].substring( 1 );
+ }
+ assertEquals( dp1[i], dp2[i] );
}
- assertEquals( dp1[i], dp2[i] );
}
}
session.delete(an);
txn.commit();
- session.close();
+ session.close();
}
public void testCast() {
17 years, 6 months
Hibernate SVN: r10605 - branches/Branch_3_2/Hibernate3/test/org/hibernate/test
by hibernate-commits@lists.jboss.org
Author: steve.ebersole(a)jboss.com
Date: 2006-10-18 08:33:29 -0400 (Wed, 18 Oct 2006)
New Revision: 10605
Modified:
branches/Branch_3_2/Hibernate3/test/org/hibernate/test/TestCase.java
Log:
disable test data cleanup validation by default
Modified: branches/Branch_3_2/Hibernate3/test/org/hibernate/test/TestCase.java
===================================================================
--- branches/Branch_3_2/Hibernate3/test/org/hibernate/test/TestCase.java 2006-10-18 12:33:12 UTC (rev 10604)
+++ branches/Branch_3_2/Hibernate3/test/org/hibernate/test/TestCase.java 2006-10-18 12:33:29 UTC (rev 10605)
@@ -321,7 +321,7 @@
if ( !recreateSchema() ) {
return; // no tables were created...
}
- if ( Boolean.getBoolean( "hibernate.test.skipCleanupValidation" ) ) {
+ if ( !Boolean.getBoolean( "hibernate.test.validateDataCleanup" ) ) {
return;
}
17 years, 6 months
Hibernate SVN: r10604 - trunk/Hibernate3/test/org/hibernate/test
by hibernate-commits@lists.jboss.org
Author: steve.ebersole(a)jboss.com
Date: 2006-10-18 08:33:12 -0400 (Wed, 18 Oct 2006)
New Revision: 10604
Modified:
trunk/Hibernate3/test/org/hibernate/test/TestCase.java
Log:
disable test data cleanup validation by default
Modified: trunk/Hibernate3/test/org/hibernate/test/TestCase.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/TestCase.java 2006-10-18 10:51:39 UTC (rev 10603)
+++ trunk/Hibernate3/test/org/hibernate/test/TestCase.java 2006-10-18 12:33:12 UTC (rev 10604)
@@ -317,7 +317,7 @@
if ( !recreateSchema() ) {
return; // no tables were created...
}
- if ( Boolean.getBoolean( "hibernate.test.skipCleanupValidation" ) ) {
+ if ( !Boolean.getBoolean( "hibernate.test.validateDataCleanup" ) ) {
return;
}
17 years, 6 months
Hibernate SVN: r10603 - trunk/Hibernate3/test/org/hibernate/test/jpa/ql
by hibernate-commits@lists.jboss.org
Author: steve.ebersole(a)jboss.com
Date: 2006-10-18 06:51:39 -0400 (Wed, 18 Oct 2006)
New Revision: 10603
Modified:
trunk/Hibernate3/test/org/hibernate/test/jpa/ql/JPAQLComplianceTest.java
Log:
removed (now) erroneous test
Modified: trunk/Hibernate3/test/org/hibernate/test/jpa/ql/JPAQLComplianceTest.java
===================================================================
--- trunk/Hibernate3/test/org/hibernate/test/jpa/ql/JPAQLComplianceTest.java 2006-10-18 10:50:06 UTC (rev 10602)
+++ trunk/Hibernate3/test/org/hibernate/test/jpa/ql/JPAQLComplianceTest.java 2006-10-18 10:51:39 UTC (rev 10603)
@@ -29,18 +29,6 @@
s.close();
}
- public void testNoSelectClause() {
- Session s = openSession();
- try {
- s.createQuery( "from Part" ).list();
- fail( "expecting parse failure" );
- }
- catch( QuerySyntaxException qe ) {
- // expected behavior
- }
- s.close();
- }
-
public void testIdentifierCaseSensitive() throws Exception {
Session s = openSession( );
s.createQuery( "select object(I) from Item i").list();
17 years, 6 months
Hibernate SVN: r10602 - branches/Branch_3_2/Hibernate3/test/org/hibernate/test/jpa/ql
by hibernate-commits@lists.jboss.org
Author: steve.ebersole(a)jboss.com
Date: 2006-10-18 06:50:06 -0400 (Wed, 18 Oct 2006)
New Revision: 10602
Modified:
branches/Branch_3_2/Hibernate3/test/org/hibernate/test/jpa/ql/JPAQLComplianceTest.java
Log:
removed (now) erroneous test
Modified: branches/Branch_3_2/Hibernate3/test/org/hibernate/test/jpa/ql/JPAQLComplianceTest.java
===================================================================
--- branches/Branch_3_2/Hibernate3/test/org/hibernate/test/jpa/ql/JPAQLComplianceTest.java 2006-10-18 00:58:41 UTC (rev 10601)
+++ branches/Branch_3_2/Hibernate3/test/org/hibernate/test/jpa/ql/JPAQLComplianceTest.java 2006-10-18 10:50:06 UTC (rev 10602)
@@ -29,18 +29,6 @@
s.close();
}
- public void testNoSelectClause() {
- Session s = openSession();
- try {
- s.createQuery( "from Part" ).list();
- fail( "expecting parse failure" );
- }
- catch( QuerySyntaxException qe ) {
- // expected behavior
- }
- s.close();
- }
-
public void testIdentifierCaseSensitive() throws Exception {
Session s = openSession( );
s.createQuery( "select object(I) from Item i").list();
17 years, 6 months
Hibernate SVN: r10601 - in branches/Lucene_Integration/HibernateExt/metadata/src: java/org/hibernate/lucene/bridge test/org/hibernate/lucene/test/bridge
by hibernate-commits@lists.jboss.org
Author: epbernard
Date: 2006-10-17 20:58:41 -0400 (Tue, 17 Oct 2006)
New Revision: 10601
Added:
branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/BigDecimalBridge.java
branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/BigIntegerBridge.java
branches/Lucene_Integration/HibernateExt/metadata/src/test/org/hibernate/lucene/test/bridge/TruncateFieldBridge.java
branches/Lucene_Integration/HibernateExt/metadata/src/test/org/hibernate/lucene/test/bridge/TruncateStringBridge.java
Modified:
branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/BridgeFactory.java
branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/DateBridge.java
branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/DoubleBridge.java
branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/FloatBridge.java
branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/IntegerBridge.java
branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/LongBridge.java
branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/ParameterizedBridge.java
branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/StringImplBridge.java
branches/Lucene_Integration/HibernateExt/metadata/src/test/org/hibernate/lucene/test/bridge/BridgeTest.java
branches/Lucene_Integration/HibernateExt/metadata/src/test/org/hibernate/lucene/test/bridge/Cloud.java
Log:
ANN-454 support for BigDecimal/BigInteger
ANN-363 @FieldBridge support
Added: branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/BigDecimalBridge.java
===================================================================
--- branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/BigDecimalBridge.java 2006-10-17 23:58:05 UTC (rev 10600)
+++ branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/BigDecimalBridge.java 2006-10-18 00:58:41 UTC (rev 10601)
@@ -0,0 +1,19 @@
+//$Id: $
+package org.hibernate.lucene.bridge;
+
+import java.math.BigInteger;
+import java.math.BigDecimal;
+
+import org.hibernate.util.StringHelper;
+
+/**
+ * Map a BigDecimal element
+ *
+ * @author Emmanuel Bernard
+ */
+public class BigDecimalBridge extends NumberBridge {
+ public Object stringToObject(String stringValue) {
+ if ( StringHelper.isEmpty(stringValue) ) return null;
+ return new BigDecimal(stringValue);
+ }
+}
Added: branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/BigIntegerBridge.java
===================================================================
--- branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/BigIntegerBridge.java 2006-10-17 23:58:05 UTC (rev 10600)
+++ branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/BigIntegerBridge.java 2006-10-18 00:58:41 UTC (rev 10601)
@@ -0,0 +1,17 @@
+//$Id: $
+package org.hibernate.lucene.bridge;
+
+import java.math.BigInteger;
+
+import org.hibernate.util.StringHelper;
+
+/**
+ * Map a BigInteger element
+ * @author Emmanuel Bernard
+ */
+public class BigIntegerBridge extends NumberBridge {
+ public Object stringToObject(String stringValue) {
+ if ( StringHelper.isEmpty(stringValue) ) return null;
+ return new BigInteger(stringValue);
+ }
+}
Modified: branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/BridgeFactory.java
===================================================================
--- branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/BridgeFactory.java 2006-10-17 23:58:05 UTC (rev 10600)
+++ branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/BridgeFactory.java 2006-10-18 00:58:41 UTC (rev 10601)
@@ -4,6 +4,8 @@
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
+import java.math.BigInteger;
+import java.math.BigDecimal;
import org.hibernate.HibernateException;
import org.hibernate.reflection.XMember;
@@ -26,8 +28,12 @@
public static final FieldBridge LONG = new String2FieldBridgeAdaptor( new LongBridge() );
- public static final FieldBridge STRING = new String2FieldBridgeAdaptor( new StringImplBridge() );
+ public static final FieldBridge BIG_INTEGER = new String2FieldBridgeAdaptor( new BigIntegerBridge() );
+ public static final FieldBridge BIG_DECIMAL = new String2FieldBridgeAdaptor( new BigDecimalBridge() );
+
+ public static final FieldBridge STRING = new String2FieldBridgeAdaptor( new StringImplBridge() );
+
public static final FieldBridge DATE_YEAR;
public static final FieldBridge DATE_MONTH;
public static final FieldBridge DATE_DAY;
@@ -45,9 +51,11 @@
builtInBridges.put( int.class.getName(), INTEGER );
builtInBridges.put( Long.class.getName(), LONG );
builtInBridges.put( long.class.getName(), LONG );
+ builtInBridges.put( BigInteger.class.getName(), BIG_INTEGER );
+ builtInBridges.put( BigDecimal.class.getName(), BIG_DECIMAL );
builtInBridges.put( String.class.getName(), STRING );
- DATE_YEAR = org.hibernate.lucene.bridge.DateBridge.DATE_YEAR;
+ DATE_YEAR = org.hibernate.lucene.bridge.DateBridge.DATE_YEAR;
DATE_MONTH = org.hibernate.lucene.bridge.DateBridge.DATE_MONTH;
DATE_DAY = org.hibernate.lucene.bridge.DateBridge.DATE_DAY;
DATE_HOUR = org.hibernate.lucene.bridge.DateBridge.DATE_HOUR;
Modified: branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/DateBridge.java
===================================================================
--- branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/DateBridge.java 2006-10-17 23:58:05 UTC (rev 10600)
+++ branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/DateBridge.java 2006-10-18 00:58:41 UTC (rev 10601)
@@ -14,6 +14,15 @@
/**
* Bridge a java.util.Date to a String, truncated to the resolution
* Date are stored GMT based
+ *
+ * ie
+ * Resolution.YEAR: yyyy
+ * Resolution.MONTH: yyyyMM
+ * Resolution.DAY: yyyyMMdd
+ * Resolution.HOUR: yyyyMMddHH
+ * Resolution.MINUTE: yyyyMMddHHmm
+ * Resolution.SECOND: yyyyMMddHHmmss
+ * Resolution.MILLISECOND: yyyyMMddHHmmssSSS
*
* @author Emmanuel Bernard
*/
Modified: branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/DoubleBridge.java
===================================================================
--- branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/DoubleBridge.java 2006-10-17 23:58:05 UTC (rev 10600)
+++ branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/DoubleBridge.java 2006-10-18 00:58:41 UTC (rev 10601)
@@ -4,6 +4,8 @@
import org.hibernate.util.StringHelper;
/**
+ * Map a double element
+ *
* @author Emmanuel Bernard
*/
public class DoubleBridge extends NumberBridge {
Modified: branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/FloatBridge.java
===================================================================
--- branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/FloatBridge.java 2006-10-17 23:58:05 UTC (rev 10600)
+++ branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/FloatBridge.java 2006-10-18 00:58:41 UTC (rev 10601)
@@ -4,6 +4,8 @@
import org.hibernate.util.StringHelper;
/**
+ * Map a float element
+ *
* @author Emmanuel Bernard
*/
public class FloatBridge extends NumberBridge {
Modified: branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/IntegerBridge.java
===================================================================
--- branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/IntegerBridge.java 2006-10-17 23:58:05 UTC (rev 10600)
+++ branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/IntegerBridge.java 2006-10-18 00:58:41 UTC (rev 10601)
@@ -4,6 +4,8 @@
import org.hibernate.util.StringHelper;
/**
+ * Map an integer element
+ *
* @author Emmanuel Bernard
*/
public class IntegerBridge extends NumberBridge {
Modified: branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/LongBridge.java
===================================================================
--- branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/LongBridge.java 2006-10-17 23:58:05 UTC (rev 10600)
+++ branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/LongBridge.java 2006-10-18 00:58:41 UTC (rev 10601)
@@ -4,6 +4,8 @@
import org.hibernate.util.StringHelper;
/**
+ * Map a long element
+ *
* @author Emmanuel Bernard
*/
public class LongBridge extends NumberBridge {
Modified: branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/ParameterizedBridge.java
===================================================================
--- branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/ParameterizedBridge.java 2006-10-17 23:58:05 UTC (rev 10600)
+++ branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/ParameterizedBridge.java 2006-10-18 00:58:41 UTC (rev 10601)
@@ -9,5 +9,6 @@
* @author Emmanuel Bernard
*/
public interface ParameterizedBridge {
- void setParameterValues(Map parameters);
+ //TODO inject Properties? since the annotations cannot support Object attribute?
+ void setParameterValues(Map parameters);
}
Modified: branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/StringImplBridge.java
===================================================================
--- branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/StringImplBridge.java 2006-10-17 23:58:05 UTC (rev 10600)
+++ branches/Lucene_Integration/HibernateExt/metadata/src/java/org/hibernate/lucene/bridge/StringImplBridge.java 2006-10-18 00:58:41 UTC (rev 10601)
@@ -4,6 +4,7 @@
import org.hibernate.util.StringHelper;
/**
+ * Map a string element
* @author Emmanuel Bernard
*/
public class StringImplBridge implements StringBridge {
Modified: branches/Lucene_Integration/HibernateExt/metadata/src/test/org/hibernate/lucene/test/bridge/BridgeTest.java
===================================================================
--- branches/Lucene_Integration/HibernateExt/metadata/src/test/org/hibernate/lucene/test/bridge/BridgeTest.java 2006-10-17 23:58:05 UTC (rev 10600)
+++ branches/Lucene_Integration/HibernateExt/metadata/src/test/org/hibernate/lucene/test/bridge/BridgeTest.java 2006-10-18 00:58:41 UTC (rev 10601)
@@ -8,13 +8,17 @@
import java.util.TimeZone;
import org.hibernate.Transaction;
+import org.hibernate.cfg.Configuration;
import org.hibernate.lucene.test.TestCase;
import org.hibernate.lucene.LuceneSession;
+import org.hibernate.lucene.Environment;
import org.hsqldb.Session;
import org.apache.lucene.search.Query;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
+import org.apache.lucene.analysis.StopAnalyzer;
+import org.apache.lucene.analysis.SimpleAnalyzer;
/**
* @author Emmanuel Bernard
@@ -58,6 +62,36 @@
}
+ public void testCustomBridges() throws Exception {
+ Cloud cloud = new Cloud();
+ cloud.setCustomFieldBridge( "This is divided by 2");
+ cloud.setCustomStringBridge( "This is div by 4");
+ org.hibernate.Session s = openSession();
+ Transaction tx = s.beginTransaction();
+ s.persist(cloud);
+ s.flush();
+ tx.commit();
+
+ tx = s.beginTransaction();
+ LuceneSession session = new LuceneSession(s);
+ QueryParser parser = new QueryParser("id", new SimpleAnalyzer() );
+ Query query;
+ List result;
+
+ query = parser.parse("customFieldBridge:This AND customStringBridge:This");
+ result = session.createLuceneQuery(query).list();
+ assertEquals( "Properties not mapped", 1, result.size() );
+
+ query = parser.parse("customFieldBridge:by AND customStringBridge:is");
+ result = session.createLuceneQuery(query).list();
+ assertEquals( "Custom types not taken into account", 0, result.size() );
+
+ s.delete( s.get( Cloud.class, cloud.getId() ) );
+ tx.commit();
+ s.close();
+
+ }
+
public void testDateBridge() throws Exception {
Cloud cloud = new Cloud();
Calendar c = GregorianCalendar.getInstance();
@@ -108,4 +142,10 @@
Cloud.class
};
}
+
+
+ protected void configure(Configuration cfg) {
+ super.configure( cfg );
+ cfg.setProperty( Environment.ANALYZER_CLASS, SimpleAnalyzer.class.getName() );
+ }
}
Modified: branches/Lucene_Integration/HibernateExt/metadata/src/test/org/hibernate/lucene/test/bridge/Cloud.java
===================================================================
--- branches/Lucene_Integration/HibernateExt/metadata/src/test/org/hibernate/lucene/test/bridge/Cloud.java 2006-10-17 23:58:05 UTC (rev 10600)
+++ branches/Lucene_Integration/HibernateExt/metadata/src/test/org/hibernate/lucene/test/bridge/Cloud.java 2006-10-18 00:58:41 UTC (rev 10601)
@@ -10,7 +10,9 @@
import org.hibernate.lucene.Indexed;
import org.hibernate.lucene.Text;
import org.hibernate.lucene.DateBridge;
+import org.hibernate.lucene.FieldBridge;
import org.hibernate.lucene.bridge.Resolution;
+import org.hibernate.annotations.Parameter;
/**
* @author Emmanuel Bernard
@@ -36,7 +38,29 @@
private Date dateMinute;
private Date dateSecond;
private Date dateMillisecond;
+ private String customFieldBridge;
+ private String customStringBridge;
+ @Text
+ @FieldBridge(impl = TruncateFieldBridge.class)
+ public String getCustomFieldBridge() {
+ return customFieldBridge;
+ }
+
+ public void setCustomFieldBridge(String customFieldBridge) {
+ this.customFieldBridge = customFieldBridge;
+ }
+
+ @Text
+ @FieldBridge(impl = TruncateStringBridge.class, params = @Parameter( name="dividedBy", value="4" ) )
+ public String getCustomStringBridge() {
+ return customStringBridge;
+ }
+
+ public void setCustomStringBridge(String customStringBridge) {
+ this.customStringBridge = customStringBridge;
+ }
+
@Id @GeneratedValue @Keyword(id=true)
public int getId() {
return id;
Added: branches/Lucene_Integration/HibernateExt/metadata/src/test/org/hibernate/lucene/test/bridge/TruncateFieldBridge.java
===================================================================
--- branches/Lucene_Integration/HibernateExt/metadata/src/test/org/hibernate/lucene/test/bridge/TruncateFieldBridge.java 2006-10-17 23:58:05 UTC (rev 10600)
+++ branches/Lucene_Integration/HibernateExt/metadata/src/test/org/hibernate/lucene/test/bridge/TruncateFieldBridge.java 2006-10-18 00:58:41 UTC (rev 10601)
@@ -0,0 +1,27 @@
+//$Id: $
+package org.hibernate.lucene.test.bridge;
+
+import org.hibernate.lucene.bridge.FieldBridge;
+import org.hibernate.util.StringHelper;
+import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class TruncateFieldBridge implements FieldBridge {
+ public Object get(String name, Document document) {
+ Field field = document.getField( name );
+ return field.stringValue();
+ }
+
+ public void set(String name, Object value, Document document, Field.Store store, Field.Index index, Float boost) {
+ String indexedString = (String) value;
+ //Do not add fields on empty strings, seems a sensible default in most situations
+ if ( StringHelper.isNotEmpty( indexedString ) ) {
+ Field field = new Field(name, indexedString.substring(0, indexedString.length() / 2), store, index);
+ if (boost != null) field.setBoost( boost );
+ document.add( field );
+ }
+ }
+}
Added: branches/Lucene_Integration/HibernateExt/metadata/src/test/org/hibernate/lucene/test/bridge/TruncateStringBridge.java
===================================================================
--- branches/Lucene_Integration/HibernateExt/metadata/src/test/org/hibernate/lucene/test/bridge/TruncateStringBridge.java 2006-10-17 23:58:05 UTC (rev 10600)
+++ branches/Lucene_Integration/HibernateExt/metadata/src/test/org/hibernate/lucene/test/bridge/TruncateStringBridge.java 2006-10-18 00:58:41 UTC (rev 10601)
@@ -0,0 +1,26 @@
+//$Id: $
+package org.hibernate.lucene.test.bridge;
+
+import java.util.Map;
+
+import org.hibernate.lucene.bridge.StringBridge;
+import org.hibernate.lucene.bridge.ParameterizedBridge;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class TruncateStringBridge implements StringBridge, ParameterizedBridge {
+ private int div;
+ public Object stringToObject(String stringValue) {
+ return stringValue;
+ }
+
+ public String objectToString(Object object) {
+ String string = (String) object;
+ return object != null ? string.substring( 0, string.length() / div ) : null;
+ }
+
+ public void setParameterValues(Map parameters) {
+ div = Integer.valueOf( (String) parameters.get( "dividedBy" ) );
+ }
+}
17 years, 6 months