diff --git a/src/main/java/jp/sf/fess/Constants.java b/src/main/java/jp/sf/fess/Constants.java index 95f8cbece..7c056bd4a 100644 --- a/src/main/java/jp/sf/fess/Constants.java +++ b/src/main/java/jp/sf/fess/Constants.java @@ -316,4 +316,10 @@ public class Constants extends CoreLibConstants { public static final int EXIT_FAIL = 1; + public static final String DATE_CONFIG_ID_PREFIX = "D"; + + public static final String FILE_CONFIG_ID_PREFIX = "F"; + + public static final String WEB_CONFIG_ID_PREFIX = "W"; + } diff --git a/src/main/java/jp/sf/fess/db/exentity/CrawlingConfig.java b/src/main/java/jp/sf/fess/db/exentity/CrawlingConfig.java index 4338a43d7..33b3ddf6b 100644 --- a/src/main/java/jp/sf/fess/db/exentity/CrawlingConfig.java +++ b/src/main/java/jp/sf/fess/db/exentity/CrawlingConfig.java @@ -18,15 +18,17 @@ package jp.sf.fess.db.exentity; public interface CrawlingConfig { - public abstract Long getId(); + Long getId(); - public abstract String[] getBrowserTypeValues(); + String[] getBrowserTypeValues(); - public abstract String[] getRoleTypeValues(); + String[] getRoleTypeValues(); - public abstract String[] getLabelTypeValues(); + String[] getLabelTypeValues(); - public abstract String getDocumentBoost(); + String getDocumentBoost(); - public abstract String getIndexingTarget(String input); + String getIndexingTarget(String input); + + String getConfigId(); } \ No newline at end of file diff --git a/src/main/java/jp/sf/fess/db/exentity/DataCrawlingConfig.java b/src/main/java/jp/sf/fess/db/exentity/DataCrawlingConfig.java index e4a9eef3f..bc8ef1231 100644 --- a/src/main/java/jp/sf/fess/db/exentity/DataCrawlingConfig.java +++ b/src/main/java/jp/sf/fess/db/exentity/DataCrawlingConfig.java @@ -150,4 +150,12 @@ public class DataCrawlingConfig extends BsDataCrawlingConfig implements // always return true return Constants.TRUE; } + + @Override + public String getConfigId() { + if (getId() != null) { + return Constants.DATE_CONFIG_ID_PREFIX + getId().toString(); + } + return null; + } } diff --git a/src/main/java/jp/sf/fess/db/exentity/FileCrawlingConfig.java b/src/main/java/jp/sf/fess/db/exentity/FileCrawlingConfig.java index b53a397a6..e442bee6d 100644 --- a/src/main/java/jp/sf/fess/db/exentity/FileCrawlingConfig.java +++ b/src/main/java/jp/sf/fess/db/exentity/FileCrawlingConfig.java @@ -214,4 +214,12 @@ public class FileCrawlingConfig extends BsFileCrawlingConfig implements } } } + + @Override + public String getConfigId() { + if (getId() != null) { + return Constants.FILE_CONFIG_ID_PREFIX + getId().toString(); + } + return null; + } } diff --git a/src/main/java/jp/sf/fess/db/exentity/WebCrawlingConfig.java b/src/main/java/jp/sf/fess/db/exentity/WebCrawlingConfig.java index b787f1107..236f4a4be 100644 --- a/src/main/java/jp/sf/fess/db/exentity/WebCrawlingConfig.java +++ b/src/main/java/jp/sf/fess/db/exentity/WebCrawlingConfig.java @@ -217,4 +217,12 @@ public class WebCrawlingConfig extends BsWebCrawlingConfig implements } } + @Override + public String getConfigId() { + if (getId() != null) { + return Constants.WEB_CONFIG_ID_PREFIX + getId().toString(); + } + return null; + } + } diff --git a/src/main/java/jp/sf/fess/ds/impl/AbstractDataStoreImpl.java b/src/main/java/jp/sf/fess/ds/impl/AbstractDataStoreImpl.java index f2f5e867b..60729da3b 100644 --- a/src/main/java/jp/sf/fess/ds/impl/AbstractDataStoreImpl.java +++ b/src/main/java/jp/sf/fess/ds/impl/AbstractDataStoreImpl.java @@ -26,6 +26,7 @@ import jp.sf.fess.Constants; import jp.sf.fess.db.exentity.DataCrawlingConfig; import jp.sf.fess.ds.DataStore; import jp.sf.fess.ds.IndexUpdateCallback; +import jp.sf.fess.helper.CrawlingConfigHelper; import jp.sf.fess.helper.CrawlingSessionHelper; import jp.sf.fess.taglib.FessFunctions; import jp.sf.fess.util.ParameterUtil; @@ -61,12 +62,21 @@ public abstract class AbstractDataStoreImpl implements DataStore { final CrawlingSessionHelper crawlingSessionHelper = SingletonS2Container .getComponent("crawlingSessionHelper"); final Date documentExpires = crawlingSessionHelper.getDocumentExpires(); + final CrawlingConfigHelper crawlingConfigHelper = SingletonS2Container + .getComponent("crawlingConfigHelper"); initParamMap.putAll(paramMap); paramMap = initParamMap; // default values final Map defaultDataMap = new HashMap(); + + // cid + final String configId = config.getConfigId(); + if (configId != null) { + defaultDataMap.put(crawlingConfigHelper.getConfigIdField(), + configId); + } // expires if (documentExpires != null) { defaultDataMap.put(crawlingSessionHelper.getExpiresField(), diff --git a/src/main/java/jp/sf/fess/helper/CrawlingConfigHelper.java b/src/main/java/jp/sf/fess/helper/CrawlingConfigHelper.java index 30c492ec5..09489fcad 100644 --- a/src/main/java/jp/sf/fess/helper/CrawlingConfigHelper.java +++ b/src/main/java/jp/sf/fess/helper/CrawlingConfigHelper.java @@ -30,12 +30,14 @@ public class CrawlingConfigHelper implements Serializable { protected int count = 1; + protected String configIdField = "cid_s_s"; + public synchronized String store(final String sessionId, final CrawlingConfig crawlingConfig) { - final String sid = sessionId + "-" + count; - crawlingConfigMap.put(sid, crawlingConfig); + final String sessionCountId = sessionId + "-" + count; + crawlingConfigMap.put(sessionCountId, crawlingConfig); count++; - return sid; + return sessionCountId; } public void remove(final String sessionId) { @@ -46,4 +48,12 @@ public class CrawlingConfigHelper implements Serializable { return crawlingConfigMap.get(sessionId); } + public String getConfigIdField() { + return configIdField; + } + + public void setConfigIdField(final String configIdField) { + this.configIdField = configIdField; + } + } diff --git a/src/main/java/jp/sf/fess/helper/RobotLogHelper.java b/src/main/java/jp/sf/fess/helper/RobotLogHelper.java index 74999f658..24c2a10b4 100644 --- a/src/main/java/jp/sf/fess/helper/RobotLogHelper.java +++ b/src/main/java/jp/sf/fess/helper/RobotLogHelper.java @@ -138,9 +138,9 @@ public class RobotLogHelper extends LogHelperImpl { failureUrlBhv.insertOrUpdate(failureUrl); } - private CrawlingConfig getCrawlingConfig(final String sessionId) { + private CrawlingConfig getCrawlingConfig(final String sessionCountId) { return SingletonS2Container.getComponent(CrawlingConfigHelper.class) - .get(sessionId); + .get(sessionCountId); } private String getStackTrace(final Throwable t) { diff --git a/src/main/java/jp/sf/fess/transformer/AbstractFessFileTransformer.java b/src/main/java/jp/sf/fess/transformer/AbstractFessFileTransformer.java index 0975b7928..b35584e72 100644 --- a/src/main/java/jp/sf/fess/transformer/AbstractFessFileTransformer.java +++ b/src/main/java/jp/sf/fess/transformer/AbstractFessFileTransformer.java @@ -181,7 +181,17 @@ public abstract class AbstractFessFileTransformer extends final boolean useAclAsRole = crawlerProperties.getProperty( Constants.USE_ACL_AS_ROLE, Constants.FALSE).equals( Constants.TRUE); + final CrawlingConfigHelper crawlingConfigHelper = SingletonS2Container + .getComponent("crawlingConfigHelper"); + final CrawlingConfig crawlingConfig = crawlingConfigHelper + .get(responseData.getSessionId()); + // cid + final String configId = crawlingConfig.getConfigId(); + if (configId != null) { + putResultDataBody(dataMap, crawlingConfigHelper.getConfigIdField(), + configId); + } // expires if (documentExpires != null) { putResultDataBody(dataMap, crawlingSessionHelper.getExpiresField(), @@ -250,11 +260,6 @@ public abstract class AbstractFessFileTransformer extends // lastModified putResultDataBody(dataMap, "lastModified", FessFunctions.formatDate(responseData.getLastModified())); - // config - final CrawlingConfigHelper crawlingConfigHelper = SingletonS2Container - .getComponent("crawlingConfigHelper"); - final CrawlingConfig crawlingConfig = crawlingConfigHelper - .get(responseData.getSessionId()); // indexingTarget putResultDataBody(dataMap, Constants.INDEXING_TARGET, crawlingConfig.getIndexingTarget(url)); diff --git a/src/main/java/jp/sf/fess/transformer/FessXpathTransformer.java b/src/main/java/jp/sf/fess/transformer/FessXpathTransformer.java index 82ad9d9a2..be3f623cd 100644 --- a/src/main/java/jp/sf/fess/transformer/FessXpathTransformer.java +++ b/src/main/java/jp/sf/fess/transformer/FessXpathTransformer.java @@ -214,7 +214,17 @@ public class FessXpathTransformer extends AbstractFessXpathTransformer { .getComponent("pathMappingHelper"); final String url = pathMappingHelper.replaceUrl(sessionId, responseData.getUrl()); + final CrawlingConfigHelper crawlingConfigHelper = SingletonS2Container + .getComponent("crawlingConfigHelper"); + final CrawlingConfig crawlingConfig = crawlingConfigHelper + .get(responseData.getSessionId()); + // cid + final String configId = crawlingConfig.getConfigId(); + if (configId != null) { + putResultDataBody(dataMap, crawlingConfigHelper.getConfigIdField(), + configId); + } // expires if (documentExpires != null) { putResultDataBody(dataMap, crawlingSessionHelper.getExpiresField(), @@ -254,11 +264,6 @@ public class FessXpathTransformer extends AbstractFessXpathTransformer { // lastModified putResultDataBody(dataMap, "lastModified", FessFunctions.formatDate(responseData.getLastModified())); - // config - final CrawlingConfigHelper crawlingConfigHelper = SingletonS2Container - .getComponent("crawlingConfigHelper"); - final CrawlingConfig crawlingConfig = crawlingConfigHelper - .get(responseData.getSessionId()); // indexingTarget putResultDataBody(dataMap, Constants.INDEXING_TARGET, crawlingConfig.getIndexingTarget(url));