/* * Decompiled with CFR 0.152. * * Could not load the following classes: * com.jby.common.exceptions.BusinessException * org.apache.commons.pool2.BasePooledObjectFactory * org.apache.commons.pool2.PooledObject * org.apache.commons.pool2.PooledObjectFactory * org.apache.commons.pool2.impl.DefaultPooledObject * org.apache.commons.pool2.impl.GenericObjectPool * org.apache.commons.pool2.impl.GenericObjectPoolConfig * org.slf4j.Logger * org.slf4j.LoggerFactory * org.springframework.core.io.ClassPathResource */ package com.jby.officecore.pool; import com.jby.common.exceptions.BusinessException; import java.util.Objects; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.stream.StreamSource; import org.apache.commons.pool2.BasePooledObjectFactory; import org.apache.commons.pool2.PooledObject; import org.apache.commons.pool2.PooledObjectFactory; import org.apache.commons.pool2.impl.DefaultPooledObject; import org.apache.commons.pool2.impl.GenericObjectPool; import org.apache.commons.pool2.impl.GenericObjectPoolConfig; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.core.io.ClassPathResource; public enum OMml2MmlTransformerPool { INSTANCE; private static final Logger log; private GenericObjectPool objectPool; private OMml2MmlTransformerPool() { GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig(); poolConfig.setMaxTotal(30); poolConfig.setMinIdle(4); poolConfig.setMaxIdle(8); poolConfig.setBlockWhenExhausted(true); poolConfig.setMaxWaitMillis(3000L); poolConfig.setTestOnCreate(true); poolConfig.setTestOnBorrow(true); poolConfig.setTestOnReturn(true); poolConfig.setTestWhileIdle(true); PooledTransformerFactory objectFactory = new PooledTransformerFactory(); this.objectPool = new GenericObjectPool((PooledObjectFactory)objectFactory, poolConfig); } public Transformer borrowObject() { log.info("\u8f6c\u6362\u5668\u6c60TransformerPool, \u7a7a\u95f2\u5bf9\u8c61\u6570\u91cf:{}, \u6d3b\u8dc3\u5bf9\u8c61\u6570\u91cf:{}, \u963b\u585e\u7b49\u5f85\u6570\u91cf:{},", new Object[]{this.objectPool.getNumIdle(), this.objectPool.getNumActive(), this.objectPool.getNumWaiters()}); try { return (Transformer)this.objectPool.borrowObject(); } catch (Exception e) { log.error("\u4ece\u5bf9\u8c61\u6c60\u4e2d\u501f\u51fa\u5bf9\u8c61\u5f02\u5e38", (Throwable)e); return null; } } public void returnObject(Transformer transformer) { log.info("\u8f6c\u6362\u5668\u6c60TransformerPool, \u7a7a\u95f2\u5bf9\u8c61\u6570\u91cf:{}, \u6d3b\u8dc3\u5bf9\u8c61\u6570\u91cf:{}, \u963b\u585e\u7b49\u5f85\u6570\u91cf:{},", new Object[]{this.objectPool.getNumIdle(), this.objectPool.getNumActive(), this.objectPool.getNumWaiters()}); if (Objects.nonNull(transformer)) { this.objectPool.returnObject((Object)transformer); } } static { log = LoggerFactory.getLogger(OMml2MmlTransformerPool.class); } public static class PooledTransformerFactory extends BasePooledObjectFactory { private static final Logger log = LoggerFactory.getLogger(PooledTransformerFactory.class); private static final TransformerFactory TRANSFORMER_FACTORY = TransformerFactory.newInstance(); public Transformer create() throws Exception { return PooledTransformerFactory.buildTransformer(); } public PooledObject wrap(Transformer transformer) { return new DefaultPooledObject((Object)transformer); } public void destroyObject(PooledObject p) throws Exception { super.destroyObject(p); } public boolean validateObject(PooledObject p) { return Objects.nonNull(p.getObject()); } private static Transformer buildTransformer() { try { ClassPathResource resource = new ClassPathResource("xsl/OMML2MML.XSL"); StreamSource xslSource = new StreamSource(resource.getInputStream()); return TRANSFORMER_FACTORY.newTransformer(xslSource); } catch (Exception e) { log.error("\u751f\u6210\u8f6c\u6362\u5668\u5f02\u5e38", (Throwable)e); throw new BusinessException("\u751f\u6210\u8f6c\u6362\u5668\u5f02\u5e38"); } } } }