From hibernate-commits at lists.jboss.org Fri Nov 27 12:30:33 2009
Content-Type: multipart/mixed; boundary="===============1525628302840330939=="
MIME-Version: 1.0
From: hibernate-commits at lists.jboss.org
To: hibernate-commits at lists.jboss.org
Subject: [hibernate-commits] Hibernate SVN: r18078 - in search/trunk/src:
main/java/org/hibernate/search/cfg and 2 other directories.
Date: Fri, 27 Nov 2009 12:30:32 -0500
Message-ID: <200911271730.nARHUWXL021741@svn01.web.mwc.hst.phx2.redhat.com>
--===============1525628302840330939==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Author: epbernard
Date: 2009-11-27 12:30:32 -0500 (Fri, 27 Nov 2009)
New Revision: 18078
Modified:
search/trunk/src/main/docbook/en-US/modules/mapping.xml
search/trunk/src/main/java/org/hibernate/search/cfg/EntityMapping.java
search/trunk/src/main/java/org/hibernate/search/cfg/FullTextFilterDefMap=
ping.java
search/trunk/src/main/java/org/hibernate/search/cfg/IndexedMapping.java
search/trunk/src/main/java/org/hibernate/search/cfg/ProvidedIdMapping.ja=
va
search/trunk/src/main/java/org/hibernate/search/cfg/SearchMapping.java
search/trunk/src/main/java/org/hibernate/search/cfg/TokenFilterDefMappin=
g.java
search/trunk/src/main/java/org/hibernate/search/impl/MappingModelMetadat=
aProvider.java
search/trunk/src/main/java/org/hibernate/search/impl/SearchFactoryImpl.j=
ava
search/trunk/src/test/java/org/hibernate/search/test/configuration/Progr=
ammaticMappingTest.java
Log:
HSEARCH-411 fix various issues on programmatic API
Modified: search/trunk/src/main/docbook/en-US/modules/mapping.xml
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- search/trunk/src/main/docbook/en-US/modules/mapping.xml 2009-11-27 16:5=
3:33 UTC (rev 18077)
+++ search/trunk/src/main/docbook/en-US/modules/mapping.xml 2009-11-27 17:3=
0:32 UTC (rev 18078)
@@ -1548,7 +1548,7 @@
SearchMapping object. This object is passed to
Hibernate Search via a property set to the Configuration
object. The property key is
- hibernate.search.mapping_model.
+ hibernate.search.mapping_model.
=
SearchMapping mapping =3D new SearchMapping();
[...]
@@ -1736,18 +1736,19 @@
=
- Defining fields for indexing
+ Defining full text filter definitions
=
- When defining fields for indexing using the programmatic API, =
call
- field() on the property(String
- propertyName, ElementType elementType) method. From
- field() you can specify the nam=
e,
- index, store,
- bridge and analyzer
- definitions.
+ The programmatic API provides easy mechanism for defining full
+ text filter definitions which is available via
+ @FullTextFilterDef and
+ @FullTextFilterDefs. Note that contrary to the
+ annotation equivalent, full text filter definitions are a global
+ construct and are not tied to an entity. The next example depicts the
+ creation of full text filter definition using the
+ fullTextFilterDef method.
=
- Indexing fields using programmatic API
+ Defining full text definition programmatically
=
SearchMapping mapping =3D new SearchMapping();
=
@@ -1755,26 +1756,30 @@
.analyzerDef( "en", StandardTokenizerFactory.class )
.filter( LowerCaseFilterFactory.class )
.filter( EnglishPorterFilterFactory.class )
- .entity(Address.class).indexed()
+ .fullTextFilterDef("security", SecurityFilterF=
actory.class)
+ .cache(FilterCacheModeType.INSTANCE_ONLY)
+ .entity(Address.class)
+ .indexed()
.property("addressId", ElementType.METHOD)
.documentId()
.name("id")
.property("street1", ElementType.METHOD)
- .field()
+ .field()
.analyzer("en")
.store(Store.YES)
- .index(Index.TOKENIZED) //no useful here as it's the defau=
lt
.field()
.name("address_data")
- .analyzer("en");
+ .analyzer("en")
+ .store(Store.NO);
=
cfg.getProperties().put( "hibernate.search.mapping_model", mapping );
=
- The above example of marking fields as indexable is equiva=
lent
- to defining fields using @Field as seen
+ The previous example can effectively been seen as annotati=
ng
+ your entity with @FullTextFilterDef like
below:
- Indexing fields using annotation
+ Using annotation to define full text filter
+ definition
=
@Entity
@Indexed
@@ -1786,39 +1791,42 @@
@TokenFilterDef(factory =3D EnglishPorterFilterFactory.class)
})
})
+(a)FullTextFilterDefs({
+ @FullTextFilterDef(name =3D "security", impl =3D SecurityFilterFactory.cl=
ass, cache =3D FilterCacheModeType.INSTANCE_ONLY)
+})
public class Address {
=
@Id
@GeneratedValue
@DocumentId(name=3D"id")
- private Long getAddressId() {...};
+ pubblic Long getAddressId() {...};
=
@Fields({
@Field(index=3DIndex.TOKENIZED, store=3DStore.YES, =
analyzer=3D@Analyzer(definition=3D"en")),
@Field(name=3D"address_data", analyzer=3D@Analyzer(definition=3D"en"=
))
})
- public String getAddress1() {...}
+ public String getAddress1() {...};
=
......
+ =
}
-
-
=
- Defining full text filter definitions
+ Defining fields for indexing
=
- The programmatic API provides easy mechanism for defining full
- text filter definitions which is available via
- @FullTextFilterDef and
- @FullTextFilterDefs. The next example depicts=
the
- creation of full text filter definition using the
- fullTextFilterDef method.
+ When defining fields for indexing using the programmatic API, =
call
+ field() on the property(String
+ propertyName, ElementType elementType) method. From
+ field() you can specify the nam=
e,
+ index, store,
+ bridge and analyzer
+ definitions.
=
- Defining full text definition programmatically
+ Indexing fields using programmatic API
=
SearchMapping mapping =3D new SearchMapping();
=
@@ -1826,29 +1834,26 @@
.analyzerDef( "en", StandardTokenizerFactory.class )
.filter( LowerCaseFilterFactory.class )
.filter( EnglishPorterFilterFactory.class )
- .entity(Address.class)
- .indexed()
- .fullTextFilterDef("security", SecurityFil=
terFactory.class)
- .cache(FilterCacheModeType.INSTANCE_ONLY)
+ .entity(Address.class).indexed()
.property("addressId", ElementType.METHOD)
.documentId()
.name("id")
.property("street1", ElementType.METHOD)
- .field()
+ .field()
.analyzer("en")
.store(Store.YES)
+ .index(Index.TOKENIZED) //no useful here as it's the defau=
lt
.field()
.name("address_data")
- .analyzer("en")
- .store(Store.NO);
+ .analyzer("en");
=
cfg.getProperties().put( "hibernate.search.mapping_model", mapping );
=
- The previous example can effectively been seen as annotati=
ng
- your entity with @FullTextFilterDef like below:
+ The above example of marking fields as indexable is equiva=
lent
+ to defining fields using @Field as seen
+ below:
- Using annotation to define full text filter
- definition
+ Indexing fields using annotation
=
@Entity
@Indexed
@@ -1860,26 +1865,24 @@
@TokenFilterDef(factory =3D EnglishPorterFilterFactory.class)
})
})
-(a)FullTextFilterDefs({
- @FullTextFilterDef(name =3D "security", impl =3D SecurityFilterFactory.cl=
ass, cache =3D FilterCacheModeType.INSTANCE_ONLY)
-})
public class Address {
=
@Id
@GeneratedValue
@DocumentId(name=3D"id")
- pubblic Long getAddressId() {...};
+ private Long getAddressId() {...};
=
@Fields({
@Field(index=3DIndex.TOKENIZED, store=3DStore.YES, =
analyzer=3D@Analyzer(definition=3D"en")),
@Field(name=3D"address_data", analyzer=3D@Analyzer(definition=3D"en"=
))
})
- public String getAddress1() {...};
+ public String getAddress1() {...}
=
......
- =
}
+
+
=
Modified: search/trunk/src/main/java/org/hibernate/search/cfg/EntityMapping=
.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- search/trunk/src/main/java/org/hibernate/search/cfg/EntityMapping.java =
2009-11-27 16:53:33 UTC (rev 18077)
+++ search/trunk/src/main/java/org/hibernate/search/cfg/EntityMapping.java =
2009-11-27 17:30:32 UTC (rev 18078)
@@ -70,7 +70,7 @@
=
=
public FullTextFilterDefMapping fullTextFilterDef(String name, Class> i=
mpl) {
- return new FullTextFilterDefMapping(mapping, entity, name, impl);
+ return new FullTextFilterDefMapping(mapping,name, impl);
}
=
public PropertyMapping property(String name, ElementType type) {
Modified: search/trunk/src/main/java/org/hibernate/search/cfg/FullTextFilte=
rDefMapping.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- search/trunk/src/main/java/org/hibernate/search/cfg/FullTextFilterDefMa=
pping.java 2009-11-27 16:53:33 UTC (rev 18077)
+++ search/trunk/src/main/java/org/hibernate/search/cfg/FullTextFilterDefMa=
pping.java 2009-11-27 17:30:32 UTC (rev 18078)
@@ -39,15 +39,13 @@
=
private final SearchMapping mapping;
private final Map fullTextFilterDef;
- private final EntityDescriptor entity;
=
- public FullTextFilterDefMapping(SearchMapping mapping, EntityDescriptor e=
ntity, String name, Class> impl) {
+ public FullTextFilterDefMapping(SearchMapping mapping, String name, Class=
> impl) {
this.mapping =3D mapping;
- this.entity =3D entity;
this.fullTextFilterDef =3Dnew HashMap();
this.fullTextFilterDef.put("name", name);
this.fullTextFilterDef.put("impl", impl);
- entity.addFulltextFilterDef(fullTextFilterDef);
+ mapping.addFulltextFilterDef(fullTextFilterDef);
}
=
/**
@@ -61,13 +59,9 @@
}
=
public FullTextFilterDefMapping fullTextFilterDef(String name, Class> i=
mpl) {
- return new FullTextFilterDefMapping(mapping,entity,name, impl);
+ return new FullTextFilterDefMapping(mapping, name, impl);
}
=
- public PropertyMapping property(String name, ElementType type) {
- return new PropertyMapping(name, type, entity, mapping);
- }
-
public AnalyzerDefMapping analyzerDef(String name, Class extends Tokeni=
zerFactory> tokenizerFactory) {
return new AnalyzerDefMapping(name, tokenizerFactory, mapping);
}
@@ -75,10 +69,4 @@
public EntityMapping entity(Class> entityType) {
return new EntityMapping(entityType, mapping);
}
-
- public ProvidedIdMapping providedId() {
- return new ProvidedIdMapping(mapping,entity);
- }
-
- =
}
Modified: search/trunk/src/main/java/org/hibernate/search/cfg/IndexedMappin=
g.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- search/trunk/src/main/java/org/hibernate/search/cfg/IndexedMapping.java=
2009-11-27 16:53:33 UTC (rev 18077)
+++ search/trunk/src/main/java/org/hibernate/search/cfg/IndexedMapping.java=
2009-11-27 17:30:32 UTC (rev 18078)
@@ -74,7 +74,7 @@
=
=
public FullTextFilterDefMapping fullTextFilterDef(String name, Class> i=
mpl) {
- return new FullTextFilterDefMapping(mapping, entity, name, impl);
+ return new FullTextFilterDefMapping(mapping, name, impl);
}
=
public PropertyMapping property(String name, ElementType type) {
Modified: search/trunk/src/main/java/org/hibernate/search/cfg/ProvidedIdMap=
ping.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- search/trunk/src/main/java/org/hibernate/search/cfg/ProvidedIdMapping.j=
ava 2009-11-27 16:53:33 UTC (rev 18077)
+++ search/trunk/src/main/java/org/hibernate/search/cfg/ProvidedIdMapping.j=
ava 2009-11-27 17:30:32 UTC (rev 18078)
@@ -53,7 +53,7 @@
}
=
public FullTextFilterDefMapping fullTextFilterDef(String name, Class> i=
mpl) {
- return new FullTextFilterDefMapping(searchMapping, entity, name, impl);
+ return new FullTextFilterDefMapping(searchMapping, name, impl);
}
=
public PropertyMapping property(String name, ElementType type) {
Modified: search/trunk/src/main/java/org/hibernate/search/cfg/SearchMapping=
.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- search/trunk/src/main/java/org/hibernate/search/cfg/SearchMapping.java =
2009-11-27 16:53:33 UTC (rev 18077)
+++ search/trunk/src/main/java/org/hibernate/search/cfg/SearchMapping.java =
2009-11-27 17:30:32 UTC (rev 18078)
@@ -38,12 +38,17 @@
*/
public class SearchMapping {
private Set