### Question:
CachedIrodsProtocolManager extends IRODSProtocolManager { public void setJargonConnectionCache(final JargonConnectionCache jargonConnectionCache) { this.jargonConnectionCache = jargonConnectionCache; } CachedIrodsProtocolManager(); @Override IRODSMidLevelProtocol getIRODSProtocol(final IRODSAccount irodsAccount,
			final PipelineConfiguration pipelineConfiguration, final IRODSSession irodsSession); @Override synchronized void initialize(); JargonConnectionCache getJargonConnectionCache(); void setJargonConnectionCache(final JargonConnectionCache jargonConnectionCache);  }### Answer:
@Test public void simpleTestBorrowAndReturn() throws Exception { JargonKeyedPoolConfig config = new JargonKeyedPoolConfig(); JargonPooledObjectFactory jargonPooledObjectFactory = new JargonPooledObjectFactory(); IRODSSimpleProtocolManager irodsSimpleProtocolManager = new IRODSSimpleProtocolManager(); jargonPooledObjectFactory.setIrodsSimpleProtocolManager(irodsSimpleProtocolManager); JargonConnectionCache jargonConnectionCache = new JargonConnectionCache(jargonPooledObjectFactory, config); CachedIrodsProtocolManager cachedIrodsProtocolManager = new CachedIrodsProtocolManager(); cachedIrodsProtocolManager.setJargonConnectionCache(jargonConnectionCache); IRODSSession irodsSession = IRODSSession.instance(cachedIrodsProtocolManager); jargonPooledObjectFactory.setIrodsSession(irodsSession); IRODSAccount test1 = testingPropertiesHelper.buildIRODSAccountFromTestProperties(testingProperties); IRODSAccessObjectFactory iaf = new IRODSAccessObjectFactoryImpl(irodsSession); EnvironmentalInfoAO environmentalInfoAO = iaf.getEnvironmentalInfoAO(test1); environmentalInfoAO.getIRODSServerPropertiesFromIRODSServer(); iaf.closeSession(); jargonConnectionCache.close(); }