diff --git a/arquillian/arquillian-openejb-embedded/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java b/arquillian/arquillian-openejb-embedded/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java index 018bda9cc11..b026607da65 100644 --- a/arquillian/arquillian-openejb-embedded/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java +++ b/arquillian/arquillian-openejb-embedded/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java @@ -312,29 +312,21 @@ private DeploymentInfo quickDeploy(final Archive archive, final TestClass tes for (final WebModule w : module.getWebModules()) { final String moduleId = w.getModuleId(); lightweightWebAppBuilder.setClassLoader(moduleId, w.getClassLoader()); - cls.add(new Closeable() { - @Override - public void close() throws IOException { - lightweightWebAppBuilder.removeClassLoader(moduleId); - } - }); + cls.add(() -> lightweightWebAppBuilder.removeClassLoader(moduleId)); } } final AppContext appCtx = assembler.createApplication(appInfo, module.getClassLoader()); if (isEmbeddedWebAppBuilder && PROPERTIES.containsKey(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE) && !appCtx.getWebContexts().isEmpty()) { - cls.add(new Closeable() { - @Override - public void close() throws IOException { - try { - final SessionManager sessionManager = SystemInstance.get().getComponent(SessionManager.class); - if (sessionManager != null) { - for (final WebContext web : appCtx.getWebContexts()) { - sessionManager.destroy(web); - } + cls.add(() -> { + try { + final SessionManager sessionManager = SystemInstance.get().getComponent(SessionManager.class); + if (sessionManager != null) { + for (final WebContext web : appCtx.getWebContexts()) { + sessionManager.destroy(web); } - } catch (final Throwable e) { - // no-op } + } catch (final Throwable e) { + // no-op } }); } diff --git a/arquillian/arquillian-openejb-embedded/src/main/java/org/apache/openejb/arquillian/openejb/cucumber/ArchiveResourceIteratorFactory.java b/arquillian/arquillian-openejb-embedded/src/main/java/org/apache/openejb/arquillian/openejb/cucumber/ArchiveResourceIteratorFactory.java index 8a9d74f891c..44f86e4858a 100644 --- a/arquillian/arquillian-openejb-embedded/src/main/java/org/apache/openejb/arquillian/openejb/cucumber/ArchiveResourceIteratorFactory.java +++ b/arquillian/arquillian-openejb-embedded/src/main/java/org/apache/openejb/arquillian/openejb/cucumber/ArchiveResourceIteratorFactory.java @@ -50,15 +50,12 @@ private Collection findResources(final String path, final String suffi final Collection> archives = SWClassLoader.class.cast(loader).getArchives(); final ClassLoader parent = loader.getParent(); for (final Archive archive : archives) { - final Map content = archive.getContent(new Filter() { - @Override - public boolean include(final ArchivePath object) { - final String currentPath = classloaderPath(object); + final Map content = archive.getContent(object -> { + final String currentPath = classloaderPath(object); - return !(parent != null && parent.getResource(currentPath) != null) - && currentPath.startsWith('/' + path) && currentPath.endsWith(suffix); + return !(parent != null && parent.getResource(currentPath) != null) + && currentPath.startsWith('/' + path) && currentPath.endsWith(suffix); - } }); for (final Map.Entry entry : content.entrySet()) { diff --git a/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/RemoteInitialContextObserver.java b/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/RemoteInitialContextObserver.java index 8885d4b7094..490aa3a6c8e 100644 --- a/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/RemoteInitialContextObserver.java +++ b/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/RemoteInitialContextObserver.java @@ -89,25 +89,13 @@ public MultipleContextHandler(final Properties props, final Context initialConte @Override public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable { Exception err = null; + // then contextual context, this can start an embedded container in some cases + // then existing context + // then try to create a remote context for (final Callable callable : Arrays.asList( // order is important to avoid to start an embedded container for some cases - new Callable() { // then try to create a remote context - @Override - public Context call() throws Exception { - return new InitialContext(properties); - } - }, - new Callable() { // then existing context - @Override - public Context call() throws Exception { - return context; - } - }, - new Callable() { // then contextual context, this can start an embedded container in some cases - @Override - public Context call() throws Exception { - return new InitialContext(); - } - } + () -> new InitialContext(properties), + (Callable) () -> context, + InitialContext::new )) { diff --git a/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/Setup.java b/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/Setup.java index dae0e8c36b9..8dd46946d92 100644 --- a/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/Setup.java +++ b/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/Setup.java @@ -427,12 +427,7 @@ public static Map addTomEELibraries(final File libFolder, final St if (trim.startsWith("remove:")) { // like mvn plugin, needed to use plus but switch something like the jpa provider final String prefix = trim.substring("remove:".length()); - final File[] children = libFolder.listFiles(new FilenameFilter() { - @Override - public boolean accept(final File dir, final String name) { - return name.startsWith(prefix); - } - }); + final File[] children = libFolder.listFiles((dir, name) -> name.startsWith(prefix)); if (children != null && children.length > 0) { for (final File child : children) { if (!IO.delete(child) && child.getName().endsWith(".jar")) { // try to rename it to have it ignored diff --git a/arquillian/ziplock/src/main/java/org/apache/ziplock/Archive.java b/arquillian/ziplock/src/main/java/org/apache/ziplock/Archive.java index 99a8c68647f..0f65597d109 100644 --- a/arquillian/ziplock/src/main/java/org/apache/ziplock/Archive.java +++ b/arquillian/ziplock/src/main/java/org/apache/ziplock/Archive.java @@ -181,12 +181,7 @@ private HashMap entries() { } private String buildManifest() { - return Join.join("\r\n", new Join.NameCallback>() { - @Override - public String getName(final Map.Entry entry) { - return entry.getKey() + ": " + entry.getValue(); - } - }, manifest.entrySet()); + return Join.join("\r\n", entry -> entry.getKey() + ": " + entry.getValue(), manifest.entrySet()); } } diff --git a/arquillian/ziplock/src/main/java/org/apache/ziplock/Files.java b/arquillian/ziplock/src/main/java/org/apache/ziplock/Files.java index a264bd99a68..aeb811cb9c4 100644 --- a/arquillian/ziplock/src/main/java/org/apache/ziplock/Files.java +++ b/arquillian/ziplock/src/main/java/org/apache/ziplock/Files.java @@ -33,12 +33,7 @@ public static List collect(final File dir, final String regex) { } public static List collect(final File dir, final Pattern pattern) { - return collect(dir, new FileFilter() { - @Override - public boolean accept(final File file) { - return pattern.matcher(file.getName()).matches(); - } - }); + return collect(dir, file -> pattern.matcher(file.getName()).matches()); } @@ -126,18 +121,15 @@ public static File mkdir(final File file) { final ClassLoader loader = Thread.currentThread().getContextClassLoader(); Thread.currentThread().setContextClassLoader(Files.class.getClassLoader()); try { - final Thread deleteShutdownHook = new Thread() { - @Override - public void run() { - for (final String path : delete) { - try { - remove(new File(path)); - } catch (final Throwable e) { - System.err.println(e.getMessage()); - } + final Thread deleteShutdownHook = new Thread(() -> { + for (final String path : delete) { + try { + remove(new File(path)); + } catch (final Throwable e) { + System.err.println(e.getMessage()); } } - }; + }); try { Runtime.getRuntime().addShutdownHook(deleteShutdownHook); } catch (final Throwable e) { diff --git a/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/PreloadableTestWar.java b/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/PreloadableTestWar.java index 3efd310e36c..aa8386d5d76 100644 --- a/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/PreloadableTestWar.java +++ b/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/PreloadableTestWar.java @@ -28,12 +28,7 @@ public final class PreloadableTestWar { static { final ExecutorService es = Executors.newSingleThreadExecutor(); - war = es.submit(new Callable>() { - @Override - public Archive call() throws Exception { - return Mvn.testWar(); - } - }); + war = es.submit(Mvn::testWar); es.shutdown(); } diff --git a/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/PreloadableWar.java b/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/PreloadableWar.java index ca8f5bbb185..f26553a79cc 100644 --- a/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/PreloadableWar.java +++ b/arquillian/ziplock/src/main/java/org/apache/ziplock/maven/PreloadableWar.java @@ -28,12 +28,7 @@ public final class PreloadableWar { static { final ExecutorService es = Executors.newSingleThreadExecutor(); - war = es.submit(new Callable>() { - @Override - public Archive call() throws Exception { - return Mvn.war(); - } - }); + war = es.submit(Mvn::war); es.shutdown(); } diff --git a/container/openejb-core/src/main/java/org/apache/openejb/ClassLoaderUtil.java b/container/openejb-core/src/main/java/org/apache/openejb/ClassLoaderUtil.java index 79fc6824aed..b086225a962 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/ClassLoaderUtil.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/ClassLoaderUtil.java @@ -73,13 +73,7 @@ public static void destroyClassLoader(final String appId, final String appPath) } public static ClassLoader getContextClassLoader() { - return AccessController.doPrivileged(new PrivilegedAction() { - - @Override - public ClassLoader run() { - return Thread.currentThread().getContextClassLoader(); - } - }); + return AccessController.doPrivileged((PrivilegedAction) () -> Thread.currentThread().getContextClassLoader()); } public static File getUrlCachedName(final String appId, final URL url) { diff --git a/container/openejb-core/src/main/java/org/apache/openejb/Core.java b/container/openejb-core/src/main/java/org/apache/openejb/Core.java index e76ca684596..495f7297b6c 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/Core.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/Core.java @@ -27,26 +27,20 @@ */ public class Core { static { - final Thread preloadMessages = new Thread() { - @Override - public void run() { - new Messages("org.apache.openejb.util.resources"); - new Messages("org.apache.openejb.config"); - new Messages("org.apache.openejb.config.resources"); - } - }; + final Thread preloadMessages = new Thread(() -> { + new Messages("org.apache.openejb.util.resources"); + new Messages("org.apache.openejb.config"); + new Messages("org.apache.openejb.config.resources"); + }); preloadMessages.start(); - final Thread preloadServiceProviders = new Thread() { - @Override - public void run() { - try { - ServiceUtils.getServiceProviders(); - } catch (final OpenEJBException e) { - // no-op - } + final Thread preloadServiceProviders = new Thread(() -> { + try { + ServiceUtils.getServiceProviders(); + } catch (final OpenEJBException e) { + // no-op } - }; + }); preloadServiceProviders.start(); final int permits = 2 * Runtime.getRuntime().availableProcessors() + 1; diff --git a/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java b/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java index 56d41d83f07..17193dad4bf 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java @@ -286,14 +286,11 @@ public EJBContainer createEJBContainer(Map map) { //Single close if (isSingleClose()) { - Runtime.getRuntime().addShutdownHook(new Thread() { - @Override - public void run() { - if (instance != null) { - instance.doClose(); - } + Runtime.getRuntime().addShutdownHook(new Thread(() -> { + if (instance != null) { + instance.doClose(); } - }); + })); } return openEjbContainer; diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java index 00ee7daeee0..0ea9e8a0a26 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java @@ -1856,13 +1856,10 @@ private static List sort(List deployments) { // Sort all the singletons to the back of the list. We want to make sure // all non-singletons are created first so that if a singleton refers to them // they are available. - deployments.sort(new Comparator() { - @Override - public int compare(final BeanContext a, final BeanContext b) { - final int aa = a.getComponentType() == BeanType.SINGLETON ? 1 : 0; - final int bb = b.getComponentType() == BeanType.SINGLETON ? 1 : 0; - return aa - bb; - } + deployments.sort((a, b) -> { + final int aa = a.getComponentType() == BeanType.SINGLETON ? 1 : 0; + final int bb = b.getComponentType() == BeanType.SINGLETON ? 1 : 0; + return aa - bb; }); // Sort all the beans with references to the back of the list. Beans @@ -1882,13 +1879,10 @@ public Set getReferences(final BeanContext t) { // Now Sort all the MDBs to the back of the list. The Resource Adapter // may attempt to use the MDB on endpointActivation and the MDB may have // references to other ejbs that would need to be available first. - deployments.sort(new Comparator() { - @Override - public int compare(final BeanContext a, final BeanContext b) { - final int aa = a.getComponentType() == BeanType.MESSAGE_DRIVEN ? 1 : 0; - final int bb = b.getComponentType() == BeanType.MESSAGE_DRIVEN ? 1 : 0; - return aa - bb; - } + deployments.sort((a, b) -> { + final int aa = a.getComponentType() == BeanType.MESSAGE_DRIVEN ? 1 : 0; + final int bb = b.getComponentType() == BeanType.MESSAGE_DRIVEN ? 1 : 0; + return aa - bb; }); return deployments; @@ -2048,12 +2042,7 @@ private void destroyResource(final String name, final String className, final Ob final ExecutorService es = Executors.newSingleThreadExecutor(new DaemonThreadFactory("openejb-resource-destruction-" + name)); final Object o = object; try { - es.submit(new Runnable() { - @Override - public void run() { - doResourceDestruction(name, className, o); - } - }).get(d.getTime(), d.getUnit()); + es.submit(() -> doResourceDestruction(name, className, o)).get(d.getTime(), d.getUnit()); } catch (final InterruptedException e) { Thread.interrupted(); } catch (final ExecutionException e) { @@ -3055,24 +3044,21 @@ private boolean usesCdiPwdCipher(final ResourceInfo serviceInfo) { } private LazyResource newLazyResource(final Collection infos, final ResourceInfo serviceInfo) { - return new LazyResource(new Callable() { - @Override - public Object call() throws Exception { - final boolean appClassLoader = "true".equals(serviceInfo.properties.remove("UseAppClassLoader")) - || serviceInfo.originAppName != null; + return new LazyResource(() -> { + final boolean appClassLoader = "true".equals(serviceInfo.properties.remove("UseAppClassLoader")) + || serviceInfo.originAppName != null; - final Thread thread = Thread.currentThread(); - final ClassLoader old = thread.getContextClassLoader(); - if (!appClassLoader) { - final ClassLoader classLoader = Assembler.class.getClassLoader(); - thread.setContextClassLoader(classLoader == null ? ClassLoader.getSystemClassLoader() : classLoader); - } // else contextually we should have the app loader + final Thread thread = Thread.currentThread(); + final ClassLoader old = thread.getContextClassLoader(); + if (!appClassLoader) { + final ClassLoader classLoader = Assembler.class.getClassLoader(); + thread.setContextClassLoader(classLoader == null ? ClassLoader.getSystemClassLoader() : classLoader); + } // else contextually we should have the app loader - try { - return doCreateResource(infos, serviceInfo); - } finally { - thread.setContextClassLoader(old); - } + try { + return doCreateResource(infos, serviceInfo); + } finally { + thread.setContextClassLoader(old); } }); } diff --git a/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java b/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java index 6c155cf9cb8..7c7cbe68b53 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java @@ -43,12 +43,7 @@ public class CdiAppContextsService extends WebContextsService implements Context private static final Logger logger = Logger.getInstance(LogCategory.OPENEJB.createChild("cdi"), CdiAppContextsService.class); - private static final ThreadLocal> endRequestRunnables = new ThreadLocal>() { - @Override - protected Collection initialValue() { - return new ArrayList<>(); - } - }; + private static final ThreadLocal> endRequestRunnables = ThreadLocal.withInitial(ArrayList::new); public CdiAppContextsService(final WebBeansContext wbc) { diff --git a/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java b/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java index 10a7257dc22..b9d506be5a5 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java @@ -263,14 +263,11 @@ public Object getSessionBeanProxy(final Bean inBean, final Class interfce, } try { - instance = ProxyManager.newProxyInstance(interfaces.toArray(new Class[interfaces.size()]), new InvocationHandler() { - @Override - public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable { - try { - return method.invoke(provider.get(), args); - } catch (final InvocationTargetException ite) { - throw ite.getCause(); - } + instance = ProxyManager.newProxyInstance(interfaces.toArray(new Class[interfaces.size()]), (proxy, method, args) -> { + try { + return method.invoke(provider.get(), args); + } catch (final InvocationTargetException ite) { + throw ite.getCause(); } }); } catch (final IllegalAccessException e) { diff --git a/container/openejb-core/src/main/java/org/apache/openejb/cli/Bootstrap.java b/container/openejb-core/src/main/java/org/apache/openejb/cli/Bootstrap.java index 1b5ca527b3b..ad4ecd41684 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/cli/Bootstrap.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/cli/Bootstrap.java @@ -156,12 +156,7 @@ private static void addJarsToPath(final BasicURLClassPath.CustomizableURLClassLo return; } - final File[] jarFiles = folder.listFiles(new FilenameFilter() { - @Override - public boolean accept(File dir, String name) { - return name.endsWith(".jar"); - } - }); + final File[] jarFiles = folder.listFiles((dir, name) -> name.endsWith(".jar")); for (final File jarFile : jarFiles) { classLoader.add(jarFile.toURI().toURL()); diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java b/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java index 17aed84e78d..6760f84b8cc 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java @@ -5765,32 +5765,17 @@ public String getName() { } public static List>> sortClasses(final List>> list) { - list.sort(new Comparator>>() { - @Override - public int compare(final Annotated> o1, final Annotated> o2) { - return compareClasses(o1.get(), o2.get()); - } - }); + list.sort((o1, o2) -> compareClasses(o1.get(), o2.get())); return list; } public static List> sortClassesParentFirst(final List> list) { - list.sort(new Comparator>() { - @Override - public int compare(final Class o1, final Class o2) { - return compareClasses(o2, o1); - } - }); + list.sort((o1, o2) -> compareClasses(o2, o1)); return list; } public static List> sortMethods(final List> list) { - list.sort(new Comparator>() { - @Override - public int compare(final Annotated o1, final Annotated o2) { - return compareClasses(o1.get().getDeclaringClass(), o2.get().getDeclaringClass()); - } - }); + list.sort((o1, o2) -> compareClasses(o1.get().getDeclaringClass(), o2.get().getDeclaringClass())); return list; } diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java b/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java index bd5f93de560..aa45a38b585 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java @@ -2079,19 +2079,17 @@ private String firstMatching(final String prefix, final String type, final Prope return null; } - return Collections.min(resourceIds, new Comparator() { // sort from webapp to global resources - @Override - public int compare(final String o1, final String o2) { // don't change global order, just put app scoped resource before others - if (o1.startsWith(prefix) && o2.startsWith(prefix)) { - return resourceIds.indexOf(o1) - resourceIds.indexOf(o2); - } else if (o1.startsWith(prefix)) { - return -1; - } else if (o2.startsWith(prefix)) { - return 1; - } - // make it stable with prefixed comparison + keep existing ordering (bck compat) + // sort from webapp to global resources + return Collections.min(resourceIds, (o1, o2) -> { // don't change global order, just put app scoped resource before others + if (o1.startsWith(prefix) && o2.startsWith(prefix)) { return resourceIds.indexOf(o1) - resourceIds.indexOf(o2); + } else if (o1.startsWith(prefix)) { + return -1; + } else if (o2.startsWith(prefix)) { + return 1; } + // make it stable with prefixed comparison + keep existing ordering (bck compat) + return resourceIds.indexOf(o1) - resourceIds.indexOf(o2); }); } diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java b/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java index 164b054588c..b0ef7e8b0b5 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java @@ -154,14 +154,11 @@ private static void loadFromDir(final Deployments dep, final FileUtils path, fin Files.notHidden(dir); final Map files = new LinkedHashMap<>(); - final File[] list = dir.listFiles(new FileFilter() { - @Override - public boolean accept(final File f) { - if (f.isDirectory()) { - return DeploymentsResolver.isValidDirectory(f) && !DeploymentsResolver.isExtractedDir(f); - } - return true; + final File[] list = dir.listFiles(f -> { + if (f.isDirectory()) { + return DeploymentsResolver.isValidDirectory(f) && !DeploymentsResolver.isExtractedDir(f); } + return true; }); if (list != null) { diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java b/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java index 48b13ffdff1..e0b1e3cc1bb 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java @@ -244,32 +244,17 @@ public static void addAdditionalCustomFilter(final Filter excluded, final Filter if (excluded != null && included != null) { synchronized (NewLoaderLogic.class) { final Filter builtIn = new OptimizedExclusionFilter(getExclusions()); - NewLoaderLogic.filter = new Filter() { - @Override - public boolean accept(final String name) { - return !included.accept(name) && (builtIn.accept(name) || excluded.accept(name)); - } - }; + NewLoaderLogic.filter = name -> !included.accept(name) && (builtIn.accept(name) || excluded.accept(name)); } } else if (excluded != null) { synchronized (NewLoaderLogic.class) { final Filter builtIn = new OptimizedExclusionFilter(getExclusions()); - NewLoaderLogic.filter = new Filter() { - @Override - public boolean accept(final String name) { - return builtIn.accept(name) || excluded.accept(name); - } - }; + NewLoaderLogic.filter = name -> builtIn.accept(name) || excluded.accept(name); } } else if (included != null) { synchronized (NewLoaderLogic.class) { final Filter builtIn = new OptimizedExclusionFilter(getExclusions()); - NewLoaderLogic.filter = new Filter() { - @Override - public boolean accept(final String name) { - return !included.accept(name) && builtIn.accept(name); - } - }; + NewLoaderLogic.filter = name -> !included.accept(name) && builtIn.accept(name); } } diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java b/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java index a979b85ef7c..1a2552b3b13 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java @@ -423,19 +423,16 @@ private void cmd(final List additionalArgs, final String cmd, final bool private void waitFor(final Process p) { final CountDownLatch latch = new CountDownLatch(1); - final Thread t = new Thread(new Runnable() { - @Override - public void run() { - try { - p.waitFor(); - synchronized (kill) { - kill.remove(p); - } - } catch (final InterruptedException e) { - Thread.interrupted(); - } finally { - latch.countDown(); + final Thread t = new Thread(() -> { + try { + p.waitFor(); + synchronized (kill) { + kill.remove(p); } + } catch (final InterruptedException e) { + Thread.interrupted(); + } finally { + latch.countDown(); } }, "process-waitFor"); diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/TldScanner.java b/container/openejb-core/src/main/java/org/apache/openejb/config/TldScanner.java index 730ebd19a53..29ee0453c61 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/config/TldScanner.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/config/TldScanner.java @@ -152,12 +152,7 @@ public static Set scanClassLoaderForTagLibs(final ClassLoader classLoader) continue; } - futures.add(es.submit(new Callable>() { - @Override - public Set call() throws Exception { - return scanForTagLibs(file); - } - })); + futures.add(es.submit(() -> scanForTagLibs(file))); } es.shutdown(); @@ -199,12 +194,7 @@ static Set scanWarForTagLibs(final File war) { final File webInfMetaInf = new File(webInfDir, "classes/META-INF"); if (webInfMetaInf.exists()) { // filter directly to let it be faster in next loop - files.addAll(asList(webInfMetaInf.listFiles(new FilenameFilter() { - @Override - public boolean accept(final File dir, final String name) { - return name.endsWith(".tld"); - } - }))); + files.addAll(asList(webInfMetaInf.listFiles((dir, name) -> name.endsWith(".tld")))); } if (files.isEmpty()) { diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/jpa/JpaCmpEngine.java b/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/jpa/JpaCmpEngine.java index b162bbc75c2..329ea757a95 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/jpa/JpaCmpEngine.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/jpa/JpaCmpEngine.java @@ -66,11 +66,7 @@ public class JpaCmpEngine implements CmpEngine { /** * Thread local to track the beans we are creating to avoid an extra ejbStore callback */ - private final ThreadLocal> creating = new ThreadLocal>() { - protected Set initialValue() { - return new HashSet<>(); - } - }; + private final ThreadLocal> creating = ThreadLocal.withInitial(HashSet::new); /** * Listener added to entity managers. diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntrancyTracker.java b/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntrancyTracker.java index 72da0f22a34..6ce87bb7692 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntrancyTracker.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntrancyTracker.java @@ -27,14 +27,10 @@ public class EntrancyTracker { /** - * Thread local used to track the insances in the current call stack so we can determine if an nonreentrant + * Thread local used to track the instances in the current call stack so we can determine if a non-reentrant * instance is being reentered. */ - private final ThreadLocal> inCallThreadLocal = new ThreadLocal>() { - protected Set initialValue() { - return new HashSet<>(); - } - }; + private final ThreadLocal> inCallThreadLocal = ThreadLocal.withInitial(HashSet::new); private final TransactionSynchronizationRegistry synchronizationRegistry; diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java b/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java index fdbd3ed7c08..307b89e9955 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java @@ -309,15 +309,12 @@ protected Object homeMethod(final Class interfce, final Method method, final Obj return beanContext.getModuleContext() .getAppContext() .getAsynchronousPool() - .invoke(new CUCallable(new Callable() { - @Override - public Object call() throws Exception { - try { - return homeMethodInvoke(interfce, method, args); - } catch (final ApplicationException ae) { - logger.error("EjbHomeProxyHandler: Asynchronous call to '" + interfce.getSimpleName() + "' on '" + method.getName() + "' failed", ae); - throw ae; - } + .invoke(new CUCallable((Callable) () -> { + try { + return homeMethodInvoke(interfce, method, args); + } catch (final ApplicationException ae) { + logger.error("EjbHomeProxyHandler: Asynchronous call to '" + interfce.getSimpleName() + "' on '" + method.getName() + "' failed", ae); + throw ae; } }), method.getReturnType() == Void.TYPE); } else { diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbObjectProxyHandler.java b/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbObjectProxyHandler.java index 22f8c974199..07ceed9d16c 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbObjectProxyHandler.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbObjectProxyHandler.java @@ -245,15 +245,12 @@ protected Object businessMethod(final Class interfce, final Method method, fi return beanContext.getModuleContext() .getAppContext() .getAsynchronousPool() - .invoke(new CUCallable(new Callable() { - @Override - public Object call() throws Exception { - try { - return synchronizedBusinessMethod(interfce, method, args); - } catch (final ApplicationException ae) { - logger.error("EjbObjectProxyHandler: Asynchronous call to '" + interfce.getSimpleName() + "' on '" + method.getName() + "' failed", ae); - throw ae; - } + .invoke(new CUCallable((Callable) () -> { + try { + return synchronizedBusinessMethod(interfce, method, args); + } catch (final ApplicationException ae) { + logger.error("EjbObjectProxyHandler: Asynchronous call to '" + interfce.getSimpleName() + "' on '" + method.getName() + "' failed", ae); + throw ae; } }), method.getReturnType() == Void.TYPE); } else { diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/IntraVmArtifact.java b/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/IntraVmArtifact.java index 8c31c33ea65..a54814f1459 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/IntraVmArtifact.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/IntraVmArtifact.java @@ -40,11 +40,7 @@ public synchronized Object get(final int id) { } }; - private static final ThreadLocal threadHandles = new ThreadLocal() { - protected Handles initialValue() { - return new Handles(); - } - }; + private static final ThreadLocal threadHandles = ThreadLocal.withInitial(Handles::new); // todo why not put in message catalog? private static final String NO_ARTIFACT_ERROR = "The artifact this object represents could not be found."; diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/ContextualJndiReference.java b/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/ContextualJndiReference.java index f8da6b98d7d..474a89fa85a 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/ContextualJndiReference.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/ContextualJndiReference.java @@ -32,12 +32,7 @@ import java.util.concurrent.CopyOnWriteArrayList; public class ContextualJndiReference extends IntraVmJndiReference { - public static final ThreadLocal followReference = new ThreadLocal() { - @Override - public Boolean initialValue() { - return true; - } - }; + public static final ThreadLocal followReference = ThreadLocal.withInitial(() -> true); private Object defaultValue; private final List prefixes = new CopyOnWriteArrayList<>(); diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/managed/ManagedContainer.java b/container/openejb-core/src/main/java/org/apache/openejb/core/managed/ManagedContainer.java index ad7328b5d64..95de6136d85 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/core/managed/ManagedContainer.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/core/managed/ManagedContainer.java @@ -272,12 +272,7 @@ public synchronized void undeploy(final BeanContext bean) throws OpenEJBExceptio bean.setContainer(null); bean.setContainerData(null); - cache.removeAll(new CacheFilter() { - @Override - public boolean matches(final Instance instance) { - return bean == instance.beanContext; - } - }); + cache.removeAll(instance -> bean == instance.beanContext); } @Override diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbInstanceManager.java b/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbInstanceManager.java index c0f1fd56cb7..8d1ea80ba2b 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbInstanceManager.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbInstanceManager.java @@ -145,21 +145,18 @@ public MdbInstanceManager(final SecurityService securityService, callbackThreads, callbackThreads * 2, 1L, TimeUnit.MINUTES, new LinkedBlockingQueue<>(qsize), threadFactory); - this.executor.setRejectedExecutionHandler(new RejectedExecutionHandler() { - @Override - public void rejectedExecution(final Runnable r, final ThreadPoolExecutor tpe) { + this.executor.setRejectedExecutionHandler((r, tpe) -> { - if (null == r || null == tpe || tpe.isShutdown() || tpe.isTerminated() || tpe.isTerminating()) { - return; - } + if (null == r || null == tpe || tpe.isShutdown() || tpe.isTerminated() || tpe.isTerminating()) { + return; + } - try { - if (!tpe.getQueue().offer(r, 20, TimeUnit.SECONDS)) { - logger.warning("Executor failed to run asynchronous process: " + r); - } - } catch (final InterruptedException e) { - //Ignore + try { + if (!tpe.getQueue().offer(r, 20, TimeUnit.SECONDS)) { + logger.warning("Executor failed to run asynchronous process: " + r); } + } catch (final InterruptedException e) { + //Ignore } }); diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/security/JaccProvider.java b/container/openejb-core/src/main/java/org/apache/openejb/core/security/JaccProvider.java index 1905eb680a7..4a4cf0a55ee 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/core/security/JaccProvider.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/core/security/JaccProvider.java @@ -69,17 +69,15 @@ public static void install() throws ClassNotFoundException, PolicyContextExcepti final String[] factoryClassName = {null}; try { - jaccProvider = (JaccProvider) AccessController.doPrivileged(new PrivilegedExceptionAction() { - public Object run() throws Exception { - factoryClassName[0] = System.getProperty(FACTORY_NAME); - - if (factoryClassName[0] == null) { - throw new ClassNotFoundException("Property " + FACTORY_NAME + " not set"); - } - final Thread currentThread = Thread.currentThread(); - final ClassLoader tccl = currentThread.getContextClassLoader(); - return Class.forName(factoryClassName[0], true, tccl).newInstance(); + jaccProvider = (JaccProvider) AccessController.doPrivileged((PrivilegedExceptionAction) () -> { + factoryClassName[0] = System.getProperty(FACTORY_NAME); + + if (factoryClassName[0] == null) { + throw new ClassNotFoundException("Property " + FACTORY_NAME + " not set"); } + final Thread currentThread = Thread.currentThread(); + final ClassLoader tccl = currentThread.getContextClassLoader(); + return Class.forName(factoryClassName[0], true, tccl).newInstance(); }); } catch (final PrivilegedActionException pae) { if (pae.getException() instanceof ClassNotFoundException) { diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/singleton/SingletonInstanceManager.java b/container/openejb-core/src/main/java/org/apache/openejb/core/singleton/SingletonInstanceManager.java index 002ef250588..3d15feaa1fb 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/core/singleton/SingletonInstanceManager.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/core/singleton/SingletonInstanceManager.java @@ -115,11 +115,7 @@ public Instance getInstance(final ThreadContext callContext) throws OpenEJBExcep // The singleton has not been created nor is being created // We will construct this FutureTask and compete with the // other threads for the right to create the singleton - final FutureTask task = new FutureTask(new Callable() { - public Instance call() throws Exception { - return createInstance(callContext, beanContext); - } - }); + final FutureTask task = new FutureTask(() -> createInstance(callContext, beanContext)); do { // If our FutureTask was the one to win the slot diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/SimpleCache.java b/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/SimpleCache.java index ea151a5004f..561ba64e576 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/SimpleCache.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/SimpleCache.java @@ -122,12 +122,10 @@ public synchronized void destroy() { private synchronized void initScheduledExecutorService() { if (executor == null) { - executor = Executors.newScheduledThreadPool(1, new ThreadFactory() { - public Thread newThread(final Runnable runable) { - final Thread t = new Thread(runable, "Stateful cache"); - t.setDaemon(true); - return t; - } + executor = Executors.newScheduledThreadPool(1, runable -> { + final Thread t = new Thread(runable, "Stateful cache"); + t.setDaemon(true); + return t; }); } } diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessInstanceManager.java b/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessInstanceManager.java index 151eb8ba4f0..a728f503d09 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessInstanceManager.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessInstanceManager.java @@ -118,21 +118,18 @@ public StatelessInstanceManager(final SecurityService securityService, callbackThreads, callbackThreads * 2, 1L, TimeUnit.MINUTES, new LinkedBlockingQueue<>(qsize), threadFactory); - this.executor.setRejectedExecutionHandler(new RejectedExecutionHandler() { - @Override - public void rejectedExecution(final Runnable r, final ThreadPoolExecutor tpe) { + this.executor.setRejectedExecutionHandler((r, tpe) -> { - if (null == r || null == tpe || tpe.isShutdown() || tpe.isTerminated() || tpe.isTerminating()) { - return; - } + if (null == r || null == tpe || tpe.isShutdown() || tpe.isTerminated() || tpe.isTerminating()) { + return; + } - try { - if (!tpe.getQueue().offer(r, 20, TimeUnit.SECONDS)) { - logger.warning("Executor failed to run asynchronous process: " + r); - } - } catch (final InterruptedException e) { - //Ignore + try { + if (!tpe.getQueue().offer(r, 20, TimeUnit.SECONDS)) { + logger.warning("Executor failed to run asynchronous process: " + r); } + } catch (final InterruptedException e) { + //Ignore } }); } @@ -500,12 +497,7 @@ private Data(final Pool pool, final Duration accessTimeout, final Dura this.pool = pool; this.accessTimeout = accessTimeout; this.closeTimeout = closeTimeout; - this.sessionContext = new StatelessContext(securityService, new Flushable() { - @Override - public void flush() throws IOException { - getPool().flush(); - } - }); + this.sessionContext = new StatelessContext(securityService, () -> getPool().flush()); } public Duration getAccessTimeout() { diff --git a/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java b/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java index e1c90504357..4ec1732c359 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java @@ -40,11 +40,7 @@ public ApplicationComposer(final Class klass) throws InitializationError { @Override protected List rules(final Object test) { final List rules = super.rules(test); - rules.add(new MethodRule() { - public Statement apply(final Statement base, final FrameworkMethod method, final Object target) { - return new DeployApplication(target, base, delegate); - } - }); + rules.add((base, method, target) -> new DeployApplication(target, base, delegate)); return rules; } } diff --git a/container/openejb-core/src/main/java/org/apache/openejb/junit/DeployApplication.java b/container/openejb-core/src/main/java/org/apache/openejb/junit/DeployApplication.java index 74d41c9fa37..f3c00c40e1e 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/junit/DeployApplication.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/junit/DeployApplication.java @@ -37,21 +37,18 @@ public DeployApplication(final Object testInstance, final Statement next, final @Override public void evaluate() throws Throwable { - delegate.evaluate(testInstance, new Callable() { - @Override - public Void call() throws Exception { - try { - next.evaluate(); - } catch (final Error e) { - throw e; - } catch (final Throwable throwable) { - if (throwable instanceof Exception) { - throw (Exception) throwable; - } - throw new OpenEJBRuntimeException("Failed test evaluation", throwable); + delegate.evaluate(testInstance, (Callable) () -> { + try { + next.evaluate(); + } catch (final Error e) { + throw e; + } catch (final Throwable throwable) { + if (throwable instanceof Exception) { + throw (Exception) throwable; } - return null; + throw new OpenEJBRuntimeException("Failed test evaluation", throwable); } + return null; }); } } diff --git a/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManagerRegistry.java b/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManagerRegistry.java index 5b862fe469b..976438aa2b6 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManagerRegistry.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaEntityManagerRegistry.java @@ -51,11 +51,7 @@ public class JtaEntityManagerRegistry { /** * Registry of extended context entity managers. */ - private final ThreadLocal extendedRegistry = new ThreadLocal() { - protected ExtendedRegistry initialValue() { - return new ExtendedRegistry(); - } - }; + private final ThreadLocal extendedRegistry = ThreadLocal.withInitial(ExtendedRegistry::new); /** * Creates a JtaEntityManagerRegistry using the specified transactionSynchronizationRegistry for the registry diff --git a/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaQuery.java b/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaQuery.java index 88496a39c73..a7e2e6a273c 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaQuery.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/persistence/JtaQuery.java @@ -123,12 +123,7 @@ public int executeUpdate() { public Query setMaxResults(final int i) { query.setMaxResults(i); if (!underTx) { - appliedOperations.add(new QueryOperation() { - @Override - public Query apply(final Query query) { - return query.setMaxResults(i); - } - }); + appliedOperations.add(query -> query.setMaxResults(i)); } return this; } @@ -136,12 +131,7 @@ public Query apply(final Query query) { public Query setFirstResult(final int i) { query.setFirstResult(i); if (!underTx) { - appliedOperations.add(new QueryOperation() { - @Override - public Query apply(final Query query) { - return query.setFirstResult(i); - } - }); + appliedOperations.add(query -> query.setFirstResult(i)); } return this; } @@ -149,12 +139,7 @@ public Query apply(final Query query) { public Query setFlushMode(final FlushModeType flushModeType) { query.setFlushMode(flushModeType); if (!underTx) { - appliedOperations.add(new QueryOperation() { - @Override - public Query apply(final Query query) { - return query.setFlushMode(flushModeType); - } - }); + appliedOperations.add(query -> query.setFlushMode(flushModeType)); } return this; } @@ -162,12 +147,7 @@ public Query apply(final Query query) { public Query setHint(final String s, final Object o) { query.setHint(s, o); if (!underTx) { - appliedOperations.add(new QueryOperation() { - @Override - public Query apply(final Query query) { - return query.setHint(s, o); - } - }); + appliedOperations.add(query -> query.setHint(s, o)); } return this; } @@ -175,12 +155,7 @@ public Query apply(final Query query) { public Query setParameter(final String s, final Object o) { query.setParameter(s, o); if (!underTx) { - appliedOperations.add(new QueryOperation() { - @Override - public Query apply(final Query query) { - return query.setParameter(s, o); - } - }); + appliedOperations.add(query -> query.setParameter(s, o)); } return this; } @@ -188,12 +163,7 @@ public Query apply(final Query query) { public Query setParameter(final String s, final Date date, final TemporalType temporalType) { query.setParameter(s, date, temporalType); if (!underTx) { - appliedOperations.add(new QueryOperation() { - @Override - public Query apply(final Query query) { - return query.setParameter(s, date, temporalType); - } - }); + appliedOperations.add(query -> query.setParameter(s, date, temporalType)); } return this; } @@ -201,12 +171,7 @@ public Query apply(final Query query) { public Query setParameter(final String s, final Calendar calendar, final TemporalType temporalType) { query.setParameter(s, calendar, temporalType); if (!underTx) { - appliedOperations.add(new QueryOperation() { - @Override - public Query apply(final Query query) { - return query.setParameter(s, calendar, temporalType); - } - }); + appliedOperations.add(query -> query.setParameter(s, calendar, temporalType)); } return this; } @@ -214,12 +179,7 @@ public Query apply(final Query query) { public Query setParameter(final int i, final Object o) { query.setParameter(i, o); if (!underTx) { - appliedOperations.add(new QueryOperation() { - @Override - public Query apply(final Query query) { - return query.setParameter(i, o); - } - }); + appliedOperations.add(query -> query.setParameter(i, o)); } return this; } @@ -227,12 +187,7 @@ public Query apply(final Query query) { public Query setParameter(final int i, final Date date, final TemporalType temporalType) { query.setParameter(i, date, temporalType); if (!underTx) { - appliedOperations.add(new QueryOperation() { - @Override - public Query apply(final Query query) { - return query.setParameter(i, date, temporalType); - } - }); + appliedOperations.add(query -> query.setParameter(i, date, temporalType)); } return this; } @@ -240,12 +195,7 @@ public Query apply(final Query query) { public Query setParameter(final int i, final Calendar calendar, final TemporalType temporalType) { query.setParameter(i, calendar, temporalType); if (!underTx) { - appliedOperations.add(new QueryOperation() { - @Override - public Query apply(final Query query) { - return query.setParameter(i, calendar, temporalType); - } - }); + appliedOperations.add(query -> query.setParameter(i, calendar, temporalType)); } return this; } @@ -378,12 +328,7 @@ public boolean isBound(final Parameter param) { */ public Query setLockMode(final LockModeType lockMode) { if (!underTx) { - appliedOperations.add(new QueryOperation() { - @Override - public Query apply(final Query query) { - return query.setLockMode(lockMode); - } - }); + appliedOperations.add(query -> query.setLockMode(lockMode)); } return query.setLockMode(lockMode); } @@ -393,12 +338,7 @@ public Query apply(final Query query) { */ public Query setParameter(final Parameter param, final T value) { if (!underTx) { - appliedOperations.add(new QueryOperation() { - @Override - public Query apply(final Query query) { - return query.setParameter(param, value); - } - }); + appliedOperations.add(query -> query.setParameter(param, value)); } return query.setParameter(param, value); } @@ -408,12 +348,7 @@ public Query apply(final Query query) { */ public Query setParameter(final Parameter param, final Calendar value, final TemporalType temporalType) { if (!underTx) { - appliedOperations.add(new QueryOperation() { - @Override - public Query apply(final Query query) { - return query.setParameter(param, value, temporalType); - } - }); + appliedOperations.add(query -> query.setParameter(param, value, temporalType)); } return query.setParameter(param, value, temporalType); } @@ -423,12 +358,7 @@ public Query apply(final Query query) { */ public Query setParameter(final Parameter param, final Date value, final TemporalType temporalType) { if (!underTx) { - appliedOperations.add(new QueryOperation() { - @Override - public Query apply(final Query query) { - return query.setParameter(param, value, temporalType); - } - }); + appliedOperations.add(query -> query.setParameter(param, value, temporalType)); } return query.setParameter(param, value, temporalType); } diff --git a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/ResettableDataSourceHandler.java b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/ResettableDataSourceHandler.java index d69c5083c4d..5dc989206d1 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/ResettableDataSourceHandler.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/ResettableDataSourceHandler.java @@ -45,14 +45,11 @@ public ResettableDataSourceHandler(final CommonDataSource ds, final String value this.retryMethods.addAll(asList(methods == null ? new String[]{"getConnection", "getXAConnection"} : methods.split(" *, *"))); } - final Runnable recreate = new Runnable() { - @Override - public void run() { - try { - Flushable.class.cast(delegate.get()).flush(); - } catch (final IOException ioe) { - LOGGER.error("Can't flush connection pool: " + ioe.getMessage()); - } + final Runnable recreate = () -> { + try { + Flushable.class.cast(delegate.get()).flush(); + } catch (final IOException ioe) { + LOGGER.error("Can't flush connection pool: " + ioe.getMessage()); } }; diff --git a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/xa/IsDifferentXaDataSourceWrapper.java b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/xa/IsDifferentXaDataSourceWrapper.java index e15e8cba60c..e2279ea7e88 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/xa/IsDifferentXaDataSourceWrapper.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/xa/IsDifferentXaDataSourceWrapper.java @@ -48,35 +48,29 @@ public XAConnection getXAConnection(final String user, final String password) th } private XAConnection wrap(final XAConnection xaConnection) { - return XAConnection.class.cast(Proxy.newProxyInstance(xaConnection.getClass().getClassLoader(), API_CONNECTION, new InvocationHandler() { - @Override - public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable { - if ("getXAResource".equals(method.getName())) { - try { - final Object xaResource = method.invoke(xaConnection, args); - return Proxy.newProxyInstance(xaResource.getClass().getClassLoader(), API_RESOURCE, new InvocationHandler() { - @Override - public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable { - if ("isSameRM".equals(method.getName())) { - return false; // that's the goal! - } - try { - return method.invoke(xaResource, args); - } catch (final InvocationTargetException ite) { - throw ite.getCause(); - } - } - }); - } catch (final InvocationTargetException ite) { - throw ite.getCause(); - } - } + return XAConnection.class.cast(Proxy.newProxyInstance(xaConnection.getClass().getClassLoader(), API_CONNECTION, (proxy, method, args) -> { + if ("getXAResource".equals(method.getName())) { try { - return method.invoke(xaConnection, args); + final Object xaResource = method.invoke(xaConnection, args); + return Proxy.newProxyInstance(xaResource.getClass().getClassLoader(), API_RESOURCE, (proxy1, method1, args1) -> { + if ("isSameRM".equals(method1.getName())) { + return false; // that's the goal! + } + try { + return method1.invoke(xaResource, args1); + } catch (final InvocationTargetException ite) { + throw ite.getCause(); + } + }); } catch (final InvocationTargetException ite) { throw ite.getCause(); } } + try { + return method.invoke(xaConnection, args); + } catch (final InvocationTargetException ite) { + throw ite.getCause(); + } })); } diff --git a/container/openejb-core/src/main/java/org/apache/openejb/service/ScanJarService.java b/container/openejb-core/src/main/java/org/apache/openejb/service/ScanJarService.java index b175419b09b..6f0bf0991a6 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/service/ScanJarService.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/service/ScanJarService.java @@ -155,12 +155,9 @@ private Iterable findFiles() { if (!directory) { files.add(path); } else { - final File[] children = path.listFiles(new FileFilter() { - @Override - public boolean accept(final File pathname) { - final String name = pathname.getName(); - return name.endsWith(".jar") || name.endsWith(".zip") || pathname.isDirectory(); - } + final File[] children = path.listFiles(pathname -> { + final String name = pathname.getName(); + return name.endsWith(".jar") || name.endsWith(".zip") || pathname.isDirectory(); }); if (children != null) { Collections.addAll(files, children); diff --git a/container/openejb-core/src/main/java/org/apache/openejb/testing/ApplicationComposers.java b/container/openejb-core/src/main/java/org/apache/openejb/testing/ApplicationComposers.java index 033e760a7e2..2ef7ce14355 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/testing/ApplicationComposers.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/testing/ApplicationComposers.java @@ -779,13 +779,11 @@ private ClassFinder fixFakeClassFinder(final Object inputTestInstance) { if (remove != null) { testClassFinders.put(inputTestInstance, remove); testClassFinder = remove; - afterRunnables.add(new Runnable() { // reset state for next test - @Override - public void run() { - final ClassFinder classFinder = testClassFinders.remove(inputTestInstance); - if (classFinder != null) { - testClassFinders.put(self, classFinder); - } + // reset state for next test + afterRunnables.add(() -> { + final ClassFinder classFinder = testClassFinders.remove(inputTestInstance); + if (classFinder != null) { + testClassFinders.put(self, classFinder); } }); } @@ -1080,12 +1078,9 @@ public T evaluate(final Object testInstance, final Callable next) throws } public void evaluate(final Object testInstance, final Runnable next) throws Exception { - evaluate(testInstance, new Callable() { - @Override - public Void call() throws Exception { - next.run(); - return null; - } + evaluate(testInstance, (Callable) () -> { + next.run(); + return null; }); } @@ -1550,23 +1545,17 @@ public static void run(final Class type, final String... args) { final CountDownLatch latch = new CountDownLatch(1); - final Thread hook = new Thread() { - @Override - public void run() { - try { - composer.after(); - } catch (final Exception e) { - // no-op - } + final Thread hook = new Thread(() -> { + try { + composer.after(); + } catch (final Exception e) { + // no-op } - }; + }); Runtime.getRuntime().addShutdownHook(hook); - composer.afterRunnables.add(new Runnable() { - @Override - public void run() { - Runtime.getRuntime().removeShutdownHook(hook); - latch.countDown(); - } + composer.afterRunnables.add(() -> { + Runtime.getRuntime().removeShutdownHook(hook); + latch.countDown(); }); // do it after having added the latch countdown hook to avoid to block if start and stop very fast @@ -1581,42 +1570,36 @@ public void run() { } public void handleLifecycle(final Class type, final Object appInstance) throws IllegalAccessException, InvocationTargetException { - beforeDestroyAfterRunnables.add(new Runnable() { - @Override - public void run() { - for (final Map.Entry m : testClassFinders.entrySet()) { - for (final Method mtd : m.getValue().findAnnotatedMethods(PreDestroy.class)) { - if (mtd.getParameterTypes().length == 0) { - if (!mtd.isAccessible()) { - mtd.setAccessible(true); - } - try { - mtd.invoke(mtd.getDeclaringClass() == type ? appInstance : m.getKey()); - } catch (final IllegalAccessException | InvocationTargetException e) { - // no-op - } + beforeDestroyAfterRunnables.add(() -> { + for (final Map.Entry m : testClassFinders.entrySet()) { + for (final Method mtd : m.getValue().findAnnotatedMethods(PreDestroy.class)) { + if (mtd.getParameterTypes().length == 0) { + if (!mtd.isAccessible()) { + mtd.setAccessible(true); + } + try { + mtd.invoke(mtd.getDeclaringClass() == type ? appInstance : m.getKey()); + } catch (final IllegalAccessException | InvocationTargetException e) { + // no-op } } } } }); if (!appContext.getWebContexts().isEmpty()) { - beforeDestroyAfterRunnables.add(new Runnable() { - @Override - public void run() { - try { - final Object sessionManager = SystemInstance.get().getComponent( - ParentClassLoaderFinder.Helper.get().loadClass("org.apache.openejb.server.httpd.session.SessionManager") - ); - if (sessionManager != null) { - final Class[] paramTypes = {WebContext.class}; - for (final WebContext web : appContext.getWebContexts()) { - Reflections.invokeByReflection(sessionManager, "destroy", paramTypes, new Object[]{web}); - } + beforeDestroyAfterRunnables.add(() -> { + try { + final Object sessionManager = SystemInstance.get().getComponent( + ParentClassLoaderFinder.Helper.get().loadClass("org.apache.openejb.server.httpd.session.SessionManager") + ); + if (sessionManager != null) { + final Class[] paramTypes = {WebContext.class}; + for (final WebContext web : appContext.getWebContexts()) { + Reflections.invokeByReflection(sessionManager, "destroy", paramTypes, new Object[]{web}); } - } catch (final Throwable e) { - // no-op } + } catch (final Throwable e) { + // no-op } }); } diff --git a/container/openejb-core/src/main/java/org/apache/openejb/testing/SingleApplicationComposerBase.java b/container/openejb-core/src/main/java/org/apache/openejb/testing/SingleApplicationComposerBase.java index c54577da8a5..4417fd69964 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/testing/SingleApplicationComposerBase.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/testing/SingleApplicationComposerBase.java @@ -89,17 +89,14 @@ public void deployApp(final Object inputTestInstance) throws Exception { if (!started) { final ThreadContext previous = ThreadContext.getThreadContext(); // done here for logging final ApplicationComposers comp = this; - final Thread hook = new Thread() { - @Override - public void run() { - try { - comp.after(); - } catch (final Exception e) { - ThreadContext.exit(previous); - throw new IllegalStateException(e); - } + final Thread hook = new Thread(() -> { + try { + comp.after(); + } catch (final Exception e) { + ThreadContext.exit(previous); + throw new IllegalStateException(e); } - }; + }); HOOK.set(hook); Runtime.getRuntime().addShutdownHook(hook); started = true; diff --git a/container/openejb-core/src/main/java/org/apache/openejb/testing/SingleApplicationComposerRunner.java b/container/openejb-core/src/main/java/org/apache/openejb/testing/SingleApplicationComposerRunner.java index 1b1eb076241..ab7f1d174e6 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/testing/SingleApplicationComposerRunner.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/testing/SingleApplicationComposerRunner.java @@ -71,17 +71,12 @@ public SingleApplicationComposerRunner(final Class klass) throws Initializati @Override protected List rules(final Object test) { final List rules = super.rules(test); - rules.add(new MethodRule() { + rules.add((base, method, target) -> new Statement() { @Override - public Statement apply(final Statement base, final FrameworkMethod method, final Object target) { - return new Statement() { - @Override - public void evaluate() throws Throwable { - BASE.start(getTestClass().getJavaClass()); - BASE.composerInject(target); - base.evaluate(); - } - }; + public void evaluate() throws Throwable { + BASE.start(getTestClass().getJavaClass()); + BASE.composerInject(target); + base.evaluate(); } }); return rules; diff --git a/container/openejb-core/src/main/java/org/apache/openejb/threads/task/CURunnable.java b/container/openejb-core/src/main/java/org/apache/openejb/threads/task/CURunnable.java index a47b1bc836b..7e454e662b5 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/threads/task/CURunnable.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/threads/task/CURunnable.java @@ -36,12 +36,9 @@ public CURunnable(final Runnable task, final ContextServiceImpl contextService) @Override public void run() { try { - invoke(new Callable() { - @Override - public Void call() throws Exception { - delegate.run(); - return null; - } + invoke((Callable) () -> { + delegate.run(); + return null; }); } catch (final RuntimeException re) { throw re; diff --git a/container/openejb-core/src/main/java/org/apache/openejb/util/JavaSecurityManagers.java b/container/openejb-core/src/main/java/org/apache/openejb/util/JavaSecurityManagers.java index 5e2ea18d590..8513b70b393 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/util/JavaSecurityManagers.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/util/JavaSecurityManagers.java @@ -32,23 +32,13 @@ private JavaSecurityManagers() { public static String getSystemProperty(final String key) { return System.getSecurityManager() == null ? System.getProperty(key) : - AccessController.doPrivileged(new PrivilegedAction() { - @Override - public String run() { - return System.getProperty(key); - } - }); + AccessController.doPrivileged((PrivilegedAction) () -> System.getProperty(key)); } public static String getSystemProperty(final String key, final String or) { return System.getSecurityManager() == null ? System.getProperty(key, or) : - AccessController.doPrivileged(new PrivilegedAction() { - @Override - public String run() { - return System.getProperty(key, or); - } - }); + AccessController.doPrivileged((PrivilegedAction) () -> System.getProperty(key, or)); } public static Properties getSystemProperties() { @@ -61,12 +51,9 @@ public static void removeSystemProperty(final String key) { if (System.getSecurityManager() == null) { System.clearProperty(key); } else { - AccessController.doPrivileged(new PrivilegedAction() { - @Override - public Void run() { - System.clearProperty(key); - return null; - } + AccessController.doPrivileged((PrivilegedAction) () -> { + System.clearProperty(key); + return null; }); } } @@ -79,16 +66,13 @@ public static void setSystemProperty(final String key, final Object value) { System.getProperties().put(key, value); } } else { - AccessController.doPrivileged(new PrivilegedAction() { - @Override - public Void run() { - if (String.class.isInstance(value)) { - System.setProperty(key, String.class.cast(value)); - } else { - System.getProperties().put(key, value); - } - return null; + AccessController.doPrivileged((PrivilegedAction) () -> { + if (String.class.isInstance(value)) { + System.setProperty(key, String.class.cast(value)); + } else { + System.getProperties().put(key, value); } + return null; }); } } @@ -97,12 +81,9 @@ public static void setContextID(final String moduleID) { if (System.getSecurityManager() == null) { PolicyContext.setContextID(moduleID); } else { - AccessController.doPrivileged(new PrivilegedAction() { - @Override - public String run() { - PolicyContext.setContextID(moduleID); - return null; - } + AccessController.doPrivileged((PrivilegedAction) () -> { + PolicyContext.setContextID(moduleID); + return null; }); } } diff --git a/container/openejb-core/src/main/java/org/apache/openejb/util/JuliLogStreamFactory.java b/container/openejb-core/src/main/java/org/apache/openejb/util/JuliLogStreamFactory.java index 3dc2291711a..24b05632b65 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/util/JuliLogStreamFactory.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/util/JuliLogStreamFactory.java @@ -135,12 +135,7 @@ public static class OpenEJBLogManager extends LogManager { static { final LogManager mgr = LogManager.getLogManager(); if (mgr instanceof OpenEJBLogManager) { - Runtime.getRuntime().addShutdownHook(new Thread() { - @Override - public void run() { - ((OpenEJBLogManager) mgr).forceReset(); - } - }); + Runtime.getRuntime().addShutdownHook(new Thread(() -> ((OpenEJBLogManager) mgr).forceReset())); } } diff --git a/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java b/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java index 72411759441..e47de10c8d8 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java @@ -213,32 +213,26 @@ private static Class load(final String factoryName) { * Computes the parent of a resource name. E.g. if we pass in a key of * a.b.c, it returns the value a.b */ - private static final Computable heirarchyResolver = new Computable() { - @Override - public String compute(final String key) throws InterruptedException { - final int index = key.lastIndexOf('.'); - if (index == -1) { - return null; - } - final String parent = key.substring(0, index); - if (parent.contains(OPENEJB)) { - return parent; - } + private static final Computable heirarchyResolver = key -> { + final int index = key.lastIndexOf('.'); + if (index == -1) { return null; } + final String parent = key.substring(0, index); + if (parent.contains(OPENEJB)) { + return parent; + } + return null; }; /** * Simply returns the ResourceBundle for a given baseName */ - private static final Computable bundleResolver = new Computable() { - @Override - public ResourceBundle compute(final String baseName) throws InterruptedException { - try { - return ResourceBundle.getBundle(baseName + SUFFIX); - } catch (final MissingResourceException e) { - return null; - } + private static final Computable bundleResolver = baseName -> { + try { + return ResourceBundle.getBundle(baseName + SUFFIX); + } catch (final MissingResourceException e) { + return null; } }; diff --git a/container/openejb-core/src/main/java/org/apache/openejb/util/Memoizer.java b/container/openejb-core/src/main/java/org/apache/openejb/util/Memoizer.java index 7bb7ea8980e..bb2287dc804 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/util/Memoizer.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/util/Memoizer.java @@ -47,11 +47,7 @@ public V compute(final K key) throws InterruptedException { Future future = cache.get(key); if (future == null) { - final Callable eval = new Callable() { - public V call() throws Exception { - return c.compute(key); - } - }; + final Callable eval = () -> c.compute(key); final FutureTask futureTask = new FutureTask<>(eval); future = cache.putIfAbsent(key, futureTask); if (future == null) { diff --git a/container/openejb-core/src/main/java/org/apache/openejb/util/OpenEJBScripter.java b/container/openejb-core/src/main/java/org/apache/openejb/util/OpenEJBScripter.java index f3c46b1fe04..df66f6ac22c 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/util/OpenEJBScripter.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/util/OpenEJBScripter.java @@ -38,12 +38,7 @@ public class OpenEJBScripter { private static final Map ENGINE_FACTORIES = new ConcurrentHashMap(); - private static final ThreadLocal> ENGINES = new ThreadLocal>() { - @Override - protected Map initialValue() { - return new HashMap<>(); - } - }; + private static final ThreadLocal> ENGINES = ThreadLocal.withInitial(HashMap::new); static { final ScriptEngineManager mgr = new ScriptEngineManager(); diff --git a/container/openejb-core/src/main/java/org/apache/openejb/util/PojoSerialization.java b/container/openejb-core/src/main/java/org/apache/openejb/util/PojoSerialization.java index 40ffba06317..42f31b601b9 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/util/PojoSerialization.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/util/PojoSerialization.java @@ -56,16 +56,14 @@ public class PojoSerialization implements Serializable { static { final Class unsafeClass; try { - unsafeClass = AccessController.doPrivileged(new PrivilegedAction>() { - public Class run() { + unsafeClass = AccessController.doPrivileged((PrivilegedAction>) () -> { + try { + return Thread.currentThread().getContextClassLoader().loadClass("sun.misc.Unsafe"); + } catch (final Exception e) { try { - return Thread.currentThread().getContextClassLoader().loadClass("sun.misc.Unsafe"); - } catch (final Exception e) { - try { - return ClassLoader.getSystemClassLoader().loadClass("sun.misc.Unsafe"); - } catch (final ClassNotFoundException e1) { - throw new IllegalStateException("Cannot get sun.misc.Unsafe", e); - } + return ClassLoader.getSystemClassLoader().loadClass("sun.misc.Unsafe"); + } catch (final ClassNotFoundException e1) { + throw new IllegalStateException("Cannot get sun.misc.Unsafe", e); } } }); @@ -73,136 +71,112 @@ public Class run() { throw new IllegalStateException("Cannot get sun.misc.Unsafe class", e); } - unsafe = AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - try { - final Field field = unsafeClass.getDeclaredField("theUnsafe"); - field.setAccessible(true); - return field.get(null); - } catch (final Exception e) { - throw new IllegalStateException("Cannot get sun.misc.Unsafe", e); - } + unsafe = AccessController.doPrivileged((PrivilegedAction) () -> { + try { + final Field field = unsafeClass.getDeclaredField("theUnsafe"); + field.setAccessible(true); + return field.get(null); + } catch (final Exception e) { + throw new IllegalStateException("Cannot get sun.misc.Unsafe", e); } }); - allocateInstance = AccessController.doPrivileged(new PrivilegedAction() { - public Method run() { - try { - final Method mtd = unsafeClass.getDeclaredMethod("allocateInstance", Class.class); - mtd.setAccessible(true); - return mtd; - } catch (final Exception e) { - throw new IllegalStateException("Cannot get sun.misc.Unsafe.allocateInstance", e); - } + allocateInstance = AccessController.doPrivileged((PrivilegedAction) () -> { + try { + final Method mtd = unsafeClass.getDeclaredMethod("allocateInstance", Class.class); + mtd.setAccessible(true); + return mtd; + } catch (final Exception e) { + throw new IllegalStateException("Cannot get sun.misc.Unsafe.allocateInstance", e); } }); - objectFieldOffset = AccessController.doPrivileged(new PrivilegedAction() { - public Method run() { - try { - final Method mtd = unsafeClass.getDeclaredMethod("objectFieldOffset", Field.class); - mtd.setAccessible(true); - return mtd; - } catch (final Exception e) { - throw new IllegalStateException("Cannot get sun.misc.Unsafe.objectFieldOffset", e); - } + objectFieldOffset = AccessController.doPrivileged((PrivilegedAction) () -> { + try { + final Method mtd = unsafeClass.getDeclaredMethod("objectFieldOffset", Field.class); + mtd.setAccessible(true); + return mtd; + } catch (final Exception e) { + throw new IllegalStateException("Cannot get sun.misc.Unsafe.objectFieldOffset", e); } }); - putInt = AccessController.doPrivileged(new PrivilegedAction() { - public Method run() { - try { - final Method mtd = unsafeClass.getDeclaredMethod("putInt", Object.class, long.class, int.class); - mtd.setAccessible(true); - return mtd; - } catch (final Exception e) { - throw new IllegalStateException("Cannot get sun.misc.Unsafe.putInt", e); - } + putInt = AccessController.doPrivileged((PrivilegedAction) () -> { + try { + final Method mtd = unsafeClass.getDeclaredMethod("putInt", Object.class, long.class, int.class); + mtd.setAccessible(true); + return mtd; + } catch (final Exception e) { + throw new IllegalStateException("Cannot get sun.misc.Unsafe.putInt", e); } }); - putLong = AccessController.doPrivileged(new PrivilegedAction() { - public Method run() { - try { - final Method mtd = unsafeClass.getDeclaredMethod("putLong", Object.class, long.class, long.class); - mtd.setAccessible(true); - return mtd; - } catch (final Exception e) { - throw new IllegalStateException("Cannot get sun.misc.Unsafe.putLong", e); - } + putLong = AccessController.doPrivileged((PrivilegedAction) () -> { + try { + final Method mtd = unsafeClass.getDeclaredMethod("putLong", Object.class, long.class, long.class); + mtd.setAccessible(true); + return mtd; + } catch (final Exception e) { + throw new IllegalStateException("Cannot get sun.misc.Unsafe.putLong", e); } }); - putShort = AccessController.doPrivileged(new PrivilegedAction() { - public Method run() { - try { - final Method mtd = unsafeClass.getDeclaredMethod("putShort", Object.class, long.class, short.class); - mtd.setAccessible(true); - return mtd; - } catch (final Exception e) { - throw new IllegalStateException("Cannot get sun.misc.Unsafe.putShort", e); - } + putShort = AccessController.doPrivileged((PrivilegedAction) () -> { + try { + final Method mtd = unsafeClass.getDeclaredMethod("putShort", Object.class, long.class, short.class); + mtd.setAccessible(true); + return mtd; + } catch (final Exception e) { + throw new IllegalStateException("Cannot get sun.misc.Unsafe.putShort", e); } }); - putChar = AccessController.doPrivileged(new PrivilegedAction() { - public Method run() { - try { - final Method mtd = unsafeClass.getDeclaredMethod("putChar", Object.class, long.class, char.class); - mtd.setAccessible(true); - return mtd; - } catch (final Exception e) { - throw new IllegalStateException("Cannot get sun.misc.Unsafe.putChar", e); - } + putChar = AccessController.doPrivileged((PrivilegedAction) () -> { + try { + final Method mtd = unsafeClass.getDeclaredMethod("putChar", Object.class, long.class, char.class); + mtd.setAccessible(true); + return mtd; + } catch (final Exception e) { + throw new IllegalStateException("Cannot get sun.misc.Unsafe.putChar", e); } }); - putByte = AccessController.doPrivileged(new PrivilegedAction() { - public Method run() { - try { - final Method mtd = unsafeClass.getDeclaredMethod("putByte", Object.class, long.class, byte.class); - mtd.setAccessible(true); - return mtd; - } catch (final Exception e) { - throw new IllegalStateException("Cannot get sun.misc.Unsafe.putByte", e); - } + putByte = AccessController.doPrivileged((PrivilegedAction) () -> { + try { + final Method mtd = unsafeClass.getDeclaredMethod("putByte", Object.class, long.class, byte.class); + mtd.setAccessible(true); + return mtd; + } catch (final Exception e) { + throw new IllegalStateException("Cannot get sun.misc.Unsafe.putByte", e); } }); - putFloat = AccessController.doPrivileged(new PrivilegedAction() { - public Method run() { - try { - final Method mtd = unsafeClass.getDeclaredMethod("putFloat", Object.class, long.class, float.class); - mtd.setAccessible(true); - return mtd; - } catch (final Exception e) { - throw new IllegalStateException("Cannot get sun.misc.Unsafe.putFloat", e); - } + putFloat = AccessController.doPrivileged((PrivilegedAction) () -> { + try { + final Method mtd = unsafeClass.getDeclaredMethod("putFloat", Object.class, long.class, float.class); + mtd.setAccessible(true); + return mtd; + } catch (final Exception e) { + throw new IllegalStateException("Cannot get sun.misc.Unsafe.putFloat", e); } }); - putDouble = AccessController.doPrivileged(new PrivilegedAction() { - public Method run() { - try { - final Method mtd = unsafeClass.getDeclaredMethod("putDouble", Object.class, long.class, double.class); - mtd.setAccessible(true); - return mtd; - } catch (final Exception e) { - throw new IllegalStateException("Cannot get sun.misc.Unsafe.putDouble", e); - } + putDouble = AccessController.doPrivileged((PrivilegedAction) () -> { + try { + final Method mtd = unsafeClass.getDeclaredMethod("putDouble", Object.class, long.class, double.class); + mtd.setAccessible(true); + return mtd; + } catch (final Exception e) { + throw new IllegalStateException("Cannot get sun.misc.Unsafe.putDouble", e); } }); - putBoolean = AccessController.doPrivileged(new PrivilegedAction() { - public Method run() { - try { - final Method mtd = unsafeClass.getDeclaredMethod("putBoolean", Object.class, long.class, boolean.class); - mtd.setAccessible(true); - return mtd; - } catch (final Exception e) { - throw new IllegalStateException("Cannot get sun.misc.Unsafe.putBoolean", e); - } + putBoolean = AccessController.doPrivileged((PrivilegedAction) () -> { + try { + final Method mtd = unsafeClass.getDeclaredMethod("putBoolean", Object.class, long.class, boolean.class); + mtd.setAccessible(true); + return mtd; + } catch (final Exception e) { + throw new IllegalStateException("Cannot get sun.misc.Unsafe.putBoolean", e); } }); - putObject = AccessController.doPrivileged(new PrivilegedAction() { - public Method run() { - try { - final Method mtd = unsafeClass.getDeclaredMethod("putObject", Object.class, long.class, Object.class); - mtd.setAccessible(true); - return mtd; - } catch (final Exception e) { - throw new IllegalStateException("Cannot get sun.misc.Unsafe.putObject", e); - } + putObject = AccessController.doPrivileged((PrivilegedAction) () -> { + try { + final Method mtd = unsafeClass.getDeclaredMethod("putObject", Object.class, long.class, Object.class); + mtd.setAccessible(true); + return mtd; + } catch (final Exception e) { + throw new IllegalStateException("Cannot get sun.misc.Unsafe.putObject", e); } }); } diff --git a/container/openejb-core/src/main/java/org/apache/openejb/util/Pool.java b/container/openejb-core/src/main/java/org/apache/openejb/util/Pool.java index 71fc7ea2999..9ac70f5a2c4 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/util/Pool.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/util/Pool.java @@ -180,22 +180,19 @@ private Executor createExecutor() { 60L, SECONDS, new LinkedBlockingQueue<>(2), new DaemonThreadFactory("org.apache.openejb.util.Pool", hashCode())); - threadPoolExecutor.setRejectedExecutionHandler(new RejectedExecutionHandler() { - @Override - public void rejectedExecution(final Runnable r, final ThreadPoolExecutor tpe) { + threadPoolExecutor.setRejectedExecutionHandler((r, tpe) -> { - if (null == r || null == tpe || tpe.isShutdown() || tpe.isTerminated() || tpe.isTerminating()) { - return; - } + if (null == r || null == tpe || tpe.isShutdown() || tpe.isTerminated() || tpe.isTerminating()) { + return; + } - try { - if (!tpe.getQueue().offer(r, 20, SECONDS)) { - org.apache.openejb.util.Logger.getInstance(LogCategory.OPENEJB, "org.apache.openejb.util.resources") - .warning("Default pool executor failed to run asynchronous process: " + r); - } - } catch (final InterruptedException e) { - //Ignore + try { + if (!tpe.getQueue().offer(r, 20, SECONDS)) { + org.apache.openejb.util.Logger.getInstance(LogCategory.OPENEJB, "org.apache.openejb.util.resources") + .warning("Default pool executor failed to run asynchronous process: " + r); } + } catch (final InterruptedException e) { + //Ignore } }); diff --git a/container/openejb-core/src/main/java/org/apache/openejb/util/SuperProperties.java b/container/openejb-core/src/main/java/org/apache/openejb/util/SuperProperties.java index bac40b7adb2..3304a9f9018 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/util/SuperProperties.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/util/SuperProperties.java @@ -1067,16 +1067,13 @@ public void fatalError(final SAXParseException e) throws SAXException { } }); - builder.setEntityResolver(new EntityResolver() { - public InputSource resolveEntity(final String publicId, - final String systemId) throws SAXException, IOException { - if (systemId.equals(PROP_DTD_NAME)) { - final InputSource result = new InputSource(new StringReader(PROP_DTD)); - result.setSystemId(PROP_DTD_NAME); - return result; - } - throw new SAXException("Invalid DOCTYPE declaration: " + systemId); + builder.setEntityResolver((publicId, systemId) -> { + if (systemId.equals(PROP_DTD_NAME)) { + final InputSource result = new InputSource(new StringReader(PROP_DTD)); + result.setSystemId(PROP_DTD_NAME); + return result; } + throw new SAXException("Invalid DOCTYPE declaration: " + systemId); }); } return builder; diff --git a/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/LocalBeanProxyFactory.java b/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/LocalBeanProxyFactory.java index 47afb053611..bf5b109c73a 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/LocalBeanProxyFactory.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/LocalBeanProxyFactory.java @@ -713,17 +713,14 @@ public static class Unsafe { static { final Class unsafeClass; try { - unsafeClass = AccessController.doPrivileged(new PrivilegedAction>() { - @Override - public Class run() { + unsafeClass = AccessController.doPrivileged((PrivilegedAction>) () -> { + try { + return Thread.currentThread().getContextClassLoader().loadClass("sun.misc.Unsafe"); + } catch (final Exception e) { try { - return Thread.currentThread().getContextClassLoader().loadClass("sun.misc.Unsafe"); - } catch (final Exception e) { - try { - return ClassLoader.getSystemClassLoader().loadClass("sun.misc.Unsafe"); - } catch (final ClassNotFoundException e1) { - throw new IllegalStateException("Cannot get sun.misc.Unsafe", e); - } + return ClassLoader.getSystemClassLoader().loadClass("sun.misc.Unsafe"); + } catch (final ClassNotFoundException e1) { + throw new IllegalStateException("Cannot get sun.misc.Unsafe", e); } } }); @@ -731,65 +728,50 @@ public Class run() { throw new IllegalStateException("Cannot get sun.misc.Unsafe class", e); } - unsafe = AccessController.doPrivileged(new PrivilegedAction() { - @Override - public Object run() { - try { - final Field field = unsafeClass.getDeclaredField("theUnsafe"); - field.setAccessible(true); - return field.get(null); - } catch (final Exception e) { - throw new IllegalStateException("Cannot get sun.misc.Unsafe", e); - } + unsafe = AccessController.doPrivileged((PrivilegedAction) () -> { + try { + final Field field = unsafeClass.getDeclaredField("theUnsafe"); + field.setAccessible(true); + return field.get(null); + } catch (final Exception e) { + throw new IllegalStateException("Cannot get sun.misc.Unsafe", e); } }); - allocateInstance = AccessController.doPrivileged(new PrivilegedAction() { - @Override - public Method run() { - try { - final Method mtd = unsafeClass.getDeclaredMethod("allocateInstance", Class.class); - mtd.setAccessible(true); - return mtd; - } catch (final Exception e) { - throw new IllegalStateException("Cannot get sun.misc.Unsafe.allocateInstance", e); - } + allocateInstance = AccessController.doPrivileged((PrivilegedAction) () -> { + try { + final Method mtd = unsafeClass.getDeclaredMethod("allocateInstance", Class.class); + mtd.setAccessible(true); + return mtd; + } catch (final Exception e) { + throw new IllegalStateException("Cannot get sun.misc.Unsafe.allocateInstance", e); } }); - objectFieldOffset = AccessController.doPrivileged(new PrivilegedAction() { - @Override - public Method run() { - try { - final Method mtd = unsafeClass.getDeclaredMethod("objectFieldOffset", Field.class); - mtd.setAccessible(true); - return mtd; - } catch (final Exception e) { - throw new IllegalStateException("Cannot get sun.misc.Unsafe.objectFieldOffset", e); - } + objectFieldOffset = AccessController.doPrivileged((PrivilegedAction) () -> { + try { + final Method mtd = unsafeClass.getDeclaredMethod("objectFieldOffset", Field.class); + mtd.setAccessible(true); + return mtd; + } catch (final Exception e) { + throw new IllegalStateException("Cannot get sun.misc.Unsafe.objectFieldOffset", e); } }); - putObject = AccessController.doPrivileged(new PrivilegedAction() { - @Override - public Method run() { - try { - final Method mtd = unsafeClass.getDeclaredMethod("putObject", Object.class, long.class, Object.class); - mtd.setAccessible(true); - return mtd; - } catch (final Exception e) { - throw new IllegalStateException("Cannot get sun.misc.Unsafe.putObject", e); - } + putObject = AccessController.doPrivileged((PrivilegedAction) () -> { + try { + final Method mtd = unsafeClass.getDeclaredMethod("putObject", Object.class, long.class, Object.class); + mtd.setAccessible(true); + return mtd; + } catch (final Exception e) { + throw new IllegalStateException("Cannot get sun.misc.Unsafe.putObject", e); } }); - unsafeDefineClass = AccessController.doPrivileged(new PrivilegedAction() { - @Override - public Method run() { - try { - final Method mtd = unsafeClass.getDeclaredMethod("defineClass", String.class, byte[].class, int.class, int.class, ClassLoader.class, ProtectionDomain.class); - mtd.setAccessible(true); - return mtd; - } catch (final Exception e) { - LOGGER.debug("Unsafe's defineClass not available, will use classloader's defineClass"); - return null; - } + unsafeDefineClass = AccessController.doPrivileged((PrivilegedAction) () -> { + try { + final Method mtd = unsafeClass.getDeclaredMethod("defineClass", String.class, byte[].class, int.class, int.class, ClassLoader.class, ProtectionDomain.class); + mtd.setAccessible(true); + return mtd; + } catch (final Exception e) { + LOGGER.debug("Unsafe's defineClass not available, will use classloader's defineClass"); + return null; } }); } diff --git a/container/openejb-core/src/main/java/org/apache/openejb/util/urlhandler/resource/Handler.java b/container/openejb-core/src/main/java/org/apache/openejb/util/urlhandler/resource/Handler.java index eea356b52c8..28bfa787122 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/util/urlhandler/resource/Handler.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/util/urlhandler/resource/Handler.java @@ -55,11 +55,7 @@ protected URLConnection openConnection(final URL url) throws IOException { public static ClassLoader getContextClassLoader() { return (ClassLoader) AccessController.doPrivileged( - new PrivilegedAction() { - public Object run() { - return Thread.currentThread().getContextClassLoader(); - } - } + (PrivilegedAction) () -> Thread.currentThread().getContextClassLoader() ); } diff --git a/container/openejb-core/src/main/java/org/apache/openejb/web/LightweightWebAppBuilder.java b/container/openejb-core/src/main/java/org/apache/openejb/web/LightweightWebAppBuilder.java index 82afeef1719..fb9b041064b 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/web/LightweightWebAppBuilder.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/web/LightweightWebAppBuilder.java @@ -185,12 +185,7 @@ public void deployWebApps(final AppInfo appInfo, final ClassLoader appClassLoade final Class clazz = webContext.getClassLoader().loadClass(listener.classname); final Object instance = webContext.newInstance(clazz); if (ServletContextListener.class.isInstance(instance)) { - switchServletContextIfNeeded(sce.getServletContext(), new Runnable() { - @Override - public void run() { - ((ServletContextListener) instance).contextInitialized(sce); - } - }); + switchServletContextIfNeeded(sce.getServletContext(), () -> ((ServletContextListener) instance).contextInitialized(sce)); } List list = listeners.computeIfAbsent(webAppInfo, k -> new ArrayList<>()); @@ -204,12 +199,7 @@ public void run() { if (annotation != null) { final Object instance = webContext.newInstance(clazz); if (ServletContextListener.class.isInstance(instance)) { - switchServletContextIfNeeded(sce.getServletContext(), new Runnable() { - @Override - public void run() { - ((ServletContextListener) instance).contextInitialized(sce); - } - }); + switchServletContextIfNeeded(sce.getServletContext(), () -> ((ServletContextListener) instance).contextInitialized(sce)); } List list = listeners.computeIfAbsent(webAppInfo, k -> new ArrayList<>()); @@ -239,17 +229,14 @@ public void run() { // register filters for (final FilterInfo info : webAppInfo.filters) { - switchServletContextIfNeeded(sce.getServletContext(), new Runnable() { - @Override - public void run() { - for (final String mapping : info.mappings) { - final FilterConfig config = new SimpleFilterConfig(sce.getServletContext(), info.name, info.initParams); - try { - addFilterMethod.invoke(null, info.classname, webContext, mapping, config); - deployedWebObjects.filterMappings.add(mapping); - } catch (final Exception e) { - LOGGER.warning(e.getMessage(), e); - } + switchServletContextIfNeeded(sce.getServletContext(), () -> { + for (final String mapping : info.mappings) { + final FilterConfig config = new SimpleFilterConfig(sce.getServletContext(), info.name, info.initParams); + try { + addFilterMethod.invoke(null, info.classname, webContext, mapping, config); + deployedWebObjects.filterMappings.add(mapping); + } catch (final Exception e) { + LOGGER.warning(e.getMessage(), e); } } }); @@ -267,16 +254,13 @@ public void run() { final FilterConfig config = new SimpleFilterConfig(sce.getServletContext(), info.name, initParams); for (final String[] mappings : asList(annotation.urlPatterns(), annotation.value())) { - switchServletContextIfNeeded(sce.getServletContext(), new Runnable() { - @Override - public void run() { - for (final String mapping : mappings) { - try { - addFilterMethod.invoke(null, clazz.getName(), webContext, mapping, config); - deployedWebObjects.filterMappings.add(mapping); - } catch (final Exception e) { - LOGGER.warning(e.getMessage(), e); - } + switchServletContextIfNeeded(sce.getServletContext(), () -> { + for (final String mapping : mappings) { + try { + addFilterMethod.invoke(null, clazz.getName(), webContext, mapping, config); + deployedWebObjects.filterMappings.add(mapping); + } catch (final Exception e) { + LOGGER.warning(e.getMessage(), e); } } }); @@ -323,15 +307,12 @@ public void run() { // deploy for (final String mapping : info.mappings) { - switchServletContextIfNeeded(sce.getServletContext(), new Runnable() { - @Override - public void run() { - try { - addServletMethod.invoke(null, info.servletClass, webContext, mapping); - deployedWebObjects.mappings.add(mapping); - } catch (final Exception e) { - LOGGER.warning(e.getMessage(), e); - } + switchServletContextIfNeeded(sce.getServletContext(), () -> { + try { + addServletMethod.invoke(null, info.servletClass, webContext, mapping); + deployedWebObjects.mappings.add(mapping); + } catch (final Exception e) { + LOGGER.warning(e.getMessage(), e); } }); } @@ -344,16 +325,13 @@ public void run() { final WebServlet annotation = clazz.getAnnotation(WebServlet.class); if (annotation != null) { for (final String[] mappings : asList(annotation.urlPatterns(), annotation.value())) { - switchServletContextIfNeeded(sce.getServletContext(), new Runnable() { - @Override - public void run() { - for (final String mapping : mappings) { - try { - addServletMethod.invoke(null, clazz.getName(), webContext, mapping); - deployedWebObjects.mappings.add(mapping); - } catch (final Exception e) { - LOGGER.warning(e.getMessage(), e); - } + switchServletContextIfNeeded(sce.getServletContext(), () -> { + for (final String mapping : mappings) { + try { + addServletMethod.invoke(null, clazz.getName(), webContext, mapping); + deployedWebObjects.mappings.add(mapping); + } catch (final Exception e) { + LOGGER.warning(e.getMessage(), e); } } }); @@ -440,23 +418,20 @@ public void undeployWebApps(final AppInfo appInfo) throws Exception { final List listenerInstances = listeners.remove(webAppInfo); if (addServletMethod != null) { - switchServletContextIfNeeded(sce.getServletContext(), new Runnable() { - @Override - public void run() { - for (final String mapping : context.mappings) { - try { - removeServletMethod.invoke(null, mapping, context.webContext); - } catch (final Exception e) { - // no-op - } + switchServletContextIfNeeded(sce.getServletContext(), () -> { + for (final String mapping : context.mappings) { + try { + removeServletMethod.invoke(null, mapping, context.webContext); + } catch (final Exception e) { + // no-op } + } - for (final String mapping : context.filterMappings) { - try { - removeFilterMethod.invoke(null, mapping, context.webContext); - } catch (final Exception e) { - // no-op - } + for (final String mapping : context.filterMappings) { + try { + removeFilterMethod.invoke(null, mapping, context.webContext); + } catch (final Exception e) { + // no-op } } }); @@ -465,12 +440,7 @@ public void run() { if (listenerInstances != null) { for (final Object instance : listenerInstances) { if (ServletContextListener.class.isInstance(instance)) { - switchServletContextIfNeeded(sce.getServletContext(), new Runnable() { - @Override - public void run() { - ((ServletContextListener) instance).contextDestroyed(sce); - } - }); + switchServletContextIfNeeded(sce.getServletContext(), () -> ((ServletContextListener) instance).contextDestroyed(sce)); } } } diff --git a/container/openejb-jee/src/main/java/org/apache/openejb/jee/JaxbJavaee.java b/container/openejb-jee/src/main/java/org/apache/openejb/jee/JaxbJavaee.java index 487dfcd209f..59842bb686d 100644 --- a/container/openejb-jee/src/main/java/org/apache/openejb/jee/JaxbJavaee.java +++ b/container/openejb-jee/src/main/java/org/apache/openejb/jee/JaxbJavaee.java @@ -101,14 +101,12 @@ private static Object unmarshalJavaee(final Class type, final InputStream final JAXBContext ctx = JaxbJavaee.getContext(type); final Unmarshaller unmarshaller = ctx.createUnmarshaller(); - unmarshaller.setEventHandler(new ValidationEventHandler() { - public boolean handleEvent(final ValidationEvent validationEvent) { - final String verbose = System.getProperty("openejb.validation.output.level"); - if (verbose != null && "VERBOSE".equals(verbose.toUpperCase(Locale.ENGLISH))) { - System.err.println(validationEvent); - } - return false; + unmarshaller.setEventHandler((ValidationEventHandler) validationEvent -> { + final String verbose = System.getProperty("openejb.validation.output.level"); + if (verbose != null && "VERBOSE".equals(verbose.toUpperCase(Locale.ENGLISH))) { + System.err.println(validationEvent); } + return false; }); SAXSource source = null; @@ -184,11 +182,9 @@ public static Object unmarshal(final Class type, final InputStream in, fi final JAXBContext ctx = JaxbJavaee.getContext(type); final Unmarshaller unmarshaller = ctx.createUnmarshaller(); - unmarshaller.setEventHandler(new ValidationEventHandler() { - public boolean handleEvent(final ValidationEvent validationEvent) { - System.out.println(validationEvent); - return false; - } + unmarshaller.setEventHandler((ValidationEventHandler) validationEvent -> { + System.out.println(validationEvent); + return false; }); final JaxbJavaee.NoSourceFilter xmlFilter = new JaxbJavaee.NoSourceFilter(parser.getXMLReader()); @@ -225,11 +221,9 @@ public static Object unmarshalTaglib(final Class type, final InputStream final JAXBContext ctx = JaxbJavaee.getContext(type); final Unmarshaller unmarshaller = ctx.createUnmarshaller(); - unmarshaller.setEventHandler(new ValidationEventHandler() { - public boolean handleEvent(final ValidationEvent validationEvent) { - System.out.println(validationEvent); - return false; - } + unmarshaller.setEventHandler((ValidationEventHandler) validationEvent -> { + System.out.println(validationEvent); + return false; }); @@ -265,11 +259,9 @@ public static Object unmarshalHandlerChains(final Class type, final Input final JAXBContext ctx = JaxbJavaee.getContext(type); final Unmarshaller unmarshaller = ctx.createUnmarshaller(); - unmarshaller.setEventHandler(new ValidationEventHandler() { - public boolean handleEvent(final ValidationEvent validationEvent) { - System.out.println(validationEvent); - return false; - } + unmarshaller.setEventHandler((ValidationEventHandler) validationEvent -> { + System.out.println(validationEvent); + return false; }); final JaxbJavaee.HandlerChainsNamespaceFilter xmlFilter = new JaxbJavaee.HandlerChainsNamespaceFilter(parser.getXMLReader()); diff --git a/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/JpaJaxbUtil.java b/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/JpaJaxbUtil.java index f097337a6e9..d2ca3ded940 100644 --- a/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/JpaJaxbUtil.java +++ b/container/openejb-jee/src/main/java/org/apache/openejb/jee/jpa/JpaJaxbUtil.java @@ -68,11 +68,9 @@ public static Object unmarshal(final Class type, final InputStream in) th final JAXBContext ctx = JAXBContextFactory.newInstance(type); final Unmarshaller unmarshaller = ctx.createUnmarshaller(); - unmarshaller.setEventHandler(new ValidationEventHandler() { - public boolean handleEvent(final ValidationEvent validationEvent) { - System.out.println(validationEvent); - return false; - } + unmarshaller.setEventHandler((ValidationEventHandler) validationEvent -> { + System.out.println(validationEvent); + return false; }); return unmarshaller.unmarshal(inputSource); diff --git a/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb2/JaxbOpenejbJar2.java b/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb2/JaxbOpenejbJar2.java index 740369713fb..3d65ec80cd0 100644 --- a/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb2/JaxbOpenejbJar2.java +++ b/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb2/JaxbOpenejbJar2.java @@ -83,13 +83,11 @@ public static Object unmarshal(final Class type, final InputStream in, fi final JAXBContext ctx = getContext(type); final Unmarshaller unmarshaller = ctx.createUnmarshaller(); - unmarshaller.setEventHandler(new ValidationEventHandler() { - public boolean handleEvent(final ValidationEvent validationEvent) { - if (logErrors) { - System.out.println(validationEvent); - } - return false; + unmarshaller.setEventHandler((ValidationEventHandler) validationEvent -> { + if (logErrors) { + System.out.println(validationEvent); } + return false; }); unmarshaller.setListener(new Unmarshaller.Listener() { diff --git a/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/JaxbOpenejbJar3.java b/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/JaxbOpenejbJar3.java index 4ce737e5cd7..153d0696794 100644 --- a/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/JaxbOpenejbJar3.java +++ b/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/JaxbOpenejbJar3.java @@ -79,11 +79,9 @@ public static T unmarshal(final Class type, final InputStream in) throws final JAXBContext ctx = getContext(type); final Unmarshaller unmarshaller = ctx.createUnmarshaller(); - unmarshaller.setEventHandler(new ValidationEventHandler() { - public boolean handleEvent(final ValidationEvent validationEvent) { + unmarshaller.setEventHandler((ValidationEventHandler) validationEvent -> { // System.out.println(validationEvent); - return false; - } + return false; }); diff --git a/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/PropertiesAdapter.java b/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/PropertiesAdapter.java index 8757e88c223..6244a907744 100644 --- a/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/PropertiesAdapter.java +++ b/container/openejb-jee/src/main/java/org/apache/openejb/jee/oejb3/PropertiesAdapter.java @@ -69,24 +69,14 @@ public Set stringPropertyNames() { @Override public Enumeration keys() { final List list = new ArrayList<>(Collections.list(super.keys())); - Collections.sort(list, new Comparator() { - @Override - public int compare(final Object o1, final Object o2) { - return String.valueOf(o1).compareTo(String.valueOf(o2)); - } - }); + Collections.sort(list, (o1, o2) -> String.valueOf(o1).compareTo(String.valueOf(o2))); return Collections.enumeration(list); } @Override public Set> entrySet() { final Set> entrySet = super.entrySet(); - final Set> entries = new TreeSet<>(new Comparator>() { - @Override - public int compare(final Map.Entry o1, final Map.Entry o2) { - return String.valueOf(o1.getKey()).compareTo(String.valueOf(o2.getKey())); - } - }); + final Set> entries = new TreeSet<>((o1, o2) -> String.valueOf(o1.getKey()).compareTo(String.valueOf(o2.getKey()))); entries.addAll(entrySet); return entries; } diff --git a/container/openejb-jee/src/main/java/org/apache/openejb/jee/sun/JaxbSun.java b/container/openejb-jee/src/main/java/org/apache/openejb/jee/sun/JaxbSun.java index 8cbd497a4d7..4abc13ace42 100644 --- a/container/openejb-jee/src/main/java/org/apache/openejb/jee/sun/JaxbSun.java +++ b/container/openejb-jee/src/main/java/org/apache/openejb/jee/sun/JaxbSun.java @@ -72,13 +72,11 @@ public static Object unmarshal(final Class type, final InputStream in, fi final Unmarshaller unmarshaller = ctx.createUnmarshaller(); // log errors? - unmarshaller.setEventHandler(new ValidationEventHandler() { - public boolean handleEvent(final ValidationEvent validationEvent) { - if (logErrors) { - System.out.println(validationEvent); - } - return false; + unmarshaller.setEventHandler((ValidationEventHandler) validationEvent -> { + if (logErrors) { + System.out.println(validationEvent); } + return false; }); // add our XMLFilter which disables dtd downloading diff --git a/container/openejb-jee/src/main/java/org/apache/openejb/jee/wls/JaxbWls.java b/container/openejb-jee/src/main/java/org/apache/openejb/jee/wls/JaxbWls.java index 8c7593191d7..fbe0ab50414 100644 --- a/container/openejb-jee/src/main/java/org/apache/openejb/jee/wls/JaxbWls.java +++ b/container/openejb-jee/src/main/java/org/apache/openejb/jee/wls/JaxbWls.java @@ -87,11 +87,9 @@ public static Object unmarshal(final Class type, final InputStream in) th final JAXBContext ctx = JaxbWls.getContext(type); final Unmarshaller unmarshaller = ctx.createUnmarshaller(); - unmarshaller.setEventHandler(new ValidationEventHandler() { - public boolean handleEvent(final ValidationEvent validationEvent) { - System.out.println(validationEvent); - return false; - } + unmarshaller.setEventHandler((ValidationEventHandler) validationEvent -> { + System.out.println(validationEvent); + return false; }); diff --git a/container/openejb-junit5-backward/src/main/java/org/apache/openejb/junit5/security/TestSecurityTemplateInvocationContextProvider.java b/container/openejb-junit5-backward/src/main/java/org/apache/openejb/junit5/security/TestSecurityTemplateInvocationContextProvider.java index 6e94724000c..7a3988afda7 100644 --- a/container/openejb-junit5-backward/src/main/java/org/apache/openejb/junit5/security/TestSecurityTemplateInvocationContextProvider.java +++ b/container/openejb-junit5-backward/src/main/java/org/apache/openejb/junit5/security/TestSecurityTemplateInvocationContextProvider.java @@ -88,29 +88,23 @@ public String getDisplayName(int invocationIndex) { public List getAdditionalExtensions() { List extensions = new ArrayList<>(); - extensions.add(new TestExecutionExceptionHandler() { - @Override - public void handleTestExecutionException(ExtensionContext extensionContext, Throwable throwable) throws Throwable { - if (!authorized) { - if (throwable instanceof EJBAccessException) { - //ok - this would be expected here, do not fail the test! - ejbAccessThrown = true; - return; - } else { - throw throwable; - } + extensions.add((TestExecutionExceptionHandler) (extensionContext, throwable) -> { + if (!authorized) { + if (throwable instanceof EJBAccessException) { + //ok - this would be expected here, do not fail the test! + ejbAccessThrown = true; + return; + } else { + throw throwable; } - throw throwable; } + throw throwable; }); - extensions.add(new AfterEachCallback() { - @Override - public void afterEach(ExtensionContext extensionContext) throws Exception { - if (!authorized) { - if (!ejbAccessThrown) { - throw new RuntimeException("Expected 'EJBAccessException' but caught none."); - } + extensions.add((AfterEachCallback) extensionContext -> { + if (!authorized) { + if (!ejbAccessThrown) { + throw new RuntimeException("Expected 'EJBAccessException' but caught none."); } } }); diff --git a/container/openejb-loader/src/main/java/org/apache/openejb/loader/BasicURLClassPath.java b/container/openejb-loader/src/main/java/org/apache/openejb/loader/BasicURLClassPath.java index eed9457c8b1..978413e6743 100644 --- a/container/openejb-loader/src/main/java/org/apache/openejb/loader/BasicURLClassPath.java +++ b/container/openejb-loader/src/main/java/org/apache/openejb/loader/BasicURLClassPath.java @@ -29,12 +29,7 @@ public abstract class BasicURLClassPath implements ClassPath { public static ClassLoader getContextClassLoader() { - return AccessController.doPrivileged(new PrivilegedAction() { - @Override - public ClassLoader run() { - return Thread.currentThread().getContextClassLoader(); - } - }); + return AccessController.doPrivileged((PrivilegedAction) () -> Thread.currentThread().getContextClassLoader()); } private Field ucpField; @@ -50,21 +45,17 @@ protected void addJarToPath(final URL jar, final URLClassLoader loader) throws E } private Method getAddURLMethod(final URLClassLoader loader) { - return AccessController.doPrivileged(new PrivilegedAction() { - @Override - public Method run() { - final Object cp; - try { - cp = getURLClassPath(loader); - final Class clazz = cp.getClass(); - return clazz.getDeclaredMethod("addURL", URL.class); - } catch (final Exception e) { - System.err.println("Can't access addURL from URLClassPath"); - } - - return null; + return AccessController.doPrivileged((PrivilegedAction) () -> { + final Object cp; + try { + cp = getURLClassPath(loader); + final Class clazz = cp.getClass(); + return clazz.getDeclaredMethod("addURL", URL.class); + } catch (final Exception e) { + System.err.println("Can't access addURL from URLClassPath"); } + return null; }); } @@ -73,12 +64,9 @@ protected synchronized void addJarsToPath(final File dir, final URLClassLoader l return; } - final String[] jarNames = dir.list(new java.io.FilenameFilter() { - @Override - public boolean accept(final File dir, String name) { - name = name.toLowerCase(Locale.ENGLISH); - return name.endsWith(".jar") || name.endsWith(".zip"); - } + final String[] jarNames = dir.list((dir1, name) -> { + name = name.toLowerCase(Locale.ENGLISH); + return name.endsWith(".jar") || name.endsWith(".zip"); }); final URL[] jars = new URL[jarNames.length]; @@ -122,21 +110,18 @@ protected Object getURLClassPath(final URLClassLoader loader) throws Exception { private Field getUcpField() throws Exception { if (ucpField == null) { - ucpField = AccessController.doPrivileged(new PrivilegedAction() { - @Override - public Field run() { - try { - final Field ucp = URLClassLoader.class.getDeclaredField("ucp"); - ucp.setAccessible(true); - return ucp; - } catch (final Exception e2) { - if (!ucpFieldErrorLogged) { - System.err.println("Can't get ucp field of URLClassLoader"); - ucpFieldErrorLogged = true; - } + ucpField = AccessController.doPrivileged((PrivilegedAction) () -> { + try { + final Field ucp = URLClassLoader.class.getDeclaredField("ucp"); + ucp.setAccessible(true); + return ucp; + } catch (final Exception e2) { + if (!ucpFieldErrorLogged) { + System.err.println("Can't get ucp field of URLClassLoader"); + ucpFieldErrorLogged = true; } - return null; } + return null; }); } diff --git a/container/openejb-loader/src/main/java/org/apache/openejb/loader/SystemClassPath.java b/container/openejb-loader/src/main/java/org/apache/openejb/loader/SystemClassPath.java index 16f14ef7cbe..36f7d4a56d5 100644 --- a/container/openejb-loader/src/main/java/org/apache/openejb/loader/SystemClassPath.java +++ b/container/openejb-loader/src/main/java/org/apache/openejb/loader/SystemClassPath.java @@ -109,24 +109,20 @@ private void rebuildJavaClassPathVariable() throws Exception { } private Method getGetURLsMethod() { - return AccessController.doPrivileged(new PrivilegedAction() { - @Override - public Method run() { + return AccessController.doPrivileged((PrivilegedAction) () -> { + try { + final URLClassLoader loader = getSystemLoader(); + final Object cp = getURLClassPath(loader); + final Class clazz = cp.getClass(); + try { - final URLClassLoader loader = getSystemLoader(); - final Object cp = getURLClassPath(loader); - final Class clazz = cp.getClass(); - - try { - return clazz.getDeclaredMethod("getURLs", URL.class); - } catch (final NoSuchMethodException e) { - return clazz.getDeclaredMethod("getURLs"); - } - - } catch (final Exception e) { - throw new LoaderRuntimeException(e); + return clazz.getDeclaredMethod("getURLs", URL.class); + } catch (final NoSuchMethodException e) { + return clazz.getDeclaredMethod("getURLs"); } + } catch (final Exception e) { + throw new LoaderRuntimeException(e); } }); diff --git a/container/openejb-loader/src/main/java/org/apache/openejb/loader/TomcatClassPath.java b/container/openejb-loader/src/main/java/org/apache/openejb/loader/TomcatClassPath.java index 3d2417324fc..ea594028ec4 100644 --- a/container/openejb-loader/src/main/java/org/apache/openejb/loader/TomcatClassPath.java +++ b/container/openejb-loader/src/main/java/org/apache/openejb/loader/TomcatClassPath.java @@ -102,12 +102,7 @@ public ClassLoader getCommonLoader() { @Override public void addJarsToPath(final File dir) throws Exception { - final String[] jarNames = dir.list(new java.io.FilenameFilter() { - @Override - public boolean accept(final File dir, final String name) { - return (name.endsWith(".jar") || name.endsWith(".zip")); - } - }); + final String[] jarNames = dir.list((dir1, name) -> (name.endsWith(".jar") || name.endsWith(".zip"))); if (jarNames == null) { return; @@ -146,18 +141,13 @@ private boolean useServerClassLoader(final URL jar) { private Method getGetURLsMethod() { - return AccessController.doPrivileged(new PrivilegedAction() { - - @Override - public Method run() { - try { - final Object cp = getURLClassPath((URLClassLoader) getClassLoader()); - final Class clazz = cp.getClass(); - return clazz.getDeclaredMethod("getURLs"); - } catch (final Exception e) { - throw new LoaderRuntimeException(e); - } - + return AccessController.doPrivileged((PrivilegedAction) () -> { + try { + final Object cp = getURLClassPath((URLClassLoader) getClassLoader()); + final Class clazz = cp.getClass(); + return clazz.getDeclaredMethod("getURLs"); + } catch (final Exception e) { + throw new LoaderRuntimeException(e); } }); @@ -208,18 +198,15 @@ protected void rebuild() { private Method getAddRepositoryMethod() throws Exception { if (addRepositoryMethod == null) { try { - addRepositoryMethod = AccessController.doPrivileged(new PrivilegedAction() { - @Override - public Method run() { - try { - final Method method = URLClassLoader.class.getDeclaredMethod("addURL", URL.class); - if (!method.isAccessible()) { - method.setAccessible(true); - } - return method; - } catch (final Exception e2) { - throw new IllegalStateException("Unable to find or access the addRepository method in StandardClassLoader", e2); + addRepositoryMethod = AccessController.doPrivileged((PrivilegedAction) () -> { + try { + final Method method = URLClassLoader.class.getDeclaredMethod("addURL", URL.class); + if (!method.isAccessible()) { + method.setAccessible(true); } + return method; + } catch (final Exception e2) { + throw new IllegalStateException("Unable to find or access the addRepository method in StandardClassLoader", e2); } }); } catch (final Exception e) { diff --git a/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/ProvisioningResolver.java b/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/ProvisioningResolver.java index 0d881fc0885..a231c29cbda 100644 --- a/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/ProvisioningResolver.java +++ b/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/ProvisioningResolver.java @@ -93,12 +93,7 @@ public Set realLocation(final String rawLocation) { if (rawLocation.endsWith("*.jar")) { final File dir = new File(rawLocation.substring(0, rawLocation.length() - "*.jar".length())); if (dir.exists()) { - final File[] files = dir.listFiles(new FilenameFilter() { - @Override - public boolean accept(final File dir, final String name) { - return name.endsWith(".jar") || name.endsWith(".zip"); - } - }); + final File[] files = dir.listFiles((dir1, name) -> name.endsWith(".jar") || name.endsWith(".zip")); final Set paths = new HashSet<>(files == null ? 1 : files.length + 1); if (files != null) { for (final File f : files) { diff --git a/container/openejb-loader/src/main/java/org/apache/openejb/observer/ObserverManager.java b/container/openejb-loader/src/main/java/org/apache/openejb/observer/ObserverManager.java index ac87398b012..94c0c529a9f 100644 --- a/container/openejb-loader/src/main/java/org/apache/openejb/observer/ObserverManager.java +++ b/container/openejb-loader/src/main/java/org/apache/openejb/observer/ObserverManager.java @@ -43,12 +43,7 @@ public class ObserverManager { - private static final ThreadLocal> SEEN = new ThreadLocal>() { - @Override - protected Set initialValue() { - return new HashSet<>(); - } - }; + private static final ThreadLocal> SEEN = ThreadLocal.withInitial(HashSet::new); // lazy init since it is used in SystemInstance private static final AtomicReference LOGGER = new AtomicReference<>(); diff --git a/examples/async-postconstruct/src/main/java/org/superbiz/asyncpost/SlowStarter.java b/examples/async-postconstruct/src/main/java/org/superbiz/asyncpost/SlowStarter.java index a4374bd722c..37e4c8af7ad 100644 --- a/examples/async-postconstruct/src/main/java/org/superbiz/asyncpost/SlowStarter.java +++ b/examples/async-postconstruct/src/main/java/org/superbiz/asyncpost/SlowStarter.java @@ -43,14 +43,11 @@ public class SlowStarter { @PostConstruct private void construct() throws Exception { - construct = executor.submit(new Callable() { - @Override - public Object call() throws Exception { - Thread.sleep(SECONDS.toMillis(10)); - SlowStarter.this.color = "orange"; - SlowStarter.this.shape = "circle"; - return null; - } + construct = executor.submit((Callable) () -> { + Thread.sleep(SECONDS.toMillis(10)); + SlowStarter.this.color = "orange"; + SlowStarter.this.shape = "circle"; + return null; }); } diff --git a/gradle/gradle-tomee-embedded/src/main/java/org/apache/tomee/gradle/embedded/TomEEEmbeddedPlugin.java b/gradle/gradle-tomee-embedded/src/main/java/org/apache/tomee/gradle/embedded/TomEEEmbeddedPlugin.java index 671dfa19495..32b268f1d83 100644 --- a/gradle/gradle-tomee-embedded/src/main/java/org/apache/tomee/gradle/embedded/TomEEEmbeddedPlugin.java +++ b/gradle/gradle-tomee-embedded/src/main/java/org/apache/tomee/gradle/embedded/TomEEEmbeddedPlugin.java @@ -44,21 +44,18 @@ public void apply(final Project project) { project.getExtensions().create(name, TomEEEmbeddedExtension.class); } - project.afterEvaluate(new Action() { - @Override - public void execute(final Project actionProject) { - for (final String name : extensions) { - final TomEEEmbeddedExtension extension = TomEEEmbeddedExtension.class.cast(actionProject.getExtensions().findByName(name)); - if (extension == null) { - return; - } - if (extension.isSkipDefaultRepository() != null && !extension.isSkipDefaultRepository()) { - actionProject.getRepositories().mavenCentral(); - return; - } + project.afterEvaluate(actionProject -> { + for (final String name : extensions) { + final TomEEEmbeddedExtension extension = TomEEEmbeddedExtension.class.cast(actionProject.getExtensions().findByName(name)); + if (extension == null) { + return; + } + if (extension.isSkipDefaultRepository() != null && !extension.isSkipDefaultRepository()) { + actionProject.getRepositories().mavenCentral(); + return; } - actionProject.getRepositories().mavenCentral(); } + actionProject.getRepositories().mavenCentral(); }); String configName = TomEEEmbeddedExtension.ALIAS; @@ -69,36 +66,33 @@ public void execute(final Project actionProject) { } final Configuration configuration = project.getConfigurations().maybeCreate(configName); - configuration.getIncoming().beforeResolve(new Action() { - @Override - public void execute(final ResolvableDependencies resolvableDependencies) { - String tomeeVersion = null; - for (final String name : extensions) { - final TomEEEmbeddedExtension extension = TomEEEmbeddedExtension.class.cast(project.getExtensions().findByName(name)); - if (extension == null) { - return; - } - tomeeVersion = extension.getTomeeVersion(); - if (tomeeVersion != null) { - break; - } + configuration.getIncoming().beforeResolve(resolvableDependencies -> { + String tomeeVersion = null; + for (final String name : extensions) { + final TomEEEmbeddedExtension extension = TomEEEmbeddedExtension.class.cast(project.getExtensions().findByName(name)); + if (extension == null) { + return; } - if (tomeeVersion == null) { - try { - try (final InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("META-INF/maven/org.apache.tomee.gradle/tomee-embedded/pom.properties")) { - final Properties p = new Properties(); - p.load(is); - tomeeVersion = p.getProperty("version"); - } - } catch (final IOException e) { - tomeeVersion = "7.0.2"; // we should never be there + tomeeVersion = extension.getTomeeVersion(); + if (tomeeVersion != null) { + break; + } + } + if (tomeeVersion == null) { + try { + try (final InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("META-INF/maven/org.apache.tomee.gradle/tomee-embedded/pom.properties")) { + final Properties p = new Properties(); + p.load(is); + tomeeVersion = p.getProperty("version"); } + } catch (final IOException e) { + tomeeVersion = "7.0.2"; // we should never be there } - - final DependencyHandler dependencyHandler = project.getDependencies(); - final DependencySet dependencies = configuration.getDependencies(); - dependencies.add(dependencyHandler.create("org.apache.tomee:tomee-embedded:" + tomeeVersion)); } + + final DependencyHandler dependencyHandler = project.getDependencies(); + final DependencySet dependencies = configuration.getDependencies(); + dependencies.add(dependencyHandler.create("org.apache.tomee:tomee-embedded:" + tomeeVersion)); }); project.task(new HashMap() {{ diff --git a/gradle/gradle-tomee-embedded/src/main/java/org/apache/tomee/gradle/embedded/TomEEEmbeddedTask.java b/gradle/gradle-tomee-embedded/src/main/java/org/apache/tomee/gradle/embedded/TomEEEmbeddedTask.java index 82c65265a86..d1933032d6f 100644 --- a/gradle/gradle-tomee-embedded/src/main/java/org/apache/tomee/gradle/embedded/TomEEEmbeddedTask.java +++ b/gradle/gradle-tomee-embedded/src/main/java/org/apache/tomee/gradle/embedded/TomEEEmbeddedTask.java @@ -309,26 +309,23 @@ private void doRun() { } final AutoCloseable finalContainer = container; - hook = new Thread() { - @Override - public void run() { - if (running.compareAndSet(true, false)) { - final Thread thread = Thread.currentThread(); - final ClassLoader old = thread.getContextClassLoader(); - thread.setContextClassLoader(loader); - try { - finalContainer.close(); - } catch (final NoClassDefFoundError noClassDefFoundError) { - // debug cause it is too late to shutdown properly so don't pollute logs - getLogger().debug("can't stop TomEE", noClassDefFoundError); - } catch (final Exception e) { - getLogger().error("can't stop TomEE", e); - } finally { - thread.setContextClassLoader(old); - } + hook = new Thread(() -> { + if (running.compareAndSet(true, false)) { + final Thread thread1 = Thread.currentThread(); + final ClassLoader old = thread1.getContextClassLoader(); + thread1.setContextClassLoader(loader); + try { + finalContainer.close(); + } catch (final NoClassDefFoundError noClassDefFoundError) { + // debug cause it is too late to shutdown properly so don't pollute logs + getLogger().debug("can't stop TomEE", noClassDefFoundError); + } catch (final Exception e) { + getLogger().error("can't stop TomEE", e); + } finally { + thread1.setContextClassLoader(old); } } - }; + }); hook.setName("TomEE-Embedded-ShutdownHook"); running.set(true); // yes should be done after but we can't help much if we don't do it there for auto shutdown diff --git a/itests/failover/src/main/java/org/apache/openejb/server/control/StandaloneServer.java b/itests/failover/src/main/java/org/apache/openejb/server/control/StandaloneServer.java index be1da342742..d294b90d61f 100644 --- a/itests/failover/src/main/java/org/apache/openejb/server/control/StandaloneServer.java +++ b/itests/failover/src/main/java/org/apache/openejb/server/control/StandaloneServer.java @@ -406,20 +406,17 @@ public void killOnExit() { static final List kill = new ArrayList(); static { - Runtime.getRuntime().addShutdownHook(new Thread() { - @Override - public void run() { - for (final StandaloneServer server : kill) { - try { - if (server.process != null) { - server.process.destroy(); - } - } catch (final Throwable e) { - //Ignore + Runtime.getRuntime().addShutdownHook(new Thread(() -> { + for (final StandaloneServer server : kill) { + try { + if (server.process != null) { + server.process.destroy(); } + } catch (final Throwable e) { + //Ignore } } - }); + })); } public static class ServerException extends RuntimeException { diff --git a/itests/itest-util/src/main/java/org/apache/tomee/itest/util/Runner.java b/itests/itest-util/src/main/java/org/apache/tomee/itest/util/Runner.java index 47635b6da07..c928631221e 100644 --- a/itests/itest-util/src/main/java/org/apache/tomee/itest/util/Runner.java +++ b/itests/itest-util/src/main/java/org/apache/tomee/itest/util/Runner.java @@ -59,35 +59,32 @@ public Run run(final Runnable runnable) { for (int submitted = 0; submitted < threads; submitted++) { final int id = submitted; - executor.execute(new Runnable() { - @Override - public void run() { - ready.countDown(); - try { - start.await(); - } catch (InterruptedException e) { - return; - } - - /* - * If there's anything we'd like to execute - * that shouldn't be included in the timings, - * do it now. - */ - if (before != null) before.run(); - - /* - * Run, Forrest! Run!! - */ - final Timer timer = Timer.start(); - try { - runnable.run(); - } catch (Throwable t) { - failures[id] = t; - } finally { - times[id] = timer.time(); - completed.countDown(); - } + executor.execute(() -> { + ready.countDown(); + try { + start.await(); + } catch (InterruptedException e) { + return; + } + + /* + * If there's anything we'd like to execute + * that shouldn't be included in the timings, + * do it now. + */ + if (before != null) before.run(); + + /* + * Run, Forrest! Run!! + */ + final Timer timer = Timer.start(); + try { + runnable.run(); + } catch (Throwable t) { + failures[id] = t; + } finally { + times[id] = timer.time(); + completed.countDown(); } }); } diff --git a/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/NumberedTestCase.java b/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/NumberedTestCase.java index 05b82752e7f..b16c137be89 100644 --- a/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/NumberedTestCase.java +++ b/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/NumberedTestCase.java @@ -112,11 +112,7 @@ public void run(final TestResult result) { protected void run(final TestResult result, final Method testMethod) { final Test test = createTest(testMethod); result.startTest(test); - final Protectable p = new Protectable() { - public void protect() throws Throwable { - runTestMethod(testMethod); - } - }; + final Protectable p = () -> runTestMethod(testMethod); //System.out.println(">>" + NumberedTestCase.class.getName() + "> started: " + testMethod.toGenericString()); result.runProtected(test, p); result.endTest(test); diff --git a/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/PostgreSqlTestDatabase.java b/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/PostgreSqlTestDatabase.java index 2ac7eaa8e74..7016345a072 100644 --- a/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/PostgreSqlTestDatabase.java +++ b/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/PostgreSqlTestDatabase.java @@ -21,6 +21,7 @@ import javax.naming.InitialContext; import java.rmi.RemoteException; +import java.security.PrivilegedAction; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; @@ -153,11 +154,7 @@ public void init(final Properties props) throws IllegalStateException { public static void main(final String[] args) { System.out.println("Checking if driver is registered with DriverManager."); try { - final ClassLoader cl = (ClassLoader) java.security.AccessController.doPrivileged(new java.security.PrivilegedAction() { - public Object run() { - return Thread.currentThread().getContextClassLoader(); - } - }); + final ClassLoader cl = (ClassLoader) java.security.AccessController.doPrivileged((PrivilegedAction) () -> Thread.currentThread().getContextClassLoader()); Class.forName("org.postgresql.Driver", true, cl); } catch (final ClassNotFoundException e) { System.out.println("Couldn't find the driver!"); diff --git a/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/RiTestServer.java b/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/RiTestServer.java index 9fab13c20b2..7050224dad4 100644 --- a/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/RiTestServer.java +++ b/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/RiTestServer.java @@ -124,34 +124,30 @@ public void start() { } } - final Thread t = new Thread(new Runnable() { - public void run() { - while (true) { - try { - final String line = in.readLine(); - if (line == null) break; - System.out.println(line); - } catch (final Exception e) { - break; - } + final Thread t = new Thread(() -> { + while (true) { + try { + final String line = in.readLine(); + if (line == null) break; + System.out.println(line); + } catch (final Exception e) { + break; } - } + }); t.start(); - final Thread t2 = new Thread(new Runnable() { - public void run() { - while (true) { - try { - final String line = err.readLine(); - if (line == null) break; + final Thread t2 = new Thread(() -> { + while (true) { + try { + final String line = err.readLine(); + if (line == null) break; // System.out.println(line); - } catch (final Exception e) { - break; - } + } catch (final Exception e) { + break; } - } + }); t2.start(); } catch (final Exception e) { diff --git a/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/TestManager.java b/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/TestManager.java index e804fb7b1d4..7fdcc382ad4 100644 --- a/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/TestManager.java +++ b/itests/openejb-itests-client/src/main/java/org/apache/openejb/test/TestManager.java @@ -117,11 +117,7 @@ private static Properties getProperties(final String fileName) throws Exception } private static ClassLoader getContextClassLoader() { - return AccessController.doPrivileged(new PrivilegedAction() { - public ClassLoader run() { - return Thread.currentThread().getContextClassLoader(); - } - }); + return AccessController.doPrivileged((PrivilegedAction) () -> Thread.currentThread().getContextClassLoader()); } private static void initServer(final Properties props) { diff --git a/maven/openejb-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/embedded/OpenEJBEmbeddedMojo.java b/maven/openejb-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/embedded/OpenEJBEmbeddedMojo.java index 04ad451d53e..f95ccc72605 100644 --- a/maven/openejb-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/embedded/OpenEJBEmbeddedMojo.java +++ b/maven/openejb-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/embedded/OpenEJBEmbeddedMojo.java @@ -72,12 +72,7 @@ public void execute() throws MojoExecutionException, MojoFailureException { container = EJBContainer.createEJBContainer(map()); if (await) { final CountDownLatch latch = new CountDownLatch(1); - Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() { - @Override - public void run() { - latch.countDown(); - } - })); + Runtime.getRuntime().addShutdownHook(new Thread(latch::countDown)); try { latch.await(); } catch (final InterruptedException e) { diff --git a/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java b/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java index 4dda28960aa..12ae1e7e3bb 100644 --- a/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java +++ b/maven/tomee-embedded-maven-plugin/src/main/java/org/apache/openejb/maven/plugins/TomEEEmbeddedMojo.java @@ -411,29 +411,26 @@ public void setup(final Configuration configuration) { final Configuration config = getConfig(); container.setup(config); - final Thread hook = new Thread() { - @Override - public void run() { - if (container.getTomcat() != null && container.getTomcat().getServer().getState() != LifecycleState.DESTROYED) { - final Thread thread = Thread.currentThread(); - final ClassLoader old = thread.getContextClassLoader(); - thread.setContextClassLoader(ParentClassLoaderFinder.Helper.get()); - try { - if (!classpathAsWar) { - container.undeploy(warFile.getAbsolutePath()); - } - container.stop(); - } catch (final NoClassDefFoundError noClassDefFoundError) { - // debug cause it is too late to shutdown properly so don't pollute logs - getLog().debug("can't stop TomEE", noClassDefFoundError); - } catch (final Exception e) { - getLog().error("can't stop TomEE", e); - } finally { - thread.setContextClassLoader(old); + final Thread hook = new Thread(() -> { + if (container.getTomcat() != null && container.getTomcat().getServer().getState() != LifecycleState.DESTROYED) { + final Thread thread1 = Thread.currentThread(); + final ClassLoader old = thread1.getContextClassLoader(); + thread1.setContextClassLoader(ParentClassLoaderFinder.Helper.get()); + try { + if (!classpathAsWar) { + container.undeploy(warFile.getAbsolutePath()); } + container.stop(); + } catch (final NoClassDefFoundError noClassDefFoundError) { + // debug cause it is too late to shutdown properly so don't pollute logs + getLog().debug("can't stop TomEE", noClassDefFoundError); + } catch (final Exception e) { + getLog().error("can't stop TomEE", e); + } finally { + thread1.setContextClassLoader(old); } } - }; + }); hook.setName("TomEE-Embedded-ShutdownHook"); try { diff --git a/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java b/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java index 201d75ca7d5..60a8bd28f08 100644 --- a/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java +++ b/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/AbstractTomEEMojo.java @@ -976,12 +976,7 @@ private void updateLib(final String rawLib, final File rawDestParent, final Stri File destParent = rawDestParent; if (lib.startsWith(REMOVE_PREFIX)) { final String prefix = lib.substring(REMOVE_PREFIX.length()); - final File[] files = destParent.listFiles(new FilenameFilter() { - @Override - public boolean accept(final File dir, final String name) { - return name.startsWith(prefix); - } - }); + final File[] files = destParent.listFiles((dir, name) -> name.startsWith(prefix)); if (files != null) { for (final File file : files) { if (!IO.delete(file)) { @@ -1156,12 +1151,7 @@ private void overrideServerXml() { if (keystorePath == null) { final File conf = new File(catalinaBase, "conf"); if (conf.isDirectory()) { - final File[] jks = conf.listFiles(new FilenameFilter() { - @Override - public boolean accept(final File dir, final String name) { - return name.endsWith(".jks"); - } - }); + final File[] jks = conf.listFiles((dir, name) -> name.endsWith(".jks")); if (jks != null && jks.length == 1) { keystorePath = "${catalina.base}/conf/" + jks[0].getName(); } else { @@ -1339,12 +1329,7 @@ protected void run() { if (getWaitTomEE()) { final CountDownLatch stopCondition = new CountDownLatch(1); - Runtime.getRuntime().addShutdownHook(new Thread() { - @Override - public void run() { - stopServer(stopCondition); - } - }); + Runtime.getRuntime().addShutdownHook(new Thread(() -> stopServer(stopCondition))); if (useConsole) { final Scanner reader = new Scanner(originalIn); diff --git a/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/UpdatableTomEEMojo.java b/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/UpdatableTomEEMojo.java index 164ce531bce..c110d605927 100644 --- a/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/UpdatableTomEEMojo.java +++ b/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/UpdatableTomEEMojo.java @@ -154,13 +154,10 @@ private void initSynchronization(final Synchronization synchronization) { @Override protected void addShutdownHooks(final RemoteServer server) { if (synchronization != null || synchronizations != null) { - Runtime.getRuntime().addShutdownHook(new Thread() { - @Override - public void run() { - task.cancel(); - timer.cancel(); - } - }); + Runtime.getRuntime().addShutdownHook(new Thread(() -> { + task.cancel(); + timer.cancel(); + })); } super.addShutdownHooks(server); } diff --git a/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/customizer/monkey/classloader/ClassLoaderFactory.java b/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/customizer/monkey/classloader/ClassLoaderFactory.java index faf7b7709fa..34f7ae0e77a 100644 --- a/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/customizer/monkey/classloader/ClassLoaderFactory.java +++ b/maven/tomee-maven-plugin/src/main/java/org/apache/openejb/maven/plugin/customizer/monkey/classloader/ClassLoaderFactory.java @@ -39,12 +39,7 @@ public class ClassLoaderFactory { */ public ClassLoader create(final File libFolder) { final Collection urls = new ArrayList<>(); - final File[] children = libFolder.listFiles(new FilenameFilter() { - @Override - public boolean accept(final File dir, final String name) { - return name.endsWith(".jar") || name.endsWith(".zip"); - } - }); + final File[] children = libFolder.listFiles((dir, name) -> name.endsWith(".jar") || name.endsWith(".zip")); if (children == null) { throw new IllegalArgumentException("No library found in " + libFolder); } diff --git a/mp-jwt/src/main/java/org/apache/tomee/microprofile/jwt/MPJWTFilter.java b/mp-jwt/src/main/java/org/apache/tomee/microprofile/jwt/MPJWTFilter.java index 7d03074bb60..079f8e6330c 100644 --- a/mp-jwt/src/main/java/org/apache/tomee/microprofile/jwt/MPJWTFilter.java +++ b/mp-jwt/src/main/java/org/apache/tomee/microprofile/jwt/MPJWTFilter.java @@ -168,15 +168,12 @@ public MPJWTServletRequestWrapper(final HttpServletRequest request, final JWTAut // this is so that the MPJWTProducer can find the function and apply it if necessary request.setAttribute(JsonWebToken.class.getName(), tokenFunction); request.setAttribute(ValidationInterceptor.JWT_SUPPLIER, tokenSupplier); - request.setAttribute("javax.security.auth.subject.callable", (Callable) new Callable() { - @Override - public Subject call() throws Exception { - final Set principals = new LinkedHashSet<>(); - final JsonWebToken namePrincipal = tokenFunction.apply(request); - principals.add(namePrincipal); - principals.addAll(namePrincipal.getGroups().stream().map(role -> (Principal) () -> role).collect(Collectors.toList())); - return new Subject(true, principals, Collections.emptySet(), Collections.emptySet()); - } + request.setAttribute("javax.security.auth.subject.callable", (Callable) () -> { + final Set principals = new LinkedHashSet<>(); + final JsonWebToken namePrincipal = tokenFunction.apply(request); + principals.add(namePrincipal); + principals.addAll(namePrincipal.getGroups().stream().map(role -> (Principal) () -> role).collect(Collectors.toList())); + return new Subject(true, principals, Collections.emptySet(), Collections.emptySet()); }); } diff --git a/server/openejb-client/src/main/java/org/apache/openejb/client/ClientInjectionProcessor.java b/server/openejb-client/src/main/java/org/apache/openejb/client/ClientInjectionProcessor.java index 52ad6229b27..a7245952232 100644 --- a/server/openejb-client/src/main/java/org/apache/openejb/client/ClientInjectionProcessor.java +++ b/server/openejb-client/src/main/java/org/apache/openejb/client/ClientInjectionProcessor.java @@ -319,12 +319,9 @@ public Field findField(final Class typeClass, final String propertyName, final O } private static void setAccessible(final AccessibleObject accessibleObject) { - AccessController.doPrivileged(new PrivilegedAction() { - @Override - public Object run() { - accessibleObject.setAccessible(true); - return null; - } + AccessController.doPrivileged((PrivilegedAction) () -> { + accessibleObject.setAccessible(true); + return null; }); } diff --git a/server/openejb-client/src/main/java/org/apache/openejb/client/HeartbeatMonitor.java b/server/openejb-client/src/main/java/org/apache/openejb/client/HeartbeatMonitor.java index d2593255509..e65b6e7f977 100644 --- a/server/openejb-client/src/main/java/org/apache/openejb/client/HeartbeatMonitor.java +++ b/server/openejb-client/src/main/java/org/apache/openejb/client/HeartbeatMonitor.java @@ -47,13 +47,9 @@ private static void main(final Stack args) throws IOException { final MulticastSearch search = new MulticastSearch(host, port); try { - search.search(new MulticastSearch.Filter() { - @Override - @SuppressWarnings("UseOfSystemOutOrSystemErr") - public boolean accept(final URI service) { - System.out.println(service); - return false; - } + search.search((MulticastSearch.Filter) service -> { + System.out.println(service); + return false; }); } finally { search.close(); diff --git a/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIContext.java b/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIContext.java index 72d08796a0e..eec52df9751 100644 --- a/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIContext.java +++ b/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIContext.java @@ -93,36 +93,23 @@ public class JNDIContext implements InitialContextFactory, Context { container = Class.forName("org.apache.openejb.OpenEJB", false, classLoader); final Class propertyPlaceHolderHelper = Class.forName("org.apache.openejb.util.PropertyPlaceHolderHelper", false, classLoader); final Method simpleValue = propertyPlaceHolderHelper.getMethod("simpleValue", String.class); - decipher = new Decipher() { - @Override - public String decipher(final String from) { - try { - return String.class.cast(simpleValue.invoke(null, from)); - } catch (final IllegalAccessException e) { - throw new IllegalStateException(e); - } catch (final InvocationTargetException e) { - throw new IllegalStateException(e.getCause()); - } + decipher = from -> { + try { + return String.class.cast(simpleValue.invoke(null, from)); + } catch (final IllegalAccessException e) { + throw new IllegalStateException(e); + } catch (final InvocationTargetException e) { + throw new IllegalStateException(e.getCause()); } }; } catch (final Throwable e) { container = null; - decipher = new Decipher() { - @Override - public String decipher(final String from) { - return from; - } - }; + decipher = from -> from; } DECIPHER = decipher; if (classLoader == ClassLoader.getSystemClassLoader() || Boolean.getBoolean("openejb.client.flus-tasks") || (container != null && container.getClassLoader() == classLoader)) { - Runtime.getRuntime().addShutdownHook(new Thread() { - @Override - public void run() { - waitEndOfTasks(GLOBAL_CLIENT_POOL); - } - }); + Runtime.getRuntime().addShutdownHook(new Thread(() -> waitEndOfTasks(GLOBAL_CLIENT_POOL))); } } @@ -173,42 +160,34 @@ is true then a final attempt is made to run the process in the current thread (t public Thread newThread(final Runnable r) { final Thread t = new Thread(r, "OpenEJB.Client." + i.incrementAndGet()); t.setDaemon(true); - t.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { - @Override - public void uncaughtException(final Thread t, final Throwable e) { - Logger.getLogger(EJBObjectHandler.class.getName()).log(Level.SEVERE, "Uncaught error in: " + t.getName(), e); - } - }); + t.setUncaughtExceptionHandler((t1, e) -> Logger.getLogger(EJBObjectHandler.class.getName()).log(Level.SEVERE, "Uncaught error in: " + t1.getName(), e)); return t; } }); - executorService.setRejectedExecutionHandler(new RejectedExecutionHandler() { - @Override - public void rejectedExecution(final Runnable r, final ThreadPoolExecutor tpe) { + executorService.setRejectedExecutionHandler((r, tpe) -> { - if (null == r || null == tpe || tpe.isShutdown() || tpe.isTerminated() || tpe.isTerminating()) { - return; - } + if (null == r || null == tpe || tpe.isShutdown() || tpe.isTerminated() || tpe.isTerminating()) { + return; + } - final Logger log = Logger.getLogger(EJBObjectHandler.class.getName()); + final Logger log = Logger.getLogger(EJBObjectHandler.class.getName()); - if (log.isLoggable(Level.WARNING)) { - log.log(Level.WARNING, "EJBObjectHandler ExecutorService at capicity for process: " + r); - } + if (log.isLoggable(Level.WARNING)) { + log.log(Level.WARNING, "EJBObjectHandler ExecutorService at capicity for process: " + r); + } - boolean offer = false; - try { - offer = tpe.getQueue().offer(r, 10, TimeUnit.SECONDS); - } catch (InterruptedException e) { - //Ignore - } + boolean offer = false; + try { + offer = tpe.getQueue().offer(r, 10, TimeUnit.SECONDS); + } catch (InterruptedException e) { + //Ignore + } - if (!offer) { - log.log(Level.SEVERE, "EJBObjectHandler ExecutorService failed to run asynchronous process: " + r); - } + if (!offer) { + log.log(Level.SEVERE, "EJBObjectHandler ExecutorService failed to run asynchronous process: " + r); } }); return executorService; diff --git a/server/openejb-client/src/main/java/org/apache/openejb/client/Main.java b/server/openejb-client/src/main/java/org/apache/openejb/client/Main.java index 99edba2f467..c1f79161104 100644 --- a/server/openejb-client/src/main/java/org/apache/openejb/client/Main.java +++ b/server/openejb-client/src/main/java/org/apache/openejb/client/Main.java @@ -123,11 +123,9 @@ public static void main(String[] args) throws Exception { // call the main method in a doAs so the subject is associated with the thread try { - Subject.doAs(subject, new PrivilegedExceptionAction() { - public Object run() throws Exception { - invoke(mainMethod, mainArgs); - return null; - } + Subject.doAs(subject, (PrivilegedExceptionAction) () -> { + invoke(mainMethod, mainArgs); + return null; }); } finally { // And finally, logout @@ -176,11 +174,9 @@ private static String[] siftArgs(final String[] args) { } private static void setAccessible(final Field field) { - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - field.setAccessible(true); - return null; - } + AccessController.doPrivileged((PrivilegedAction) () -> { + field.setAccessible(true); + return null; }); } } diff --git a/server/openejb-client/src/main/java/org/apache/openejb/client/MulticastPulseClient.java b/server/openejb-client/src/main/java/org/apache/openejb/client/MulticastPulseClient.java index ed277605502..0fef4e3e372 100644 --- a/server/openejb-client/src/main/java/org/apache/openejb/client/MulticastPulseClient.java +++ b/server/openejb-client/src/main/java/org/apache/openejb/client/MulticastPulseClient.java @@ -290,123 +290,120 @@ private boolean isIPv6LiteralAddress(final InetAddress val) { for (final MulticastSocket socket : clientSocketsFinal) { - futures.add(getExecutorService().submit(new Runnable() { - @Override - public void run() { - try { - final DatagramPacket response = new DatagramPacket(new byte[2048], 2048); - latchListeners.countDown(); + futures.add(getExecutorService().submit(() -> { + try { + final DatagramPacket response = new DatagramPacket(new byte[2048], 2048); + latchListeners.countDown(); - while (running.get()) { - try { + while (running.get()) { + try { - socket.receive(response); + socket.receive(response); - final SocketAddress sa = response.getSocketAddress(); + final SocketAddress sa = response.getSocketAddress(); - if (null != sa && (sa instanceof InetSocketAddress)) { + if (null != sa && (sa instanceof InetSocketAddress)) { - int len = response.getLength(); - if (len > 2048) { + int len = response.getLength(); + if (len > 2048) { - if (log.isLoggable(Level.FINE)) { - log.log(Level.FINE, "Truncating multipulse length {0} to 2048", new Object[]{len}); - } - len = 2048; + if (log.isLoggable(Level.FINE)) { + log.log(Level.FINE, "Truncating multipulse length {0} to 2048", new Object[]{len}); } + len = 2048; + } - String s = new String(response.getData(), 0, len); + String s = new String(response.getData(), 0, len); - if (s.startsWith(MulticastPulseClient.SERVER)) { + if (s.startsWith(MulticastPulseClient.SERVER)) { - s = (s.replace(MulticastPulseClient.SERVER, "")); - final String group = s.substring(0, s.indexOf(':')); - s = s.substring(group.length() + 1); + s = (s.replace(MulticastPulseClient.SERVER, "")); + final String group = s.substring(0, s.indexOf(':')); + s = s.substring(group.length() + 1); - if (!"*".equals(forGroup) && !forGroup.equals(group)) { - continue; - } + if (!"*".equals(forGroup) && !forGroup.equals(group)) { + continue; + } - final String services = s.substring(0, s.lastIndexOf('|')); - s = s.substring(services.length() + 1); + final String services = s.substring(0, s.lastIndexOf('|')); + s = s.substring(services.length() + 1); - final String[] serviceList = services.split("\\|"); - final String[] hosts = s.split(","); + final String[] serviceList = services.split("\\|"); + final String[] hosts = s.split(","); - for (final String svc : serviceList) { + for (final String svc : serviceList) { - if (EMPTY.equals(svc)) { - continue; - } + if (EMPTY.equals(svc)) { + continue; + } - final URI serviceUri; - try { - serviceUri = URI.create(svc); - } catch (Exception e) { - continue; - } + final URI serviceUri; + try { + serviceUri = URI.create(svc); + } catch (Exception e) { + continue; + } - if (schemes.contains(serviceUri.getScheme())) { + if (schemes.contains(serviceUri.getScheme())) { - //Just because multicast was received on this host is does not mean the service is on the same - //We can however use this to identify an individual machine and group - final String serverHost = ((InetSocketAddress) response.getSocketAddress()).getAddress().getHostAddress(); + //Just because multicast was received on this host is does not mean the service is on the same + //We can however use this to identify an individual machine and group + final String serverHost = ((InetSocketAddress) response.getSocketAddress()).getAddress().getHostAddress(); - final String serviceHost = serviceUri.getHost(); - if (MulticastPulseClient.isLocalAddress(serviceHost, false)) { - if (!MulticastPulseClient.isLocalAddress(serverHost, false)) { - //A local service is only available to a local client - continue; - } + final String serviceHost = serviceUri.getHost(); + if (MulticastPulseClient.isLocalAddress(serviceHost, false)) { + if (!MulticastPulseClient.isLocalAddress(serverHost, false)) { + //A local service is only available to a local client + continue; } + } - final String svcfull = ("mp-" + serverHost + ":" + group + ":" + svc); + final String svcfull = ("mp-" + serverHost + ":" + group + ":" + svc); - setLock.lock(); + setLock.lock(); - try { - if (svcfull.contains("0.0.0.0")) { - for (final String h : hosts) { - if (!h.replace("[", "").startsWith("2001:0:")) { //Filter Teredo - set.add(URI.create(svcfull.replace("0.0.0.0", ipFormat(h)))); - } + try { + if (svcfull.contains("0.0.0.0")) { + for (final String h : hosts) { + if (!h.replace("[", "").startsWith("2001:0:")) { //Filter Teredo + set.add(URI.create(svcfull.replace("0.0.0.0", ipFormat(h)))); } - } else if (svcfull.contains("[::]")) { - for (final String h : hosts) { - if (!h.replace("[", "").startsWith("2001:0:")) { //Filter Teredo - set.add(URI.create(svcfull.replace("[::]", ipFormat(h)))); - } + } + } else if (svcfull.contains("[::]")) { + for (final String h : hosts) { + if (!h.replace("[", "").startsWith("2001:0:")) { //Filter Teredo + set.add(URI.create(svcfull.replace("[::]", ipFormat(h)))); } - } else { - //Just add as is - set.add(URI.create(svcfull)); } - } catch (Exception e) { - //Ignore - } finally { - setLock.unlock(); + } else { + //Just add as is + set.add(URI.create(svcfull)); } + } catch (Exception e) { + //Ignore + } finally { + setLock.unlock(); } } } } - - } catch (Exception e) { - //Ignore } - } - } finally { - try { - socket.leaveGroup(ia); - } catch (Exception e) { - //Ignore - } - try { - socket.close(); + } catch (Exception e) { //Ignore } } + } finally { + try { + socket.leaveGroup(ia); + } catch (Exception e) { + //Ignore + } + try { + socket.close(); + } catch (Exception e) { + //Ignore + } } })); } @@ -417,30 +414,27 @@ public void run() { //Start pulsing client request every 10ms - This will ensure we have at least 4 client pulses within our minimum timeout //This pulse is designed to tell a listening server to wake up and pulse back a response - futures.add(0, getExecutorService().submit(new Runnable() { - @Override - public void run() { - while (running.get()) { - //Pulse to listening servers - It is thread safe to use same sockets as send/receive synchronization is only on the packet - for (final MulticastSocket socket : clientSocketsFinal) { - - if (running.get()) { - try { - socket.send(request); - } catch (Exception e) { - //Ignore - } - } else { - break; - } - } + futures.add(0, getExecutorService().submit(() -> { + while (running.get()) { + //Pulse to listening servers - It is thread safe to use same sockets as send/receive synchronization is only on the packet + for (final MulticastSocket socket : clientSocketsFinal) { if (running.get()) { try { - Thread.sleep(10); - } catch (InterruptedException e) { - break; + socket.send(request); + } catch (Exception e) { + //Ignore } + } else { + break; + } + } + + if (running.get()) { + try { + Thread.sleep(10); + } catch (InterruptedException e) { + break; } } } @@ -677,73 +671,69 @@ public static void main(final String[] args) throws Exception { final AtomicBoolean running = new AtomicBoolean(true); - final Thread t = new Thread(new Runnable() { - @SuppressWarnings("UseOfSystemOutOrSystemErr") - @Override - public void run() { - while (running.get()) { + final Thread t = new Thread(() -> { + while (running.get()) { - Set uriSet = null; - try { - uriSet = MulticastPulseClient.discoverURIs(discover, new HashSet(Arrays.asList("ejbd", "ejbds", "http", "https")), mchost, mcport, timeout); - } catch (Exception e) { - System.err.println(e.getMessage()); - } + Set uriSet = null; + try { + uriSet = MulticastPulseClient.discoverURIs(discover, new HashSet(Arrays.asList("ejbd", "ejbds", "http", "https")), mchost, mcport, timeout); + } catch (Exception e) { + System.err.println(e.getMessage()); + } - final int size = uriSet.size(); - if (uriSet != null && size > 0) { + final int size = uriSet.size(); + if (uriSet != null && size > 0) { - final int st = (timeout / size); + final int st = (timeout / size); - for (final URI uri : uriSet) { + for (final URI uri : uriSet) { - final String server = uri.getScheme().replace("mp-", ""); - URI uriSub = URI.create(uri.getSchemeSpecificPart()); + final String server = uri.getScheme().replace("mp-", ""); + URI uriSub = URI.create(uri.getSchemeSpecificPart()); - final String group = uriSub.getScheme(); - uriSub = URI.create(uriSub.getSchemeSpecificPart()); + final String group = uriSub.getScheme(); + uriSub = URI.create(uriSub.getSchemeSpecificPart()); - final String host = uriSub.getHost(); - final int port = uriSub.getPort(); + final String host = uriSub.getHost(); + final int port = uriSub.getPort(); - if (MulticastPulseClient.isLocalAddress(host, false) && !MulticastPulseClient.isLocalAddress(server, false)) { - System.out.println(server + ":" + group + " - " + uriSub.toASCIIString() + " is not a local service"); - continue; - } + if (MulticastPulseClient.isLocalAddress(host, false) && !MulticastPulseClient.isLocalAddress(server, false)) { + System.out.println(server + ":" + group + " - " + uriSub.toASCIIString() + " is not a local service"); + continue; + } - System.out.print(server + ":" + group + " - " + uriSub.toASCIIString() + " is reachable: "); + System.out.print(server + ":" + group + " - " + uriSub.toASCIIString() + " is reachable: "); - boolean b = false; - final Socket s = new Socket(); + boolean b = false; + final Socket s = new Socket(); + try { + s.connect(new InetSocketAddress(host, port), st); + b = true; + } catch (Exception e) { + if (java.net.SocketTimeoutException.class.isInstance(e) || SocketException.class.isInstance(e)) { + MulticastPulseClient.broadcastBadUri(group, uriSub, mchost, mcport); + System.out.print("" + e + " : "); + } + } finally { try { - s.connect(new InetSocketAddress(host, port), st); - b = true; + s.close(); } catch (Exception e) { - if (java.net.SocketTimeoutException.class.isInstance(e) || SocketException.class.isInstance(e)) { - MulticastPulseClient.broadcastBadUri(group, uriSub, mchost, mcport); - System.out.print("" + e + " : "); - } - } finally { - try { - s.close(); - } catch (Exception e) { - //Ignore - } + //Ignore } - - System.out.println(b); } - } else { - System.out.println("### Failed to discover server: " + discover); + + System.out.println(b); } + } else { + System.out.println("### Failed to discover server: " + discover); + } - System.out.println("."); + System.out.println("."); - try { - Thread.sleep(500); - } catch (InterruptedException e) { - //Ignore - } + try { + Thread.sleep(500); + } catch (InterruptedException e) { + //Ignore } } }, "MulticastPulseClient Test"); @@ -766,28 +756,25 @@ public void run() { */ private static void broadcastBadUri(final String group, final URI uri, final String host, final int port) { - getExecutorService().submit(new Runnable() { - @Override - public void run() { - try { - final InetAddress ia = getAddress(host); + getExecutorService().submit(() -> { + try { + final InetAddress ia = getAddress(host); - final byte[] bytes = (MulticastPulseClient.CLIENT + group + MulticastPulseClient.BADURI + uri.getHost()).getBytes(UTF8); - final DatagramPacket request = new DatagramPacket(bytes, bytes.length, new InetSocketAddress(ia, port)); + final byte[] bytes = (MulticastPulseClient.CLIENT + group + MulticastPulseClient.BADURI + uri.getHost()).getBytes(UTF8); + final DatagramPacket request = new DatagramPacket(bytes, bytes.length, new InetSocketAddress(ia, port)); - final MulticastSocket[] multicastSockets = MulticastPulseClient.getSockets(ia, port); + final MulticastSocket[] multicastSockets = MulticastPulseClient.getSockets(ia, port); - for (final MulticastSocket socket : multicastSockets) { + for (final MulticastSocket socket : multicastSockets) { - try { - socket.send(request); - } catch (Exception e) { - log.log(Level.WARNING, "Failed to broadcast bad URI: " + uri + " on: " + socket.getInterface().getHostAddress(), e); - } + try { + socket.send(request); + } catch (Exception e) { + log.log(Level.WARNING, "Failed to broadcast bad URI: " + uri + " on: " + socket.getInterface().getHostAddress(), e); } - } catch (Exception e) { - log.log(Level.WARNING, "Failed to broadcast bad URI: " + uri, e); } + } catch (Exception e) { + log.log(Level.WARNING, "Failed to broadcast bad URI: " + uri, e); } }); } diff --git a/server/openejb-client/src/main/java/org/apache/openejb/client/proxy/ProxyManager.java b/server/openejb-client/src/main/java/org/apache/openejb/client/proxy/ProxyManager.java index 75e81775d64..6eca8143f72 100644 --- a/server/openejb-client/src/main/java/org/apache/openejb/client/proxy/ProxyManager.java +++ b/server/openejb-client/src/main/java/org/apache/openejb/client/proxy/ProxyManager.java @@ -18,6 +18,7 @@ import org.apache.openejb.client.ClientRuntimeException; +import java.security.PrivilegedAction; import java.util.Properties; public class ProxyManager { @@ -120,12 +121,7 @@ public static Object newProxyInstance(final Class proxyClass) throws IllegalAcce } public static ClassLoader getContextClassLoader() { - return (ClassLoader) java.security.AccessController.doPrivileged(new java.security.PrivilegedAction() { - @Override - public Object run() { - return Thread.currentThread().getContextClassLoader(); - } - } + return (ClassLoader) java.security.AccessController.doPrivileged((PrivilegedAction) () -> Thread.currentThread().getContextClassLoader() ); } } diff --git a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/EEFilter.java b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/EEFilter.java index 0652ae2cb19..014f6683130 100644 --- a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/EEFilter.java +++ b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/EEFilter.java @@ -271,15 +271,12 @@ public void complete() { @Override public void start(final Runnable runnable) { - delegate.start(new Runnable() { - @Override - public void run() { - startRequestScope(); - try { - runnable.run(); - } finally { - stopRequestScope(); - } + delegate.start(() -> { + startRequestScope(); + try { + runnable.run(); + } finally { + stopRequestScope(); } }); } diff --git a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/OpenEJBAsyncContext.java b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/OpenEJBAsyncContext.java index cc24fc14b68..5d3542c3b5c 100644 --- a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/OpenEJBAsyncContext.java +++ b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/OpenEJBAsyncContext.java @@ -76,21 +76,18 @@ public static void init() { return; } es = Executors.newScheduledThreadPool(1, new DaemonThreadFactory(OpenEJBAsyncContext.class)); - es.scheduleWithFixedDelay(new Runnable() { - @Override - public void run() { - for (final OpenEJBAsyncContext ctx : new ArrayList<>(INITIALIZED)) { - if (ctx.lastTouch + ctx.getTimeout() < System.currentTimeMillis()) { - INITIALIZED.remove(ctx); - for (final AsyncListener listener : ctx.listeners) { - try { - listener.onTimeout(ctx.event); - } catch (final IOException t) { - throw new OpenEJBRuntimeException(t); - } + es.scheduleWithFixedDelay(() -> { + for (final OpenEJBAsyncContext ctx : new ArrayList<>(INITIALIZED)) { + if (ctx.lastTouch + ctx.getTimeout() < System.currentTimeMillis()) { + INITIALIZED.remove(ctx); + for (final AsyncListener listener : ctx.listeners) { + try { + listener.onTimeout(ctx.event); + } catch (final IOException t) { + throw new OpenEJBRuntimeException(t); } - ctx.complete(); } + ctx.complete(); } } }, 1, 1, TimeUnit.MINUTES); diff --git a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/session/SessionManager.java b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/session/SessionManager.java index 9a6c61e12d0..a65e75bcb7c 100644 --- a/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/session/SessionManager.java +++ b/server/openejb-http/src/main/java/org/apache/openejb/server/httpd/session/SessionManager.java @@ -97,16 +97,13 @@ public void initEviction() { } final Duration duration = new Duration(SystemInstance.get().getProperty("openejb.http.eviction.duration", "1 minute")); es = Executors.newScheduledThreadPool(1, new DaemonThreadFactory(SessionManager.class)); - es.scheduleWithFixedDelay(new Runnable() { - @Override - public void run() { - for (final SessionWrapper data : new ArrayList<>(sessions.values())) { - final HttpSession session = data.session; - if (session.getMaxInactiveInterval() > 0 - && session.getLastAccessedTime() + TimeUnit.SECONDS.toMillis(session.getMaxInactiveInterval()) < System.currentTimeMillis()) { - doDestroy(data); - sessions.remove(data.session.getId()); - } + es.scheduleWithFixedDelay(() -> { + for (final SessionWrapper data : new ArrayList<>(sessions.values())) { + final HttpSession session = data.session; + if (session.getMaxInactiveInterval() > 0 + && session.getLastAccessedTime() + TimeUnit.SECONDS.toMillis(session.getMaxInactiveInterval()) < System.currentTimeMillis()) { + doDestroy(data); + sessions.remove(data.session.getId()); } } }, duration.getTime(), duration.getTime(), duration.getUnit()); diff --git a/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MulticastPulseAgent.java b/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MulticastPulseAgent.java index ffc16fb0a99..ea59b90560f 100644 --- a/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MulticastPulseAgent.java +++ b/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MulticastPulseAgent.java @@ -263,14 +263,11 @@ private URI parseUri(final URI uri) { private void fireEvent(final URI uri, final boolean add) { if (null != this.listener) { final DiscoveryListener dl = this.listener; - getExecutorService().execute(new Runnable() { - @Override - public void run() { - if (add) { - dl.serviceAdded(uri); - } else { - dl.serviceRemoved(uri); - } + getExecutorService().execute(() -> { + if (add) { + dl.serviceAdded(uri); + } else { + dl.serviceRemoved(uri); } }); } @@ -305,98 +302,95 @@ public void start() throws ServiceException { final Sender sender = new Sender(this, socketKey, socket); this.futures.add(executorService.submit(sender)); - this.futures.add(executorService.submit(new Runnable() { - @Override - public void run() { + this.futures.add(executorService.submit(() -> { - final DatagramPacket request = new DatagramPacket(new byte[2048], 2048); - latch.countDown(); + final DatagramPacket request = new DatagramPacket(new byte[2048], 2048); + latch.countDown(); - while (agent.running.get()) { + while (agent.running.get()) { - try { - socket.receive(request); - final SocketAddress sa = request.getSocketAddress(); + try { + socket.receive(request); + final SocketAddress sa = request.getSocketAddress(); - if (null != sa) { + if (null != sa) { - String req = new String(request.getData(), 0, request.getLength()); + String req = new String(request.getData(), 0, request.getLength()); - if (req.startsWith(CLIENT)) { + if (req.startsWith(CLIENT)) { - final int ix = req.indexOf(BADURI); - String badUri = null; + final int ix = req.indexOf(BADURI); + String badUri = null; - if (ix > 0) { - //The client is notifying of a bad uri - badUri = req.substring(ix).replace(BADURI, ""); - req = req.substring(0, ix).replace(CLIENT, ""); - } else { - req = (req.replace(CLIENT, "")); - } + if (ix > 0) { + //The client is notifying of a bad uri + badUri = req.substring(ix).replace(BADURI, ""); + req = req.substring(0, ix).replace(CLIENT, ""); + } else { + req = (req.replace(CLIENT, "")); + } - //Is this a group or global pulse request - if (mpg.equals(req) || "*".equals(req)) { - - //Is there a bad url and is it this agent broadcasting the bad URI? - if (null != badUri) { - if (getHosts(agent.ignore).contains(badUri)) { - final ReentrantLock l = agent.lock; - l.lock(); - - try { - //Remove it and rebuild our broadcast packet - if (agent.ignore.add(badUri)) { - agent.buildPacket(); - LOG.warning("This server has removed the unreachable host '" + badUri + "' from discovery, you should consider adding" + - " this to the 'ignore' property in the multipulse.properties file"); - } - } finally { - l.unlock(); + //Is this a group or global pulse request + if (mpg.equals(req) || "*".equals(req)) { + + //Is there a bad url and is it this agent broadcasting the bad URI? + if (null != badUri) { + if (getHosts(agent.ignore).contains(badUri)) { + final ReentrantLock l = agent.lock; + l.lock(); + + try { + //Remove it and rebuild our broadcast packet + if (agent.ignore.add(badUri)) { + agent.buildPacket(); + LOG.warning("This server has removed the unreachable host '" + badUri + "' from discovery, you should consider adding" + + " this to the 'ignore' property in the multipulse.properties file"); } + } finally { + l.unlock(); } + } - agent.fireEvent(URI.create("OpenEJB" + BADURI + badUri), false); - - } else { + agent.fireEvent(URI.create("OpenEJB" + BADURI + badUri), false); - //Normal client multicast pulse request - final String client = ((InetSocketAddress) sa).getAddress().getHostAddress(); + } else { - if (isLoopBackOnly && !MulticastPulseAgent.isLocalAddress(client, false)) { - //We only have local services, so make sure the request is from a local source else ignore it - if (LOG.isDebugEnabled()) { - LOG.debug(String.format("Ignoring remote client %1$s pulse request for group: %2$s - No remote services available", - client, - req)); - } - } else { + //Normal client multicast pulse request + final String client = ((InetSocketAddress) sa).getAddress().getHostAddress(); - //We have received a valid pulse request - if (LOG.isDebugEnabled()) { - LOG.debug(String.format("Answering client '%1$s' pulse request for group: '%2$s' on '%3$s'", client, req, socketKey)); - } + if (isLoopBackOnly && !MulticastPulseAgent.isLocalAddress(client, false)) { + //We only have local services, so make sure the request is from a local source else ignore it + if (LOG.isDebugEnabled()) { + LOG.debug(String.format("Ignoring remote client %1$s pulse request for group: %2$s - No remote services available", + client, + req)); + } + } else { - //Renew response pulse - sender.pulseResponse(); + //We have received a valid pulse request + if (LOG.isDebugEnabled()) { + LOG.debug(String.format("Answering client '%1$s' pulse request for group: '%2$s' on '%3$s'", client, req, socketKey)); } + + //Renew response pulse + sender.pulseResponse(); } } } } + } - } catch (final Exception e) { - if (LOG.isDebugEnabled()) { - LOG.debug("MulticastPulseAgent request error: " + e.getMessage(), e); - } + } catch (final Exception e) { + if (LOG.isDebugEnabled()) { + LOG.debug("MulticastPulseAgent request error: " + e.getMessage(), e); } } + } - try { - socket.close(); - } catch (final Throwable e) { - //Ignore - } + try { + socket.close(); + } catch (final Throwable e) { + //Ignore } })); } diff --git a/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MultipointServer.java b/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MultipointServer.java index e8c293c336b..f6bf07ac562 100644 --- a/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MultipointServer.java +++ b/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/MultipointServer.java @@ -258,15 +258,12 @@ public MultipointServer start() { final String multipointServer = Join.join(".", "MultipointServer", name, port); LOGGER.info("MultipointServer Starting : Thread '" + multipointServer + "'"); - final Thread thread = new Thread(new Runnable() { - @Override - public void run() { - signal(started); - try { - _run(); - } finally { - signal(stopped); - } + final Thread thread = new Thread(() -> { + signal(started); + try { + _run(); + } finally { + signal(stopped); } }); thread.setName(multipointServer); @@ -1008,12 +1005,7 @@ private void connected(Session session) { if (!sessions[0].client && !sessions[1].client) { // Case 1 -- Client is calling back - Arrays.sort(sessions, new Comparator() { - @Override - public int compare(final Session a, final Session b) { - return (int) (b.created - a.created); - } - }); + Arrays.sort(sessions, (a, b) -> (int) (b.created - a.created)); } else { // Case 2 -- We called each other at the same time @@ -1216,12 +1208,7 @@ private class Host { private Host(final URI uri) { this.uri = uri; - this.address = new FutureTask(new Callable() { - @Override - public InetAddress call() throws Exception { - return InetAddress.getByName(Host.this.uri.getHost()); - } - }); + this.address = new FutureTask(() -> InetAddress.getByName(Host.this.uri.getHost())); } public void resolveDns() { diff --git a/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/Tracker.java b/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/Tracker.java index 6c2b8161758..713fc9c8de0 100644 --- a/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/Tracker.java +++ b/server/openejb-multicast/src/main/java/org/apache/openejb/server/discovery/Tracker.java @@ -187,13 +187,10 @@ private boolean debug() { return debug && log.isDebugEnabled(); } - private final Executor executor = new ThreadPoolExecutor(1, 2, 30, TimeUnit.SECONDS, new LinkedBlockingQueue<>(1), new ThreadFactory() { - @Override - public Thread newThread(final Runnable runable) { - final Thread t = new Thread(runable, "Discovery Agent Notifier"); - t.setDaemon(true); - return t; - } + private final Executor executor = new ThreadPoolExecutor(1, 2, 30, TimeUnit.SECONDS, new LinkedBlockingQueue<>(1), runable -> { + final Thread t = new Thread(runable, "Discovery Agent Notifier"); + t.setDaemon(true); + return t; }); private void fireServiceRemovedEvent(final URI uri) { @@ -207,12 +204,7 @@ private void fireServiceRemovedEvent(final URI uri) { // Have the listener process the event async so that // he does not block this thread since we are doing time sensitive // processing of events. - executor.execute(new Runnable() { - @Override - public void run() { - discoveryListener.serviceRemoved(uri); - } - }); + executor.execute(() -> discoveryListener.serviceRemoved(uri)); } } @@ -227,12 +219,7 @@ private void fireServiceAddedEvent(final URI uri) { // Have the listener process the event async so that // he does not block this thread since we are doing time sensitive // processing of events. - executor.execute(new Runnable() { - @Override - public void run() { - discoveryListener.serviceAdded(uri); - } - }); + executor.execute(() -> discoveryListener.serviceAdded(uri)); } } diff --git a/server/openejb-server/src/main/java/org/apache/openejb/server/DiscoveryRegistry.java b/server/openejb-server/src/main/java/org/apache/openejb/server/DiscoveryRegistry.java index 6b477119da7..0ed7ca44f2d 100644 --- a/server/openejb-server/src/main/java/org/apache/openejb/server/DiscoveryRegistry.java +++ b/server/openejb-server/src/main/java/org/apache/openejb/server/DiscoveryRegistry.java @@ -45,27 +45,21 @@ public DiscoveryRegistry() { public DiscoveryRegistry(final DiscoveryAgent agent) { - executor = new ThreadPoolExecutor(1, 10, 30, TimeUnit.SECONDS, new LinkedBlockingQueue<>(1), new ThreadFactory() { - @Override - public Thread newThread(final Runnable runable) { - final Thread t = new Thread(runable, DiscoveryRegistry.class.getSimpleName()); - t.setDaemon(true); - return t; - } + executor = new ThreadPoolExecutor(1, 10, 30, TimeUnit.SECONDS, new LinkedBlockingQueue<>(1), runable -> { + final Thread t = new Thread(runable, DiscoveryRegistry.class.getSimpleName()); + t.setDaemon(true); + return t; }); - executor.setRejectedExecutionHandler(new RejectedExecutionHandler() { - @Override - public void rejectedExecution(final Runnable r, final ThreadPoolExecutor tpe) { - if (null == r || null == tpe || tpe.isShutdown() || tpe.isTerminated() || tpe.isTerminating()) { - return; - } - - try { - tpe.getQueue().offer(r, 20, TimeUnit.SECONDS); - } catch (InterruptedException e) { - //Ignore - } + executor.setRejectedExecutionHandler((r, tpe) -> { + if (null == r || null == tpe || tpe.isShutdown() || tpe.isTerminated() || tpe.isTerminating()) { + return; + } + + try { + tpe.getQueue().offer(r, 20, TimeUnit.SECONDS); + } catch (InterruptedException e) { + //Ignore } }); diff --git a/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java b/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java index c72f8b1f1ef..115f0f363c2 100644 --- a/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java +++ b/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceManager.java @@ -234,15 +234,12 @@ private void overrideProperties(final String serviceName, final Properties servi if (null == legacy) { //Legacy is not configured either way, so make an educated guess. //If we find at least 2 known service.properties files then assume legacy - final File[] files = conf.listFiles(new FilenameFilter() { - @Override - public boolean accept(final File dir, String name) { - name = name.toLowerCase(Locale.ENGLISH); - return name.equals("ejbd.properties") - || name.equals("ejbds.properties") - || name.equals("admin.properties") - || name.equals("httpejbd.properties"); - } + final File[] files = conf.listFiles((dir, name) -> { + name = name.toLowerCase(Locale.ENGLISH); + return name.equals("ejbd.properties") + || name.equals("ejbds.properties") + || name.equals("admin.properties") + || name.equals("httpejbd.properties"); }); if (null != files && files.length > 1) { diff --git a/server/openejb-server/src/main/java/org/apache/openejb/server/ServicePool.java b/server/openejb-server/src/main/java/org/apache/openejb/server/ServicePool.java index ac3088c0de8..d8237819c17 100644 --- a/server/openejb-server/src/main/java/org/apache/openejb/server/ServicePool.java +++ b/server/openejb-server/src/main/java/org/apache/openejb/server/ServicePool.java @@ -115,20 +115,13 @@ is true then a final attempt is made to run the runnable in the current thread ( public Thread newThread(final Runnable r) { final Thread t = new Thread(r, "OpenEJB." + ServicePool.this.getName() + "." + i.incrementAndGet()); t.setDaemon(true); - t.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { - @Override - public void uncaughtException(final Thread t, final Throwable e) { - log.error("ServicePool '" + ServicePool.this.getName() + "': Uncaught error in: " + t.getName(), e); - } - }); + t.setUncaughtExceptionHandler((t1, e) -> log.error("ServicePool '" + ServicePool.this.getName() + "': Uncaught error in: " + t1.getName(), e)); return t; } }, - new RejectedExecutionHandler() { - @Override - public void rejectedExecution(final Runnable r, final ThreadPoolExecutor tpe) { + (r, tpe) -> { if (null == r || null == tpe || tpe.isShutdown() || tpe.isTerminated() || tpe.isTerminating()) { return; @@ -164,8 +157,7 @@ public void rejectedExecution(final Runnable r, final ThreadPoolExecutor tpe) { + "\nIt is strongly advised that the 'threadCore', 'threads', 'queue' size and 'block' properties are modified to prevent data loss!"); } } - } - }); + }); Registry registry = SystemInstance.get().getComponent(Registry.class); if (registry == null) { diff --git a/server/openejb-ssh/src/main/java/org/apache/openejb/server/ssh/OpenEJBCommands.java b/server/openejb-ssh/src/main/java/org/apache/openejb/server/ssh/OpenEJBCommands.java index 3a55d446b9f..138c830d5ac 100644 --- a/server/openejb-ssh/src/main/java/org/apache/openejb/server/ssh/OpenEJBCommands.java +++ b/server/openejb-ssh/src/main/java/org/apache/openejb/server/ssh/OpenEJBCommands.java @@ -71,12 +71,9 @@ public void run() { throw new IllegalStateException("No user logged"); } try { - Subject.doAs(loginContext.getSubject(), new PrivilegedAction() { - @Override - public Object run() { - OpenEJBCommands.super.run(); - return null; - } + Subject.doAs(loginContext.getSubject(), (PrivilegedAction) () -> { + OpenEJBCommands.super.run(); + return null; }); } finally { try { diff --git a/server/openejb-ssh/src/main/java/org/apache/openejb/server/ssh/OpenEJBJaasPasswordAuthenticator.java b/server/openejb-ssh/src/main/java/org/apache/openejb/server/ssh/OpenEJBJaasPasswordAuthenticator.java index bf0818c1fe8..a4a9ff4a5fe 100644 --- a/server/openejb-ssh/src/main/java/org/apache/openejb/server/ssh/OpenEJBJaasPasswordAuthenticator.java +++ b/server/openejb-ssh/src/main/java/org/apache/openejb/server/ssh/OpenEJBJaasPasswordAuthenticator.java @@ -41,16 +41,14 @@ public class OpenEJBJaasPasswordAuthenticator extends JaasPasswordAuthenticator public boolean authenticate(final String username, final String password, final ServerSession session) { try { final Subject subject = new Subject(); - final LoginContext loginContext = new LoginContext(getDomain(), subject, new CallbackHandler() { - public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException { - for (final Callback callback : callbacks) { - if (callback instanceof NameCallback) { - ((NameCallback) callback).setName(username); - } else if (callback instanceof PasswordCallback) { - ((PasswordCallback) callback).setPassword(password.toCharArray()); - } else { - throw new UnsupportedCallbackException(callback); - } + final LoginContext loginContext = new LoginContext(getDomain(), subject, callbacks -> { + for (final Callback callback : callbacks) { + if (callback instanceof NameCallback) { + ((NameCallback) callback).setName(username); + } else if (callback instanceof PasswordCallback) { + ((PasswordCallback) callback).setPassword(password.toCharArray()); + } else { + throw new UnsupportedCallbackException(callback); } } }); diff --git a/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/saaj/SaajUniverse.java b/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/saaj/SaajUniverse.java index f11655c09e0..d52f2ed703c 100644 --- a/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/saaj/SaajUniverse.java +++ b/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/saaj/SaajUniverse.java @@ -47,12 +47,7 @@ enum Type {DEFAULT, AXIS2, SUN} public static final Type AXIS2 = Type.AXIS2; private static final ThreadLocal> CURRENT_UNIVERSE = - new ThreadLocal>() { - @Override - protected LinkedList initialValue() { - return new LinkedList(); - } - }; + ThreadLocal.withInitial(LinkedList::new); public void set(Type newUniverse) { final LinkedList universeList = CURRENT_UNIVERSE.get(); diff --git a/tck/tck-common/src/main/java/org/apache/openejb/tck/testng/HTMLReporter.java b/tck/tck-common/src/main/java/org/apache/openejb/tck/testng/HTMLReporter.java index edeb67c1270..48b5726e4c5 100644 --- a/tck/tck-common/src/main/java/org/apache/openejb/tck/testng/HTMLReporter.java +++ b/tck/tck-common/src/main/java/org/apache/openejb/tck/testng/HTMLReporter.java @@ -51,15 +51,12 @@ private List doWrap(final Set raw) { for (final ITestResult result : raw) { wrapped.add(ITestResult.class.cast( Proxy.newProxyInstance(loader, API, - new InvocationHandler() { - @Override - public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable { + (proxy, method, args) -> { if (method.getName().equals("getParameters")) { return new Object[method.getParameterTypes().length]; } return method.invoke(result, args); - } - }) + }) )); } return wrapped; diff --git a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/IgnoredStandardContext.java b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/IgnoredStandardContext.java index 018a75140b7..9816ba3646f 100644 --- a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/IgnoredStandardContext.java +++ b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/IgnoredStandardContext.java @@ -29,15 +29,12 @@ public IgnoredStandardContext() { // Tomcat has a stupid rule where a life cycle listener must set // configured true, or it will treat it as a failed deployment - addLifecycleListener(new LifecycleListener() { - @Override - public void lifecycleEvent(final LifecycleEvent event) { - final Context context = Context.class.cast(event.getLifecycle()); - if (event.getType().equals(Lifecycle.START_EVENT) - || event.getType().equals(Lifecycle.BEFORE_START_EVENT) - || event.getType().equals(Lifecycle.CONFIGURE_START_EVENT)) { - context.setConfigured(true); - } + addLifecycleListener(event -> { + final Context context = Context.class.cast(event.getLifecycle()); + if (event.getType().equals(Lifecycle.START_EVENT) + || event.getType().equals(Lifecycle.BEFORE_START_EVENT) + || event.getType().equals(Lifecycle.CONFIGURE_START_EVENT)) { + context.setConfigured(true); } }); } diff --git a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEERealm.java b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEERealm.java index abb3bbfd2c6..c13518444eb 100644 --- a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEERealm.java +++ b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEERealm.java @@ -112,12 +112,7 @@ private Principal logInTomEE(final Principal pcp) { final CUTask.Context context = CUTask.Context.CURRENT.get(); if (context != null) { final Object state = securityService.enterWebApp(this, pcp, null); - context.pushExitTask(new Runnable() { - @Override - public void run() { - securityService.exitWebApp(state); - } - }); + context.pushExitTask(() -> securityService.exitWebApp(state)); } else { final Logger instance = Logger.getInstance(LogCategory.OPENEJB_SECURITY, TomEERealm.class); if (instance.isDebugEnabled()) { diff --git a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatSecurityService.java b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatSecurityService.java index 1a660e9f1f3..f95da34fddb 100644 --- a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatSecurityService.java +++ b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatSecurityService.java @@ -44,11 +44,7 @@ public class TomcatSecurityService extends AbstractSecurityService { private static final boolean ONLY_DEFAULT_REALM = "true".equals(SystemInstance.get().getProperty("tomee.realm.only-default", "false")); - protected static final ThreadLocal> RUN_AS_STACK = new ThreadLocal>() { - protected LinkedList initialValue() { - return new LinkedList<>(); - } - }; + protected static final ThreadLocal> RUN_AS_STACK = ThreadLocal.withInitial(LinkedList::new); private Realm defaultRealm; diff --git a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Warmup.java b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Warmup.java index 24842600615..f7fdb3b7c15 100644 --- a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Warmup.java +++ b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/Warmup.java @@ -164,41 +164,34 @@ public static void warmup() {} final int permits = 2 * Runtime.getRuntime().availableProcessors() + 1; final Semaphore semaphore = new Semaphore(0); - final Thread tld = new Thread() { - - @Override - public void run() { - try { - TldScanner.scan(loader); - } catch (final Throwable throwable) { - // no-op - } + final Thread tld = new Thread(() -> { + try { + TldScanner.scan(loader); + } catch (final Throwable throwable) { + // no-op } - }; + }); tld.setDaemon(true); tld.start(); final int part = Math.max(1, (int) Math.round(classes.length * 1. / permits)); for (int i = 0; i < permits; i++) { final int offset = i * part; - final Thread thread = new Thread() { - @Override - public void run() { - int max = offset + part; - if (offset / part == permits - 1) { // last one - max = classes.length; - } + final Thread thread = new Thread(() -> { + int max = offset + part; + if (offset / part == permits - 1) { // last one + max = classes.length; + } - for (int c = offset; c < max; c++) { - try { - Class.forName(classes[c], true, loader); - } catch (final Throwable e) { - // no-op - } + for (int c = offset; c < max; c++) { + try { + Class.forName(classes[c], true, loader); + } catch (final Throwable e) { + // no-op } - semaphore.release(); } - }; + semaphore.release(); + }); thread.setName("warmup - " + (i + 1)); thread.setDaemon(true); thread.start(); diff --git a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/realm/LazyRealm.java b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/realm/LazyRealm.java index 21e412607ae..ad1bf792383 100644 --- a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/realm/LazyRealm.java +++ b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/realm/LazyRealm.java @@ -226,13 +226,10 @@ public Container getContainer() { @Override public void setContainer(final Container container) { - container.addLifecycleListener(new LifecycleListener() { - @Override - public void lifecycleEvent(final LifecycleEvent event) { - if (Lifecycle.BEFORE_STOP_EVENT.equals(event.getType())) { - if (creationalContext != null) { - creationalContext.release(); - } + container.addLifecycleListener(event -> { + if (Lifecycle.BEFORE_STOP_EVENT.equals(event.getType())) { + if (creationalContext != null) { + creationalContext.release(); } } }); diff --git a/tomee/tomee-common/src/main/java/org/apache/tomee/installer/Paths.java b/tomee/tomee-common/src/main/java/org/apache/tomee/installer/Paths.java index 3a29c4195e3..ae003c4b8dc 100644 --- a/tomee/tomee-common/src/main/java/org/apache/tomee/installer/Paths.java +++ b/tomee/tomee-common/src/main/java/org/apache/tomee/installer/Paths.java @@ -310,12 +310,7 @@ private File findJar(final File dir, final String namePrefix) { return null; } - final File[] files = dir.listFiles(new FilenameFilter() { - @Override - public boolean accept(final File dir, final String name) { - return (name.startsWith(namePrefix + "-") && name.endsWith(".jar")) || name.equals(namePrefix); - } - }); + final File[] files = dir.listFiles((dir1, name) -> (name.startsWith(namePrefix + "-") && name.endsWith(".jar")) || name.equals(namePrefix)); return files != null && files.length > 0? files[0] : null; } diff --git a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Main.java b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Main.java index 0dd9b92865c..ee28d4896e1 100644 --- a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Main.java +++ b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Main.java @@ -172,18 +172,15 @@ public static void main(final String[] args) { } } - Runtime.getRuntime().addShutdownHook(new Thread() { - @Override - public void run() { - try { - container.stop(); - } catch (final Exception e) { - e.printStackTrace(); // just log the exception - } finally { - close(post); - } + Runtime.getRuntime().addShutdownHook(new Thread(() -> { + try { + container.stop(); + } catch (final Exception e) { + e.printStackTrace(); // just log the exception + } finally { + close(post); } - }); + })); if (line.hasOption(INTERACTIVE)) { String l; final Scanner scanner = new Scanner(System.in); diff --git a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/junit/TomEEEmbeddedSingleRunner.java b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/junit/TomEEEmbeddedSingleRunner.java index e5ed6891210..f71d02b9808 100644 --- a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/junit/TomEEEmbeddedSingleRunner.java +++ b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/junit/TomEEEmbeddedSingleRunner.java @@ -95,17 +95,12 @@ public TomEEEmbeddedSingleRunner(final Class klass) throws InitializationErro @Override protected List rules(final Object test) { final List rules = super.rules(test); - rules.add(new MethodRule() { + rules.add((base, method, target) -> new Statement() { @Override - public Statement apply(final Statement base, final FrameworkMethod method, final Object target) { - return new Statement() { - @Override - public void evaluate() throws Throwable { - BASE.start(test); - BASE.composerInject(target); - base.evaluate(); - } - }; + public void evaluate() throws Throwable { + BASE.start(test); + BASE.composerInject(target); + base.evaluate(); } }); return rules; diff --git a/tomee/tomee-juli/src/main/java/org/apache/tomee/jul/handler/rotating/LocalFileHandler.java b/tomee/tomee-juli/src/main/java/org/apache/tomee/jul/handler/rotating/LocalFileHandler.java index 3a9ae3ec6fe..aefb09ed6d9 100644 --- a/tomee/tomee-juli/src/main/java/org/apache/tomee/jul/handler/rotating/LocalFileHandler.java +++ b/tomee/tomee-juli/src/main/java/org/apache/tomee/jul/handler/rotating/LocalFileHandler.java @@ -407,29 +407,21 @@ protected void openWriter() { writerLock.writeLock().unlock(); } - BackgroundTaskRunner.push(new Runnable() { - @Override - public void run() { - backgroundTaskLock.lock(); - try { - evict(beforeRotation); - } catch (final Exception e) { - reportError("Can't do the log eviction", e, ErrorManager.GENERIC_FAILURE); - } finally { - backgroundTaskLock.unlock(); - } + BackgroundTaskRunner.push(() -> { + backgroundTaskLock.lock(); + try { + evict(beforeRotation); + } catch (final Exception e) { + reportError("Can't do the log eviction", e, ErrorManager.GENERIC_FAILURE); + } finally { + backgroundTaskLock.unlock(); } }); } private void evict(final long now) { if (purgeExpiryDuration > 0) { // purging archives - final File[] archives = archiveDir.listFiles(new FilenameFilter() { - @Override - public boolean accept(final File dir, final String name) { - return archiveFilenameRegex.matcher(name).matches(); - } - }); + final File[] archives = archiveDir.listFiles((dir, name) -> archiveFilenameRegex.matcher(name).matches()); if (archives != null) { for (final File archive : archives) { @@ -449,12 +441,7 @@ public boolean accept(final File dir, final String name) { } if (archiveExpiryDuration > 0) { // archiving log files final File[] logs = new File(formatFilename(filenamePattern, "0000-00-00", 0)).getParentFile() - .listFiles(new FilenameFilter() { - @Override - public boolean accept(final File dir, final String name) { - return filenameRegex.matcher(name).matches(); - } - }); + .listFiles((dir, name) -> filenameRegex.matcher(name).matches()); if (logs != null) { for (final File file : logs) { @@ -609,12 +596,7 @@ public void close() throws IOException { } public static class PatternFormatter extends Formatter { - private final ThreadLocal date = new ThreadLocal() { - @Override - protected Date initialValue() { - return new Date(); - } - }; + private final ThreadLocal date = ThreadLocal.withInitial(Date::new); private final String format; private final Locale locale; diff --git a/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/TomEEListener.java b/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/TomEEListener.java index ece949f582f..af3a47ed3c3 100644 --- a/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/TomEEListener.java +++ b/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/TomEEListener.java @@ -64,12 +64,8 @@ public TomEEListener() { private boolean tomeeLibAreInTomcatLibs() { final File lib = new File(System.getProperty("catalina.home"), "lib"); if (lib.exists()) { - final File[] files = lib.listFiles(new FilenameFilter() { - @Override - public boolean accept(final File dir, final String name) { - return name != null && name.startsWith("openejb-core") && name.endsWith(".jar"); - } - }); + final File[] files = lib.listFiles( + (dir, name) -> name != null && name.startsWith("openejb-core") && name.endsWith(".jar")); return files != null && files.length > 0; // == 1 in fact } return false; diff --git a/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/filter/Filters.java b/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/filter/Filters.java index 702407702c8..01432364ae0 100644 --- a/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/filter/Filters.java +++ b/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/filter/Filters.java @@ -27,11 +27,7 @@ * @version $Rev$ $Date$ */ public class Filters { - private static final Filter NONE = new Filter() { - public boolean accept(final String name) { - return false; - } - }; + private static final Filter NONE = name -> false; public static Filter packages(final String... packages) { final List filters = new ArrayList<>(); diff --git a/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/TomEEMicroProfileListener.java b/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/TomEEMicroProfileListener.java index f9f1544c2e7..3a02461c80d 100644 --- a/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/TomEEMicroProfileListener.java +++ b/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/TomEEMicroProfileListener.java @@ -165,12 +165,7 @@ public static Index of(final List files) throws IOException { if (file == null) { throw new IllegalArgumentException("File must not be null"); } else if (file.isDirectory()) { - List classFiles = Files.collect(file, new FileFilter() { - @Override - public boolean accept(File pathname) { - return pathname.getName().endsWith(".class"); - } - }); + List classFiles = Files.collect(file, pathname -> pathname.getName().endsWith(".class")); for (File classFile : classFiles) { try (InputStream in = new FileInputStream(classFile)) { diff --git a/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/metrics/VendorMetrics.java b/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/metrics/VendorMetrics.java index cc06ddeca9a..1a8b6b283bf 100644 --- a/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/metrics/VendorMetrics.java +++ b/tomee/tomee-microprofile/mp-common/src/main/java/org/apache/tomee/microprofile/metrics/VendorMetrics.java @@ -117,7 +117,7 @@ public static JMXInfo from(final ObjectName objectName, final MBeanInfo info) { final List attributes = Arrays.stream(info.getAttributes()) .filter(a -> JMXAttribute.getType(a.getType()) != null) - .map(a -> JMXAttribute.from(a)) + .map(JMXAttribute::from) .collect(Collectors.toList()); diff --git a/tomee/tomee-myfaces/src/main/java/org/apache/tomee/myfaces/TomEEFacesConfigResourceProvider.java b/tomee/tomee-myfaces/src/main/java/org/apache/tomee/myfaces/TomEEFacesConfigResourceProvider.java index 4ce83073bf6..1db267d83ef 100644 --- a/tomee/tomee-myfaces/src/main/java/org/apache/tomee/myfaces/TomEEFacesConfigResourceProvider.java +++ b/tomee/tomee-myfaces/src/main/java/org/apache/tomee/myfaces/TomEEFacesConfigResourceProvider.java @@ -79,39 +79,36 @@ public Collection getMetaInfConfigurationResources(final ExternalContext no continue; } - futures.add(es.submit(new Callable>() { - @Override - public Set call() throws Exception { - final Set currentSet = new HashSet<>(); - - if (!file.isDirectory()) { // browse all entries to see if we have a matching file - final Enumeration e = new JarFile(file).entries(); - while (e.hasMoreElements()) { - try { - final String name = e.nextElement().getName(); - if (name.startsWith(META_INF_PREFIX) && name.endsWith(FACES_CONFIG_SUFFIX)) { - final Enumeration e2 = loader.getResources(name); - while (e2.hasMoreElements()) { - currentSet.add(e2.nextElement()); - } + futures.add(es.submit(() -> { + final Set currentSet = new HashSet<>(); + + if (!file.isDirectory()) { // browse all entries to see if we have a matching file + final Enumeration e = new JarFile(file).entries(); + while (e.hasMoreElements()) { + try { + final String name = e.nextElement().getName(); + if (name.startsWith(META_INF_PREFIX) && name.endsWith(FACES_CONFIG_SUFFIX)) { + final Enumeration e2 = loader.getResources(name); + while (e2.hasMoreElements()) { + currentSet.add(e2.nextElement()); } - } catch (final Throwable ignored) { - // no-op } + } catch (final Throwable ignored) { + // no-op } - } else { - final File metaInf = new File(file, META_INF_PREFIX); - if (metaInf.exists() && metaInf.isDirectory()) { - for (final File f : Files.collect(metaInf, FacesConfigSuffixFilter.INSTANCE)) { - if (!f.isDirectory()) { - currentSet.add(f.toURI().toURL()); - } + } + } else { + final File metaInf = new File(file, META_INF_PREFIX); + if (metaInf.exists() && metaInf.isDirectory()) { + for (final File f : Files.collect(metaInf, FacesConfigSuffixFilter.INSTANCE)) { + if (!f.isDirectory()) { + currentSet.add(f.toURI().toURL()); } } } - - return currentSet; } + + return currentSet; })); } diff --git a/tomee/tomee-myfaces/src/main/java/org/apache/tomee/myfaces/TomEEFacesConfigResourceProviderFactory.java b/tomee/tomee-myfaces/src/main/java/org/apache/tomee/myfaces/TomEEFacesConfigResourceProviderFactory.java index 8fd603f857f..77c4556390a 100644 --- a/tomee/tomee-myfaces/src/main/java/org/apache/tomee/myfaces/TomEEFacesConfigResourceProviderFactory.java +++ b/tomee/tomee-myfaces/src/main/java/org/apache/tomee/myfaces/TomEEFacesConfigResourceProviderFactory.java @@ -41,11 +41,8 @@ public FacesConfigResourceProvider createFacesConfigResourceProvider(final Exter FacesConfigResourceProvider returnValue = null; try { if (System.getSecurityManager() != null) { - returnValue = AccessController.doPrivileged(new PrivilegedExceptionAction() { - public FacesConfigResourceProvider run() throws Exception { - return resolveFacesConfigResourceProviderFromService(externalContext); - } - }); + returnValue = AccessController.doPrivileged((PrivilegedExceptionAction) + () -> resolveFacesConfigResourceProviderFromService(externalContext)); } else { returnValue = resolveFacesConfigResourceProviderFromService(externalContext); } diff --git a/tomee/tomee-security/src/main/java/org/apache/tomee/security/servlet/TomEESecurityServletContainerInitializer.java b/tomee/tomee-security/src/main/java/org/apache/tomee/security/servlet/TomEESecurityServletContainerInitializer.java index 89ca7786f1a..f45c5770374 100644 --- a/tomee/tomee-security/src/main/java/org/apache/tomee/security/servlet/TomEESecurityServletContainerInitializer.java +++ b/tomee/tomee-security/src/main/java/org/apache/tomee/security/servlet/TomEESecurityServletContainerInitializer.java @@ -56,15 +56,11 @@ public void onStartup(final Set> c, final ServletContext ctx) throws Se } if (securityExtension.hasAuthenticationMechanisms()) { - final String registrationId = AccessController.doPrivileged(new PrivilegedAction() { - public String run() { - return AuthConfigFactory.getFactory().registerConfigProvider( - new TomEESecurityAuthConfigProvider(new HashMap(), null), // todo we can probably do better - "HttpServlet", // from AuthenticatorBase.java:1245 - ctx.getVirtualServerName() + " " + ctx.getContextPath(), // from AuthenticatorBase.java:1178 - "TomEE Security JSR-375"); - } - }); + final String registrationId = AccessController.doPrivileged((PrivilegedAction) () -> AuthConfigFactory.getFactory().registerConfigProvider( + new TomEESecurityAuthConfigProvider(new HashMap(), null), // todo we can probably do better + "HttpServlet", // from AuthenticatorBase.java:1245 + ctx.getVirtualServerName() + " " + ctx.getContextPath(), // from AuthenticatorBase.java:1178 + "TomEE Security JSR-375")); if (registrationId != null) { ctx.setAttribute(CONTEXT_REGISTRATION_ID, registrationId); @@ -80,11 +76,7 @@ private BeanManager getBeanManager() throws IllegalStateException { public void contextDestroyed(final ServletContextEvent sce) { String registrationId = (String) sce.getServletContext().getAttribute(CONTEXT_REGISTRATION_ID); if (registrationId != null && registrationId.length() > 0) { - AccessController.doPrivileged(new PrivilegedAction() { - public Boolean run() { - return AuthConfigFactory.getFactory().removeRegistration(registrationId); - } - }); + AccessController.doPrivileged((PrivilegedAction) () -> AuthConfigFactory.getFactory().removeRegistration(registrationId)); } } } diff --git a/utils/livereload-tomee/src/main/java/org/apache/tomee/livereload/FileWatcher.java b/utils/livereload-tomee/src/main/java/org/apache/tomee/livereload/FileWatcher.java index f2d0a53cbd1..fe794e6beee 100644 --- a/utils/livereload-tomee/src/main/java/org/apache/tomee/livereload/FileWatcher.java +++ b/utils/livereload-tomee/src/main/java/org/apache/tomee/livereload/FileWatcher.java @@ -65,43 +65,40 @@ public Closeable watch(final String folder) { final Path path = file.getAbsoluteFile().toPath(); final WatchService watchService = path.getFileSystem().newWatchService(); path.register(watchService, StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_DELETE, StandardWatchEventKinds.ENTRY_MODIFY); - final Thread watcherThread = new Thread(new Runnable() { - @Override - public void run() { - while (again.get()) { - try { - final WatchKey key = watchService.poll(1, TimeUnit.SECONDS); // don't use take to not block forever - if (key == null) { + final Thread watcherThread = new Thread(() -> { + while (again.get()) { + try { + final WatchKey key = watchService.poll(1, TimeUnit.SECONDS); // don't use take to not block forever + if (key == null) { + continue; + } + + for (final WatchEvent event : key.pollEvents()) { + final WatchEvent.Kind kind = event.kind(); + if (kind != StandardWatchEventKinds.ENTRY_CREATE + && kind != StandardWatchEventKinds.ENTRY_DELETE + && kind != StandardWatchEventKinds.ENTRY_MODIFY) { continue; } - for (final WatchEvent event : key.pollEvents()) { - final WatchEvent.Kind kind = event.kind(); - if (kind != StandardWatchEventKinds.ENTRY_CREATE - && kind != StandardWatchEventKinds.ENTRY_DELETE - && kind != StandardWatchEventKinds.ENTRY_MODIFY) { + final Path updatedPath = Path.class.cast(event.context()); + if (kind == StandardWatchEventKinds.ENTRY_DELETE || updatedPath.toFile().isFile()) { + final String path1 = updatedPath.toString(); + if (path1.endsWith("___jb_tmp___") || path1.endsWith("___jb_old___")) { continue; - } - - final Path updatedPath = Path.class.cast(event.context()); - if (kind == StandardWatchEventKinds.ENTRY_DELETE || updatedPath.toFile().isFile()) { - final String path = updatedPath.toString(); - if (path.endsWith("___jb_tmp___") || path.endsWith("___jb_old___")) { - continue; - } else if (path.endsWith("~")) { - onChange(path.replace(File.pathSeparatorChar, '/').substring(0, path.length() - 1)); - } else { - onChange(path.replace(File.pathSeparatorChar, '/')); - } + } else if (path1.endsWith("~")) { + onChange(path1.replace(File.pathSeparatorChar, '/').substring(0, path1.length() - 1)); + } else { + onChange(path1.replace(File.pathSeparatorChar, '/')); } } - key.reset(); - } catch (final InterruptedException e) { - Thread.interrupted(); - again.set(false); - } catch (final ClosedWatchServiceException cwse) { - // ok, we finished there } + key.reset(); + } catch (final InterruptedException e) { + Thread.interrupted(); + again.set(false); + } catch (final ClosedWatchServiceException cwse) { + // ok, we finished there } } });