All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.hibernate.search.backend.BackendFactory Maven / Gradle / Ivy

There is a newer version: 5.11.12.Final
Show newest version
/*
 * Hibernate Search, full-text search for your domain model
 *
 * License: GNU Lesser General Public License (LGPL), version 2.1 or later
 * See the lgpl.txt file in the root directory or .
 */
package org.hibernate.search.backend;

import java.util.Properties;

import org.hibernate.search.backend.spi.Backend;
import org.hibernate.search.backend.spi.BackendQueueProcessor;
import org.hibernate.search.cfg.Environment;
import org.hibernate.search.indexes.impl.IndexManagerGroupHolder;
import org.hibernate.search.indexes.impl.IndexManagerHolder;
import org.hibernate.search.indexes.spi.IndexManager;
import org.hibernate.search.spi.WorkerBuildContext;

/**
 * Factory to instantiate the {@link BackendQueueProcessor} implementations.
 * 

* Intended to be used by {@link BackendQueueProcessor} implementations looking to delegate * to a different implementation. * * @author Sanne Grinovero (C) 2011 Red Hat Inc. * @author Hardy Ferentschik */ public final class BackendFactory { private BackendFactory() { //not allowed } /** * @param indexManager the index manager * @param buildContext context giving access to required meta data * @param properties all configuration properties * @return A new {@link BackendQueueProcessor} for the given index manager. */ public static BackendQueueProcessor createBackend(IndexManager indexManager, WorkerBuildContext buildContext, Properties properties) { IndexManagerGroupHolder groupHolder = getGroupHolder( indexManager, buildContext ); Backend backend = groupHolder.getOrCreateBackend( indexManager.getIndexName(), properties, buildContext ); return backend.createQueueProcessor( indexManager, buildContext ); } /** * @param backendName the name of the backend to be created * @param indexManager the index manager * @param buildContext context giving access to required meta data * @param properties all configuration properties * @return A new {@link BackendQueueProcessor} for the given index manager. */ public static BackendQueueProcessor createBackend(String backendName, IndexManager indexManager, WorkerBuildContext buildContext, Properties properties) { IndexManagerGroupHolder groupHolder = getGroupHolder( indexManager, buildContext ); Backend backend = groupHolder.getOrCreateBackend( backendName, indexManager.getIndexName(), properties, buildContext ); return backend.createQueueProcessor( indexManager, buildContext ); } private static IndexManagerGroupHolder getGroupHolder(IndexManager indexManager, WorkerBuildContext buildContext) { IndexManagerHolder indexManagerHolder = buildContext.getAllIndexesManager(); return indexManagerHolder.getGroupHolderByIndexManager( indexManager ); } /** * @param properties the configuration to parse * * @return true if the configuration uses sync indexing */ public static boolean isConfiguredAsSync(Properties properties) { // default to sync if none defined return !"async".equalsIgnoreCase( properties.getProperty( Environment.WORKER_EXECUTION ) ); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy