Stateful session bean simple : Open EJB « EJB3 « Java






Stateful session bean simple

/**
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You 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.superbiz.counter;

import javax.ejb.Stateful;

/**
 * This is an EJB 3 style pojo stateful session bean
 * Every stateful session bean implementation must be annotated
 * using the annotation @Stateful
 * This EJB has 2 business interfaces: CounterRemote, a remote business
 * interface, and CounterLocal, a local business interface
 *
 * Per EJB3 rules when the @Remote or @Local annotation isn't present
 * in the bean class (this class), all interfaces are considered
 * local unless explicitly annotated otherwise.  If you look
 * in the CounterRemote interface, you'll notice it uses the @Remote
 * annotation while the CounterLocal interface is not annotated relying
 * on the EJB3 default rules to make it a local interface.
 */
//START SNIPPET: code
@Stateful
public class CounterImpl implements CounterLocal, CounterRemote {

    private int count = 0;

    public int increment() {
        return ++count;
    }

    public int reset() {
        return (count = 0);
    }

}
//END SNIPPET: code


//////////////////////////////////////
/**
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You 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.superbiz.counter;

import javax.ejb.Remote;

/**
 * This is an EJB 3 remote business interface
 * A remote business interface must be annotated with the @Remote
 * annotation
 */
//START SNIPPET: code
@Remote
public interface CounterRemote {

    public int increment();

    public int reset();

}
//END SNIPPET: code



//////////////////////////////////////

/**
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You 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.superbiz.counter;

/**
 * This is an EJB 3 local business interface
 * A local business interface may be annotated with the @Local
 * annotation, but it's optional. A business interface which is
 * not annotated with @Local or @Remote is assumed to be Local
 */
//START SNIPPET: code
public interface CounterLocal {

    public int increment();

    public int reset();

}
//END SNIPPET: code
  
      
  








OpenEjBsimple-stateful.zip( 14 k)

Related examples in the same category

1.component interfaces (Open EJB)
2.custom injection (Open EJB)
3.LocalHome annotation (Open EJB)
4.injection of datasource
5.injection of entitymanager and entity class
6.jpa hibernate (Open EJB)
7.stateless EJB for calculation
8.web service and Stateless session bean (Open EJB)
9.Web application based on EJB
10.Transaction in EJB
11.EJB security testing
12.Remote stab
13.injection of ejbs
14.injection of env entry
15.Use interceptors to inspect EJB