/** * @author Arun Gupta */ @Local public interface Cart { public void addItem(String item); public void removeItem(String item); public void purchase(); public List<String> getItems(); }
/** * @author Arun Gupta */ @Local public interface Account { public String withdraw(float amount); public String deposit(float amount); }
@Local public interface ExecutorServiceEJB extends ExecutorService { Executor getExecutor(); }
@Local public interface UserTaskServiceEJBLocal extends UserTaskService { }
@Local public interface DeploymentServiceEJBLocal extends DeploymentService, ListenerSupport { }
@Local public interface ProcessInstanceMigrationServiceEJBLocal extends ProcessInstanceMigrationService { }
@Local public interface RuntimeDataServiceEJBLocal extends RuntimeDataService, DeploymentEventListener { }
@Local public interface ProcessServiceEJBLocal extends ProcessService { }
@Local public interface QueryServiceEJBLocal extends QueryService { }
@Local public interface DefinitionServiceEJBLocal extends DefinitionService, DeploymentEventListener { }
@Local(MyManagedScheduledBatch.class) public class MyManagedScheduledBatchBean implements MyManagedScheduledBatch {
/** * EJB implementation of {@link TestEntityDao} which declares transaction * semantics for {@link #incrementCount(String)} with * {@link TransactionAttributeType#REQUIRED}. * * @author Sam Brannen * @author Xavier Detant * @since 4.0.1 * @see RequiresNewEjbTxTestEntityDao */ @Stateless @Local(TestEntityDao.class) @TransactionAttribute(TransactionAttributeType.MANDATORY) public class RequiredEjbTxTestEntityDao extends AbstractEjbTxTestEntityDao { @Override public int getCount(String name) { return super.getCountInternal(name); } @TransactionAttribute(TransactionAttributeType.REQUIRED) @Override public int incrementCount(String name) { return super.incrementCountInternal(name); } }
/** * EJB implementation of {@link TestEntityDao} which declares transaction * semantics for {@link #incrementCount(String)} with * {@link TransactionAttributeType#REQUIRES_NEW}. * * @author Sam Brannen * @author Xavier Detant * @since 4.0.1 * @see RequiredEjbTxTestEntityDao */ @Stateless @Local(TestEntityDao.class) @TransactionAttribute(TransactionAttributeType.MANDATORY) public class RequiresNewEjbTxTestEntityDao extends AbstractEjbTxTestEntityDao { @Override public int getCount(String name) { return super.getCountInternal(name); } @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) @Override public int incrementCount(String name) { return super.incrementCountInternal(name); } }
/** * A SLSB with a local business interface * * @author Daniel Meyer * */ @Stateless @Local(BusinessInterface.class) public class LocalSLSBean implements BusinessInterface { public boolean doBusiness() { return true; } }
/** * A SLSB with a local business interface * * @author Daniel Meyer * */ @Stateless @Local(StartProcessInterface.class) public class StartProcessSLSB implements StartProcessInterface { public boolean doStartProcess() { BpmPlatform.getDefaultProcessEngine() .getRuntimeService() .startProcessInstanceByKey("callbackProcess"); return true; } }
@Stateless @Remote(InvocationCounterService.class) @Local(InvocationCounterServiceLocal.class) public class InvocationCounterServiceBean implements InvocationCounterService, InvocationCounterServiceLocal { @Inject private InvocationCounter invocationCounter; public int getNumOfInvocations() { return invocationCounter.incrementAndGet(); } }
/** * A SingletonBean with a local business interface * * @author Daniel Meyer * */ @Singleton @Local(BusinessInterface.class) public class LocalSingletonBean implements BusinessInterface { public boolean doBusiness() { return true; } }
/** * A SFSB with a local business interface * * @author Daniel Meyer * */ @Stateful @Local(BusinessInterface.class) public class LocalSFSBean implements BusinessInterface { public boolean doBusiness() { return true; } }
/** * @author Tassilo Weidner */ @Singleton @Startup @ConcurrencyManagement(ConcurrencyManagementType.BEAN) @TransactionAttribute(TransactionAttributeType.REQUIRED) @ProcessApplication(deploymentDescriptors = {"deployment-descriptor-with-custom-filename.xml"}) @Local(ProcessApplicationInterface.class) public class AnnotatedEjbPa extends EjbProcessApplication { @PostConstruct public void start() { deploy(); } @PreDestroy public void stop() { undeploy(); } }
/** * Custom {@link EjbProcessApplication} with PA lifecycle callbacks * * @author Daniel Meyer * */ @Singleton @Startup @ConcurrencyManagement(ConcurrencyManagementType.BEAN) @TransactionAttribute(TransactionAttributeType.REQUIRED) @ProcessApplication @Local(ProcessApplicationInterface.class) public class CustomEjbProcessApplication extends EjbProcessApplication { @PostDeploy public void postDeploy(ProcessEngine processEngine) { Assert.assertNotNull(processEngine); } @PreUndeploy public void preUnDeploy(ProcessEngine processEngine) { Assert.assertNotNull(processEngine); } }