You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2018/09/21 06:34:52 UTC
[isis] 01/01: Merge branch 'master' into v2
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git
commit a272909bbc035c69dae3a80770898408e0a80ec1
Merge: 9bd3e0c 74f60b8
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Sep 21 08:34:14 2018 +0200
Merge branch 'master' into v2
.gitlab-ci.yml | 3 ---
adocs/documentation/src/main/asciidoc/documentation.adoc | 5 +++++
.../java/org/apache/isis/tool/mavenplugin/IsisMojoAbstract.java | 4 ++++
.../org/apache/isis/core/runtime/threadpool/ThreadPoolSupport.java | 7 +++++--
4 files changed, 14 insertions(+), 5 deletions(-)
diff --cc core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/IsisMojoAbstract.java
index 1fc66b8,9ffb7aa..bec3b05
--- a/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/IsisMojoAbstract.java
+++ b/core/maven-plugin/src/main/java/org/apache/isis/tool/mavenplugin/IsisMojoAbstract.java
@@@ -51,9 -53,10 +53,11 @@@ public abstract class IsisMojoAbstract
protected IsisMojoAbstract() {
}
+ @Override
public void execute() throws MojoExecutionException, MojoFailureException {
+ new IsisLoggingConfigurer(Level.INFO).configureLogging(".", new String[]{});
+
final ContextForMojo context = new ContextForMojo(mavenProject, getLog());
final Plugin plugin = MavenProjects.lookupPlugin(mavenProject, CURRENT_PLUGIN_KEY);
diff --cc core/metamodel/src/main/java/org/apache/isis/core/runtime/threadpool/ThreadPoolSupport.java
index b99167e,87f162f..d3178c3
--- a/core/metamodel/src/main/java/org/apache/isis/core/runtime/threadpool/ThreadPoolSupport.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/runtime/threadpool/ThreadPoolSupport.java
@@@ -55,30 -47,43 +55,33 @@@ public final class ThreadPoolSupport im
private static final Logger LOG = LoggerFactory.getLogger(ThreadPoolSupport.class);
private final static int KEEP_ALIVE_TIME_SECS = 5;
- private final static int QUEUE_CAPACITY = 5000;
+ private final static int QUEUE_CAPACITY = Integer.MAX_VALUE;
+ private static final int MIN_CORE_POOL_SIZE = 4;
+ private static final int MIN_MAX_POOL_SIZE = 4;
+
private final ThreadGroup group;
private final ThreadPoolExecutor concurrentExecutor;
private final ThreadPoolExecutor sequentialExecutor;
- private static ThreadPoolSupport threadPoolSupport;
-
- public static synchronized ThreadPoolSupport getInstance() {
- if (threadPoolSupport == null) {
- threadPoolSupport = new ThreadPoolSupport();
- }
- return threadPoolSupport;
+ /**
+ * @return the application-scoped singleton ThreadPoolSupport instance
+ */
+ public static ThreadPoolSupport getInstance() {
+ return _Context.computeIfAbsent(ThreadPoolSupport.class, __-> new ThreadPoolSupport());
}
-
+
private ThreadPoolSupport() {
+
group = new ThreadGroup(ThreadPoolSupport.class.getName());
- final int corePoolSize = Runtime.getRuntime().availableProcessors();
- final int maximumPoolSize = Runtime.getRuntime().availableProcessors();
+ final int corePoolSize = Math.max(Runtime.getRuntime().availableProcessors(), MIN_CORE_POOL_SIZE);
+ final int maximumPoolSize = Math.max(Runtime.getRuntime().availableProcessors(), MIN_MAX_POOL_SIZE);
- ThreadFactory threadFactory = new ThreadFactory() {
- @Override
- public Thread newThread(final Runnable r) {
- return new Thread(group, r);
- }
- };
+ final ThreadFactory threadFactory = (Runnable r) -> new Thread(group, r);
- Supplier<BlockingQueue<Runnable>> workQueueFactory = new Supplier<BlockingQueue<Runnable>>() {
- @Override
- public BlockingQueue<Runnable> get() {
- return new LinkedBlockingQueue<>(QUEUE_CAPACITY);
- }
- };
+ final Supplier<BlockingQueue<Runnable>> workQueueFactory =
+ ()->new LinkedBlockingQueue<>(QUEUE_CAPACITY);
concurrentExecutor = new ThreadPoolExecutor(
corePoolSize,