Polishing (selectively backported from recent 4.0 commits)

This commit is contained in:
Juergen Hoeller 2013-11-04 16:22:46 +01:00
parent b00c31a620
commit a95eb1d044
5 changed files with 30 additions and 35 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2012 the original author or authors. * Copyright 2002-2013 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -17,10 +17,9 @@
package org.springframework.scheduling.commonj; package org.springframework.scheduling.commonj;
import java.util.Collection; import java.util.Collection;
import java.util.concurrent.Callable;
import java.util.concurrent.Future; import java.util.concurrent.Future;
import java.util.concurrent.FutureTask; import java.util.concurrent.FutureTask;
import java.util.concurrent.Callable;
import javax.naming.NamingException; import javax.naming.NamingException;
import commonj.work.Work; import commonj.work.Work;
@ -54,10 +53,8 @@ import org.springframework.util.Assert;
* server's JNDI environment, as defined in the server's management console. * server's JNDI environment, as defined in the server's management console.
* *
* <p><b>Note: At the time of this writing, the CommonJ WorkManager facility * <p><b>Note: At the time of this writing, the CommonJ WorkManager facility
* is only supported on IBM WebSphere 6.0+ and BEA WebLogic 9.0+, * is only supported on IBM WebSphere 6.1+ and BEA WebLogic 9.0+,
* despite being such a crucial API for an application server.</b> * despite being such a crucial API for an application server.</b>
* (There is a similar facility available on WebSphere 5.1 Enterprise,
* though, which we will discuss below.)
* *
* <p><b>On JBoss and GlassFish, a similar facility is available through * <p><b>On JBoss and GlassFish, a similar facility is available through
* the JCA WorkManager.</b> See the * the JCA WorkManager.</b> See the
@ -80,8 +77,7 @@ public class WorkManagerTaskExecutor extends JndiLocatorSupport
/** /**
* Specify the CommonJ WorkManager to delegate to. * Specify the CommonJ WorkManager to delegate to.
* <p>Alternatively, you can also specify the JNDI name * <p>Alternatively, you can also specify the JNDI name of the target WorkManager.
* of the target WorkManager.
* @see #setWorkManagerName * @see #setWorkManagerName
*/ */
public void setWorkManager(WorkManager workManager) { public void setWorkManager(WorkManager workManager) {
@ -90,9 +86,8 @@ public class WorkManagerTaskExecutor extends JndiLocatorSupport
/** /**
* Set the JNDI name of the CommonJ WorkManager. * Set the JNDI name of the CommonJ WorkManager.
* <p>This can either be a fully qualified JNDI name, * <p>This can either be a fully qualified JNDI name, or the JNDI name relative
* or the JNDI name relative to the current environment * to the current environment naming context if "resourceRef" is set to "true".
* naming context if "resourceRef" is set to "true".
* @see #setWorkManager * @see #setWorkManager
* @see #setResourceRef * @see #setResourceRef
*/ */
@ -170,27 +165,19 @@ public class WorkManagerTaskExecutor extends JndiLocatorSupport
// Implementation of the CommonJ WorkManager interface // Implementation of the CommonJ WorkManager interface
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
public WorkItem schedule(Work work) public WorkItem schedule(Work work) throws WorkException, IllegalArgumentException {
throws WorkException, IllegalArgumentException {
return this.workManager.schedule(work); return this.workManager.schedule(work);
} }
public WorkItem schedule(Work work, WorkListener workListener) public WorkItem schedule(Work work, WorkListener workListener) throws WorkException {
throws WorkException, IllegalArgumentException {
return this.workManager.schedule(work, workListener); return this.workManager.schedule(work, workListener);
} }
public boolean waitForAll(Collection workItems, long timeout) public boolean waitForAll(Collection workItems, long timeout) throws InterruptedException {
throws InterruptedException, IllegalArgumentException {
return this.workManager.waitForAll(workItems, timeout); return this.workManager.waitForAll(workItems, timeout);
} }
public Collection waitForAny(Collection workItems, long timeout) public Collection waitForAny(Collection workItems, long timeout) throws InterruptedException {
throws InterruptedException, IllegalArgumentException {
return this.workManager.waitForAny(workItems, timeout); return this.workManager.waitForAny(workItems, timeout);
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2012 the original author or authors. * Copyright 2002-2013 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -39,11 +39,15 @@ public interface Cache {
Object getNativeCache(); Object getNativeCache();
/** /**
* Return the value to which this cache maps the specified key. Returns * Return the value to which this cache maps the specified key.
* {@code null} if the cache contains no mapping for this key. * <p>Returns {@code null} if the cache contains no mapping for this key;
* @param key key whose associated value is to be returned. * otherwise, the cached value (which may be {@code null} itself) will
* be returned in a {@link ValueWrapper}.
* @param key the key whose associated value is to be returned
* @return the value to which this cache maps the specified key, * @return the value to which this cache maps the specified key,
* or {@code null} if the cache contains no mapping for this key * contained within a {@link ValueWrapper} which may also hold
* a cached {@code null} value. A straight {@code null} being
* returned means that the cache contains no mapping for this key.
*/ */
ValueWrapper get(Object key); ValueWrapper get(Object key);

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2012 the original author or authors. * Copyright 2002-2013 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -43,12 +43,12 @@ public class GlassFishWorkManagerTaskExecutor extends WorkManagerTaskExecutor {
public GlassFishWorkManagerTaskExecutor() { public GlassFishWorkManagerTaskExecutor() {
try { try {
Class wmf = getClass().getClassLoader().loadClass(WORK_MANAGER_FACTORY_CLASS); Class<?> wmf = getClass().getClassLoader().loadClass(WORK_MANAGER_FACTORY_CLASS);
this.getWorkManagerMethod = wmf.getMethod("getWorkManager", new Class[] {String.class}); this.getWorkManagerMethod = wmf.getMethod("getWorkManager", String.class);
} }
catch (Exception ex) { catch (Exception ex) {
throw new IllegalStateException( throw new IllegalStateException(
"Could not initialize GlassFishWorkManagerTaskExecutor because GlassFish API is not available: " + ex); "Could not initialize GlassFishWorkManagerTaskExecutor because GlassFish API is not available", ex);
} }
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2010 the original author or authors. * Copyright 2002-2013 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -29,6 +29,10 @@ import org.springframework.jca.work.WorkManagerTaskExecutor;
* {@link org.springframework.scheduling.commonj.WorkManagerTaskExecutor} * {@link org.springframework.scheduling.commonj.WorkManagerTaskExecutor}
* adapter for WebLogic and WebSphere. * adapter for WebLogic and WebSphere.
* *
* <p><b>Note: This class does not work on JBoss 7 or higher.</b>
* There is no known immediate replacement, since JBoss does not want
* its JCA WorkManager to be exposed anymore.
*
* @author Juergen Hoeller * @author Juergen Hoeller
* @since 2.5.2 * @since 2.5.2
* @see org.jboss.resource.work.JBossWorkManagerMBean * @see org.jboss.resource.work.JBossWorkManagerMBean

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2010 the original author or authors. * Copyright 2002-2013 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -69,7 +69,7 @@ public abstract class JBossWorkManagerUtils {
} }
catch (Exception ex) { catch (Exception ex) {
throw new IllegalStateException( throw new IllegalStateException(
"Could not initialize JBossWorkManagerTaskExecutor because JBoss API is not available: " + ex); "Could not initialize JBossWorkManagerTaskExecutor because JBoss API is not available", ex);
} }
} }