Shinsuke Sugaya 10 years ago
parent
commit
c7e9305bf5

+ 6 - 0
src/main/java/org/codelibs/fess/Constants.java

@@ -309,4 +309,10 @@ public class Constants extends CoreLibConstants {
 
 
     public static final int DEFAULT_START_COUNT = 0;
     public static final int DEFAULT_START_COUNT = 0;
 
 
+    public static final String PROCESS_TYPE_CRAWLING = "C";
+
+    public static final String PROCESS_TYPE_DISPLAYING = "D";
+
+    public static final String PROCESS_TYPE_BOTH = "B";
+
 }
 }

+ 427 - 1
src/main/java/org/codelibs/fess/client/FessEsClient.java

@@ -25,7 +25,12 @@ import org.codelibs.fess.entity.SearchQuery.SortField;
 import org.codelibs.fess.solr.FessSolrQueryException;
 import org.codelibs.fess.solr.FessSolrQueryException;
 import org.codelibs.fess.util.ComponentUtil;
 import org.codelibs.fess.util.ComponentUtil;
 import org.elasticsearch.ElasticsearchException;
 import org.elasticsearch.ElasticsearchException;
+import org.elasticsearch.action.Action;
+import org.elasticsearch.action.ActionFuture;
 import org.elasticsearch.action.ActionListener;
 import org.elasticsearch.action.ActionListener;
+import org.elasticsearch.action.ActionRequest;
+import org.elasticsearch.action.ActionRequestBuilder;
+import org.elasticsearch.action.ActionResponse;
 import org.elasticsearch.action.ShardOperationFailedException;
 import org.elasticsearch.action.ShardOperationFailedException;
 import org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse;
 import org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse;
 import org.elasticsearch.action.admin.indices.create.CreateIndexResponse;
 import org.elasticsearch.action.admin.indices.create.CreateIndexResponse;
@@ -34,13 +39,78 @@ import org.elasticsearch.action.admin.indices.mapping.get.GetMappingsResponse;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
 import org.elasticsearch.action.admin.indices.optimize.OptimizeResponse;
 import org.elasticsearch.action.admin.indices.optimize.OptimizeResponse;
 import org.elasticsearch.action.admin.indices.refresh.RefreshResponse;
 import org.elasticsearch.action.admin.indices.refresh.RefreshResponse;
+import org.elasticsearch.action.bulk.BulkRequest;
 import org.elasticsearch.action.bulk.BulkRequestBuilder;
 import org.elasticsearch.action.bulk.BulkRequestBuilder;
 import org.elasticsearch.action.bulk.BulkResponse;
 import org.elasticsearch.action.bulk.BulkResponse;
+import org.elasticsearch.action.count.CountRequest;
+import org.elasticsearch.action.count.CountRequestBuilder;
+import org.elasticsearch.action.count.CountResponse;
+import org.elasticsearch.action.delete.DeleteRequest;
+import org.elasticsearch.action.delete.DeleteRequestBuilder;
 import org.elasticsearch.action.delete.DeleteResponse;
 import org.elasticsearch.action.delete.DeleteResponse;
+import org.elasticsearch.action.deletebyquery.DeleteByQueryRequest;
+import org.elasticsearch.action.deletebyquery.DeleteByQueryRequestBuilder;
+import org.elasticsearch.action.deletebyquery.DeleteByQueryResponse;
+import org.elasticsearch.action.exists.ExistsRequest;
+import org.elasticsearch.action.exists.ExistsRequestBuilder;
+import org.elasticsearch.action.exists.ExistsResponse;
+import org.elasticsearch.action.explain.ExplainRequest;
+import org.elasticsearch.action.explain.ExplainRequestBuilder;
+import org.elasticsearch.action.explain.ExplainResponse;
+import org.elasticsearch.action.fieldstats.FieldStatsRequest;
+import org.elasticsearch.action.fieldstats.FieldStatsRequestBuilder;
+import org.elasticsearch.action.fieldstats.FieldStatsResponse;
+import org.elasticsearch.action.get.GetRequest;
+import org.elasticsearch.action.get.GetRequestBuilder;
+import org.elasticsearch.action.get.GetResponse;
+import org.elasticsearch.action.get.MultiGetRequest;
+import org.elasticsearch.action.get.MultiGetRequestBuilder;
+import org.elasticsearch.action.get.MultiGetResponse;
+import org.elasticsearch.action.index.IndexRequest;
 import org.elasticsearch.action.index.IndexRequest.OpType;
 import org.elasticsearch.action.index.IndexRequest.OpType;
+import org.elasticsearch.action.index.IndexRequestBuilder;
 import org.elasticsearch.action.index.IndexResponse;
 import org.elasticsearch.action.index.IndexResponse;
+import org.elasticsearch.action.indexedscripts.delete.DeleteIndexedScriptRequest;
+import org.elasticsearch.action.indexedscripts.delete.DeleteIndexedScriptRequestBuilder;
+import org.elasticsearch.action.indexedscripts.delete.DeleteIndexedScriptResponse;
+import org.elasticsearch.action.indexedscripts.get.GetIndexedScriptRequest;
+import org.elasticsearch.action.indexedscripts.get.GetIndexedScriptRequestBuilder;
+import org.elasticsearch.action.indexedscripts.get.GetIndexedScriptResponse;
+import org.elasticsearch.action.indexedscripts.put.PutIndexedScriptRequest;
+import org.elasticsearch.action.indexedscripts.put.PutIndexedScriptRequestBuilder;
+import org.elasticsearch.action.indexedscripts.put.PutIndexedScriptResponse;
+import org.elasticsearch.action.mlt.MoreLikeThisRequest;
+import org.elasticsearch.action.mlt.MoreLikeThisRequestBuilder;
+import org.elasticsearch.action.percolate.MultiPercolateRequest;
+import org.elasticsearch.action.percolate.MultiPercolateRequestBuilder;
+import org.elasticsearch.action.percolate.MultiPercolateResponse;
+import org.elasticsearch.action.percolate.PercolateRequest;
+import org.elasticsearch.action.percolate.PercolateRequestBuilder;
+import org.elasticsearch.action.percolate.PercolateResponse;
+import org.elasticsearch.action.search.ClearScrollRequest;
+import org.elasticsearch.action.search.ClearScrollRequestBuilder;
+import org.elasticsearch.action.search.ClearScrollResponse;
+import org.elasticsearch.action.search.MultiSearchRequest;
+import org.elasticsearch.action.search.MultiSearchRequestBuilder;
+import org.elasticsearch.action.search.MultiSearchResponse;
+import org.elasticsearch.action.search.SearchRequest;
 import org.elasticsearch.action.search.SearchRequestBuilder;
 import org.elasticsearch.action.search.SearchRequestBuilder;
 import org.elasticsearch.action.search.SearchResponse;
 import org.elasticsearch.action.search.SearchResponse;
+import org.elasticsearch.action.search.SearchScrollRequest;
+import org.elasticsearch.action.search.SearchScrollRequestBuilder;
+import org.elasticsearch.action.suggest.SuggestRequest;
+import org.elasticsearch.action.suggest.SuggestRequestBuilder;
+import org.elasticsearch.action.suggest.SuggestResponse;
+import org.elasticsearch.action.termvector.MultiTermVectorsRequest;
+import org.elasticsearch.action.termvector.MultiTermVectorsRequestBuilder;
+import org.elasticsearch.action.termvector.MultiTermVectorsResponse;
+import org.elasticsearch.action.termvector.TermVectorRequest;
+import org.elasticsearch.action.termvector.TermVectorRequestBuilder;
+import org.elasticsearch.action.termvector.TermVectorResponse;
+import org.elasticsearch.action.update.UpdateRequest;
+import org.elasticsearch.action.update.UpdateRequestBuilder;
+import org.elasticsearch.action.update.UpdateResponse;
+import org.elasticsearch.client.AdminClient;
 import org.elasticsearch.client.Client;
 import org.elasticsearch.client.Client;
 import org.elasticsearch.client.transport.TransportClient;
 import org.elasticsearch.client.transport.TransportClient;
 import org.elasticsearch.cluster.metadata.MappingMetaData;
 import org.elasticsearch.cluster.metadata.MappingMetaData;
@@ -64,6 +134,7 @@ import org.elasticsearch.search.aggregations.bucket.terms.TermsBuilder;
 import org.elasticsearch.search.sort.FieldSortBuilder;
 import org.elasticsearch.search.sort.FieldSortBuilder;
 import org.elasticsearch.search.sort.SortBuilders;
 import org.elasticsearch.search.sort.SortBuilders;
 import org.elasticsearch.search.sort.SortOrder;
 import org.elasticsearch.search.sort.SortOrder;
+import org.elasticsearch.threadpool.ThreadPool;
 import org.seasar.framework.container.annotation.tiger.DestroyMethod;
 import org.seasar.framework.container.annotation.tiger.DestroyMethod;
 import org.seasar.framework.container.annotation.tiger.InitMethod;
 import org.seasar.framework.container.annotation.tiger.InitMethod;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
@@ -71,7 +142,7 @@ import org.slf4j.LoggerFactory;
 
 
 import com.google.common.io.BaseEncoding;
 import com.google.common.io.BaseEncoding;
 
 
-public class FessEsClient {
+public class FessEsClient implements Client {
     private static final Logger logger = LoggerFactory.getLogger(FessEsClient.class);
     private static final Logger logger = LoggerFactory.getLogger(FessEsClient.class);
 
 
     protected ElasticsearchClusterRunner runner;
     protected ElasticsearchClusterRunner runner;
@@ -640,4 +711,359 @@ public class FessEsClient {
         T build(SearchResponse response, SearchHit hit);
         T build(SearchResponse response, SearchHit hit);
     }
     }
 
 
+    //
+    // Elasticsearch Client
+    //
+
+    public <Request extends ActionRequest, Response extends ActionResponse, RequestBuilder extends ActionRequestBuilder<Request, Response, RequestBuilder, Client>> ActionFuture<Response> execute(
+            Action<Request, Response, RequestBuilder, Client> action, Request request) {
+        return client.execute(action, request);
+    }
+
+    public <Request extends ActionRequest, Response extends ActionResponse, RequestBuilder extends ActionRequestBuilder<Request, Response, RequestBuilder, Client>> void execute(
+            Action<Request, Response, RequestBuilder, Client> action, Request request, ActionListener<Response> listener) {
+        client.execute(action, request, listener);
+    }
+
+    public <Request extends ActionRequest, Response extends ActionResponse, RequestBuilder extends ActionRequestBuilder<Request, Response, RequestBuilder, Client>> RequestBuilder prepareExecute(
+            Action<Request, Response, RequestBuilder, Client> action) {
+        return client.prepareExecute(action);
+    }
+
+    public ThreadPool threadPool() {
+        return client.threadPool();
+    }
+
+    public AdminClient admin() {
+        return client.admin();
+    }
+
+    public ActionFuture<IndexResponse> index(IndexRequest request) {
+        return client.index(request);
+    }
+
+    public void index(IndexRequest request, ActionListener<IndexResponse> listener) {
+        client.index(request, listener);
+    }
+
+    public IndexRequestBuilder prepareIndex() {
+        return client.prepareIndex();
+    }
+
+    public ActionFuture<UpdateResponse> update(UpdateRequest request) {
+        return client.update(request);
+    }
+
+    public void update(UpdateRequest request, ActionListener<UpdateResponse> listener) {
+        client.update(request, listener);
+    }
+
+    public UpdateRequestBuilder prepareUpdate() {
+        return client.prepareUpdate();
+    }
+
+    public UpdateRequestBuilder prepareUpdate(String index, String type, String id) {
+        return client.prepareUpdate(index, type, id);
+    }
+
+    public IndexRequestBuilder prepareIndex(String index, String type) {
+        return client.prepareIndex(index, type);
+    }
+
+    public IndexRequestBuilder prepareIndex(String index, String type, String id) {
+        return client.prepareIndex(index, type, id);
+    }
+
+    public ActionFuture<DeleteResponse> delete(DeleteRequest request) {
+        return client.delete(request);
+    }
+
+    public void delete(DeleteRequest request, ActionListener<DeleteResponse> listener) {
+        client.delete(request, listener);
+    }
+
+    public DeleteRequestBuilder prepareDelete() {
+        return client.prepareDelete();
+    }
+
+    public DeleteRequestBuilder prepareDelete(String index, String type, String id) {
+        return client.prepareDelete(index, type, id);
+    }
+
+    public ActionFuture<BulkResponse> bulk(BulkRequest request) {
+        return client.bulk(request);
+    }
+
+    public void bulk(BulkRequest request, ActionListener<BulkResponse> listener) {
+        client.bulk(request, listener);
+    }
+
+    public BulkRequestBuilder prepareBulk() {
+        return client.prepareBulk();
+    }
+
+    public ActionFuture<DeleteByQueryResponse> deleteByQuery(DeleteByQueryRequest request) {
+        return client.deleteByQuery(request);
+    }
+
+    public void deleteByQuery(DeleteByQueryRequest request, ActionListener<DeleteByQueryResponse> listener) {
+        client.deleteByQuery(request, listener);
+    }
+
+    public DeleteByQueryRequestBuilder prepareDeleteByQuery(String... indices) {
+        return client.prepareDeleteByQuery(indices);
+    }
+
+    public ActionFuture<GetResponse> get(GetRequest request) {
+        return client.get(request);
+    }
+
+    public void get(GetRequest request, ActionListener<GetResponse> listener) {
+        client.get(request, listener);
+    }
+
+    public GetRequestBuilder prepareGet() {
+        return client.prepareGet();
+    }
+
+    public GetRequestBuilder prepareGet(String index, String type, String id) {
+        return client.prepareGet(index, type, id);
+    }
+
+    public PutIndexedScriptRequestBuilder preparePutIndexedScript() {
+        return client.preparePutIndexedScript();
+    }
+
+    public PutIndexedScriptRequestBuilder preparePutIndexedScript(String scriptLang, String id, String source) {
+        return client.preparePutIndexedScript(scriptLang, id, source);
+    }
+
+    public void deleteIndexedScript(DeleteIndexedScriptRequest request, ActionListener<DeleteIndexedScriptResponse> listener) {
+        client.deleteIndexedScript(request, listener);
+    }
+
+    public ActionFuture<DeleteIndexedScriptResponse> deleteIndexedScript(DeleteIndexedScriptRequest request) {
+        return client.deleteIndexedScript(request);
+    }
+
+    public DeleteIndexedScriptRequestBuilder prepareDeleteIndexedScript() {
+        return client.prepareDeleteIndexedScript();
+    }
+
+    public DeleteIndexedScriptRequestBuilder prepareDeleteIndexedScript(String scriptLang, String id) {
+        return client.prepareDeleteIndexedScript(scriptLang, id);
+    }
+
+    public void putIndexedScript(PutIndexedScriptRequest request, ActionListener<PutIndexedScriptResponse> listener) {
+        client.putIndexedScript(request, listener);
+    }
+
+    public ActionFuture<PutIndexedScriptResponse> putIndexedScript(PutIndexedScriptRequest request) {
+        return client.putIndexedScript(request);
+    }
+
+    public GetIndexedScriptRequestBuilder prepareGetIndexedScript() {
+        return client.prepareGetIndexedScript();
+    }
+
+    public GetIndexedScriptRequestBuilder prepareGetIndexedScript(String scriptLang, String id) {
+        return client.prepareGetIndexedScript(scriptLang, id);
+    }
+
+    public void getIndexedScript(GetIndexedScriptRequest request, ActionListener<GetIndexedScriptResponse> listener) {
+        client.getIndexedScript(request, listener);
+    }
+
+    public ActionFuture<GetIndexedScriptResponse> getIndexedScript(GetIndexedScriptRequest request) {
+        return client.getIndexedScript(request);
+    }
+
+    public ActionFuture<MultiGetResponse> multiGet(MultiGetRequest request) {
+        return client.multiGet(request);
+    }
+
+    public void multiGet(MultiGetRequest request, ActionListener<MultiGetResponse> listener) {
+        client.multiGet(request, listener);
+    }
+
+    public MultiGetRequestBuilder prepareMultiGet() {
+        return client.prepareMultiGet();
+    }
+
+    public ActionFuture<CountResponse> count(CountRequest request) {
+        return client.count(request);
+    }
+
+    public void count(CountRequest request, ActionListener<CountResponse> listener) {
+        client.count(request, listener);
+    }
+
+    public CountRequestBuilder prepareCount(String... indices) {
+        return client.prepareCount(indices);
+    }
+
+    public ActionFuture<ExistsResponse> exists(ExistsRequest request) {
+        return client.exists(request);
+    }
+
+    public void exists(ExistsRequest request, ActionListener<ExistsResponse> listener) {
+        client.exists(request, listener);
+    }
+
+    public ExistsRequestBuilder prepareExists(String... indices) {
+        return client.prepareExists(indices);
+    }
+
+    public ActionFuture<SuggestResponse> suggest(SuggestRequest request) {
+        return client.suggest(request);
+    }
+
+    public void suggest(SuggestRequest request, ActionListener<SuggestResponse> listener) {
+        client.suggest(request, listener);
+    }
+
+    public SuggestRequestBuilder prepareSuggest(String... indices) {
+        return client.prepareSuggest(indices);
+    }
+
+    public ActionFuture<SearchResponse> search(SearchRequest request) {
+        return client.search(request);
+    }
+
+    public void search(SearchRequest request, ActionListener<SearchResponse> listener) {
+        client.search(request, listener);
+    }
+
+    public SearchRequestBuilder prepareSearch(String... indices) {
+        return client.prepareSearch(indices);
+    }
+
+    public ActionFuture<SearchResponse> searchScroll(SearchScrollRequest request) {
+        return client.searchScroll(request);
+    }
+
+    public void searchScroll(SearchScrollRequest request, ActionListener<SearchResponse> listener) {
+        client.searchScroll(request, listener);
+    }
+
+    public SearchScrollRequestBuilder prepareSearchScroll(String scrollId) {
+        return client.prepareSearchScroll(scrollId);
+    }
+
+    public ActionFuture<MultiSearchResponse> multiSearch(MultiSearchRequest request) {
+        return client.multiSearch(request);
+    }
+
+    public void multiSearch(MultiSearchRequest request, ActionListener<MultiSearchResponse> listener) {
+        client.multiSearch(request, listener);
+    }
+
+    public MultiSearchRequestBuilder prepareMultiSearch() {
+        return client.prepareMultiSearch();
+    }
+
+    public ActionFuture<SearchResponse> moreLikeThis(MoreLikeThisRequest request) {
+        return client.moreLikeThis(request);
+    }
+
+    public void moreLikeThis(MoreLikeThisRequest request, ActionListener<SearchResponse> listener) {
+        client.moreLikeThis(request, listener);
+    }
+
+    public MoreLikeThisRequestBuilder prepareMoreLikeThis(String index, String type, String id) {
+        return client.prepareMoreLikeThis(index, type, id);
+    }
+
+    public ActionFuture<TermVectorResponse> termVector(TermVectorRequest request) {
+        return client.termVector(request);
+    }
+
+    public void termVector(TermVectorRequest request, ActionListener<TermVectorResponse> listener) {
+        client.termVector(request, listener);
+    }
+
+    public TermVectorRequestBuilder prepareTermVector() {
+        return client.prepareTermVector();
+    }
+
+    public TermVectorRequestBuilder prepareTermVector(String index, String type, String id) {
+        return client.prepareTermVector(index, type, id);
+    }
+
+    public ActionFuture<MultiTermVectorsResponse> multiTermVectors(MultiTermVectorsRequest request) {
+        return client.multiTermVectors(request);
+    }
+
+    public void multiTermVectors(MultiTermVectorsRequest request, ActionListener<MultiTermVectorsResponse> listener) {
+        client.multiTermVectors(request, listener);
+    }
+
+    public MultiTermVectorsRequestBuilder prepareMultiTermVectors() {
+        return client.prepareMultiTermVectors();
+    }
+
+    public ActionFuture<PercolateResponse> percolate(PercolateRequest request) {
+        return client.percolate(request);
+    }
+
+    public void percolate(PercolateRequest request, ActionListener<PercolateResponse> listener) {
+        client.percolate(request, listener);
+    }
+
+    public PercolateRequestBuilder preparePercolate() {
+        return client.preparePercolate();
+    }
+
+    public ActionFuture<MultiPercolateResponse> multiPercolate(MultiPercolateRequest request) {
+        return client.multiPercolate(request);
+    }
+
+    public void multiPercolate(MultiPercolateRequest request, ActionListener<MultiPercolateResponse> listener) {
+        client.multiPercolate(request, listener);
+    }
+
+    public MultiPercolateRequestBuilder prepareMultiPercolate() {
+        return client.prepareMultiPercolate();
+    }
+
+    public ExplainRequestBuilder prepareExplain(String index, String type, String id) {
+        return client.prepareExplain(index, type, id);
+    }
+
+    public ActionFuture<ExplainResponse> explain(ExplainRequest request) {
+        return client.explain(request);
+    }
+
+    public void explain(ExplainRequest request, ActionListener<ExplainResponse> listener) {
+        client.explain(request, listener);
+    }
+
+    public ClearScrollRequestBuilder prepareClearScroll() {
+        return client.prepareClearScroll();
+    }
+
+    public ActionFuture<ClearScrollResponse> clearScroll(ClearScrollRequest request) {
+        return client.clearScroll(request);
+    }
+
+    public void clearScroll(ClearScrollRequest request, ActionListener<ClearScrollResponse> listener) {
+        client.clearScroll(request, listener);
+    }
+
+    public FieldStatsRequestBuilder prepareFieldStats() {
+        return client.prepareFieldStats();
+    }
+
+    public ActionFuture<FieldStatsResponse> fieldStats(FieldStatsRequest request) {
+        return client.fieldStats(request);
+    }
+
+    public void fieldStats(FieldStatsRequest request, ActionListener<FieldStatsResponse> listener) {
+        client.fieldStats(request, listener);
+    }
+
+    public Settings settings() {
+        return client.settings();
+    }
+
 }
 }

+ 3 - 3
src/main/java/org/codelibs/fess/exec/Crawler.java

@@ -362,9 +362,9 @@ public class Crawler implements Serializable {
             writeTimeToSessionInfo(crawlingSessionHelper, Constants.CRAWLER_START_TIME);
             writeTimeToSessionInfo(crawlingSessionHelper, Constants.CRAWLER_START_TIME);
 
 
             // setup path mapping
             // setup path mapping
-            final List<CDef.ProcessType> ptList = new ArrayList<CDef.ProcessType>();
-            ptList.add(CDef.ProcessType.Crawling);
-            ptList.add(CDef.ProcessType.Both);
+            final List<String> ptList = new ArrayList<>();
+            ptList.add(Constants.PROCESS_TYPE_CRAWLING);
+            ptList.add(Constants.PROCESS_TYPE_BOTH);
             pathMappingHelper.setPathMappingList(options.sessionId, pathMappingService.getPathMappingList(ptList));
             pathMappingHelper.setPathMappingList(options.sessionId, pathMappingService.getPathMappingList(ptList));
 
 
             // overlapping host
             // overlapping host

+ 7 - 8
src/main/java/org/codelibs/fess/helper/PathMappingHelper.java

@@ -23,9 +23,9 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Matcher;
 
 
-import org.codelibs.fess.db.allcommon.CDef;
-import org.codelibs.fess.db.exbhv.PathMappingBhv;
-import org.codelibs.fess.db.exentity.PathMapping;
+import org.codelibs.fess.Constants;
+import org.codelibs.fess.es.exbhv.PathMappingBhv;
+import org.codelibs.fess.es.exentity.PathMapping;
 import org.seasar.framework.container.SingletonS2Container;
 import org.seasar.framework.container.SingletonS2Container;
 import org.seasar.framework.container.annotation.tiger.InitMethod;
 import org.seasar.framework.container.annotation.tiger.InitMethod;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
@@ -43,16 +43,15 @@ public class PathMappingHelper implements Serializable {
 
 
     @InitMethod
     @InitMethod
     public void init() {
     public void init() {
-        final List<CDef.ProcessType> ptList = new ArrayList<CDef.ProcessType>();
-        ptList.add(CDef.ProcessType.Displaying);
-        ptList.add(CDef.ProcessType.Both);
+        final List<String> ptList = new ArrayList<>();
+        ptList.add(Constants.PROCESS_TYPE_DISPLAYING);
+        ptList.add(Constants.PROCESS_TYPE_BOTH);
 
 
         try {
         try {
             final PathMappingBhv pathMappingBhv = SingletonS2Container.getComponent(PathMappingBhv.class);
             final PathMappingBhv pathMappingBhv = SingletonS2Container.getComponent(PathMappingBhv.class);
             cachedPathMappingList = pathMappingBhv.selectList(cb -> {
             cachedPathMappingList = pathMappingBhv.selectList(cb -> {
-                cb.query().setDeletedBy_IsNull();
                 cb.query().addOrderBy_SortOrder_Asc();
                 cb.query().addOrderBy_SortOrder_Asc();
-                cb.query().setProcessType_InScope_AsProcessType(ptList);
+                cb.query().setProcessType_InScope(ptList);
             });
             });
         } catch (final Exception e) {
         } catch (final Exception e) {
             logger.warn("Failed to load path mappings.", e);
             logger.warn("Failed to load path mappings.", e);

+ 14 - 17
src/main/java/org/codelibs/fess/service/PathMappingService.java

@@ -25,10 +25,9 @@ import javax.annotation.Resource;
 
 
 import org.codelibs.fess.crud.CommonConstants;
 import org.codelibs.fess.crud.CommonConstants;
 import org.codelibs.fess.crud.CrudMessageException;
 import org.codelibs.fess.crud.CrudMessageException;
-import org.codelibs.fess.db.allcommon.CDef;
-import org.codelibs.fess.db.cbean.PathMappingCB;
-import org.codelibs.fess.db.exbhv.PathMappingBhv;
-import org.codelibs.fess.db.exentity.PathMapping;
+import org.codelibs.fess.es.cbean.PathMappingCB;
+import org.codelibs.fess.es.exbhv.PathMappingBhv;
+import org.codelibs.fess.es.exentity.PathMapping;
 import org.codelibs.fess.pager.PathMappingPager;
 import org.codelibs.fess.pager.PathMappingPager;
 import org.dbflute.cbean.result.PagingResultBean;
 import org.dbflute.cbean.result.PagingResultBean;
 import org.seasar.framework.beans.util.Beans;
 import org.seasar.framework.beans.util.Beans;
@@ -40,10 +39,6 @@ public class PathMappingService implements Serializable {
     @Resource
     @Resource
     protected PathMappingBhv pathMappingBhv;
     protected PathMappingBhv pathMappingBhv;
 
 
-    public PathMappingService() {
-        super();
-    }
-
     public List<PathMapping> getPathMappingList(final PathMappingPager pathMappingPager) {
     public List<PathMapping> getPathMappingList(final PathMappingPager pathMappingPager) {
 
 
         final PagingResultBean<PathMapping> pathMappingList = pathMappingBhv.selectPage(cb -> {
         final PagingResultBean<PathMapping> pathMappingList = pathMappingBhv.selectPage(cb -> {
@@ -62,7 +57,8 @@ public class PathMappingService implements Serializable {
 
 
     public PathMapping getPathMapping(final Map<String, String> keys) {
     public PathMapping getPathMapping(final Map<String, String> keys) {
         final PathMapping pathMapping = pathMappingBhv.selectEntity(cb -> {
         final PathMapping pathMapping = pathMappingBhv.selectEntity(cb -> {
-            cb.query().setId_Equal(Long.parseLong(keys.get("id")));
+            cb.query().docMeta().setId_Equal(keys.get("id"));
+            cb.request().setVersion(true);
             setupEntityCondition(cb, keys);
             setupEntityCondition(cb, keys);
         }).orElse(null);//TODO
         }).orElse(null);//TODO
         if (pathMapping == null) {
         if (pathMapping == null) {
@@ -76,34 +72,36 @@ public class PathMappingService implements Serializable {
     public void store(final PathMapping pathMapping) throws CrudMessageException {
     public void store(final PathMapping pathMapping) throws CrudMessageException {
         setupStoreCondition(pathMapping);
         setupStoreCondition(pathMapping);
 
 
-        pathMappingBhv.insertOrUpdate(pathMapping);
+        pathMappingBhv.insertOrUpdate(pathMapping, op -> {
+            op.setRefresh(true);
+        });
 
 
     }
     }
 
 
     public void delete(final PathMapping pathMapping) throws CrudMessageException {
     public void delete(final PathMapping pathMapping) throws CrudMessageException {
         setupDeleteCondition(pathMapping);
         setupDeleteCondition(pathMapping);
 
 
-        pathMappingBhv.delete(pathMapping);
+        pathMappingBhv.delete(pathMapping, op -> {
+            op.setRefresh(true);
+        });
 
 
     }
     }
 
 
-    public List<PathMapping> getPathMappingList(final Collection<CDef.ProcessType> cdefList) {
+    public List<PathMapping> getPathMappingList(final Collection<String> processTypeList) {
 
 
         return pathMappingBhv.selectList(cb -> {
         return pathMappingBhv.selectList(cb -> {
-            cb.query().setDeletedBy_IsNull();
             cb.query().addOrderBy_SortOrder_Asc();
             cb.query().addOrderBy_SortOrder_Asc();
-            cb.query().setProcessType_InScope_AsProcessType(cdefList);
+            cb.query().setProcessType_InScope(processTypeList);
         });
         });
     }
     }
 
 
     protected void setupListCondition(final PathMappingCB cb, final PathMappingPager pathMappingPager) {
     protected void setupListCondition(final PathMappingCB cb, final PathMappingPager pathMappingPager) {
         if (pathMappingPager.id != null) {
         if (pathMappingPager.id != null) {
-            cb.query().setId_Equal(Long.parseLong(pathMappingPager.id));
+            cb.query().docMeta().setId_Equal(pathMappingPager.id);
         }
         }
         // TODO Long, Integer, String supported only.
         // TODO Long, Integer, String supported only.
 
 
         // setup condition
         // setup condition
-        cb.query().setDeletedBy_IsNull();
         cb.query().addOrderBy_SortOrder_Asc();
         cb.query().addOrderBy_SortOrder_Asc();
 
 
         // search
         // search
@@ -113,7 +111,6 @@ public class PathMappingService implements Serializable {
     protected void setupEntityCondition(final PathMappingCB cb, final Map<String, String> keys) {
     protected void setupEntityCondition(final PathMappingCB cb, final Map<String, String> keys) {
 
 
         // setup condition
         // setup condition
-        cb.query().setDeletedBy_IsNull();
 
 
     }
     }
 
 

+ 3 - 9
src/main/java/org/codelibs/fess/web/admin/PathMappingAction.java

@@ -16,7 +16,6 @@
 
 
 package org.codelibs.fess.web.admin;
 package org.codelibs.fess.web.admin;
 
 
-import java.time.LocalDateTime;
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
@@ -27,7 +26,7 @@ import org.codelibs.fess.beans.FessBeans;
 import org.codelibs.fess.crud.CommonConstants;
 import org.codelibs.fess.crud.CommonConstants;
 import org.codelibs.fess.crud.CrudMessageException;
 import org.codelibs.fess.crud.CrudMessageException;
 import org.codelibs.fess.crud.util.SAStrutsUtil;
 import org.codelibs.fess.crud.util.SAStrutsUtil;
-import org.codelibs.fess.db.exentity.PathMapping;
+import org.codelibs.fess.es.exentity.PathMapping;
 import org.codelibs.fess.helper.PathMappingHelper;
 import org.codelibs.fess.helper.PathMappingHelper;
 import org.codelibs.fess.helper.SystemHelper;
 import org.codelibs.fess.helper.SystemHelper;
 import org.codelibs.fess.pager.PathMappingPager;
 import org.codelibs.fess.pager.PathMappingPager;
@@ -285,7 +284,7 @@ public class PathMappingAction extends FessAdminAction {
     protected PathMapping createPathMapping() {
     protected PathMapping createPathMapping() {
         PathMapping pathMapping;
         PathMapping pathMapping;
         final String username = systemHelper.getUsername();
         final String username = systemHelper.getUsername();
-        final LocalDateTime currentTime = systemHelper.getCurrentTime();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
         if (pathMappingForm.crudMode == CommonConstants.EDIT_MODE) {
         if (pathMappingForm.crudMode == CommonConstants.EDIT_MODE) {
             pathMapping = pathMappingService.getPathMapping(createKeyMap());
             pathMapping = pathMappingService.getPathMapping(createKeyMap());
             if (pathMapping == null) {
             if (pathMapping == null) {
@@ -318,12 +317,7 @@ public class PathMappingAction extends FessAdminAction {
                 throw new SSCActionMessagesException("errors.crud_could_not_find_crud_table", new Object[] { pathMappingForm.id });
                 throw new SSCActionMessagesException("errors.crud_could_not_find_crud_table", new Object[] { pathMappingForm.id });
             }
             }
 
 
-            //            pathMappingService.delete(pathMapping);
-            final String username = systemHelper.getUsername();
-            final LocalDateTime currentTime = systemHelper.getCurrentTime();
-            pathMapping.setDeletedBy(username);
-            pathMapping.setDeletedTime(currentTime);
-            pathMappingService.store(pathMapping);
+            pathMappingService.delete(pathMapping);
             SAStrutsUtil.addSessionMessage("success.crud_delete_crud_table");
             SAStrutsUtil.addSessionMessage("success.crud_delete_crud_table");
 
 
             return displayList(true);
             return displayList(true);

+ 6 - 18
src/main/java/org/codelibs/fess/web/admin/PathMappingForm.java

@@ -17,13 +17,10 @@
 package org.codelibs.fess.web.admin;
 package org.codelibs.fess.web.admin;
 
 
 import java.io.Serializable;
 import java.io.Serializable;
-import java.text.SimpleDateFormat;
-import java.util.Date;
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Map;
 
 
-import org.codelibs.fess.Constants;
-import org.seasar.struts.annotation.DateType;
+import org.codelibs.fess.util.ComponentUtil;
 import org.seasar.struts.annotation.IntRange;
 import org.seasar.struts.annotation.IntRange;
 import org.seasar.struts.annotation.IntegerType;
 import org.seasar.struts.annotation.IntegerType;
 import org.seasar.struts.annotation.LongType;
 import org.seasar.struts.annotation.LongType;
@@ -47,7 +44,7 @@ public class PathMappingForm implements Serializable {
     }
     }
 
 
     @Required(target = "confirmfromupdate,update,delete")
     @Required(target = "confirmfromupdate,update,delete")
-    @LongType
+    @Maxbytelength(maxbytelength = 1000)
     public String id;
     public String id;
 
 
     @Required(target = "confirmfromcreate,create,confirmfromupdate,update,delete")
     @Required(target = "confirmfromcreate,create,confirmfromupdate,update,delete")
@@ -70,23 +67,17 @@ public class PathMappingForm implements Serializable {
     public String createdBy;
     public String createdBy;
 
 
     @Required(target = "confirmfromupdate,update,delete")
     @Required(target = "confirmfromupdate,update,delete")
-    @DateType(datePattern = Constants.DEFAULT_DATETIME_FORMAT)
+    @LongType
     public String createdTime;
     public String createdTime;
 
 
     @Maxbytelength(maxbytelength = 255)
     @Maxbytelength(maxbytelength = 255)
     public String updatedBy;
     public String updatedBy;
 
 
-    @DateType(datePattern = Constants.DEFAULT_DATETIME_FORMAT)
+    @LongType
     public String updatedTime;
     public String updatedTime;
 
 
-    @Maxbytelength(maxbytelength = 255)
-    public String deletedBy;
-
-    @DateType(datePattern = Constants.DEFAULT_DATETIME_FORMAT)
-    public String deletedTime;
-
     @Required(target = "confirmfromupdate,update,delete")
     @Required(target = "confirmfromupdate,update,delete")
-    @IntegerType
+    @LongType
     public String versionNo;
     public String versionNo;
 
 
     public void initialize() {
     public void initialize() {
@@ -99,13 +90,10 @@ public class PathMappingForm implements Serializable {
         createdTime = null;
         createdTime = null;
         updatedBy = null;
         updatedBy = null;
         updatedTime = null;
         updatedTime = null;
-        deletedBy = null;
-        deletedTime = null;
         versionNo = null;
         versionNo = null;
         sortOrder = "0";
         sortOrder = "0";
         // Temporary data
         // Temporary data
         createdBy = "system";
         createdBy = "system";
-        final SimpleDateFormat sdf = new SimpleDateFormat(Constants.DEFAULT_DATETIME_FORMAT);
-        createdTime = sdf.format(new Date());
+        createdTime = Long.toString(ComponentUtil.getSystemHelper().getCurrentTimeAsLong());
     }
     }
 }
 }

+ 1 - 1
src/test/java/org/codelibs/fess/helper/PathMappingHelperTest.java

@@ -19,7 +19,7 @@ package org.codelibs.fess.helper;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 
 
-import org.codelibs.fess.db.exentity.PathMapping;
+import org.codelibs.fess.es.exentity.PathMapping;
 import org.seasar.extension.unit.S2TestCase;
 import org.seasar.extension.unit.S2TestCase;
 
 
 public class PathMappingHelperTest extends S2TestCase {
 public class PathMappingHelperTest extends S2TestCase {