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.
*/
public class ActionSearchManager implements AlphaFineSearchProvider {
private static ActionSearchManager actionSearchManager = null;
private static ActionSearchManager instance;
private SearchResult filterModelList;
private SearchResult lessModelList;
private SearchResult moreModelList;
public synchronized static ActionSearchManager getInstance() {
if (actionSearchManager == null) {
actionSearchManager = new ActionSearchManager();
public static ActionSearchManager getInstance() {
if (instance == null) {
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.model.SearchResult;
import com.fr.design.mainframe.alphafine.search.manager.fun.AlphaFineSearchProvider;
import com.fr.log.FineLoggerFactory;
import com.fr.general.Inter;
import com.fr.general.http.HttpClient;
import com.fr.json.JSONArray;
import com.fr.json.JSONException;
import com.fr.json.JSONObject;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
/**
* Created by XiaXiang on 2017/3/27.
*/
public class DocumentSearchManager implements AlphaFineSearchProvider {
private static DocumentSearchManager documentSearchManager = null;
private static DocumentSearchManager instance;
private SearchResult lessModelList;
private SearchResult moreModelList;
public synchronized static DocumentSearchManager getInstance() {
if (documentSearchManager == null) {
documentSearchManager = new DocumentSearchManager();
public static DocumentSearchManager getInstance() {
if (instance == null) {
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 FRM_PREFIX = "k:frm ";
private static final String CPT_PREFIX = "k:cpt ";
private static FileSearchManager fileSearchManager = null;
private static FileSearchManager instance;
private SearchResult filterModelList;
private SearchResult lessModelList;
private SearchResult moreModelList;
@ -47,15 +47,19 @@ public class FileSearchManager implements AlphaFineSearchProvider {
private boolean isContainCpt = true;
private boolean isContainFrm = true;
public synchronized static FileSearchManager getInstance() {
init();
return fileSearchManager;
public static FileSearchManager getInstance() {
if (instance == null) {
synchronized (FileSearchManager.class) {
if (instance == null) {
instance = new FileSearchManager();
}
}
}
return instance;
}
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()));
return moreModelList;
}
private void doSearch(String searchText, boolean needMore) {
for (FileNode node : fileNodes) {
boolean isAlreadyContain = false;
@ -230,7 +234,7 @@ public class FileSearchManager implements AlphaFineSearchProvider {
* @throws Exception
*/
private void listAll(String rootFilePath, List<FileNode> nodeList, boolean recurse) throws Exception {
FileNode[] fns = FRContext.getFileNodes().list(rootFilePath);
for (int i = 0; i < fns.length; 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.search.manager.fun.AlphaFineSearchProvider;
import com.fr.general.ComparatorUtils;
import com.fr.log.FineLoggerFactory;
import com.fr.general.Inter;
import com.fr.general.http.HttpClient;
import com.fr.json.JSONArray;
import com.fr.json.JSONException;
import com.fr.json.JSONObject;
import com.fr.log.FineLoggerFactory;
import com.fr.plugin.basic.version.Version;
import com.fr.plugin.basic.version.VersionIntervalFactory;
import com.fr.stable.StringUtils;
@ -26,20 +26,24 @@ import java.net.URLEncoder;
* Created by XiaXiang on 2017/3/27.
*/
public class PluginSearchManager implements AlphaFineSearchProvider {
private static PluginSearchManager pluginSearchManager = null;
private static PluginSearchManager instance;
private SearchResult lessModelList;
private SearchResult moreModelList;
public synchronized static PluginSearchManager getInstance() {
if (pluginSearchManager == null) {
pluginSearchManager = new PluginSearchManager();
public static PluginSearchManager getInstance() {
if (instance == null) {
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());
}

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 {
private static final int MAX_SIZE = 3;
private static RecentSearchManager recentSearchManager = null;
private static RecentSearchManager instance;
IndexReader indexReader = null;
IndexSearcher indexSearcher = null;
//索引存储路径
@ -59,11 +59,16 @@ public class RecentSearchManager implements AlphaFineSearchProvider {
private SearchResult recentModelList;
private SearchResult modelList;
public synchronized static RecentSearchManager getInstance() {
if (recentSearchManager == null) {
recentSearchManager = new RecentSearchManager();
public static RecentSearchManager getInstance() {
if (instance == null) {
synchronized (RecentSearchManager.class) {
if (instance == null) {
instance = new RecentSearchManager();
instance.initWriter();
}
}
}
return recentSearchManager;
return instance;
}
@Override
@ -94,17 +99,11 @@ public class RecentSearchManager implements AlphaFineSearchProvider {
* 初始化indexWriter
*/
private void initWriter() {
if (indexWriter == null) {
try {
directory = FSDirectory.open(new File(path));
} catch (IOException e) {
FineLoggerFactory.getLogger().error("cannot open directory " + path);
}
try {
indexWriter = new IndexWriter(directory, config);
} catch (IOException e) {
FineLoggerFactory.getLogger().error("not privilege to write to" + path);
}
try {
directory = FSDirectory.open(new File(path));
indexWriter = new IndexWriter(directory, config);
} catch (IOException e) {
FineLoggerFactory.getLogger().error(e.getMessage());
}
}
@ -113,20 +112,18 @@ public class RecentSearchManager implements AlphaFineSearchProvider {
* 初始化indexReader
*/
private void initReader() {
if (indexReader == null) {
try {
directory = FSDirectory.open(new File(path));
indexReader = DirectoryReader.open(directory);
} catch (IOException e) {
FineLoggerFactory.getLogger().error("not privilege to read " + path);
}
try {
indexWriter.close();
indexReader = DirectoryReader.open(directory);
indexSearcher = new IndexSearcher(indexReader);
} catch (IOException e) {
FineLoggerFactory.getLogger().error(e.getMessage());
}
}
/**
* 添加模型
*
* @param searchKey
* @param cellModel
* @param searchCount
@ -146,6 +143,7 @@ public class RecentSearchManager implements AlphaFineSearchProvider {
/**
* 写文档建立索引
*
* @param doc
*/
private void writeDoc(Document doc) {
@ -160,12 +158,14 @@ public class RecentSearchManager implements AlphaFineSearchProvider {
/**
* 按序搜索
*
* @param key
* @return
*/
private synchronized SearchResult searchBySort(String key) {
recentModelList = new SearchResult();
try {
initReader();
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.model.SearchResult;
import com.fr.design.mainframe.alphafine.search.manager.fun.AlphaFineSearchProvider;
import com.fr.log.FineLoggerFactory;
import com.fr.general.Inter;
import com.fr.general.http.HttpClient;
import com.fr.json.JSONArray;
import com.fr.json.JSONException;
import com.fr.json.JSONObject;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.CodeUtils;
import com.fr.stable.StringUtils;
@ -26,15 +26,19 @@ import java.util.List;
* Created by XiaXiang on 2017/3/31.
*/
public class RecommendSearchManager implements AlphaFineSearchProvider {
private static RecommendSearchManager recommendSearchManager = null;
private static RecommendSearchManager instance;
private SearchResult modelList;
private SearchResult recommendModelList;
public synchronized static RecommendSearchManager getInstance() {
if (recommendSearchManager == null) {
recommendSearchManager = new RecommendSearchManager();
public static RecommendSearchManager getInstance() {
if (instance == null) {
synchronized (RecentSearchManager.class) {
if (instance == null) {
instance = new RecommendSearchManager();
}
}
}
return recommendSearchManager;
return instance;
}
@Override

Loading…
Cancel
Save