Browse Source

Merge pull request #216 in DESIGN/design from ~XIAOXIA/design-10:release/10.0 to release/10.0

* commit '8ec0890b788d756b751d1a9cce850d49b7d6ed70':
  双检锁
  rt
  格式化
  代码质量
  无效import
  bug fix
  rt
  REPORT-9446 【10.0一轮回归】alphafine搜不出本地常用了
  REPORT-9446 【10.0一轮回归】alphafine搜不出本地常用了
master
xiaoxia 6 years ago
parent
commit
f8a646a11b
  1. 14
      designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/ActionSearchManager.java
  2. 17
      designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/DocumentSearchManager.java
  3. 22
      designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java
  4. 18
      designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/PluginSearchManager.java
  5. 48
      designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/RecentSearchManager.java
  6. 16
      designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/RecommendSearchManager.java

14
designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/ActionSearchManager.java

@ -22,16 +22,20 @@ import java.util.List;
* Created by XiaXiang on 2017/3/27. * Created by XiaXiang on 2017/3/27.
*/ */
public class ActionSearchManager implements AlphaFineSearchProvider { public class ActionSearchManager implements AlphaFineSearchProvider {
private static ActionSearchManager actionSearchManager = null; private static ActionSearchManager instance;
private SearchResult filterModelList; private SearchResult filterModelList;
private SearchResult lessModelList; private SearchResult lessModelList;
private SearchResult moreModelList; private SearchResult moreModelList;
public synchronized static ActionSearchManager getInstance() { public static ActionSearchManager getInstance() {
if (actionSearchManager == null) { if (instance == null) {
actionSearchManager = new ActionSearchManager(); synchronized (ActionSearchManager.class) {
if (instance == null) {
instance = new ActionSearchManager();
}
}
} }
return actionSearchManager; return instance;
} }
/** /**

17
designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/DocumentSearchManager.java

@ -8,28 +8,31 @@ import com.fr.design.mainframe.alphafine.cell.model.DocumentModel;
import com.fr.design.mainframe.alphafine.cell.model.MoreModel; import com.fr.design.mainframe.alphafine.cell.model.MoreModel;
import com.fr.design.mainframe.alphafine.model.SearchResult; import com.fr.design.mainframe.alphafine.model.SearchResult;
import com.fr.design.mainframe.alphafine.search.manager.fun.AlphaFineSearchProvider; import com.fr.design.mainframe.alphafine.search.manager.fun.AlphaFineSearchProvider;
import com.fr.log.FineLoggerFactory;
import com.fr.general.Inter; import com.fr.general.Inter;
import com.fr.general.http.HttpClient; import com.fr.general.http.HttpClient;
import com.fr.json.JSONArray; import com.fr.json.JSONArray;
import com.fr.json.JSONException; import com.fr.json.JSONException;
import com.fr.json.JSONObject; import com.fr.json.JSONObject;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
/** /**
* Created by XiaXiang on 2017/3/27. * Created by XiaXiang on 2017/3/27.
*/ */
public class DocumentSearchManager implements AlphaFineSearchProvider { public class DocumentSearchManager implements AlphaFineSearchProvider {
private static DocumentSearchManager documentSearchManager = null; private static DocumentSearchManager instance;
private SearchResult lessModelList; private SearchResult lessModelList;
private SearchResult moreModelList; private SearchResult moreModelList;
public synchronized static DocumentSearchManager getInstance() { public static DocumentSearchManager getInstance() {
if (documentSearchManager == null) { if (instance == null) {
documentSearchManager = new DocumentSearchManager(); synchronized (DocumentSearchManager.class) {
if (instance == null) {
instance = new DocumentSearchManager();
}
}
} }
return documentSearchManager; return instance;
} }
/** /**

22
designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/FileSearchManager.java

@ -35,7 +35,7 @@ public class FileSearchManager implements AlphaFineSearchProvider {
private static final String DS_NAME = "dsname=\""; private static final String DS_NAME = "dsname=\"";
private static final String FRM_PREFIX = "k:frm "; private static final String FRM_PREFIX = "k:frm ";
private static final String CPT_PREFIX = "k:cpt "; private static final String CPT_PREFIX = "k:cpt ";
private static FileSearchManager fileSearchManager = null; private static FileSearchManager instance;
private SearchResult filterModelList; private SearchResult filterModelList;
private SearchResult lessModelList; private SearchResult lessModelList;
private SearchResult moreModelList; private SearchResult moreModelList;
@ -47,15 +47,19 @@ public class FileSearchManager implements AlphaFineSearchProvider {
private boolean isContainCpt = true; private boolean isContainCpt = true;
private boolean isContainFrm = true; private boolean isContainFrm = true;
public synchronized static FileSearchManager getInstance() { public static FileSearchManager getInstance() {
init(); if (instance == null) {
return fileSearchManager; synchronized (FileSearchManager.class) {
if (instance == null) {
instance = new FileSearchManager();
}
}
}
return instance;
} }
public synchronized static void init() { public synchronized static void init() {
if (fileSearchManager == null) {
fileSearchManager = new FileSearchManager();
}
} }
/** /**
@ -114,7 +118,7 @@ public class FileSearchManager implements AlphaFineSearchProvider {
moreModelList.addAll(filterModelList.subList(AlphaFineConstants.SHOW_SIZE, filterModelList.size())); moreModelList.addAll(filterModelList.subList(AlphaFineConstants.SHOW_SIZE, filterModelList.size()));
return moreModelList; return moreModelList;
} }
private void doSearch(String searchText, boolean needMore) { private void doSearch(String searchText, boolean needMore) {
for (FileNode node : fileNodes) { for (FileNode node : fileNodes) {
boolean isAlreadyContain = false; boolean isAlreadyContain = false;
@ -230,7 +234,7 @@ public class FileSearchManager implements AlphaFineSearchProvider {
* @throws Exception * @throws Exception
*/ */
private void listAll(String rootFilePath, List<FileNode> nodeList, boolean recurse) throws Exception { private void listAll(String rootFilePath, List<FileNode> nodeList, boolean recurse) throws Exception {
FileNode[] fns = FRContext.getFileNodes().list(rootFilePath); FileNode[] fns = FRContext.getFileNodes().list(rootFilePath);
for (int i = 0; i < fns.length; i++) { for (int i = 0; i < fns.length; i++) {
FileNode fileNode = fns[i]; FileNode fileNode = fns[i];

18
designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/PluginSearchManager.java

@ -9,12 +9,12 @@ import com.fr.design.mainframe.alphafine.cell.model.PluginModel;
import com.fr.design.mainframe.alphafine.model.SearchResult; import com.fr.design.mainframe.alphafine.model.SearchResult;
import com.fr.design.mainframe.alphafine.search.manager.fun.AlphaFineSearchProvider; import com.fr.design.mainframe.alphafine.search.manager.fun.AlphaFineSearchProvider;
import com.fr.general.ComparatorUtils; import com.fr.general.ComparatorUtils;
import com.fr.log.FineLoggerFactory;
import com.fr.general.Inter; import com.fr.general.Inter;
import com.fr.general.http.HttpClient; import com.fr.general.http.HttpClient;
import com.fr.json.JSONArray; import com.fr.json.JSONArray;
import com.fr.json.JSONException; import com.fr.json.JSONException;
import com.fr.json.JSONObject; import com.fr.json.JSONObject;
import com.fr.log.FineLoggerFactory;
import com.fr.plugin.basic.version.Version; import com.fr.plugin.basic.version.Version;
import com.fr.plugin.basic.version.VersionIntervalFactory; import com.fr.plugin.basic.version.VersionIntervalFactory;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
@ -26,20 +26,24 @@ import java.net.URLEncoder;
* Created by XiaXiang on 2017/3/27. * Created by XiaXiang on 2017/3/27.
*/ */
public class PluginSearchManager implements AlphaFineSearchProvider { public class PluginSearchManager implements AlphaFineSearchProvider {
private static PluginSearchManager pluginSearchManager = null; private static PluginSearchManager instance;
private SearchResult lessModelList; private SearchResult lessModelList;
private SearchResult moreModelList; private SearchResult moreModelList;
public synchronized static PluginSearchManager getInstance() { public static PluginSearchManager getInstance() {
if (pluginSearchManager == null) { if (instance == null) {
pluginSearchManager = new PluginSearchManager(); synchronized (PluginSearchManager.class) {
if (instance == null) {
instance = new PluginSearchManager();
}
}
} }
return pluginSearchManager; return instance;
} }
private static boolean isCompatibleCurrentEnv(String envVersion){ private static boolean isCompatibleCurrentEnv(String envVersion) {
return VersionIntervalFactory.create(envVersion).contain(Version.currentEnvVersion()); return VersionIntervalFactory.create(envVersion).contain(Version.currentEnvVersion());
} }

48
designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/RecentSearchManager.java

@ -45,7 +45,7 @@ import java.util.List;
*/ */
public class RecentSearchManager implements AlphaFineSearchProvider { public class RecentSearchManager implements AlphaFineSearchProvider {
private static final int MAX_SIZE = 3; private static final int MAX_SIZE = 3;
private static RecentSearchManager recentSearchManager = null; private static RecentSearchManager instance;
IndexReader indexReader = null; IndexReader indexReader = null;
IndexSearcher indexSearcher = null; IndexSearcher indexSearcher = null;
//索引存储路径 //索引存储路径
@ -59,11 +59,16 @@ public class RecentSearchManager implements AlphaFineSearchProvider {
private SearchResult recentModelList; private SearchResult recentModelList;
private SearchResult modelList; private SearchResult modelList;
public synchronized static RecentSearchManager getInstance() { public static RecentSearchManager getInstance() {
if (recentSearchManager == null) { if (instance == null) {
recentSearchManager = new RecentSearchManager(); synchronized (RecentSearchManager.class) {
if (instance == null) {
instance = new RecentSearchManager();
instance.initWriter();
}
}
} }
return recentSearchManager; return instance;
} }
@Override @Override
@ -94,17 +99,11 @@ public class RecentSearchManager implements AlphaFineSearchProvider {
* 初始化indexWriter * 初始化indexWriter
*/ */
private void initWriter() { private void initWriter() {
if (indexWriter == null) { try {
try { directory = FSDirectory.open(new File(path));
directory = FSDirectory.open(new File(path)); indexWriter = new IndexWriter(directory, config);
} catch (IOException e) { } catch (IOException e) {
FineLoggerFactory.getLogger().error("cannot open directory " + path); FineLoggerFactory.getLogger().error(e.getMessage());
}
try {
indexWriter = new IndexWriter(directory, config);
} catch (IOException e) {
FineLoggerFactory.getLogger().error("not privilege to write to" + path);
}
} }
} }
@ -113,20 +112,18 @@ public class RecentSearchManager implements AlphaFineSearchProvider {
* 初始化indexReader * 初始化indexReader
*/ */
private void initReader() { private void initReader() {
if (indexReader == null) { try {
try { indexWriter.close();
directory = FSDirectory.open(new File(path)); indexReader = DirectoryReader.open(directory);
indexReader = DirectoryReader.open(directory);
} catch (IOException e) {
FineLoggerFactory.getLogger().error("not privilege to read " + path);
}
indexSearcher = new IndexSearcher(indexReader); indexSearcher = new IndexSearcher(indexReader);
} catch (IOException e) {
FineLoggerFactory.getLogger().error(e.getMessage());
} }
} }
/** /**
* 添加模型 * 添加模型
*
* @param searchKey * @param searchKey
* @param cellModel * @param cellModel
* @param searchCount * @param searchCount
@ -146,6 +143,7 @@ public class RecentSearchManager implements AlphaFineSearchProvider {
/** /**
* 写文档建立索引 * 写文档建立索引
*
* @param doc * @param doc
*/ */
private void writeDoc(Document doc) { private void writeDoc(Document doc) {
@ -160,12 +158,14 @@ public class RecentSearchManager implements AlphaFineSearchProvider {
/** /**
* 按序搜索 * 按序搜索
*
* @param key * @param key
* @return * @return
*/ */
private synchronized SearchResult searchBySort(String key) { private synchronized SearchResult searchBySort(String key) {
recentModelList = new SearchResult(); recentModelList = new SearchResult();
try { try {
initReader(); initReader();
IndexSearcher searcher = new IndexSearcher(indexReader); IndexSearcher searcher = new IndexSearcher(indexReader);
//构建排序字段 //构建排序字段

16
designer-realize/src/main/java/com/fr/design/mainframe/alphafine/search/manager/impl/RecommendSearchManager.java

@ -10,12 +10,12 @@ import com.fr.design.mainframe.alphafine.cell.model.AlphaCellModel;
import com.fr.design.mainframe.alphafine.cell.model.MoreModel; import com.fr.design.mainframe.alphafine.cell.model.MoreModel;
import com.fr.design.mainframe.alphafine.model.SearchResult; import com.fr.design.mainframe.alphafine.model.SearchResult;
import com.fr.design.mainframe.alphafine.search.manager.fun.AlphaFineSearchProvider; import com.fr.design.mainframe.alphafine.search.manager.fun.AlphaFineSearchProvider;
import com.fr.log.FineLoggerFactory;
import com.fr.general.Inter; import com.fr.general.Inter;
import com.fr.general.http.HttpClient; import com.fr.general.http.HttpClient;
import com.fr.json.JSONArray; import com.fr.json.JSONArray;
import com.fr.json.JSONException; import com.fr.json.JSONException;
import com.fr.json.JSONObject; import com.fr.json.JSONObject;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.CodeUtils; import com.fr.stable.CodeUtils;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
@ -26,15 +26,19 @@ import java.util.List;
* Created by XiaXiang on 2017/3/31. * Created by XiaXiang on 2017/3/31.
*/ */
public class RecommendSearchManager implements AlphaFineSearchProvider { public class RecommendSearchManager implements AlphaFineSearchProvider {
private static RecommendSearchManager recommendSearchManager = null; private static RecommendSearchManager instance;
private SearchResult modelList; private SearchResult modelList;
private SearchResult recommendModelList; private SearchResult recommendModelList;
public synchronized static RecommendSearchManager getInstance() { public static RecommendSearchManager getInstance() {
if (recommendSearchManager == null) { if (instance == null) {
recommendSearchManager = new RecommendSearchManager(); synchronized (RecentSearchManager.class) {
if (instance == null) {
instance = new RecommendSearchManager();
}
}
} }
return recommendSearchManager; return instance;
} }
@Override @Override

Loading…
Cancel
Save