Hibernate SVN: r15357 - in validator/trunk: hibernate-validator and 5 other directories.
by hibernate-commits@lists.jboss.org
Author: hardy.ferentschik
Date: 2008-10-20 10:45:15 -0400 (Mon, 20 Oct 2008)
New Revision: 15357
Added:
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/ValidatorConstants.java
validator/trunk/hibernate-validator/src/main/resources/META-INF/MANIFEST.MF
Modified:
validator/trunk/hibernate-validator/pom.xml
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ValidatorImpl.java
validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/InvalidConstraintImpl.java
validator/trunk/hibernate-validator/src/test/resources/log4j.properties
validator/trunk/pom.xml
Log:
minor cleanup and improvements for logging
Modified: validator/trunk/hibernate-validator/pom.xml
===================================================================
--- validator/trunk/hibernate-validator/pom.xml 2008-10-20 07:30:50 UTC (rev 15356)
+++ validator/trunk/hibernate-validator/pom.xml 2008-10-20 14:45:15 UTC (rev 15357)
@@ -14,8 +14,8 @@
<name>Hibernate Validator</name>
<distributionManagement>
<site>
- <id>local</id>
- <url>file:///Users/hardy/Sites/${artifactId}</url>
+ <id>local</id>
+ <url>file:///Users/hardy/Sites/${artifactId}</url>
</site>
</distributionManagement>
<dependencies>
@@ -34,13 +34,17 @@
<optional>true</optional>
</dependency>
<dependency>
- <groupId>commons-collections</groupId>
- <artifactId>commons-collections</artifactId>
- </dependency>
- <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
+ <build>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ </build>
</project>
Added: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/ValidatorConstants.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/ValidatorConstants.java (rev 0)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/ValidatorConstants.java 2008-10-20 14:45:15 UTC (rev 15357)
@@ -0,0 +1,32 @@
+// $Id:$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.hibernate.validation;
+
+/**
+ * @author Hardy Ferentschik
+ */
+public class ValidatorConstants {
+
+ private ValidatorConstants() {
+ }
+
+ /**
+ * The default group/sequence name used when no group parameter is passed to validate().
+ */
+ public static final String DEFAULT_GROUP_NAME = "default";
+}
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ValidatorImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ValidatorImpl.java 2008-10-20 07:30:50 UTC (rev 15356)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/engine/ValidatorImpl.java 2008-10-20 14:45:15 UTC (rev 15357)
@@ -36,6 +36,7 @@
import javax.validation.Validator;
import org.hibernate.validation.Version;
+import org.hibernate.validation.ValidatorConstants;
import org.hibernate.validation.impl.ConstraintDescriptorImpl;
import org.hibernate.validation.impl.ConstraintFactoryImpl;
import org.hibernate.validation.impl.InvalidConstraintImpl;
@@ -52,15 +53,8 @@
*/
public class ValidatorImpl<T> implements Validator<T> {
- /**
- * The default group/sequence name when no group parameter is passed to validate().
- *
- * @todo Is it correct to use this default string and if so is this the correct place to define it?
- */
- private static final String DEFAULT_GROUP_NAME = "default";
+ private static final Set<Class> INDEXABLE_CLASS = new HashSet<Class>();
- private static final Set<Class> INDEXABLE_CLASS = new HashSet<Class>();
-
static {
INDEXABLE_CLASS.add( Integer.class );
INDEXABLE_CLASS.add( Long.class );
@@ -135,7 +129,7 @@
// if no group is specified use the default
if ( groups.size() == 0 ) {
- groups = Arrays.asList( DEFAULT_GROUP_NAME );
+ groups = Arrays.asList( ValidatorConstants.DEFAULT_GROUP_NAME );
}
List<String> expandedGroups;
@@ -293,7 +287,7 @@
// if no group is specified use the default
if ( groups.length == 0 ) {
- groups = new String[] { DEFAULT_GROUP_NAME };
+ groups = new String[] { ValidatorConstants.DEFAULT_GROUP_NAME };
}
List<String> expandedGroups;
@@ -356,7 +350,7 @@
// if no group is specified use the default
if ( groups.length == 0 ) {
- groups = new String[] { DEFAULT_GROUP_NAME };
+ groups = new String[] { ValidatorConstants.DEFAULT_GROUP_NAME };
}
List<String> expandedGroups;
Modified: validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/InvalidConstraintImpl.java
===================================================================
--- validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/InvalidConstraintImpl.java 2008-10-20 07:30:50 UTC (rev 15356)
+++ validator/trunk/hibernate-validator/src/main/java/org/hibernate/validation/impl/InvalidConstraintImpl.java 2008-10-20 14:45:15 UTC (rev 15357)
@@ -92,11 +92,6 @@
return groups;
}
- public void addParent(T parentBean, String parentProperty) {
- this.propertyPath = parentProperty + "." + propertyPath;
- this.rootBean = parentBean;
- }
-
public void addGroups(Set<String> groupSet) {
groups.addAll( groupSet );
}
Added: validator/trunk/hibernate-validator/src/main/resources/META-INF/MANIFEST.MF
===================================================================
--- validator/trunk/hibernate-validator/src/main/resources/META-INF/MANIFEST.MF (rev 0)
+++ validator/trunk/hibernate-validator/src/main/resources/META-INF/MANIFEST.MF 2008-10-20 14:45:15 UTC (rev 15357)
@@ -0,0 +1,10 @@
+Manifest-Version: 1.0
+Archiver-Version: Plexus Archiver
+Created-By: Apache Maven
+Built-By: ${user.name}
+Build-Jdk: ${java.version}
+Implementation-Title: ${pom.artifactId}
+Implementation-Vendor: ${pom.groupId}
+Implementation-Vendor-Id: ${pom.groupId}
+Implementation-Version: ${pom.version}
+Specification-Title: Bean Validation
Property changes on: validator/trunk/hibernate-validator/src/main/resources/META-INF/MANIFEST.MF
___________________________________________________________________
Name: svn:mergeinfo
+
Modified: validator/trunk/hibernate-validator/src/test/resources/log4j.properties
===================================================================
--- validator/trunk/hibernate-validator/src/test/resources/log4j.properties 2008-10-20 07:30:50 UTC (rev 15356)
+++ validator/trunk/hibernate-validator/src/test/resources/log4j.properties 2008-10-20 14:45:15 UTC (rev 15357)
@@ -18,7 +18,8 @@
### set log levels - for more verbose logging change 'info' to 'debug' ###
-log4j.rootLogger=debug, stdout
+log4j.rootLogger=info, stdout
log4j.logger.org.hibernate.validation.engine.ValidatorImpl=trace
+org.hibernate.validation.impl.ResourceBundleMessageResolver=info
Modified: validator/trunk/pom.xml
===================================================================
--- validator/trunk/pom.xml 2008-10-20 07:30:50 UTC (rev 15356)
+++ validator/trunk/pom.xml 2008-10-20 14:45:15 UTC (rev 15357)
@@ -103,7 +103,7 @@
<Implementation-Vendor>${pom.groupId}</Implementation-Vendor>
<Implementation-Vendor-Id>${pom.groupId}</Implementation-Vendor-Id>
<Implementation-URL>${pom.url}</Implementation-URL>
- <Specification-Title>Bean Validation"</Specification-Title>
+ <Specification-Title>Bean Validation</Specification-Title>
</manifestEntries>
</archive>
</configuration>
@@ -159,7 +159,7 @@
</licenses>
<scm>
- <connection>scm:https://svn.jboss.org/repos/beancheck/ri/trunk</connection>
+ <connection>scm:https://svn.jboss.org/repos/hibernate/validator/trunk</connection>
<url>http://fisheye.jboss.org/browse/Fixme</url>
</scm>
15 years, 7 months
Returned mail: see transcript for details
by Returned mail
This message was undeliverable due to the following reason(s):
Your message could not be delivered because the destination server was
not reachable within the allowed queue period. The amount of time
a message is queued before it is returned depends on local configura-
tion parameters.
Most likely there is a network problem that prevented delivery, but
it is also possible that the computer is turned off, or does not
have a mail system running right now.
Your message could not be delivered within 1 days:
Server 56.33.33.235 is not responding.
The following recipients could not receive this message:
<hibernate-commits(a)lists.jboss.org>
Please reply to postmaster(a)lists.jboss.org
if you feel this message to be in error.
15 years, 7 months
Hibernate SVN: r15356 - search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance.
by hibernate-commits@lists.jboss.org
Author: hardy.ferentschik
Date: 2008-10-20 03:30:50 -0400 (Mon, 20 Oct 2008)
New Revision: 15356
Modified:
search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/AnalyzerInheritanceTest.java
Log:
switched to unicode escapes in tests since tests fail on hudson
Modified: search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/AnalyzerInheritanceTest.java
===================================================================
--- search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/AnalyzerInheritanceTest.java 2008-10-17 09:47:43 UTC (rev 15355)
+++ search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/AnalyzerInheritanceTest.java 2008-10-20 07:30:50 UTC (rev 15356)
@@ -49,7 +49,7 @@
*/
public void testBySearch() throws Exception {
SubClass testClass = new SubClass();
- testClass.setName( "Proca�ne" );
+ testClass.setName( "Proca\u00EFne" );
FullTextSession s = Search.getFullTextSession( openSession() );
Transaction tx = s.beginTransaction();
s.persist( testClass );
@@ -59,7 +59,7 @@
QueryParser parser = new QueryParser( "name", s.getSearchFactory().getAnalyzer( SubClass.class ) );
- org.apache.lucene.search.Query luceneQuery = parser.parse( "name:Proca�ne" );
+ org.apache.lucene.search.Query luceneQuery = parser.parse( "name:Proca\u00EFne" );
FullTextQuery query = s.createFullTextQuery( luceneQuery, SubClass.class );
assertEquals( 1, query.getResultSize() );
@@ -86,7 +86,7 @@
FullTextSession s = Search.getFullTextSession( openSession() );
Analyzer analyzer = s.getSearchFactory().getAnalyzer( SubClass.class );
- Token[] tokens = AnalyzerUtils.tokensFromAnalysis(analyzer, "name", "Proca�ne");
+ Token[] tokens = AnalyzerUtils.tokensFromAnalysis(analyzer, "name", "Proca\u00EFne");
AnalyzerUtils.assertTokensEqual( tokens, new String[]{"Procaine"});
s.close();
15 years, 7 months
Hibernate SVN: r15355 - search/trunk/src/test/org/hibernate/search/test/query.
by hibernate-commits@lists.jboss.org
Author: hardy.ferentschik
Date: 2008-10-17 05:47:43 -0400 (Fri, 17 Oct 2008)
New Revision: 15355
Added:
search/trunk/src/test/org/hibernate/search/test/query/Person.java
search/trunk/src/test/org/hibernate/search/test/query/QueryUnindexedEntityTest.java
Log:
HSEARCH-162
Added a test case. There seems to be NPE thrown, but rather a Hibernate Exception.
Copied: search/trunk/src/test/org/hibernate/search/test/query/Person.java (from rev 15330, search/trunk/src/test/org/hibernate/search/test/query/Author.java)
===================================================================
--- search/trunk/src/test/org/hibernate/search/test/query/Person.java (rev 0)
+++ search/trunk/src/test/org/hibernate/search/test/query/Person.java 2008-10-17 09:47:43 UTC (rev 15355)
@@ -0,0 +1,38 @@
+//$Id$
+package org.hibernate.search.test.query;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+
+import org.hibernate.search.annotations.DocumentId;
+import org.hibernate.search.annotations.Field;
+import org.hibernate.search.annotations.Index;
+import org.hibernate.search.annotations.Indexed;
+import org.hibernate.search.annotations.Store;
+
+/**
+ * @author Emmanuel Bernard
+ */
+@Entity
+public class Person {
+ @Id @GeneratedValue
+ private Integer id;
+ private String name;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+}
\ No newline at end of file
Property changes on: search/trunk/src/test/org/hibernate/search/test/query/Person.java
___________________________________________________________________
Name: svn:keywords
+ Id
Name: svn:mergeinfo
+
Copied: search/trunk/src/test/org/hibernate/search/test/query/QueryUnindexedEntityTest.java (from rev 15330, search/trunk/src/test/org/hibernate/search/test/query/ProjectionQueryTest.java)
===================================================================
--- search/trunk/src/test/org/hibernate/search/test/query/QueryUnindexedEntityTest.java (rev 0)
+++ search/trunk/src/test/org/hibernate/search/test/query/QueryUnindexedEntityTest.java 2008-10-17 09:47:43 UTC (rev 15355)
@@ -0,0 +1,53 @@
+//$Id$
+package org.hibernate.search.test.query;
+
+import org.apache.lucene.analysis.standard.StandardAnalyzer;
+import org.apache.lucene.queryParser.QueryParser;
+import org.apache.lucene.search.Query;
+
+import org.hibernate.HibernateException;
+import org.hibernate.Transaction;
+import org.hibernate.search.FullTextQuery;
+import org.hibernate.search.FullTextSession;
+import org.hibernate.search.Search;
+import org.hibernate.search.test.SearchTestCase;
+
+/**
+ * HSEARCH-162 - trying to index an entity which is not marked with @Indexed
+ *
+ * @author Hardy Ferentschik
+ */
+public class QueryUnindexedEntityTest extends SearchTestCase {
+
+ public void testResultTransformToDelimString() throws Exception {
+
+ FullTextSession s = Search.getFullTextSession( openSession() );
+
+ Transaction tx = s.beginTransaction();
+ Person person = new Person();
+ person.setName( "Jon Doe" );
+ s.save( person );
+ tx.commit();
+
+ tx = s.beginTransaction();
+ QueryParser parser = new QueryParser( "name", new StandardAnalyzer() );
+ Query query = parser.parse( "name:foo" );
+ FullTextQuery hibQuery = s.createFullTextQuery( query, Person.class );
+ try {
+ hibQuery.list();
+ fail();
+ }
+ catch ( HibernateException e ) {
+ assertTrue( "Wrong message", e.getMessage().startsWith( "Not a mapped entity" ) );
+ }
+
+ tx.rollback();
+ s.close();
+ }
+
+ protected Class[] getMappings() {
+ return new Class[] {
+ Person.class,
+ };
+ }
+}
\ No newline at end of file
Property changes on: search/trunk/src/test/org/hibernate/search/test/query/QueryUnindexedEntityTest.java
___________________________________________________________________
Name: svn:keywords
+ Id
Name: svn:mergeinfo
+
15 years, 7 months
Hibernate SVN: r15354 - in search/trunk/src: java/org/hibernate/search/backend and 18 other directories.
by hibernate-commits@lists.jboss.org
Author: hardy.ferentschik
Date: 2008-10-15 11:14:25 -0400 (Wed, 15 Oct 2008)
New Revision: 15354
Added:
search/trunk/src/java/org/hibernate/search/util/LoggerFactory.java
Modified:
search/trunk/src/java/org/hibernate/search/Version.java
search/trunk/src/java/org/hibernate/search/backend/LuceneIndexingParameters.java
search/trunk/src/java/org/hibernate/search/backend/Workspace.java
search/trunk/src/java/org/hibernate/search/backend/configuration/MaskedProperty.java
search/trunk/src/java/org/hibernate/search/backend/impl/BatchedQueueingProcessor.java
search/trunk/src/java/org/hibernate/search/backend/impl/jms/AbstractJMSHibernateSearchController.java
search/trunk/src/java/org/hibernate/search/backend/impl/jms/JMSBackendQueueProcessor.java
search/trunk/src/java/org/hibernate/search/backend/impl/lucene/PerDPQueueProcessor.java
search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/AddWorkDelegate.java
search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/DeleteWorkDelegate.java
search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/OptimizeWorkDelegate.java
search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/PurgeAllWorkDelegate.java
search/trunk/src/java/org/hibernate/search/engine/DocumentBuilder.java
search/trunk/src/java/org/hibernate/search/engine/ObjectLoader.java
search/trunk/src/java/org/hibernate/search/engine/ObjectLoaderHelper.java
search/trunk/src/java/org/hibernate/search/event/EventListenerRegister.java
search/trunk/src/java/org/hibernate/search/event/FullTextIndexEventListener.java
search/trunk/src/java/org/hibernate/search/filter/CachingWrapperFilter.java
search/trunk/src/java/org/hibernate/search/impl/SearchFactoryImpl.java
search/trunk/src/java/org/hibernate/search/query/FullTextQueryImpl.java
search/trunk/src/java/org/hibernate/search/query/ScrollableResultsImpl.java
search/trunk/src/java/org/hibernate/search/reader/SharedReaderProvider.java
search/trunk/src/java/org/hibernate/search/reader/SharingBufferReaderProvider.java
search/trunk/src/java/org/hibernate/search/store/DirectoryProviderHelper.java
search/trunk/src/java/org/hibernate/search/store/FSDirectoryProvider.java
search/trunk/src/java/org/hibernate/search/store/FSMasterDirectoryProvider.java
search/trunk/src/java/org/hibernate/search/store/FSSlaveDirectoryProvider.java
search/trunk/src/java/org/hibernate/search/store/optimization/IncrementalOptimizerStrategy.java
search/trunk/src/java/org/hibernate/search/util/FileHelper.java
search/trunk/src/test/org/hibernate/search/test/analyzer/AnalyzerTest.java
search/trunk/src/test/org/hibernate/search/test/analyzer/DoubleAnalyzerTest.java
search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/AnalyzerInheritanceTest.java
search/trunk/src/test/org/hibernate/search/test/perf/SearcherThread.java
search/trunk/src/test/org/hibernate/search/test/util/AnalyzerUtils.java
Log:
Added utility class LoggerFactory and switched to a DRY creation of loggers.
Modified: search/trunk/src/java/org/hibernate/search/Version.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/Version.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/Version.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -4,9 +4,10 @@
import java.util.Date;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.hibernate.search.util.LoggerFactory;
+
/**
* @author Emmanuel Bernard
*/
@@ -14,7 +15,7 @@
public static final String VERSION = "3.1.0.SNAPSHOT" + new Date();
static {
- Logger log = LoggerFactory.getLogger( Version.class );
+ Logger log = LoggerFactory.make();
log.info( "Hibernate Search {}", VERSION );
}
Modified: search/trunk/src/java/org/hibernate/search/backend/LuceneIndexingParameters.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/backend/LuceneIndexingParameters.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/backend/LuceneIndexingParameters.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -7,14 +7,14 @@
import java.util.Properties;
import org.apache.lucene.index.IndexWriter;
+import org.slf4j.Logger;
+
import org.hibernate.search.SearchException;
import org.hibernate.search.backend.configuration.IndexWriterSetting;
+import static org.hibernate.search.backend.configuration.IndexWriterSetting.MAX_FIELD_LENGTH;
import org.hibernate.search.backend.configuration.MaskedProperty;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.hibernate.search.util.LoggerFactory;
-import static org.hibernate.search.backend.configuration.IndexWriterSetting.MAX_FIELD_LENGTH;
-
/**
* Wrapper class around the Lucene indexing parameters defined in IndexWriterSetting.
* <p>
@@ -46,7 +46,7 @@
//get keys for "batch" (defaulting to transaction)
Properties batchProps = new MaskedProperty( indexingParameters, BATCH, transactionProps ); //TODO to close HSEARCH-201 just remove 3° parameter
//logger only used during object construction: (logger not serializable).
- Logger log = LoggerFactory.getLogger( LuceneIndexingParameters.class );
+ Logger log = LoggerFactory.make();
transactionIndexParameters = new ParameterSet( transactionProps, TRANSACTION, log );
batchIndexParameters = new ParameterSet( batchProps, BATCH, log );
doSanityChecks( transactionIndexParameters, batchIndexParameters, log );
Modified: search/trunk/src/java/org/hibernate/search/backend/Workspace.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/backend/Workspace.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/backend/Workspace.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -10,6 +10,8 @@
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.store.Directory;
+import org.slf4j.Logger;
+
import org.hibernate.annotations.common.AssertionFailure;
import org.hibernate.search.SearchException;
import org.hibernate.search.SearchFactory;
@@ -17,8 +19,7 @@
import org.hibernate.search.engine.SearchFactoryImplementor;
import org.hibernate.search.store.DirectoryProvider;
import org.hibernate.search.store.optimization.OptimizerStrategy;
-import org.slf4j.LoggerFactory;
-import org.slf4j.Logger;
+import org.hibernate.search.util.LoggerFactory;
/**
* Lucene workspace for a DirectoryProvider.<p/>
@@ -38,7 +39,7 @@
//TODO renaming to "DirectoryWorkspace" would be nice.
public class Workspace {
- private final Logger log = LoggerFactory.getLogger( Workspace.class );
+ private final Logger log = LoggerFactory.make();
private static final Analyzer SIMPLE_ANALYZER = new SimpleAnalyzer();
// invariant state:
Modified: search/trunk/src/java/org/hibernate/search/backend/configuration/MaskedProperty.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/backend/configuration/MaskedProperty.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/backend/configuration/MaskedProperty.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -19,8 +19,9 @@
import java.util.TreeSet;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.hibernate.search.util.LoggerFactory;
+
/**
* A wrapper to Properties, to restrict the availability of
* values to only those which have a key beginning with some
@@ -38,7 +39,7 @@
private static final long serialVersionUID = -593307257383085113L;
- private transient Logger log = LoggerFactory.getLogger( MaskedProperty.class );
+ private transient Logger log = LoggerFactory.make();
private final Properties masked;
private final Properties fallBack;
private final String radix;
@@ -376,7 +377,7 @@
private void readObject(ObjectInputStream aInputStream) throws ClassNotFoundException, IOException {
//always perform the default de-serialization first
aInputStream.defaultReadObject();
- log = LoggerFactory.getLogger( MaskedProperty.class );
+ log = LoggerFactory.make();
}
private void writeObject(ObjectOutputStream aOutputStream) throws IOException {
Modified: search/trunk/src/java/org/hibernate/search/backend/impl/BatchedQueueingProcessor.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/backend/impl/BatchedQueueingProcessor.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/backend/impl/BatchedQueueingProcessor.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -9,24 +9,25 @@
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
+import org.slf4j.Logger;
+
import org.hibernate.Hibernate;
+import org.hibernate.annotations.common.util.ReflectHelper;
import org.hibernate.annotations.common.util.StringHelper;
-import org.hibernate.annotations.common.util.ReflectHelper;
import org.hibernate.search.Environment;
import org.hibernate.search.SearchException;
import org.hibernate.search.backend.BackendQueueProcessorFactory;
import org.hibernate.search.backend.LuceneWork;
import org.hibernate.search.backend.QueueingProcessor;
import org.hibernate.search.backend.Work;
+import org.hibernate.search.backend.WorkQueue;
import org.hibernate.search.backend.WorkType;
-import org.hibernate.search.backend.WorkQueue;
import org.hibernate.search.backend.configuration.ConfigurationParseHelper;
import org.hibernate.search.backend.impl.jms.JMSBackendQueueProcessorFactory;
import org.hibernate.search.backend.impl.lucene.LuceneBackendQueueProcessorFactory;
import org.hibernate.search.engine.DocumentBuilder;
import org.hibernate.search.engine.SearchFactoryImplementor;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.hibernate.search.util.LoggerFactory;
/**
* Batch work until #performWorks is called.
@@ -36,7 +37,7 @@
*/
public class BatchedQueueingProcessor implements QueueingProcessor {
- private static final Logger log = LoggerFactory.getLogger( BatchedQueueingProcessor.class );
+ private static final Logger log = LoggerFactory.make();
private final boolean sync;
private final int batchSize;
Modified: search/trunk/src/java/org/hibernate/search/backend/impl/jms/AbstractJMSHibernateSearchController.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/backend/impl/jms/AbstractJMSHibernateSearchController.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/backend/impl/jms/AbstractJMSHibernateSearchController.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -9,12 +9,13 @@
import javax.jms.MessageListener;
import javax.jms.ObjectMessage;
+import org.slf4j.Logger;
+
import org.hibernate.Session;
import org.hibernate.search.backend.LuceneWork;
+import org.hibernate.search.engine.SearchFactoryImplementor;
import org.hibernate.search.util.ContextHelper;
-import org.hibernate.search.engine.SearchFactoryImplementor;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.hibernate.search.util.LoggerFactory;
/**
* Implement the Hibernate Search controller responsible for processing the
@@ -26,7 +27,7 @@
* @author Emmanuel Bernard
*/
public abstract class AbstractJMSHibernateSearchController implements MessageListener {
- private static final Logger log = LoggerFactory.getLogger( AbstractJMSHibernateSearchController.class );
+ private static final Logger log = LoggerFactory.make();
/**
* Return the current or give a new session
Modified: search/trunk/src/java/org/hibernate/search/backend/impl/jms/JMSBackendQueueProcessor.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/backend/impl/jms/JMSBackendQueueProcessor.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/backend/impl/jms/JMSBackendQueueProcessor.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -2,8 +2,8 @@
package org.hibernate.search.backend.impl.jms;
import java.io.Serializable;
+import java.util.ArrayList;
import java.util.List;
-import java.util.ArrayList;
import javax.jms.JMSException;
import javax.jms.ObjectMessage;
import javax.jms.QueueConnection;
@@ -11,11 +11,11 @@
import javax.jms.QueueSession;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.hibernate.HibernateException;
import org.hibernate.search.backend.LuceneWork;
import org.hibernate.search.backend.OptimizeLuceneWork;
+import org.hibernate.search.util.LoggerFactory;
/**
* @author Emmanuel Bernard
@@ -23,7 +23,7 @@
public class JMSBackendQueueProcessor implements Runnable {
private List<LuceneWork> queue;
private JMSBackendQueueProcessorFactory factory;
- private Logger log = LoggerFactory.getLogger( JMSBackendQueueProcessor.class );
+ private Logger log = LoggerFactory.make();
public JMSBackendQueueProcessor(List<LuceneWork> queue,
JMSBackendQueueProcessorFactory jmsBackendQueueProcessorFactory) {
Modified: search/trunk/src/java/org/hibernate/search/backend/impl/lucene/PerDPQueueProcessor.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/backend/impl/lucene/PerDPQueueProcessor.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/backend/impl/lucene/PerDPQueueProcessor.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -5,19 +5,20 @@
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
+import org.slf4j.Logger;
+
import org.hibernate.annotations.common.AssertionFailure;
import org.hibernate.search.backend.LuceneWork;
import org.hibernate.search.backend.Workspace;
import org.hibernate.search.backend.impl.lucene.works.LuceneWorkVisitor;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.hibernate.search.util.LoggerFactory;
/**
* @author Sanne Grinovero
*/
class PerDPQueueProcessor {
- private final Logger log = LoggerFactory.getLogger( PerDPQueueProcessor.class );
+ private final Logger log = LoggerFactory.make();
private final Workspace workspace;
private final LuceneWorkVisitor worker;
private final List<LuceneWork> workOnWriter = new ArrayList<LuceneWork>();
Modified: search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/AddWorkDelegate.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/AddWorkDelegate.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/AddWorkDelegate.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -6,27 +6,29 @@
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.search.Similarity;
+import org.slf4j.Logger;
+
import org.hibernate.search.SearchException;
import org.hibernate.search.backend.LuceneWork;
import org.hibernate.search.backend.Workspace;
import org.hibernate.search.backend.impl.lucene.IndexInteractionType;
import org.hibernate.search.engine.DocumentBuilder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.hibernate.search.util.LoggerFactory;
/**
-* Stateless implementation that performs a AddLuceneWork.
-* @see LuceneWorkVisitor
-* @see LuceneWorkDelegate
-* @author Emmanuel Bernard
-* @author Hardy Ferentschik
-* @author John Griffin
-* @author Sanne Grinovero
-*/
+ * Stateless implementation that performs a AddLuceneWork.
+ *
+ * @author Emmanuel Bernard
+ * @author Hardy Ferentschik
+ * @author John Griffin
+ * @author Sanne Grinovero
+ * @see LuceneWorkVisitor
+ * @see LuceneWorkDelegate
+ */
class AddWorkDelegate implements LuceneWorkDelegate {
-
+
private final Workspace workspace;
- private final Logger log = LoggerFactory.getLogger( AddWorkDelegate.class );
+ private final Logger log = LoggerFactory.make();
AddWorkDelegate(Workspace workspace) {
this.workspace = workspace;
@@ -41,24 +43,28 @@
Analyzer analyzer = documentBuilder.getAnalyzer();
Similarity similarity = documentBuilder.getSimilarity();
if ( log.isTraceEnabled() ) {
- log.trace( "add to Lucene index: {}#{}:{}",
- new Object[] { work.getEntityClass(), work.getId(), work.getDocument() } );
+ log.trace(
+ "add to Lucene index: {}#{}:{}",
+ new Object[] { work.getEntityClass(), work.getId(), work.getDocument() }
+ );
}
try {
//TODO the next two operations should be atomic to enable concurrent usage of IndexWriter
// make a wrapping Similarity based on ThreadLocals? or having it autoselect implementation basing on entity?
writer.setSimilarity( similarity );
- writer.addDocument( work.getDocument() , analyzer );
+ writer.addDocument( work.getDocument(), analyzer );
workspace.incrementModificationCounter( 1 );
}
- catch (IOException e) {
- throw new SearchException( "Unable to add to Lucene index: "
- + work.getEntityClass() + "#" + work.getId(), e );
+ catch ( IOException e ) {
+ throw new SearchException(
+ "Unable to add to Lucene index: "
+ + work.getEntityClass() + "#" + work.getId(), e
+ );
}
}
public void performWork(LuceneWork work, IndexReader reader) {
- throw new UnsupportedOperationException();
+ throw new UnsupportedOperationException();
}
-
+
}
Modified: search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/DeleteWorkDelegate.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/DeleteWorkDelegate.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/DeleteWorkDelegate.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -6,17 +6,17 @@
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.index.TermDocs;
+import org.apache.lucene.search.BooleanClause;
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.TermQuery;
-import org.apache.lucene.search.BooleanClause;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.hibernate.search.SearchException;
import org.hibernate.search.backend.LuceneWork;
import org.hibernate.search.backend.Workspace;
import org.hibernate.search.backend.impl.lucene.IndexInteractionType;
import org.hibernate.search.engine.DocumentBuilder;
+import org.hibernate.search.util.LoggerFactory;
/**
* Stateless implementation that performs a <code>DeleteLuceneWork</code>.
@@ -31,7 +31,7 @@
class DeleteWorkDelegate implements LuceneWorkDelegate {
private final Workspace workspace;
- private final Logger log = LoggerFactory.getLogger( DeleteWorkDelegate.class );
+ private final Logger log = LoggerFactory.make();
DeleteWorkDelegate(Workspace workspace) {
this.workspace = workspace;
Modified: search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/OptimizeWorkDelegate.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/OptimizeWorkDelegate.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/OptimizeWorkDelegate.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -4,12 +4,13 @@
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
+import org.slf4j.Logger;
+
import org.hibernate.search.SearchException;
import org.hibernate.search.backend.LuceneWork;
import org.hibernate.search.backend.Workspace;
import org.hibernate.search.backend.impl.lucene.IndexInteractionType;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.hibernate.search.util.LoggerFactory;
/**
* Stateless implementation that performs a OptimizeLuceneWork.
@@ -23,7 +24,7 @@
class OptimizeWorkDelegate implements LuceneWorkDelegate {
private final Workspace workspace;
- private final Logger log = LoggerFactory.getLogger( OptimizeWorkDelegate.class );
+ private final Logger log = LoggerFactory.make();
OptimizeWorkDelegate(Workspace workspace) {
this.workspace = workspace;
Modified: search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/PurgeAllWorkDelegate.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/PurgeAllWorkDelegate.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/PurgeAllWorkDelegate.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -3,12 +3,13 @@
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.Term;
+import org.slf4j.Logger;
+
import org.hibernate.search.SearchException;
import org.hibernate.search.backend.LuceneWork;
import org.hibernate.search.backend.impl.lucene.IndexInteractionType;
import org.hibernate.search.engine.DocumentBuilder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.hibernate.search.util.LoggerFactory;
/**
* Stateless implementation that performs a PurgeAllLuceneWork.
@@ -21,7 +22,7 @@
*/
class PurgeAllWorkDelegate implements LuceneWorkDelegate {
- private final Logger log = LoggerFactory.getLogger( PurgeAllWorkDelegate.class );
+ private final Logger log = LoggerFactory.make();
PurgeAllWorkDelegate() {
}
Modified: search/trunk/src/java/org/hibernate/search/engine/DocumentBuilder.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/engine/DocumentBuilder.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/engine/DocumentBuilder.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -16,6 +16,8 @@
import org.apache.lucene.document.Field;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.Similarity;
+import org.slf4j.Logger;
+
import org.hibernate.Hibernate;
import org.hibernate.annotations.common.AssertionFailure;
import org.hibernate.annotations.common.reflection.ReflectionManager;
@@ -49,14 +51,12 @@
import org.hibernate.search.bridge.LuceneOptions;
import org.hibernate.search.bridge.TwoWayFieldBridge;
import org.hibernate.search.bridge.TwoWayString2FieldBridgeAdaptor;
-import org.hibernate.search.engine.LuceneOptionsImpl;
import org.hibernate.search.impl.InitContext;
import org.hibernate.search.store.DirectoryProvider;
import org.hibernate.search.store.IndexShardingStrategy;
import org.hibernate.search.util.BinderHelper;
+import org.hibernate.search.util.LoggerFactory;
import org.hibernate.search.util.ScopedAnalyzer;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* Set up and provide a manager for indexes classes
@@ -69,7 +69,7 @@
*/
@SuppressWarnings( "unchecked" )
public class DocumentBuilder<T> {
- private static final Logger log = LoggerFactory.getLogger( DocumentBuilder.class );
+ private static final Logger log = LoggerFactory.make();
private final PropertiesMetadata rootPropertiesMetadata = new PropertiesMetadata();
private final XClass beanClass;
Modified: search/trunk/src/java/org/hibernate/search/engine/ObjectLoader.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/engine/ObjectLoader.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/engine/ObjectLoader.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -2,19 +2,20 @@
package org.hibernate.search.engine;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
-import java.util.Collections;
+import org.slf4j.Logger;
+
import org.hibernate.Hibernate;
import org.hibernate.Session;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.hibernate.search.util.LoggerFactory;
/**
* @author Emmanuel Bernard
*/
public class ObjectLoader implements Loader {
- private static final Logger log = LoggerFactory.getLogger( ObjectLoader.class );
+ private static final Logger log = LoggerFactory.make();
private Session session;
public void init(Session session, SearchFactoryImplementor searchFactoryImplementor) {
Modified: search/trunk/src/java/org/hibernate/search/engine/ObjectLoaderHelper.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/engine/ObjectLoaderHelper.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/engine/ObjectLoaderHelper.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -1,17 +1,18 @@
// $Id$
package org.hibernate.search.engine;
+import java.io.Serializable;
+import java.util.ArrayList;
import java.util.List;
-import java.util.ArrayList;
-import java.io.Serializable;
+import org.slf4j.Logger;
+
+import org.hibernate.Criteria;
import org.hibernate.Hibernate;
import org.hibernate.Session;
-import org.hibernate.Criteria;
import org.hibernate.criterion.Disjunction;
import org.hibernate.criterion.Restrictions;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.hibernate.search.util.LoggerFactory;
/**
* @author Emmanuel Bernard
@@ -19,7 +20,7 @@
public class ObjectLoaderHelper {
private static final int MAX_IN_CLAUSE = 500;
- private static final Logger log = LoggerFactory.getLogger( ObjectLoader.class );
+ private static final Logger log = LoggerFactory.make();
public static Object load(EntityInfo entityInfo, Session session) {
//be sure to get an initialized object but save from ONFE and ENFE
Modified: search/trunk/src/java/org/hibernate/search/event/EventListenerRegister.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/event/EventListenerRegister.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/event/EventListenerRegister.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -3,7 +3,6 @@
import java.util.Properties;
-import org.hibernate.search.Environment;
import org.hibernate.event.EventListeners;
import org.hibernate.event.PostCollectionRecreateEventListener;
import org.hibernate.event.PostCollectionRemoveEventListener;
@@ -11,8 +10,9 @@
import org.hibernate.event.PostDeleteEventListener;
import org.hibernate.event.PostInsertEventListener;
import org.hibernate.event.PostUpdateEventListener;
+import org.hibernate.search.Environment;
+import org.hibernate.search.util.LoggerFactory;
-import org.slf4j.LoggerFactory;
/**
* Helper methods initializing Hibernate Search event listeners.
@@ -33,7 +33,7 @@
// check whether search is explicitly disabled - if so there is nothing to do
String enableSearchListeners = properties.getProperty( Environment.AUTOREGISTER_LISTENERS );
if ( "false".equalsIgnoreCase( enableSearchListeners ) ) {
- LoggerFactory.getLogger( EventListenerRegister.class ).info(
+ LoggerFactory.make().info(
"Property hibernate.search.autoregister_listeners is set to false." +
" No attempt will be made to register Hibernate Search event listeners." );
return;
Modified: search/trunk/src/java/org/hibernate/search/event/FullTextIndexEventListener.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/event/FullTextIndexEventListener.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/event/FullTextIndexEventListener.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -3,6 +3,8 @@
import java.io.Serializable;
+import org.slf4j.Logger;
+
import org.hibernate.cfg.Configuration;
import org.hibernate.engine.EntityEntry;
import org.hibernate.event.AbstractCollectionEvent;
@@ -23,11 +25,10 @@
import org.hibernate.event.PostUpdateEventListener;
import org.hibernate.search.backend.Work;
import org.hibernate.search.backend.WorkType;
+import org.hibernate.search.backend.impl.EventSourceTransactionContext;
import org.hibernate.search.engine.DocumentBuilder;
import org.hibernate.search.engine.SearchFactoryImplementor;
-import org.hibernate.search.backend.impl.EventSourceTransactionContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.hibernate.search.util.LoggerFactory;
/**
* This listener supports setting a parent directory for all generated index files.
@@ -46,7 +47,7 @@
PostCollectionRecreateEventListener, PostCollectionRemoveEventListener,
PostCollectionUpdateEventListener, Initializable, Destructible {
- private static final Logger log = LoggerFactory.getLogger( FullTextIndexEventListener.class );
+ private static final Logger log = LoggerFactory.make();
protected boolean used;
protected SearchFactoryImplementor searchFactoryImplementor;
Modified: search/trunk/src/java/org/hibernate/search/filter/CachingWrapperFilter.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/filter/CachingWrapperFilter.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/filter/CachingWrapperFilter.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -6,10 +6,11 @@
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.search.Filter;
-import org.hibernate.util.SoftLimitMRUCache;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.hibernate.search.util.LoggerFactory;
+import org.hibernate.util.SoftLimitMRUCache;
+
/**
* A slightly different version of Lucene's original <code>CachingWrapperFilter</code> which
* uses <code>SoftReferences</code> instead of <code>WeakReferences</code> in order to cache
@@ -22,7 +23,7 @@
@SuppressWarnings("serial")
public class CachingWrapperFilter extends Filter {
- private final Logger log = LoggerFactory.getLogger( CachingWrapperFilter.class );
+ private final Logger log = LoggerFactory.make();
public static final int DEFAULT_SIZE = 5;
Modified: search/trunk/src/java/org/hibernate/search/impl/SearchFactoryImpl.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/impl/SearchFactoryImpl.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/impl/SearchFactoryImpl.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -18,7 +18,6 @@
import org.apache.lucene.analysis.Analyzer;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.hibernate.annotations.common.reflection.ReflectionManager;
import org.hibernate.annotations.common.reflection.XClass;
@@ -51,6 +50,7 @@
import org.hibernate.search.store.DirectoryProvider;
import org.hibernate.search.store.DirectoryProviderFactory;
import org.hibernate.search.store.optimization.OptimizerStrategy;
+import org.hibernate.search.util.LoggerFactory;
/**
* @author Emmanuel Bernard
@@ -63,7 +63,7 @@
Version.touch();
}
- private final Logger log = LoggerFactory.getLogger( SearchFactoryImpl.class );
+ private final Logger log = LoggerFactory.make();
private final Map<Class, DocumentBuilder<Object>> documentBuilders = new HashMap<Class, DocumentBuilder<Object>>();
//keep track of the index modifiers per DirectoryProvider since multiple entity can use the same directory provider
Modified: search/trunk/src/java/org/hibernate/search/query/FullTextQueryImpl.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/query/FullTextQueryImpl.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/query/FullTextQueryImpl.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -1,8 +1,6 @@
//$Id$
package org.hibernate.search.query;
-import static org.hibernate.search.reader.ReaderProviderHelper.getIndexReaders;
-
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
@@ -18,6 +16,7 @@
import org.apache.lucene.index.Term;
import org.apache.lucene.search.BooleanClause;
import org.apache.lucene.search.BooleanQuery;
+import org.apache.lucene.search.Explanation;
import org.apache.lucene.search.Filter;
import org.apache.lucene.search.Hits;
import org.apache.lucene.search.IndexSearcher;
@@ -25,7 +24,8 @@
import org.apache.lucene.search.Similarity;
import org.apache.lucene.search.Sort;
import org.apache.lucene.search.TermQuery;
-import org.apache.lucene.search.Explanation;
+import org.slf4j.Logger;
+
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.LockMode;
@@ -54,14 +54,14 @@
import org.hibernate.search.filter.FilterKey;
import org.hibernate.search.filter.StandardFilterKey;
import org.hibernate.search.reader.ReaderProvider;
+import static org.hibernate.search.reader.ReaderProviderHelper.getIndexReaders;
import org.hibernate.search.store.DirectoryProvider;
import org.hibernate.search.util.ContextHelper;
+import static org.hibernate.search.util.FilterCacheModeTypeHelper.cacheInstance;
+import static org.hibernate.search.util.FilterCacheModeTypeHelper.cacheResults;
+import org.hibernate.search.util.LoggerFactory;
import org.hibernate.transform.ResultTransformer;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import static org.hibernate.search.util.FilterCacheModeTypeHelper.*;
-
/**
* Implementation of {@link org.hibernate.search.FullTextQuery}
*
@@ -70,7 +70,7 @@
*/
//TODO implements setParameter()
public class FullTextQueryImpl extends AbstractQueryImpl implements FullTextQuery {
- private final Logger log = LoggerFactory.getLogger( FullTextQueryImpl.class );
+ private final Logger log = LoggerFactory.make();
private final org.apache.lucene.search.Query luceneQuery;
private Class[] classes;
private Set<Class> classesAndSubclasses;
Modified: search/trunk/src/java/org/hibernate/search/query/ScrollableResultsImpl.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/query/ScrollableResultsImpl.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/query/ScrollableResultsImpl.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -17,6 +17,8 @@
import org.apache.lucene.search.Hits;
import org.apache.lucene.search.IndexSearcher;
+import org.slf4j.Logger;
+
import org.hibernate.HibernateException;
import org.hibernate.ScrollableResults;
import org.hibernate.search.SearchException;
@@ -24,9 +26,8 @@
import org.hibernate.search.engine.DocumentExtractor;
import org.hibernate.search.engine.EntityInfo;
import org.hibernate.search.engine.Loader;
+import org.hibernate.search.util.LoggerFactory;
import org.hibernate.type.Type;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* Implements scollable and paginated resultsets.
@@ -50,7 +51,7 @@
* @author John Griffin
*/
public class ScrollableResultsImpl implements ScrollableResults {
- private static final Logger log = LoggerFactory.getLogger( ScrollableResultsImpl.class );
+ private static final Logger log = LoggerFactory.make();
private final IndexSearcher searcher;
private final SearchFactory searchFactory;
private final Hits hits;
Modified: search/trunk/src/java/org/hibernate/search/reader/SharedReaderProvider.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/reader/SharedReaderProvider.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/reader/SharedReaderProvider.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -14,12 +14,12 @@
import org.apache.lucene.index.MultiReader;
import org.hibernate.annotations.common.AssertionFailure;
import org.hibernate.search.SearchException;
+import org.hibernate.search.util.LoggerFactory;
import org.hibernate.search.engine.SearchFactoryImplementor;
import static org.hibernate.search.reader.ReaderProviderHelper.buildMultiReader;
import static org.hibernate.search.reader.ReaderProviderHelper.clean;
import org.hibernate.search.store.DirectoryProvider;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* Share readers per SearchFactory, reusing them iff they are still valid.
@@ -27,7 +27,7 @@
* @author Emmanuel Bernard
*/
public class SharedReaderProvider implements ReaderProvider {
- private final Logger log = LoggerFactory.getLogger ( SharedReaderProvider.class );
+ private final Logger log = LoggerFactory.make();
/**
* nonfair lock. Need to be acquired on indexReader acquisition or release (semaphore)
*/
Modified: search/trunk/src/java/org/hibernate/search/reader/SharingBufferReaderProvider.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/reader/SharingBufferReaderProvider.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/reader/SharingBufferReaderProvider.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -14,12 +14,13 @@
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.MultiReader;
+import org.slf4j.Logger;
+
import org.hibernate.annotations.common.AssertionFailure;
import org.hibernate.search.SearchException;
import org.hibernate.search.engine.SearchFactoryImplementor;
import org.hibernate.search.store.DirectoryProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.hibernate.search.util.LoggerFactory;
/**
* As does SharedReaderProvider this also shares IndexReaders as long as they are "current";
@@ -43,7 +44,7 @@
*/
protected Map<DirectoryProvider,PerDirectoryLatestReader> currentReaders;
- private final Logger log = LoggerFactory.getLogger( SharingBufferReaderProvider.class );
+ private final Logger log = LoggerFactory.make();
public void closeReader(IndexReader multiReader) {
if ( multiReader == null ) return;
Modified: search/trunk/src/java/org/hibernate/search/store/DirectoryProviderHelper.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/store/DirectoryProviderHelper.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/store/DirectoryProviderHelper.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -1,27 +1,28 @@
// $Id$
package org.hibernate.search.store;
-import java.util.Properties;
import java.io.File;
import java.io.IOException;
+import java.util.Properties;
-import org.hibernate.search.SearchException;
-import org.hibernate.search.util.FileHelper;
-import org.hibernate.annotations.common.util.StringHelper;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.store.FSDirectory;
-import org.slf4j.LoggerFactory;
import org.slf4j.Logger;
+import org.hibernate.annotations.common.util.StringHelper;
+import org.hibernate.search.SearchException;
+import org.hibernate.search.util.FileHelper;
+import org.hibernate.search.util.LoggerFactory;
+
/**
* @author Emmanuel Bernard
* @author Sanne Grinovero
*/
public class DirectoryProviderHelper {
- private static final Logger log = LoggerFactory.getLogger( DirectoryProviderHelper.class );
+ private static final Logger log = LoggerFactory.make();
private static final String ROOTINDEX_PROP_NAME = "sourceBase";
private static final String RELATIVEINDEX_PROP_NAME = "source";
public static final String COPYBUFFERSIZE_PROP_NAME = "buffer_size_on_copy";
Modified: search/trunk/src/java/org/hibernate/search/store/FSDirectoryProvider.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/store/FSDirectoryProvider.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/store/FSDirectoryProvider.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -6,10 +6,11 @@
import java.util.Properties;
import org.apache.lucene.store.FSDirectory;
+import org.slf4j.Logger;
+
import org.hibernate.search.SearchException;
import org.hibernate.search.engine.SearchFactoryImplementor;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.hibernate.search.util.LoggerFactory;
/**
* Use a Lucene FSDirectory
@@ -22,7 +23,7 @@
*/
public class FSDirectoryProvider implements DirectoryProvider<FSDirectory> {
- private final Logger log = LoggerFactory.getLogger( FSDirectoryProvider.class );
+ private final Logger log = LoggerFactory.make();
private FSDirectory directory;
private String indexName;
Modified: search/trunk/src/java/org/hibernate/search/store/FSMasterDirectoryProvider.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/store/FSMasterDirectoryProvider.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/store/FSMasterDirectoryProvider.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -1,22 +1,23 @@
//$Id$
package org.hibernate.search.store;
+import java.io.File;
+import java.io.IOException;
+import java.util.Properties;
import java.util.Timer;
-import java.util.Properties;
import java.util.TimerTask;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.locks.Lock;
-import java.io.File;
-import java.io.IOException;
import org.apache.lucene.store.FSDirectory;
+import org.slf4j.Logger;
+
import org.hibernate.search.SearchException;
+import org.hibernate.search.engine.SearchFactoryImplementor;
import org.hibernate.search.util.FileHelper;
-import org.hibernate.search.engine.SearchFactoryImplementor;
-import org.slf4j.LoggerFactory;
-import org.slf4j.Logger;
+import org.hibernate.search.util.LoggerFactory;
/**
* File based DirectoryProvider that takes care of index copy
@@ -32,7 +33,7 @@
//TODO rename copy?
public class FSMasterDirectoryProvider implements DirectoryProvider<FSDirectory> {
- private final Logger log = LoggerFactory.getLogger( FSMasterDirectoryProvider.class );
+ private final Logger log = LoggerFactory.make();
private final Timer timer = new Timer( true ); //daemon thread, the copy algorithm is robust
private volatile int current;
Modified: search/trunk/src/java/org/hibernate/search/store/FSSlaveDirectoryProvider.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/store/FSSlaveDirectoryProvider.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/store/FSSlaveDirectoryProvider.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -1,22 +1,23 @@
//$Id$
package org.hibernate.search.store;
+import java.io.File;
+import java.io.IOException;
import java.util.Properties;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicBoolean;
-import java.io.File;
-import java.io.IOException;
import org.apache.lucene.store.FSDirectory;
+import org.slf4j.Logger;
+
import org.hibernate.AssertionFailure;
import org.hibernate.search.SearchException;
+import org.hibernate.search.engine.SearchFactoryImplementor;
import org.hibernate.search.util.FileHelper;
-import org.hibernate.search.engine.SearchFactoryImplementor;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.hibernate.search.util.LoggerFactory;
/**
* File based directory provider that takes care of getting a version of the index
@@ -32,7 +33,7 @@
*/
public class FSSlaveDirectoryProvider implements DirectoryProvider<FSDirectory> {
- private final Logger log = LoggerFactory.getLogger( FSSlaveDirectoryProvider.class );
+ private final Logger log = LoggerFactory.make();
private final Timer timer = new Timer( true ); //daemon thread, the copy algorithm is robust
private volatile int current; //used also as memory barrier of all other values, which are set once.
Modified: search/trunk/src/java/org/hibernate/search/store/optimization/IncrementalOptimizerStrategy.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/store/optimization/IncrementalOptimizerStrategy.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/store/optimization/IncrementalOptimizerStrategy.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -1,17 +1,18 @@
// $Id$
package org.hibernate.search.store.optimization;
+import java.io.IOException;
import java.util.Properties;
-import java.io.IOException;
-import org.hibernate.search.engine.SearchFactoryImplementor;
+import org.apache.lucene.index.IndexWriter;
+import org.slf4j.Logger;
+
+import org.hibernate.search.SearchException;
import org.hibernate.search.backend.Workspace;
import org.hibernate.search.backend.configuration.ConfigurationParseHelper;
+import org.hibernate.search.engine.SearchFactoryImplementor;
import org.hibernate.search.store.DirectoryProvider;
-import org.hibernate.search.SearchException;
-import org.apache.lucene.index.IndexWriter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.hibernate.search.util.LoggerFactory;
/**
* Optimization strategy triggered after a certain amount of operations
@@ -24,7 +25,7 @@
private long operations = 0;
private long transactions = 0;
private DirectoryProvider directoryProvider;
- private final Logger log = LoggerFactory.getLogger( IncrementalOptimizerStrategy.class );
+ private final Logger log = LoggerFactory.make();
public void initialize(DirectoryProvider directoryProvider, Properties indexProperties, SearchFactoryImplementor searchFactoryImplementor) {
this.directoryProvider = directoryProvider;
Modified: search/trunk/src/java/org/hibernate/search/util/FileHelper.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/util/FileHelper.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/java/org/hibernate/search/util/FileHelper.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -11,7 +11,6 @@
import java.nio.channels.FileChannel;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* @author Emmanuel Bernard
@@ -21,7 +20,7 @@
private static final int FAT_PRECISION = 2000;
public static final long DEFAULT_COPY_BUFFER_SIZE = 16 * 1024 * 1024; // 16 MB
- private static final Logger log = LoggerFactory.getLogger( FileHelper.class );
+ private static final Logger log = LoggerFactory.make();
public static void synchronize(File source, File destination, boolean smart) throws IOException {
synchronize( source, destination, smart, DEFAULT_COPY_BUFFER_SIZE );
Added: search/trunk/src/java/org/hibernate/search/util/LoggerFactory.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/util/LoggerFactory.java (rev 0)
+++ search/trunk/src/java/org/hibernate/search/util/LoggerFactory.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -0,0 +1,34 @@
+// $Id:$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.hibernate.search.util;
+
+import org.slf4j.Logger;
+
+/**
+ * A factory class for class loggers. Allows a creation of loggers after the DRY principle.
+ *
+ * @author Hardy Ferentschik
+ */
+public class LoggerFactory {
+ public static Logger make() {
+ Throwable t = new Throwable();
+ StackTraceElement directCaller = t.getStackTrace()[1];
+ return org.slf4j.LoggerFactory.getLogger( directCaller.getClassName() );
+ }
+}
+
Property changes on: search/trunk/src/java/org/hibernate/search/util/LoggerFactory.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: search/trunk/src/test/org/hibernate/search/test/analyzer/AnalyzerTest.java
===================================================================
--- search/trunk/src/test/org/hibernate/search/test/analyzer/AnalyzerTest.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/test/org/hibernate/search/test/analyzer/AnalyzerTest.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -5,6 +5,8 @@
import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.queryParser.QueryParser;
+import org.slf4j.Logger;
+
import org.hibernate.Transaction;
import org.hibernate.search.FullTextQuery;
import org.hibernate.search.FullTextSession;
@@ -12,15 +14,14 @@
import org.hibernate.search.SearchFactory;
import org.hibernate.search.test.SearchTestCase;
import org.hibernate.search.test.util.AnalyzerUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.hibernate.search.util.LoggerFactory;
/**
* @author Emmanuel Bernard
*/
public class AnalyzerTest extends SearchTestCase {
- public static final Logger log = LoggerFactory.getLogger(AnalyzerTest.class);
+ public static final Logger log = LoggerFactory.make();
public void testScopedAnalyzers() throws Exception {
MyEntity en = new MyEntity();
Modified: search/trunk/src/test/org/hibernate/search/test/analyzer/DoubleAnalyzerTest.java
===================================================================
--- search/trunk/src/test/org/hibernate/search/test/analyzer/DoubleAnalyzerTest.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/test/org/hibernate/search/test/analyzer/DoubleAnalyzerTest.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -4,13 +4,14 @@
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.MatchAllDocsQuery;
import org.apache.lucene.search.Query;
+import org.slf4j.Logger;
+
import org.hibernate.Transaction;
import org.hibernate.search.FullTextQuery;
import org.hibernate.search.FullTextSession;
import org.hibernate.search.Search;
import org.hibernate.search.test.SearchTestCase;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.hibernate.search.util.LoggerFactory;
/**
* Test for http://opensource.atlassian.com/projects/hibernate/browse/HSEARCH-263
@@ -18,7 +19,7 @@
*/
public class DoubleAnalyzerTest extends SearchTestCase {
- public static final Logger log = LoggerFactory.getLogger( DoubleAnalyzerTest.class );
+ public static final Logger log = LoggerFactory.make();
protected Class[] getMappings() {
return new Class[] { MyEntity.class, AlarmEntity.class };
Modified: search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/AnalyzerInheritanceTest.java
===================================================================
--- search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/AnalyzerInheritanceTest.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/AnalyzerInheritanceTest.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -1,4 +1,4 @@
-// $Id:$
+// $Id$
/*
* JBoss, Home of Professional Open Source
* Copyright 2008, Red Hat Middleware LLC, and individual contributors
@@ -17,11 +17,10 @@
*/
package org.hibernate.search.test.analyzer.inheritance;
-import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.Token;
+import org.apache.lucene.queryParser.QueryParser;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.hibernate.Transaction;
import org.hibernate.search.FullTextQuery;
@@ -29,6 +28,7 @@
import org.hibernate.search.Search;
import org.hibernate.search.test.SearchTestCase;
import org.hibernate.search.test.util.AnalyzerUtils;
+import org.hibernate.search.util.LoggerFactory;
/**
* Test to verify HSEARCH-267.
@@ -40,7 +40,7 @@
*/
public class AnalyzerInheritanceTest extends SearchTestCase {
- public static final Logger log = LoggerFactory.getLogger( AnalyzerInheritanceTest.class );
+ public static final Logger log = LoggerFactory.make();
/**
* Try to verify that the right analyzer is used by indexing and searching.
Modified: search/trunk/src/test/org/hibernate/search/test/perf/SearcherThread.java
===================================================================
--- search/trunk/src/test/org/hibernate/search/test/perf/SearcherThread.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/test/org/hibernate/search/test/perf/SearcherThread.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -2,8 +2,8 @@
package org.hibernate.search.test.perf;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.List;
-import java.util.ArrayList;
import java.util.concurrent.CountDownLatch;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
@@ -11,20 +11,21 @@
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.Hits;
+import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
-import org.apache.lucene.search.IndexSearcher;
+import org.slf4j.Logger;
+
import org.hibernate.SessionFactory;
+import org.hibernate.search.FullTextQuery;
+import org.hibernate.search.FullTextSession;
import org.hibernate.search.Search;
-import org.hibernate.search.FullTextSession;
-import org.hibernate.search.FullTextQuery;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.hibernate.search.util.LoggerFactory;
/**
* @author Emmanuel Bernard
*/
public class SearcherThread implements Runnable {
- private static final Logger log = LoggerFactory.getLogger( SearcherThread.class );
+ private static final Logger log = LoggerFactory.make();
private final int threadId;
private final String queryString;
private final SessionFactory sf;
Modified: search/trunk/src/test/org/hibernate/search/test/util/AnalyzerUtils.java
===================================================================
--- search/trunk/src/test/org/hibernate/search/test/util/AnalyzerUtils.java 2008-10-15 14:42:24 UTC (rev 15353)
+++ search/trunk/src/test/org/hibernate/search/test/util/AnalyzerUtils.java 2008-10-15 15:14:25 UTC (rev 15354)
@@ -11,8 +11,9 @@
import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.TokenStream;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.hibernate.search.util.LoggerFactory;
+
/**
* Helper class to test analyzers. Taken and modified from <i>Lucene in Action</i>.
*
@@ -20,7 +21,7 @@
*/
public class AnalyzerUtils {
- public static final Logger log = LoggerFactory.getLogger( AnalyzerUtils.class );
+ public static final Logger log = LoggerFactory.make();
public static Token[] tokensFromAnalysis(Analyzer analyzer, String field, String text) throws IOException {
TokenStream stream = analyzer.tokenStream( field, new StringReader( text ) );
15 years, 7 months
Hibernate SVN: r15353 - search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works.
by hibernate-commits@lists.jboss.org
Author: hardy.ferentschik
Date: 2008-10-15 10:42:24 -0400 (Wed, 15 Oct 2008)
New Revision: 15353
Modified:
search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/DeleteWorkDelegate.java
search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/OptimizeWorkDelegate.java
search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/PurgeAllWorkDelegate.java
Log:
HSEARCH-225
Switched to IndexWriter to delete documents by query.
Modified: search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/DeleteWorkDelegate.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/DeleteWorkDelegate.java 2008-10-15 13:26:37 UTC (rev 15352)
+++ search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/DeleteWorkDelegate.java 2008-10-15 14:42:24 UTC (rev 15353)
@@ -6,47 +6,76 @@
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.index.TermDocs;
+import org.apache.lucene.search.BooleanQuery;
+import org.apache.lucene.search.TermQuery;
+import org.apache.lucene.search.BooleanClause;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import org.hibernate.search.SearchException;
import org.hibernate.search.backend.LuceneWork;
import org.hibernate.search.backend.Workspace;
import org.hibernate.search.backend.impl.lucene.IndexInteractionType;
import org.hibernate.search.engine.DocumentBuilder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
-* Stateless implementation that performs a DeleteLuceneWork.
-* @see LuceneWorkVisitor
-* @see LuceneWorkDelegate
-* @author Emmanuel Bernard
-* @author Hardy Ferentschik
-* @author John Griffin
-* @author Sanne Grinovero
-*/
+ * Stateless implementation that performs a <code>DeleteLuceneWork</code>.
+ *
+ * @author Emmanuel Bernard
+ * @author Hardy Ferentschik
+ * @author John Griffin
+ * @author Sanne Grinovero
+ * @see LuceneWorkVisitor
+ * @see LuceneWorkDelegate
+ */
class DeleteWorkDelegate implements LuceneWorkDelegate {
-
+
private final Workspace workspace;
- private final Logger log = LoggerFactory.getLogger( AddWorkDelegate.class );
+ private final Logger log = LoggerFactory.getLogger( DeleteWorkDelegate.class );
DeleteWorkDelegate(Workspace workspace) {
this.workspace = workspace;
}
public IndexInteractionType getIndexInteractionType() {
- return IndexInteractionType.NEEDS_INDEXREADER;
+ return IndexInteractionType.NEEDS_INDEXWRITER;
}
public void performWork(LuceneWork work, IndexWriter writer) {
- throw new UnsupportedOperationException();
+ log.trace( "Removing {}#{} by query.", work.getEntityClass(), work.getId() );
+ DocumentBuilder builder = workspace.getDocumentBuilder( work.getEntityClass() );
+
+ BooleanQuery entityDeltionQuery = new BooleanQuery();
+
+ TermQuery idQueryTerm = new TermQuery( builder.getTerm( work.getId() ) );
+ entityDeltionQuery.add(idQueryTerm, BooleanClause.Occur.MUST);
+
+ Term classNameQueryTerm = new Term(DocumentBuilder.CLASS_FIELDNAME, work.getEntityClass().getName());
+ TermQuery classNameQuery = new TermQuery( classNameQueryTerm);
+ entityDeltionQuery.add(classNameQuery, BooleanClause.Occur.MUST);
+
+ try {
+ writer.deleteDocuments( entityDeltionQuery );
+ }
+ catch ( Exception e ) {
+ String message = "Unable to remove " + work.getEntityClass() + "#" + work.getId() + " from index.";
+ throw new SearchException( message, e );
+ }
}
+ /*
+ * This method is obsolete and was used pre Lucene 2.4. Now we are using IndexWriter.deleteDocuments(Query) to
+ * delete index documents.
+ *
+ * This method might be deleted at some stage. (hardy)
+ */
public void performWork(LuceneWork work, IndexReader reader) {
/**
* even with Lucene 2.1, use of indexWriter to delete is not an option
* We can only delete by term, and the index doesn't have a term that
* uniquely identify the entry. See logic below
*/
- log.trace( "remove from Lucene index: {}#{}", work.getEntityClass(), work.getId() );
+ log.trace( "Removing {}#{} from Lucene index.", work.getEntityClass(), work.getId() );
DocumentBuilder builder = workspace.getDocumentBuilder( work.getEntityClass() );
Term term = builder.getTerm( work.getId() );
TermDocs termDocs = null;
@@ -65,18 +94,22 @@
}
//TODO shouldn't this use workspace.incrementModificationCounter( 1 ) ?
}
- catch (Exception e) {
- throw new SearchException( "Unable to remove from Lucene index: "
- + work.getEntityClass() + "#" + work.getId(), e );
+ catch ( Exception e ) {
+ throw new SearchException(
+ "Unable to remove from Lucene index: "
+ + work.getEntityClass() + "#" + work.getId(), e
+ );
}
finally {
- if ( termDocs != null ) try {
- termDocs.close();
+ if ( termDocs != null ) {
+ try {
+ termDocs.close();
+ }
+ catch ( IOException e ) {
+ log.warn( "Unable to close termDocs properly", e );
+ }
}
- catch (IOException e) {
- log.warn( "Unable to close termDocs properly", e );
- }
}
}
-
+
}
Modified: search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/OptimizeWorkDelegate.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/OptimizeWorkDelegate.java 2008-10-15 13:26:37 UTC (rev 15352)
+++ search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/OptimizeWorkDelegate.java 2008-10-15 14:42:24 UTC (rev 15353)
@@ -23,7 +23,7 @@
class OptimizeWorkDelegate implements LuceneWorkDelegate {
private final Workspace workspace;
- private final Logger log = LoggerFactory.getLogger( AddWorkDelegate.class );
+ private final Logger log = LoggerFactory.getLogger( OptimizeWorkDelegate.class );
OptimizeWorkDelegate(Workspace workspace) {
this.workspace = workspace;
Modified: search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/PurgeAllWorkDelegate.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/PurgeAllWorkDelegate.java 2008-10-15 13:26:37 UTC (rev 15352)
+++ search/trunk/src/java/org/hibernate/search/backend/impl/lucene/works/PurgeAllWorkDelegate.java 2008-10-15 14:42:24 UTC (rev 15353)
@@ -21,7 +21,7 @@
*/
class PurgeAllWorkDelegate implements LuceneWorkDelegate {
- private final Logger log = LoggerFactory.getLogger( AddWorkDelegate.class );
+ private final Logger log = LoggerFactory.getLogger( PurgeAllWorkDelegate.class );
PurgeAllWorkDelegate() {
}
15 years, 7 months
Hibernate SVN: r15352 - search/trunk.
by hibernate-commits@lists.jboss.org
Author: hardy.ferentschik
Date: 2008-10-15 09:26:37 -0400 (Wed, 15 Oct 2008)
New Revision: 15352
Modified:
search/trunk/ivy.xml
Log:
Added jdbc drivers as test dependencies. This was it is easier to witch between different databases for testing.
Modified: search/trunk/ivy.xml
===================================================================
--- search/trunk/ivy.xml 2008-10-15 13:25:51 UTC (rev 15351)
+++ search/trunk/ivy.xml 2008-10-15 13:26:37 UTC (rev 15352)
@@ -41,6 +41,9 @@
<dependency org="org.slf4j" name="slf4j-log4j12" rev="1.4.2" conf="test->default"/>
<dependency org="log4j" name="log4j" rev="1.2.14" conf="test->default"/>
<dependency org="junit" name="junit" rev="3.8.1" conf="test->default"/>
+ <dependency org="hsqldb" name="hsqldb" rev="1.8.0.2" conf="test->default"/>
+ <dependency org="postgresql" name="postgresql" rev="8.3-603.jdbc3" conf="test->default"/>
+ <dependency org="mysql" name="mysql-connector-java" rev="5.1.6" conf="test->default"/>
</dependencies>
</ivy-module>
\ No newline at end of file
15 years, 7 months
Hibernate SVN: r15351 - in search/trunk/src: test/org/hibernate/search/test/analyzer and 2 other directories.
by hibernate-commits@lists.jboss.org
Author: hardy.ferentschik
Date: 2008-10-15 09:25:51 -0400 (Wed, 15 Oct 2008)
New Revision: 15351
Added:
search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/
search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/AnalyzerInheritanceTest.java
search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/BaseClass.java
search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/ISOLatin1Analyzer.java
search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/SubClass.java
Modified:
search/trunk/src/java/org/hibernate/search/engine/DocumentBuilder.java
search/trunk/src/test/org/hibernate/search/test/util/AnalyzerUtils.java
Log:
HSEARCH-267
Added test case and changed code in DocumentBuilder. When a the @Field annotation is bound no scoped analyzer should be added for this field if not explicitly defined. This will ensure that global analyzer will be used later. The old code was adding the current global analyzer which in an inheritance scenario might be wrong.
Modified: search/trunk/src/java/org/hibernate/search/engine/DocumentBuilder.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/engine/DocumentBuilder.java 2008-10-15 08:16:43 UTC (rev 15350)
+++ search/trunk/src/java/org/hibernate/search/engine/DocumentBuilder.java 2008-10-15 13:25:51 UTC (rev 15351)
@@ -420,9 +420,9 @@
// Field > property > entity analyzer
Analyzer analyzer = getAnalyzer( fieldAnn.analyzer(), context );
if ( analyzer == null ) analyzer = getAnalyzer( member, context );
- if ( analyzer == null ) analyzer = propertiesMetadata.analyzer;
- if ( analyzer == null ) throw new AssertionFailure( "Analizer should not be undefined" );
- this.analyzer.addScopedAnalyzer( fieldName, analyzer );
+ if ( analyzer != null ) {
+ this.analyzer.addScopedAnalyzer( fieldName, analyzer );
+ }
}
private String buildEmbeddedPrefix(String prefix, IndexedEmbedded embeddedAnn, XProperty member) {
Added: search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/AnalyzerInheritanceTest.java
===================================================================
--- search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/AnalyzerInheritanceTest.java (rev 0)
+++ search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/AnalyzerInheritanceTest.java 2008-10-15 13:25:51 UTC (rev 15351)
@@ -0,0 +1,99 @@
+// $Id:$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.hibernate.search.test.analyzer.inheritance;
+
+import org.apache.lucene.queryParser.QueryParser;
+import org.apache.lucene.analysis.Analyzer;
+import org.apache.lucene.analysis.Token;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.hibernate.Transaction;
+import org.hibernate.search.FullTextQuery;
+import org.hibernate.search.FullTextSession;
+import org.hibernate.search.Search;
+import org.hibernate.search.test.SearchTestCase;
+import org.hibernate.search.test.util.AnalyzerUtils;
+
+/**
+ * Test to verify HSEARCH-267.
+ *
+ * A base class defines a field as indexable without specifying an explicit analyzer. A subclass then defines ab analyzer
+ * at class level. This should also be the analyzer used for indexing the field in the base class.
+ *
+ * @author Hardy Ferentschik
+ */
+public class AnalyzerInheritanceTest extends SearchTestCase {
+
+ public static final Logger log = LoggerFactory.getLogger( AnalyzerInheritanceTest.class );
+
+ /**
+ * Try to verify that the right analyzer is used by indexing and searching.
+ *
+ * @throws Exception in case the test fails.
+ */
+ public void testBySearch() throws Exception {
+ SubClass testClass = new SubClass();
+ testClass.setName( "Proca�ne" );
+ FullTextSession s = Search.getFullTextSession( openSession() );
+ Transaction tx = s.beginTransaction();
+ s.persist( testClass );
+ tx.commit();
+
+ tx = s.beginTransaction();
+
+
+ QueryParser parser = new QueryParser( "name", s.getSearchFactory().getAnalyzer( SubClass.class ) );
+ org.apache.lucene.search.Query luceneQuery = parser.parse( "name:Proca�ne" );
+ FullTextQuery query = s.createFullTextQuery( luceneQuery, SubClass.class );
+ assertEquals( 1, query.getResultSize() );
+
+ luceneQuery = parser.parse( "name:Procaine" );
+ query = s.createFullTextQuery( luceneQuery, SubClass.class );
+ assertEquals( 1, query.getResultSize() );
+
+ // make sure the result is not always 1
+ luceneQuery = parser.parse( "name:foo" );
+ query = s.createFullTextQuery( luceneQuery, SubClass.class );
+ assertEquals( 0, query.getResultSize() );
+
+ tx.commit();
+ s.close();
+ }
+
+ /**
+ * Try to verify that the right analyzer is used by explicitly retrieving the analyzer form the factory.
+ *
+ * @throws Exception in case the test fails.
+ */
+ public void testByAnalyzerRetrieval() throws Exception {
+
+ FullTextSession s = Search.getFullTextSession( openSession() );
+ Analyzer analyzer = s.getSearchFactory().getAnalyzer( SubClass.class );
+
+ Token[] tokens = AnalyzerUtils.tokensFromAnalysis(analyzer, "name", "Proca�ne");
+ AnalyzerUtils.assertTokensEqual( tokens, new String[]{"Procaine"});
+
+ s.close();
+ }
+
+
+ protected Class[] getMappings() {
+ return new Class[] { SubClass.class };
+ }
+}
Property changes on: search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/AnalyzerInheritanceTest.java
___________________________________________________________________
Name: svn:keywords
+ Id
Added: search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/BaseClass.java
===================================================================
--- search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/BaseClass.java (rev 0)
+++ search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/BaseClass.java 2008-10-15 13:25:51 UTC (rev 15351)
@@ -0,0 +1,63 @@
+// $Id:$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.hibernate.search.test.analyzer.inheritance;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
+
+import org.hibernate.search.annotations.DocumentId;
+import org.hibernate.search.annotations.Field;
+import org.hibernate.search.annotations.Index;
+import org.hibernate.search.annotations.Store;
+
+/**
+ * @author Hardy Ferentschik
+ */
+@Entity
+@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
+public abstract class BaseClass {
+
+ private Integer id;
+
+ protected String name;
+
+ @Id
+ @GeneratedValue
+ @DocumentId
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+
+ @Field(name = "name", index = Index.TOKENIZED, store = Store.YES)
+ public String getName() {
+ return name;
+ }
+
+
+ public void setName(String name) {
+ this.name = name;
+ }
+}
Property changes on: search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/BaseClass.java
___________________________________________________________________
Name: svn:keywords
+ Id
Added: search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/ISOLatin1Analyzer.java
===================================================================
--- search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/ISOLatin1Analyzer.java (rev 0)
+++ search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/ISOLatin1Analyzer.java 2008-10-15 13:25:51 UTC (rev 15351)
@@ -0,0 +1,35 @@
+// $Id:$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.hibernate.search.test.analyzer.inheritance;
+
+import java.io.Reader;
+
+import org.apache.lucene.analysis.TokenStream;
+import org.apache.lucene.analysis.ISOLatin1AccentFilter;
+import org.apache.lucene.analysis.Analyzer;
+import org.apache.lucene.analysis.standard.StandardTokenizer;
+
+/**
+ * @author Hardy Ferentschik
+ */
+ public class ISOLatin1Analyzer extends Analyzer {
+ public TokenStream tokenStream(String s, Reader reader) {
+ TokenStream result = new StandardTokenizer( reader );
+ return new ISOLatin1AccentFilter( result );
+ }
+ }
Property changes on: search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/ISOLatin1Analyzer.java
___________________________________________________________________
Name: svn:keywords
+ Id
Added: search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/SubClass.java
===================================================================
--- search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/SubClass.java (rev 0)
+++ search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/SubClass.java 2008-10-15 13:25:51 UTC (rev 15351)
@@ -0,0 +1,33 @@
+// $Id:$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.hibernate.search.test.analyzer.inheritance;
+
+import javax.persistence.Entity;
+
+import org.hibernate.search.annotations.Analyzer;
+import org.hibernate.search.annotations.Indexed;
+
+/**
+ * @author Hardy Ferentschik
+ */
+@Entity
+@Indexed
+@Analyzer(impl = ISOLatin1Analyzer.class)
+public class SubClass extends BaseClass {
+
+}
Property changes on: search/trunk/src/test/org/hibernate/search/test/analyzer/inheritance/SubClass.java
___________________________________________________________________
Name: svn:keywords
+ Id
Modified: search/trunk/src/test/org/hibernate/search/test/util/AnalyzerUtils.java
===================================================================
--- search/trunk/src/test/org/hibernate/search/test/util/AnalyzerUtils.java 2008-10-15 08:16:43 UTC (rev 15350)
+++ search/trunk/src/test/org/hibernate/search/test/util/AnalyzerUtils.java 2008-10-15 13:25:51 UTC (rev 15351)
@@ -1,4 +1,4 @@
-// $Id:$
+// $Id$
package org.hibernate.search.test.util;
import java.io.IOException;
@@ -7,7 +7,6 @@
import java.util.List;
import junit.framework.Assert;
-
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.TokenStream;
@@ -16,38 +15,39 @@
/**
* Helper class to test analyzers. Taken and modified from <i>Lucene in Action</i>.
- *
+ *
* @author Hardy Ferentschik
*/
public class AnalyzerUtils {
- public static final Logger log = LoggerFactory.getLogger(AnalyzerUtils.class);
+ public static final Logger log = LoggerFactory.getLogger( AnalyzerUtils.class );
public static Token[] tokensFromAnalysis(Analyzer analyzer, String field, String text) throws IOException {
- TokenStream stream = analyzer.tokenStream(field, new StringReader(text));
+ TokenStream stream = analyzer.tokenStream( field, new StringReader( text ) );
List<Token> tokenList = new ArrayList<Token>();
while ( true ) {
Token token = stream.next();
- if ( token == null )
+ if ( token == null ) {
break;
+ }
- tokenList.add(token);
+ tokenList.add( token );
}
- return (Token[]) tokenList.toArray(new Token[0]);
+ return ( Token[] ) tokenList.toArray( new Token[0] );
}
public static void displayTokens(Analyzer analyzer, String field, String text) throws IOException {
- Token[] tokens = tokensFromAnalysis(analyzer, field, text);
+ Token[] tokens = tokensFromAnalysis( analyzer, field, text );
for ( int i = 0; i < tokens.length; i++ ) {
Token token = tokens[i];
- log.debug("[" + getTermText(token) + "] ");
+ log.debug( "[" + getTermText( token ) + "] " );
}
}
public static void displayTokensWithPositions(Analyzer analyzer, String field, String text) throws IOException {
- Token[] tokens = tokensFromAnalysis(analyzer, field, text);
+ Token[] tokens = tokensFromAnalysis( analyzer, field, text );
int position = 0;
@@ -59,15 +59,15 @@
if ( increment > 0 ) {
position = position + increment;
System.out.println();
- System.out.print(position + ": ");
+ System.out.print( position + ": " );
}
- log.debug("[" + getTermText(token) + "] ");
+ log.debug( "[" + getTermText( token ) + "] " );
}
}
public static void displayTokensWithFullDetails(Analyzer analyzer, String field, String text) throws IOException {
- Token[] tokens = tokensFromAnalysis(analyzer, field, text);
+ Token[] tokens = tokensFromAnalysis( analyzer, field, text );
StringBuilder builder = new StringBuilder();
int position = 0;
@@ -78,24 +78,33 @@
if ( increment > 0 ) {
position = position + increment;
- builder.append("\n").append(position).append(": ");
+ builder.append( "\n" ).append( position ).append( ": " );
}
- builder.append("[").append(getTermText(token)).append(":").append(token.startOffset()).append("->").append(
- token.endOffset()).append(":").append(token.type()).append("] ");
- log.debug(builder.toString());
+ builder.append( "[" )
+ .append( getTermText( token ) )
+ .append( ":" )
+ .append( token.startOffset() )
+ .append( "->" )
+ .append(
+ token.endOffset()
+ )
+ .append( ":" )
+ .append( token.type() )
+ .append( "] " );
+ log.debug( builder.toString() );
}
}
public static void assertTokensEqual(Token[] tokens, String[] strings) {
- Assert.assertEquals(strings.length, tokens.length);
+ Assert.assertEquals( strings.length, tokens.length );
for ( int i = 0; i < tokens.length; i++ ) {
- Assert.assertEquals("index " + i, strings[i], getTermText(tokens[i]));
+ Assert.assertEquals( "index " + i, strings[i], getTermText( tokens[i] ) );
}
}
-
+
public static String getTermText(Token token) {
- return new String(token.termBuffer(), 0, token.termLength());
+ return new String( token.termBuffer(), 0, token.termLength() );
}
}
15 years, 7 months
Hibernate SVN: r15350 - in branches/Branch_3_2/HibernateExt/tools/src: java/org/hibernate/cfg/reveng and 4 other directories.
by hibernate-commits@lists.jboss.org
Author: anthonyHib
Date: 2008-10-15 04:16:43 -0400 (Wed, 15 Oct 2008)
New Revision: 15350
Modified:
branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/OverrideBinder.java
branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/OverrideRepository.java
branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/hibernate-reverse-engineering-3.0.dtd
branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/Cfg2HbmTool.java
branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/pojo/EntityPOJOClass.java
branches/Branch_3_2/HibernateExt/tools/src/templates/pojo/Ejb3PropertyGetAnnotation.ftl
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/OneToOneTest.java
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/RevEngForeignKeyTests.java
branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/foreignkeytest.reveng.xml
Log:
HBX-524 Reverse of one-to-one relationships
Modified: branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/OverrideBinder.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/OverrideBinder.java 2008-10-14 18:55:51 UTC (rev 15349)
+++ branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/OverrideBinder.java 2008-10-15 08:16:43 UTC (rev 15350)
@@ -160,6 +160,8 @@
}
if(StringHelper.isNotEmpty(constraintName)) {
+ if (!validateFkAssociations(element))
+ throw new IllegalArgumentException("you can't mix <many-to-one/> or <set/> with <(inverse-)one-to-one/> ");
String manyToOneProperty = null;
Boolean excludeManyToOne = null;
@@ -176,13 +178,53 @@
collectionProperty = collection.attributeValue("property");
excludeCollection = BooleanValue(collection.attributeValue("exclude"));
}
- repository.addForeignKeyInfo(constraintName, manyToOneProperty, excludeManyToOne, collectionProperty, excludeCollection);
+
+ if ( (manyToOne!=null) || (collection!=null) ) {
+ repository.addForeignKeyInfo(constraintName, manyToOneProperty, excludeManyToOne, collectionProperty, excludeCollection);
+ continue;
+ }
+
+ String oneToOneProperty = null;
+ Boolean excludeOneToOne = null;
+ Element oneToOne = element.element("one-to-one");
+ if(oneToOne!=null) {
+ oneToOneProperty = oneToOne.attributeValue("property");
+ excludeOneToOne = BooleanValue(oneToOne.attributeValue("exclude"));
+ }
+
+ String inverseOneToOneProperty = null;
+ Boolean excludeInverseOneToOne = null;
+ Element inverseOneToOne = element.element("inverse-one-to-one");
+ if(inverseOneToOne!=null) {
+ inverseOneToOneProperty = oneToOne.attributeValue("property");
+ excludeInverseOneToOne = BooleanValue(inverseOneToOne.attributeValue("exclude"));
+ }
+
+ // having oneToOne = null and inverseOneToOne != null doesn't make sense
+ // we cannot have the inserse side without the owning side in this case
+
+ if ( (oneToOne!=null) ) {
+ repository.addForeignKeyInfo(constraintName, oneToOneProperty, excludeOneToOne, inverseOneToOneProperty, excludeInverseOneToOne);
+ }
}
-
}
}
+ private static boolean validateFkAssociations(Element element){
+ Element manyToOne = element.element("many-to-one");
+ Element oneToOne = element.element("one-to-one");
+ Element set = element.element("set");
+ Element inverseOneToOne = element.element("inverse-one-to-one");
+
+ if (manyToOne != null && ( oneToOne != null || inverseOneToOne != null)
+ || oneToOne != null && set != null
+ || inverseOneToOne != null && set != null)
+ return false;
+
+ return true;
+ }
+
private static Boolean BooleanValue(String string) {
if(string==null) return null;
return Boolean.valueOf(string);
Modified: branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/OverrideRepository.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/OverrideRepository.java 2008-10-14 18:55:51 UTC (rev 15349)
+++ branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/OverrideRepository.java 2008-10-15 08:16:43 UTC (rev 15350)
@@ -62,13 +62,13 @@
final private Map compositeIdNameForTable;
- final private Map foreignKeyToEntityName;
+ final private Map foreignKeyToOneName;
- final private Map foreignKeyToCollectionName;
+ final private Map foreignKeyToInverseName;
- final private Map foreignKeyCollectionExclude;
+ final private Map foreignKeyInverseExclude;
- final private Map foreignKeyManyToOneExclude;
+ final private Map foreignKeyToOneExclude;
final private Map tableMetaAttributes; // TI -> MultiMap of SimpleMetaAttributes
@@ -96,10 +96,10 @@
excludedColumns = new HashSet();
schemaSelections = new ArrayList();
compositeIdNameForTable = new HashMap();
- foreignKeyToEntityName = new HashMap();
- foreignKeyToCollectionName = new HashMap();
- foreignKeyCollectionExclude = new HashMap();
- foreignKeyManyToOneExclude = new HashMap();
+ foreignKeyToOneName = new HashMap();
+ foreignKeyToInverseName = new HashMap();
+ foreignKeyInverseExclude = new HashMap();
+ foreignKeyToOneExclude = new HashMap();
tableMetaAttributes = new HashMap();
columnMetaAttributes = new HashMap();
}
@@ -418,7 +418,7 @@
}
public String foreignKeyToEntityName(String keyname, TableIdentifier fromTable, List fromColumnNames, TableIdentifier referencedTable, List referencedColumnNames, boolean uniqueReference) {
- String property = (String) foreignKeyToEntityName.get(keyname);
+ String property = (String) foreignKeyToOneName.get(keyname);
if(property==null) {
return super.foreignKeyToEntityName(keyname, fromTable, fromColumnNames, referencedTable, referencedColumnNames, uniqueReference);
} else {
@@ -427,7 +427,7 @@
}
public String foreignKeyToCollectionName(String keyname, TableIdentifier fromTable, List fromColumns, TableIdentifier referencedTable, List referencedColumns, boolean uniqueReference) {
- String property = (String) foreignKeyToCollectionName.get(keyname);
+ String property = (String) foreignKeyToInverseName.get(keyname);
if(property==null) {
return super.foreignKeyToCollectionName(keyname, fromTable, fromColumns, referencedTable, referencedColumns, uniqueReference);
} else {
@@ -436,7 +436,7 @@
}
public boolean excludeForeignKeyAsCollection(String keyname, TableIdentifier fromTable, List fromColumns, TableIdentifier referencedTable, List referencedColumns) {
- Boolean bool = (Boolean) foreignKeyCollectionExclude.get(keyname);
+ Boolean bool = (Boolean) foreignKeyInverseExclude.get(keyname);
if(bool!=null) {
return bool.booleanValue();
} else {
@@ -446,7 +446,7 @@
}
public boolean excludeForeignKeyAsManytoOne(String keyname, TableIdentifier fromTable, List fromColumns, TableIdentifier referencedTable, List referencedColumns) {
- Boolean bool = (Boolean) foreignKeyManyToOneExclude.get(keyname);
+ Boolean bool = (Boolean) foreignKeyToOneExclude.get(keyname);
if(bool!=null) {
return bool.booleanValue();
} else {
@@ -604,18 +604,23 @@
schemaSelections.add(schemaSelection);
}
- public void addForeignKeyInfo(String constraintName, String manyToOneProperty, Boolean excludeManyToOne, String collectionProperty, Boolean excludeCollection) {
- if(StringHelper.isNotEmpty(manyToOneProperty)) {
- foreignKeyToEntityName.put(constraintName, manyToOneProperty);
+ /**
+ * Both sides of the FK are important,
+ * the owning side can generate a toOne (ManyToOne or OneToOne), we call this side foreignKeyToOne
+ * the inverse side can generate a OneToMany OR a OneToOne (in case we have a pure bidirectional OneToOne, we call this side foreignKeyToInverse
+ */
+ public void addForeignKeyInfo(String constraintName, String toOneProperty, Boolean excludeToOne, String inverseProperty, Boolean excludeInverse) {
+ if(StringHelper.isNotEmpty(toOneProperty)) {
+ foreignKeyToOneName.put(constraintName, toOneProperty);
}
- if(StringHelper.isNotEmpty(collectionProperty)) {
- foreignKeyToCollectionName.put(constraintName, collectionProperty);
+ if(StringHelper.isNotEmpty(inverseProperty)) {
+ foreignKeyToInverseName.put(constraintName, inverseProperty);
}
- if(excludeCollection!=null) {
- foreignKeyCollectionExclude.put(constraintName, excludeCollection);
+ if(excludeInverse!=null) {
+ foreignKeyInverseExclude.put(constraintName, excludeInverse);
}
- if(excludeManyToOne!=null) {
- foreignKeyManyToOneExclude.put(constraintName, excludeManyToOne);
+ if(excludeToOne!=null) {
+ foreignKeyToOneExclude.put(constraintName, excludeToOne);
}
}
Modified: branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/hibernate-reverse-engineering-3.0.dtd
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/hibernate-reverse-engineering-3.0.dtd 2008-10-14 18:55:51 UTC (rev 15349)
+++ branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/hibernate-reverse-engineering-3.0.dtd 2008-10-15 08:16:43 UTC (rev 15350)
@@ -84,7 +84,7 @@
<!ATTLIST param name CDATA #REQUIRED>
<!-- A foreign-key has to have at least a constraint-name AND/OR foreign-table+column-ref's -->
-<!ELEMENT foreign-key (column-ref*,many-to-one?,(set)?) >
+<!ELEMENT foreign-key (column-ref*,many-to-one?,(set)?,one-to-one?,(inverse-one-to-one)?) >
<!ATTLIST foreign-key constraint-name CDATA #IMPLIED >
<!ATTLIST foreign-key foreign-catalog CDATA #IMPLIED >
<!ATTLIST foreign-key foreign-schema CDATA #IMPLIED >
@@ -98,7 +98,14 @@
<!ATTLIST many-to-one property CDATA #IMPLIED>
<!ATTLIST many-to-one exclude (true|false) #IMPLIED>
+<!ELEMENT one-to-one EMPTY >
+<!ATTLIST one-to-one property CDATA #IMPLIED>
+<!ATTLIST one-to-one exclude (true|false) #IMPLIED>
+<!ELEMENT inverse-one-to-one EMPTY >
+<!ATTLIST inverse-one-to-one property CDATA #IMPLIED>
+<!ATTLIST inverse-one-to-one exclude (true|false) #IMPLIED>
+
<!ELEMENT set EMPTY >
<!ATTLIST set property CDATA #IMPLIED>
<!ATTLIST set exclude (true|false) #IMPLIED>
Modified: branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/Cfg2HbmTool.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/Cfg2HbmTool.java 2008-10-14 18:55:51 UTC (rev 15349)
+++ branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/Cfg2HbmTool.java 2008-10-15 08:16:43 UTC (rev 15350)
@@ -22,6 +22,7 @@
import org.hibernate.mapping.JoinedSubclass;
import org.hibernate.mapping.ManyToOne;
import org.hibernate.mapping.OneToMany;
+import org.hibernate.mapping.OneToOne;
import org.hibernate.mapping.PersistentClass;
import org.hibernate.mapping.PersistentClassVisitor;
import org.hibernate.mapping.Property;
@@ -174,8 +175,8 @@
return (property.getValue()!=null) && (property.getValue() instanceof ManyToOne);
}
- public boolean isToOne(Property property) {
- return (property.getValue()!=null) && (property.getValue() instanceof ToOne);
+ public boolean isOneToOne(Property property) {
+ return (property.getValue()!=null) && (property.getValue() instanceof OneToOne);
}
public boolean isTemporalValue(Property property) {
Modified: branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/pojo/EntityPOJOClass.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/pojo/EntityPOJOClass.java 2008-10-14 18:55:51 UTC (rev 15349)
+++ branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/tool/hbm2x/pojo/EntityPOJOClass.java 2008-10-15 08:16:43 UTC (rev 15350)
@@ -20,6 +20,7 @@
import org.hibernate.mapping.KeyValue;
import org.hibernate.mapping.ManyToOne;
import org.hibernate.mapping.OneToMany;
+import org.hibernate.mapping.OneToOne;
import org.hibernate.mapping.PersistentClass;
import org.hibernate.mapping.Property;
import org.hibernate.mapping.RootClass;
@@ -445,6 +446,21 @@
buffer.append(getHibernateCascadeTypeAnnotation(property));
return buffer.toString();
}
+
+ public String generateOneToOneAnnotation(Property property, Configuration cfg) {
+ AnnotationBuilder ab = AnnotationBuilder.createAnnotation( importType("javax.persistence.OneToOne") )
+ .addAttribute( "cascade", getCascadeTypes(property))
+ .addAttribute( "fetch", getFetchType(property));
+ OneToOne oneToOne = (OneToOne)property.getValue();
+ if (oneToOne.isConstrained())
+ ab.addQuotedAttribute("mappedBy", getOneToOneMappedBy(cfg, oneToOne));
+
+ StringBuffer buffer = new StringBuffer(ab.getResult());
+
+ buffer.append(getHibernateCascadeTypeAnnotation(property));
+ return buffer.toString();
+ }
+
public String getHibernateCascadeTypeAnnotation(Property property) {
StringTokenizer st = new StringTokenizer( property.getCascade(), ", ", false );
String cascadeType = null;
@@ -508,7 +524,6 @@
}
}
-
public Object getDecoratedObject() {
return clazz;
}
@@ -665,6 +680,42 @@
return mappedBy;
}
+ private String getOneToOneMappedBy(Configuration cfg, OneToOne oneToOne) {
+ String mappedBy;
+ Iterator joinColumnsIt = oneToOne.getColumnIterator();
+ Set joinColumns = new HashSet();
+ while ( joinColumnsIt.hasNext() ) {
+ joinColumns.add( joinColumnsIt.next() );
+ }
+ PersistentClass pc = cfg.getClassMapping( oneToOne.getReferencedEntityName() );
+ Iterator properties = pc.getPropertyClosureIterator();
+ //TODO we should check the table too
+ boolean isOtherSide = false;
+ mappedBy = "unresolved";
+ while ( ! isOtherSide && properties.hasNext() ) {
+ Property oneProperty = (Property) properties.next();
+ Value manyValue = oneProperty.getValue();
+ if ( manyValue != null && manyValue instanceof OneToOne ) {
+ if ( joinColumns.size() == manyValue.getColumnSpan() ) {
+ isOtherSide = true;
+ Iterator it = manyValue.getColumnIterator();
+ while ( it.hasNext() ) {
+ Object column = it.next();
+ if (! joinColumns.contains( column ) ) {
+ isOtherSide = false;
+ break;
+ }
+ }
+ if (isOtherSide) {
+ mappedBy = oneProperty.getName();
+ }
+ }
+
+ }
+ }
+ return mappedBy;
+ }
+
public boolean isSubclass() {
return clazz.getSuperclass()!=null;
}
Modified: branches/Branch_3_2/HibernateExt/tools/src/templates/pojo/Ejb3PropertyGetAnnotation.ftl
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/templates/pojo/Ejb3PropertyGetAnnotation.ftl 2008-10-14 18:55:51 UTC (rev 15349)
+++ branches/Branch_3_2/HibernateExt/tools/src/templates/pojo/Ejb3PropertyGetAnnotation.ftl 2008-10-15 08:16:43 UTC (rev 15350)
@@ -6,8 +6,10 @@
<#-- explicitly set the column name for this property-->
</#if>
</#if>
-<#if c2h.isManyToOne(property)>
-<#--TODO support @OneToOne true and false-->
+
+<#if c2h.isOneToOne(property)>
+${pojo.generateOneToOneAnnotation(property, cfg)}
+<#elseif c2h.isManyToOne(property)>
${pojo.generateManyToOneAnnotation(property)}
<#--TODO support optional and targetEntity-->
${pojo.generateJoinColumnsAnnotation(property, cfg)}
Modified: branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/OneToOneTest.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/OneToOneTest.java 2008-10-14 18:55:51 UTC (rev 15349)
+++ branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/OneToOneTest.java 2008-10-15 08:16:43 UTC (rev 15350)
@@ -5,21 +5,28 @@
package org.hibernate.tool.test.jdbc2cfg;
import java.io.File;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.ArrayList;
+import java.util.List;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.hibernate.MappingException;
+import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
import org.hibernate.cfg.JDBCMetaDataConfiguration;
import org.hibernate.cfg.reveng.DefaultReverseEngineeringStrategy;
-import org.hibernate.cfg.reveng.ReverseEngineeringSettings;
import org.hibernate.mapping.OneToOne;
import org.hibernate.mapping.PersistentClass;
import org.hibernate.mapping.Property;
import org.hibernate.mapping.SimpleValue;
import org.hibernate.tool.JDBCMetaDataBinderTestCase;
import org.hibernate.tool.hbm2x.HibernateMappingExporter;
+import org.hibernate.tool.hbm2x.POJOExporter;
+import org.hibernate.tool.test.TestHelper;
/**
* @author max
@@ -166,7 +173,7 @@
localCfg.buildMappings();
}
- public void testGenerateAndReadable() {
+ public void testGenerateMappingAndReadable() {
cfg.buildMappings();
@@ -190,7 +197,61 @@
}
-
+ public void testGenerateAnnotatedClassesAndReadable() throws MappingException, ClassNotFoundException, MalformedURLException {
+
+ cfg.buildMappings();
+ POJOExporter exporter = new POJOExporter(cfg, getOutputDir() );
+ exporter.setTemplatePath(new String[0]);
+ exporter.getProperties().setProperty("ejb3", "true");
+ exporter.getProperties().setProperty("jdk5", "true");
+ exporter.start();
+
+ assertFileAndExists( new File(getOutputDir(), "Person.java") );
+ assertFileAndExists( new File(getOutputDir(), "AddressPerson.java") );
+ assertFileAndExists( new File(getOutputDir(), "MultiPersonId.java") );
+ assertFileAndExists( new File(getOutputDir(), "AddressMultiPerson.java") );
+ assertFileAndExists( new File(getOutputDir(), "AddressMultiPersonId.java") );
+ assertFileAndExists( new File(getOutputDir(), "MultiPerson.java") );
+
+ assertEquals(6, getOutputDir().listFiles().length);
+ ArrayList list = new ArrayList();
+ List jars = new ArrayList();
+ addAnnotationJars(jars);
+ TestHelper.compile(
+ getOutputDir(), getOutputDir(), TestHelper.visitAllFiles( getOutputDir(), list ), "1.5",
+ TestHelper.buildClasspath( jars )
+ );
+ URL[] urls = new URL[] { getOutputDir().toURL() };
+ URLClassLoader ucl = new URLClassLoader(urls, Thread.currentThread().getContextClassLoader() );
+ Class personClass = ucl.loadClass("Person");
+ Class multiPersonClass = ucl.loadClass("MultiPerson");
+ Class addressMultiPerson = ucl.loadClass("AddressMultiPerson");
+ Class addressMultiPersonId = ucl.loadClass("AddressMultiPersonId");
+ Class addressPerson = ucl.loadClass("AddressPerson");
+ Class multiPersonIdClass = ucl.loadClass("MultiPersonId");
+ Thread.currentThread().setContextClassLoader(ucl);
+ AnnotationConfiguration configuration = new AnnotationConfiguration();
+ configuration.addAnnotatedClass(personClass)
+ .addAnnotatedClass(multiPersonClass)
+ .addAnnotatedClass(addressMultiPerson)
+ .addAnnotatedClass(addressMultiPersonId)
+ .addAnnotatedClass(addressPerson)
+ .addAnnotatedClass(multiPersonIdClass);
+
+ configuration.buildMappings();
+
+ }
+
+ private void addAnnotationJars(List jars) {
+ jars.add( "ejb3-persistence.jar" );
+ jars.add( "hibernate-annotations.jar" );
+ jars.add( "hibernate-commons-annotations.jar" );
+ jars.add( "hibernate3.jar" );
+ jars.add( "dom4j-1.6.1.jar" );
+ jars.add( "commons-logging-1.0.4.jar" );
+
+ }
+
private void assertPropertyNotExist(PersistentClass projectClass, String prop) {
try {
projectClass.getProperty(prop);
Modified: branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/RevEngForeignKeyTests.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/RevEngForeignKeyTests.java 2008-10-14 18:55:51 UTC (rev 15349)
+++ branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/RevEngForeignKeyTests.java 2008-10-15 08:16:43 UTC (rev 15350)
@@ -4,6 +4,9 @@
*/
package org.hibernate.tool.test.jdbc2cfg;
+import java.net.MalformedURLException;
+import java.util.List;
+
import junit.framework.Test;
import junit.framework.TestSuite;
@@ -68,7 +71,7 @@
or.addResource(OVERRIDETEST_FOREIGNKEY_XML);
ReverseEngineeringStrategy repository = or.getReverseEngineeringStrategy(new DefaultReverseEngineeringStrategy());
-
+
JDBCMetaDataConfiguration localCfg = new JDBCMetaDataConfiguration();
localCfg.setReverseEngineeringStrategy(repository);
localCfg.readFromJDBC();
@@ -101,7 +104,42 @@
assertEquals("id", worksOn.getIdentifierProperty().getName());
}
+
+ private void addAnnotationJars(List jars) {
+ jars.add( "ejb3-persistence.jar" );
+ jars.add( "hibernate-annotations.jar" );
+ jars.add( "hibernate-commons-annotations.jar" );
+ jars.add( "hibernate3.jar" );
+ jars.add( "dom4j-1.6.1.jar" );
+ jars.add( "commons-logging-1.0.4.jar" );
+
+ }
+ public void testOneToOne() throws MalformedURLException, ClassNotFoundException {
+
+ OverrideRepository or = buildOverrideRepository();
+
+ or.addResource(OVERRIDETEST_FOREIGNKEY_XML);
+ ReverseEngineeringStrategy repository = or.getReverseEngineeringStrategy(new DefaultReverseEngineeringStrategy());
+
+ JDBCMetaDataConfiguration localCfg = new JDBCMetaDataConfiguration();
+ localCfg.setReverseEngineeringStrategy(repository);
+ localCfg.readFromJDBC();
+
+ PersistentClass person = localCfg.getClassMapping("Person");
+ PersistentClass addressPerson = localCfg.getClassMapping("AddressPerson");
+ PersistentClass addressMultiPerson = localCfg.getClassMapping("AddressMultiPerson");
+ PersistentClass multiPerson = localCfg.getClassMapping("MultiPerson");
+
+ assertPropertyNotExists(addressPerson, "person", "should be removed by reveng.xml");
+ assertPropertyNotExists(person, "addressPerson", "should be removed by reveng.xml");
+
+ Property property = addressMultiPerson.getProperty("multiPerson");
+ assertNotNull(property);
+
+ assertPropertyNotExists(multiPerson, "addressMultiPerson", "should be removed by reveng.xml");
+ }
+
public void testDuplicateForeignKeyDefinition() {
OverrideRepository or = buildOverrideRepository();
@@ -145,6 +183,10 @@
"create table PROJECT ( project_id integer not null, name varchar(50), team_lead integer, primary key (project_id) )",
"create table EMPLOYEE ( id integer not null, name varchar(50), manager_id integer, primary key (id), constraint employee_manager foreign key (manager_id) references EMPLOYEE)",
"create table WORKS_ON ( project_id integer not null, employee_id integer not null, start_date date, end_date date, primary key (project_id, employee_id), constraint workson_employee foreign key (employee_id) references EMPLOYEE, foreign key (project_id) references PROJECT )",
+ "create table PERSON ( person_id integer not null, name varchar(50), primary key (person_id) )",
+ "create table ADDRESS_PERSON ( address_id integer not null, name varchar(50), primary key (address_id), constraint address_person foreign key (address_id) references PERSON)",
+ "create table MULTI_PERSON ( person_id integer not null, person_compid integer not null, name varchar(50), primary key (person_id, person_compid) )",
+ "create table ADDRESS_MULTI_PERSON ( address_id integer not null, address_compid integer not null, name varchar(50), primary key (address_id, address_compid), constraint address_multi_person foreign key (address_id, address_compid) references MULTI_PERSON)",
"alter table PROJECT add constraint project_manager foreign key (team_lead) references EMPLOYEE"
};
}
@@ -154,7 +196,11 @@
"alter table PROJECT drop constraint project_manager",
"drop table WORKS_ON",
"drop table EMPLOYEE",
- "drop table PROJECT",
+ "drop table PROJECT",
+ "drop table ADDRESS_PERSON",
+ "drop table PERSON",
+ "drop table ADDRESS_MULTI_PERSON",
+ "drop table MULTI_PERSON"
};
}
Modified: branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/foreignkeytest.reveng.xml
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/foreignkeytest.reveng.xml 2008-10-14 18:55:51 UTC (rev 15349)
+++ branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/foreignkeytest.reveng.xml 2008-10-15 08:16:43 UTC (rev 15350)
@@ -3,6 +3,8 @@
<hibernate-reverse-engineering>
<!-- This one assumes set and many-to-one is exclude=false -->
+
+
<table name="EMPLOYEE">
<foreign-key constraint-name="EMPLOYEE_MANAGER">
<many-to-one property="manager"/>
@@ -17,5 +19,18 @@
</foreign-key>
</table>
+ <table name="ADDRESS_PERSON">
+ <foreign-key constraint-name="ADDRESS_PERSON">
+ <one-to-one exclude="true"/>
+ <inverse-one-to-one exclude="true"/>
+ </foreign-key>
+ </table>
+ <table name="ADDRESS_MULTI_PERSON">
+ <foreign-key constraint-name="ADDRESS_MULTI_PERSON">
+ <one-to-one exclude="false"/>
+ <inverse-one-to-one exclude="true"/>
+ </foreign-key>
+ </table>
+
</hibernate-reverse-engineering>
\ No newline at end of file
15 years, 7 months
Hibernate SVN: r15349 - search/trunk.
by hibernate-commits@lists.jboss.org
Author: hardy.ferentschik
Date: 2008-10-14 14:55:51 -0400 (Tue, 14 Oct 2008)
New Revision: 15349
Modified:
search/trunk/build.xml
search/trunk/pom.xml
Log:
Upped the version number to beta2 in order to be able to install a new version locally.
Modified: search/trunk/build.xml
===================================================================
--- search/trunk/build.xml 2008-10-14 18:54:24 UTC (rev 15348)
+++ search/trunk/build.xml 2008-10-14 18:55:51 UTC (rev 15349)
@@ -18,7 +18,7 @@
<!-- Name of project and version, used to create filenames -->
<property name="Name" value="Hibernate Search"/>
<property name="name" value="hibernate-search"/>
- <property name="version" value="3.1.0.Beta1"/>
+ <property name="version" value="3.1.0.Beta2"/>
<property name="javadoc.packagenames" value="org.hibernate.search.*"/>
<property name="copy.test" value="true"/>
<property name="javac.source" value="1.5"/>
Modified: search/trunk/pom.xml
===================================================================
--- search/trunk/pom.xml 2008-10-14 18:54:24 UTC (rev 15348)
+++ search/trunk/pom.xml 2008-10-14 18:55:51 UTC (rev 15349)
@@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-search</artifactId>
- <version>3.1.0.Beta1</version>
+ <version>3.1.0.Beta2</version>
<description>Hibernate Search</description>
<dependencies>
<dependency>
@@ -25,7 +25,7 @@
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
- <version>2.4</version>
+ <version>2.4.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
@@ -86,4 +86,4 @@
<optional>true</optional>
</dependency>
</dependencies>
-</project>
\ No newline at end of file
+</project>
15 years, 7 months