[hibernate-issues] [JIRA] (HSEARCH-3855) Improve formatting of logged indexing processors and reindexing resolvers

Yoann Rodière (JIRA) jira at hibernate.atlassian.net
Thu Mar 5 04:36:22 EST 2020


Yoann Rodière ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3A58fa1ced-171a-4c00-97e8-5d70d442cc4b ) *created* an issue

Hibernate Search ( https://hibernate.atlassian.net/browse/HSEARCH?atlOrigin=eyJpIjoiZWY0MDU4NzA5OTc4NGRiOWI4ZTEyNmU4MjJlOTZhM2MiLCJwIjoiaiJ9 ) / Task ( https://hibernate.atlassian.net/browse/HSEARCH-3855?atlOrigin=eyJpIjoiZWY0MDU4NzA5OTc4NGRiOWI4ZTEyNmU4MjJlOTZhM2MiLCJwIjoiaiJ9 ) HSEARCH-3855 ( https://hibernate.atlassian.net/browse/HSEARCH-3855?atlOrigin=eyJpIjoiZWY0MDU4NzA5OTc4NGRiOWI4ZTEyNmU4MjJlOTZhM2MiLCJwIjoiaiJ9 ) Improve formatting of logged indexing processors and reindexing resolvers ( https://hibernate.atlassian.net/browse/HSEARCH-3855?atlOrigin=eyJpIjoiZWY0MDU4NzA5OTc4NGRiOWI4ZTEyNmU4MjJlOTZhM2MiLCJwIjoiaiJ9 )

Issue Type: Task Assignee: Unassigned Created: 05/Mar/2020 01:36 AM Fix Versions: 6.0.0.Beta-backlog-low-priority Priority: Minor Reporter: Yoann Rodière ( https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3A58fa1ced-171a-4c00-97e8-5d70d442cc4b )

There are multiple problems:

* The format, inspired from JSON, is not very human-readable. Something similar to YAML would be better.
* The node types are mentioned in a "class" attribute, but wouldn't just prepending them before the "{" be better? E.g. "myType { ... }

" instead of "

{class = myType, ...}

"

* The node types, in the "class" attributes, are very technical and verbose, such as PojoIndexingProcessorPropertyNode (just "property" would be enough).
* Some types included in the tree don't have a toString() method: MappedIndexManagerImpl , RoutingKeyProvider$$Lambda$578/1859227008 , SimpleBeanHolder , PropertyIdentifierMapping , ...
* Some types included in the tree are much too verbose in their toString() method. For example LuceneIndexSchemaFieldNode includes the whole parent while it should only include the parent path, and includes the various predicate/sort/projection factories which are not necessary (and they don't have a toString() method anyway).
* And maybe more: let's have a closer look.

Example:

10:25:50,474 (main) DEBUG PojoIndexedTypeManagerBuilder:140 - HSEARCH700017: Created POJO indexed type manager: {
	typeIdentifier=org.hibernate.search.integrationtest.showcase.library.model.Library
	indexManager=org.hibernate.search.engine.mapper.mapping.impl.MappedIndexManagerImpl at 77f4038c
	identifierMapping=org.hibernate.search.mapper.pojo.bridge.runtime.impl.PropertyIdentifierMapping at 49a06087
	routingKeyProvider=org.hibernate.search.mapper.pojo.bridge.runtime.impl.RoutingKeyProvider$$Lambda$578/1859227008 at 6bce4140
	processor={
		class=PojoIndexingProcessorTypeNode
		parentIndexObjectReferences=[]
		bridges=[
			org.hibernate.search.mapper.pojo.bridge.builtin.spatial.impl.GeoPointBridge at 2c15034f
		]
		propertyNodes=[
			{
				class=PojoIndexingProcessorPropertyNode
				handle=MethodHandleValueReadHandle[private java.lang.Integer org.hibernate.search.integrationtest.showcase.library.model.Library.collectionSize]
				bridges=[
				]
				nestedNodes=[
					{
						class=PojoIndexingProcessorValueBridgeNode
						bridge=org.hibernate.search.engine.environment.bean.SimpleBeanHolder at 43b4ec0c
						indexFieldReference=LuceneIndexFieldReference[schemaNode=LuceneIndexSchemaFieldNode[parent=LuceneIndexSchemaObjectNode[absolutePath=null, storage=null], relativeFieldName=collectionSize, codec=org.hibernate.search.backend.lucene.types.codec.impl.LuceneIntegerFieldCodec at 148b6f95, predicateBuilderFactory=org.hibernate.search.backend.lucene.types.predicate.impl.LuceneNumericFieldPredicateBuilderFactory at 5ee581db, sortContributor=org.hibernate.search.backend.lucene.types.sort.impl.LuceneNumericFieldSortBuilderFactory at 5a6efe33, projectionBuilderFactory=org.hibernate.search.backend.lucene.types.projection.impl.LuceneStandardFieldProjectionBuilderFactory at 3e5ebdfe]]
					}
				]
			}
			{
				class=PojoIndexingProcessorPropertyNode
				handle=MethodHandleValueReadHandle[private java.lang.String org.hibernate.search.integrationtest.showcase.library.model.Library.name]
				bridges=[
				]
				nestedNodes=[
					{
						class=PojoIndexingProcessorValueBridgeNode
						bridge=org.hibernate.search.engine.environment.bean.SimpleBeanHolder at 71668a67
						indexFieldReference=LuceneIndexFieldReference[schemaNode=LuceneIndexSchemaFieldNode[parent=LuceneIndexSchemaObjectNode[absolutePath=null, storage=null], relativeFieldName=name, codec=org.hibernate.search.backend.lucene.types.codec.impl.LuceneStringFieldCodec at 3ff26c9, predicateBuilderFactory=org.hibernate.search.backend.lucene.types.predicate.impl.LuceneTextFieldPredicateBuilderFactory at 2ecdcfe3, sortContributor=org.hibernate.search.backend.lucene.types.sort.impl.LuceneTextFieldSortBuilderFactory at 65b73689, projectionBuilderFactory=org.hibernate.search.backend.lucene.types.projection.impl.LuceneStandardFieldProjectionBuilderFactory at 2047adea]]
					}
					{
						class=PojoIndexingProcessorValueBridgeNode
						bridge=org.hibernate.search.engine.environment.bean.SimpleBeanHolder at 5af40e45
						indexFieldReference=LuceneIndexFieldReference[schemaNode=LuceneIndexSchemaFieldNode[parent=LuceneIndexSchemaObjectNode[absolutePath=null, storage=null], relativeFieldName=name_sort, codec=org.hibernate.search.backend.lucene.types.codec.impl.LuceneStringFieldCodec at 1a06602f, predicateBuilderFactory=org.hibernate.search.backend.lucene.types.predicate.impl.LuceneTextFieldPredicateBuilderFactory at 46591e98, sortContributor=org.hibernate.search.backend.lucene.types.sort.impl.LuceneTextFieldSortBuilderFactory at 5b6cc344, projectionBuilderFactory=org.hibernate.search.backend.lucene.types.projection.impl.LuceneStandardFieldProjectionBuilderFactory at 2110684a]]
					}
				]
			}
			{
				class=PojoIndexingProcessorPropertyNode
				handle=MethodHandleValueReadHandle[private java.util.List org.hibernate.search.integrationtest.showcase.library.model.Library.services]
				bridges=[
				]
				nestedNodes=[
					{
						class=PojoIndexingProcessorContainerElementNode
						extractor=org.hibernate.search.mapper.pojo.extractor.builtin.impl.CollectionElementExtractor at 83e635f
						nestedNodes=[
							{
								class=PojoIndexingProcessorValueBridgeNode
								bridge=org.hibernate.search.engine.environment.bean.SimpleBeanHolder at 61d011e
								indexFieldReference=LuceneIndexFieldReference[schemaNode=LuceneIndexSchemaFieldNode[parent=LuceneIndexSchemaObjectNode[absolutePath=null, storage=null], relativeFieldName=services, codec=org.hibernate.search.backend.lucene.types.codec.impl.LuceneStringFieldCodec at 3b56947a, predicateBuilderFactory=org.hibernate.search.backend.lucene.types.predicate.impl.LuceneTextFieldPredicateBuilderFactory at 1926f962, sortContributor=org.hibernate.search.backend.lucene.types.sort.impl.LuceneTextFieldSortBuilderFactory at 62794582, projectionBuilderFactory=org.hibernate.search.backend.lucene.types.projection.impl.LuceneStandardFieldProjectionBuilderFactory at c82ad22]]
							}
						]
					}
				]
			}
		]
	}
	reindexingResolver={
		class=DefaultPojoImplicitReindexingResolver
		dirtyPathsTriggeringSelfReindexing=StringSetPojoPathFilter[[latitude, longitude, collectionSize, name, services, org.hibernate.search.integrationtest.showcase.library.model.Library.services]]
		containingEntitiesResolverRoot={
			class=PojoImplicitReindexingResolverDirtinessFilterNode
			dirtyPathFilter=StringSetPojoPathFilter[[latitude, longitude, services, org.hibernate.search.integrationtest.showcase.library.model.Library.services]]
			delegate={
				class=PojoImplicitReindexingResolverOriginalTypeNode
				nestedNodes=[
					{
						class=PojoImplicitReindexingResolverPropertyNode
						handle=MethodHandleValueReadHandle[private java.util.List org.hibernate.search.integrationtest.showcase.library.model.Library.copies]
						nestedNodes=[
							{
								class=PojoImplicitReindexingResolverContainerElementNode
								extractor=org.hibernate.search.mapper.pojo.extractor.builtin.impl.CollectionElementExtractor at 3f80d8c
								nestedNodes=[
									{
										class=PojoImplicitReindexingResolverCastedTypeNode
										caster=JavaClassPojoCaster[BookCopy]
										nestedNodes=[
											{
												class=PojoImplicitReindexingResolverPropertyNode
												handle=MethodHandleValueReadHandle[private org.hibernate.search.integrationtest.showcase.library.model.Document org.hibernate.search.integrationtest.showcase.library.model.DocumentCopy.document]
												nestedNodes=[
													{
														class=PojoImplicitReindexingResolverOriginalTypeNode
														nestedNodes=[
															{
																class=PojoImplicitReindexingResolverMarkingNode
															}
														]
													}
												]
											}
										]
									}
									{
										class=PojoImplicitReindexingResolverCastedTypeNode
										caster=JavaClassPojoCaster[VideoCopy]
										nestedNodes=[
											{
												class=PojoImplicitReindexingResolverPropertyNode
												handle=MethodHandleValueReadHandle[private org.hibernate.search.integrationtest.showcase.library.model.Document org.hibernate.search.integrationtest.showcase.library.model.DocumentCopy.document]
												nestedNodes=[
													{
														class=PojoImplicitReindexingResolverOriginalTypeNode
														nestedNodes=[
															{
																class=PojoImplicitReindexingResolverMarkingNode
															}
														]
													}
												]
											}
										]
									}
								]
							}
						]
					}
				]
			}
		}
	}
}

( https://hibernate.atlassian.net/browse/HSEARCH-3855#add-comment?atlOrigin=eyJpIjoiZWY0MDU4NzA5OTc4NGRiOWI4ZTEyNmU4MjJlOTZhM2MiLCJwIjoiaiJ9 ) Add Comment ( https://hibernate.atlassian.net/browse/HSEARCH-3855#add-comment?atlOrigin=eyJpIjoiZWY0MDU4NzA5OTc4NGRiOWI4ZTEyNmU4MjJlOTZhM2MiLCJwIjoiaiJ9 )

Get Jira notifications on your phone! Download the Jira Cloud app for Android ( https://play.google.com/store/apps/details?id=com.atlassian.android.jira.core&referrer=utm_source%3DNotificationLink%26utm_medium%3DEmail ) or iOS ( https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=EmailNotificationLink&mt=8 ) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100121- sha1:6148daa )
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/hibernate-issues/attachments/20200305/b432bf92/attachment.html 


More information about the hibernate-issues mailing list