Skip to content

Commit

Permalink
🐎 Improve API and add tests for #1879
Browse files Browse the repository at this point in the history
  • Loading branch information
jfarcand committed Mar 11, 2015
1 parent 9f38497 commit 06f5ff8
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
public class PoolableBroadcasterFactory extends DefaultBroadcasterFactory {

private static final Logger logger = LoggerFactory.getLogger(PoolableBroadcasterFactory.class);
private PoolableProvider poolableProvider;
private PoolableProvider<? extends Broadcaster,?> poolableProvider;
private final static String POOLED_ID = "POOLED";
private final static Collection emptyCollection = Collections.emptySet();
private boolean trackPooledBroadcaster = false;
Expand Down Expand Up @@ -173,7 +173,7 @@ public boolean trackPooledBroadcaster() {
*
* @return current {@link org.atmosphere.pool.PoolableProvider}
*/
public PoolableProvider poolableProvider() {
public PoolableProvider<? extends Broadcaster, ?> poolableProvider() {
return poolableProvider;
}

Expand All @@ -183,7 +183,7 @@ public PoolableProvider poolableProvider() {
* @param poolableProvider the implementation of {@link org.atmosphere.pool.PoolableProvider}
* @return this
*/
public PoolableBroadcasterFactory poolableProvider(PoolableProvider poolableProvider) {
public PoolableBroadcasterFactory poolableProvider(PoolableProvider<? extends Broadcaster, ?> poolableProvider) {
this.poolableProvider = poolableProvider;
this.poolableProvider.configure(config);
return this;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public interface PoolableProvider<T extends Broadcaster, U> extends AtmosphereCo
* @param b {@link org.atmosphere.cpr.Broadcaster}
* @return this
*/
PoolableProvider returnBroadcaster(T b);
<T extends Broadcaster, U> PoolableProvider returnBroadcaster(T b);

/**
* The current Pool Size
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
*/
package org.atmosphere.cpr;

import org.apache.commons.pool2.impl.GenericObjectPool;
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
import org.atmosphere.pool.BoundedApachePoolableProvider;
import org.atmosphere.pool.PoolableBroadcasterFactory;
import org.atmosphere.pool.UnboundedApachePoolableProvider;
Expand All @@ -31,6 +33,7 @@

import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;

/**
* Unit tests for the {@link PoolableBroadcasterFactory}.
Expand Down Expand Up @@ -81,6 +84,19 @@ public void testAddRemove() {
assertEquals(result2, result);
}

@Test
public void testImplementation() {
assertNotNull(factory.poolableProvider());
assertNotNull(factory.poolableProvider().implementation());
assertEquals(factory.poolableProvider().implementation().getClass(), GenericObjectPool.class);
GenericObjectPool nativePool = (GenericObjectPool) factory.poolableProvider().implementation();
assertTrue(nativePool.getLifo());
GenericObjectPoolConfig c = new GenericObjectPoolConfig();
c.setMaxTotal(1);
nativePool.setConfig(c);
assertEquals(1, nativePool.getMaxTotal());
}

@Test
public void concurrentLookupTest() throws InterruptedException {
String id = "id";
Expand Down

0 comments on commit 06f5ff8

Please sign in to comment.