0,0 → 1,60 |
/* |
* Copyright 2013 Brian Rosenberger (Brutex Network) |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
|
package net.brutex.xservices.util.cache; |
|
import java.util.concurrent.ExecutorService; |
import java.util.concurrent.Executors; |
import java.util.concurrent.ThreadFactory; |
import javax.servlet.ServletContext; |
import javax.servlet.ServletContextEvent; |
import javax.servlet.ServletContextListener; |
|
/** |
* @author Brian Rosenberger, bru(at)brutex.de |
* |
*/ |
|
|
|
public class CacheExecutorService |
implements ServletContextListener |
{ |
static final String EXECUTOR_NAME = "CACHE_EXECUTOR"; |
private ExecutorService executor; |
|
public void contextInitialized(ServletContextEvent arg0) |
{ |
ServletContext context = arg0.getServletContext(); |
int nr_executors = 5; |
ThreadFactory daemonFactory = new DaemonThreadFactory(); |
try { |
nr_executors = Integer.parseInt(context.getInitParameter("cache:thread-count")); |
} catch (NumberFormatException localNumberFormatException) { |
} |
if (nr_executors <= 1) |
this.executor = Executors.newSingleThreadExecutor(daemonFactory); |
else { |
this.executor = Executors.newFixedThreadPool(nr_executors, daemonFactory); |
} |
context.setAttribute("CACHE_EXECUTOR", this.executor); |
} |
|
public void contextDestroyed(ServletContextEvent arg0) { |
ServletContext context = arg0.getServletContext(); |
this.executor.shutdownNow(); |
} |
} |
Property changes: |
Added: svn:mime-type |
+text/plain |
\ No newline at end of property |