/** * Copyright 2015-2016 Red Hat, Inc, and individual contributors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.wildfly.swarm.ejb; import java.util.HashMap; import java.util.Map; import javax.annotation.PostConstruct; import org.wildfly.swarm.config.EJB3; import org.wildfly.swarm.config.ejb3.AsyncService; import org.wildfly.swarm.config.ejb3.Cache; import org.wildfly.swarm.config.ejb3.StrictMaxBeanInstancePool; import org.wildfly.swarm.config.ejb3.ThreadPool; import org.wildfly.swarm.config.ejb3.TimerService; import org.wildfly.swarm.config.ejb3.service.FileDataStore; import org.wildfly.swarm.spi.api.Fraction; import org.wildfly.swarm.spi.api.SwarmProperties; import org.wildfly.swarm.spi.api.annotations.MarshalDMR; import org.wildfly.swarm.spi.api.annotations.WildFlyExtension; /** * @author Ken Finnigan * @author Lance Ball */ @WildFlyExtension(module = "org.jboss.as.ejb3") @MarshalDMR public class EJBFraction extends EJB3<EJBFraction> implements Fraction<EJBFraction> { @PostConstruct public void postConstruct() { applyDefaults(); } public static EJBFraction createDefaultFraction() { return new EJBFraction().applyDefaults(); } public EJBFraction applyDefaults() { Map<Object, Object> threadPoolSettings = new HashMap<>(); threadPoolSettings.put("time", "100"); threadPoolSettings.put("unit", "MILLISECONDS"); defaultStatefulBeanAccessTimeout(5000L) .defaultSingletonBeanAccessTimeout(5000L) .defaultSfsbCache("simple") .defaultSecurityDomain("other") .defaultMissingMethodPermissionsDenyAccess(true) .logSystemExceptions(true) .defaultResourceAdapterName(SwarmProperties.propertyVar("$ejb.resource-adapter-name", "activemq-ra.rar")) .strictMaxBeanInstancePool(new StrictMaxBeanInstancePool("slsb-strict-max-pool") .maxPoolSize(20) .timeout(5L) .timeoutUnit(StrictMaxBeanInstancePool.TimeoutUnit.MINUTES)) .strictMaxBeanInstancePool(new StrictMaxBeanInstancePool("mdb-strict-max-pool") .maxPoolSize(20) .timeout(5L) .timeoutUnit(StrictMaxBeanInstancePool.TimeoutUnit.MINUTES)) .cache(new Cache("simple")) .asyncService(new AsyncService().threadPoolName("default")) .timerService(new TimerService() .threadPoolName("default") .defaultDataStore("default-file-store") .fileDataStore(new FileDataStore("default-file-store") .path("timer-service-data") .relativeTo("jboss.server.data.dir"))) .threadPool(new ThreadPool("default") .maxThreads(10) .keepaliveTime(threadPoolSettings)); return this; } }