Home » geronimo-2.2-source-release » org.apache.geronimo.openejb » [javadoc | source]

    1   /**
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements.  See the NOTICE file distributed with
    4    * this work for additional information regarding copyright ownership.
    5    * The ASF licenses this file to You under the Apache License, Version 2.0
    6    * (the "License"); you may not use this file except in compliance with
    7    * the License.  You may obtain a copy of the License at
    8    *
    9    *     http://www.apache.org/licenses/LICENSE-2.0
   10    *
   11    * Unless required by applicable law or agreed to in writing, software
   12    * distributed under the License is distributed on an "AS IS" BASIS,
   13    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   14    * See the License for the specific language governing permissions and
   15    * limitations under the License.
   16    */
   17   package org.apache.geronimo.openejb;
   18   
   19   import javax.naming.NameNotFoundException;
   20   
   21   import org.apache.geronimo.gbean.AbstractName;
   22   import org.apache.geronimo.gbean.AbstractNameQuery;
   23   import org.apache.geronimo.kernel.repository.Artifact;
   24   import org.apache.geronimo.kernel.GBeanNotFoundException;
   25   import org.apache.geronimo.naming.reference.ConfigurationAwareReference;
   26   
   27   public class EjbReference extends ConfigurationAwareReference {
   28       private final boolean remote;
   29   
   30       public EjbReference(Artifact[] artifact, AbstractNameQuery abstractNameQuery, boolean remote) {
   31           super(artifact, abstractNameQuery);
   32           this.remote = remote;
   33       }
   34   
   35       public Object getContent() throws NameNotFoundException {
   36           try {
   37               AbstractName abstractName = resolveTargetName();
   38               EjbDeployment ejbDeployment = (EjbDeployment) getKernel().getGBean(abstractName);
   39               if (remote) {
   40                   return ejbDeployment.getEJBHome();
   41               } else {
   42                   return ejbDeployment.getEJBLocalHome();
   43               }
   44           } catch (GBeanNotFoundException e) {
   45               throw (NameNotFoundException) new NameNotFoundException().initCause(e);
   46           }
   47       }
   48   }

Home » geronimo-2.2-source-release » org.apache.geronimo.openejb » [javadoc | source]