Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PageHandlerAdapterFactory, handlerAdapters,handlerAdapterMap should unmodifiable #11801

Merged
merged 23 commits into from
Mar 7, 2024
Merged
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
a8158d3
Update LocalSimpleCountRateCounter.java
floor07 Jan 10, 2024
f4cf499
Update LocalSimpleCountRateCounter.java
floor07 Jan 10, 2024
ff14e21
fix:默认的nacos反脆弱插件的问题
floor07 Jan 10, 2024
f50384d
Merge remote-tracking branch 'origin/develop' into develop
floor07 Jan 10, 2024
d4f0194
Merge branch 'develop' into develop
floor07 Jan 10, 2024
f734215
fix:默认的nacos反脆弱插件的问题
floor07 Jan 10, 2024
30b3e42
fix:默认的nacos反脆弱插件的问题
floor07 Jan 10, 2024
6974c44
Merge branch 'alibaba:develop' into develop
floor07 Jan 10, 2024
6fff8b4
fix:默认的nacos反脆弱插件的问题
floor07 Jan 11, 2024
022589e
Merge remote-tracking branch 'origin/develop' into develop
floor07 Jan 11, 2024
b2562e8
Merge branch 'alibaba:develop' into develop
floor07 Jan 11, 2024
54066e8
fix:默认的nacos反脆弱插件的问题,调整为tryAdd
floor07 Jan 19, 2024
e2f301d
Merge branch 'develop' of https:/floor07/nacos into develop
floor07 Jan 19, 2024
e6c8b40
fix:默认的nacos反脆弱插件的问题,调整为tryAdd
floor07 Jan 26, 2024
a07b3a9
Merge branch 'alibaba:develop' into develop
floor07 Jan 30, 2024
b945f6a
Merge branch 'alibaba:develop' into develop
floor07 Feb 2, 2024
3bbc991
调整测试方式,保障流水线成功
floor07 Feb 5, 2024
fdde2ee
Merge branch 'develop' into develop
floor07 Feb 6, 2024
e58e23c
Merge branch 'alibaba:develop' into develop
floor07 Feb 6, 2024
9d386ce
Merge branch 'alibaba:develop' into develop
floor07 Feb 23, 2024
2b6ba0e
Merge branch 'alibaba:develop' into develop
floor07 Mar 6, 2024
fcfccd2
重构PageHandlerAdapterFactory,这里将handlerAdapters,handlerAdapterMap设置为un…
floor07 Mar 6, 2024
a68e215
重构PageHandlerAdapterFactory,这里将handlerAdapters,handlerAdapterMap设置为un…
floor07 Mar 6, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -24,61 +24,52 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Collections;
import java.util.function.Consumer;

/**
* pagination factory.
*
* @author huangKeMing
*/
public class PageHandlerAdapterFactory {

private static PageHandlerAdapterFactory instance;

private List<PageHandlerAdapter> handlerAdapters;

private Map<String, PageHandlerAdapter> handlerAdapterMap;


private final List<PageHandlerAdapter> handlerAdapters;

private final Map<String, PageHandlerAdapter> handlerAdapterMap;

public List<PageHandlerAdapter> getHandlerAdapters() {
return handlerAdapters;
}

public Map<String, PageHandlerAdapter> getHandlerAdapterMap() {
return handlerAdapterMap;
}

private PageHandlerAdapterFactory() {
handlerAdapters = new ArrayList<>(3);
handlerAdapterMap = new HashMap<>(3);
initHandlerAdapters();
}

public static PageHandlerAdapterFactory getInstance() {
if (instance == null) {
synchronized (PageHandlerAdapterFactory.class) {
if (instance == null) {
instance = new PageHandlerAdapterFactory();
}
}
}
return instance;
}

/**
* init handler adapters.
*/
private void initHandlerAdapters() {
List<PageHandlerAdapter> handlerAdapters = new ArrayList<>(3);
Map<String, PageHandlerAdapter> handlerAdapterMap = new HashMap<>(3);
Consumer<PageHandlerAdapter> addHandlerAdapter = handlerAdapter -> {
handlerAdapters.add(handlerAdapter);
handlerAdapterMap.put(handlerAdapter.getClass().getName(), handlerAdapter);
};
// MysqlPageHandlerAdapter
addHandlerAdapter(new MysqlPageHandlerAdapter());
addHandlerAdapter.accept(new MysqlPageHandlerAdapter());
// DerbyPageHandlerAdapter
addHandlerAdapter(new DerbyPageHandlerAdapter());
addHandlerAdapter.accept(new DerbyPageHandlerAdapter());
// DefaultPageHandlerAdapter
addHandlerAdapter(new DefaultPageHandlerAdapter());
addHandlerAdapter.accept(new DefaultPageHandlerAdapter());
this.handlerAdapters = Collections.unmodifiableList(handlerAdapters);
this.handlerAdapterMap = Collections.unmodifiableMap(handlerAdapterMap);
}

private static final class InstanceHolder {
static final PageHandlerAdapterFactory INSTANCE = new PageHandlerAdapterFactory();
}

private void addHandlerAdapter(PageHandlerAdapter handlerAdapter) {
handlerAdapters.add(handlerAdapter);
handlerAdapterMap.put(handlerAdapter.getClass().getName(), handlerAdapter);

public static PageHandlerAdapterFactory getInstance() {
return InstanceHolder.INSTANCE;
}

}

Loading