View Javadoc

    1   /*
    2   *
    3   * The Seasar Software License, Version 1.1
    4   *
    5   * Copyright (c) 2003-2004 The Seasar Project. All rights reserved.
    6   *
    7   * Redistribution and use in source and binary forms, with or
    8   * without modification, are permitted provided that the following
    9   * conditions are met:
    10  *
    11  * 1. Redistributions of source code must retain the above
    12  *    copyright notice, this list of conditions and the following
    13  *    disclaimer.
    14  *
    15  * 2. Redistributions in binary form must reproduce the above
    16  *    copyright notice, this list of conditions and the following
    17  *    disclaimer in the documentation and/or other materials provided
    18  *    with the distribution.
    19  *
    20  * 3. The end-user documentation included with the redistribution,
    21  *    if any, must include the following acknowledgement:
    22  *    "This product includes software developed by the
    23  *    Seasar Project (http://www.seasar.org/)."
    24  *    Alternately, this acknowledgement may appear in the software
    25  *    itself, if and wherever such third-party acknowledgements
    26  *    normally appear.
    27  *
    28  * 4. Neither the name "The Seasar Project" nor the names of its
    29  *    contributors may be used to endorse or promote products derived
    30  *    from this software without specific prior written permission of
    31  *    the Seasar Project.
    32  *
    33  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR
    34  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
    35  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    36  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE SEASAR PROJECT
    37  * OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
    38  * INCIDENTAL,SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    39  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    40  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    41  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
    42  * WHETHER IN CONTRACT, STRICT LIABILITY,OR TORT (INCLUDING
    43  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
    44  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    45  */
    46  package org.seasar.remoting.axis.deployment;
    47
    48  import javax.xml.namespace.QName;
    49
    50  import org.apache.axis.ConfigurationException;
    51  import org.apache.axis.EngineConfiguration;
    52  import org.apache.axis.Handler;
    53  import org.apache.axis.deployment.wsdd.WSDDHandler;
    54  import org.seasar.framework.container.ComponentDef;
    55  import org.seasar.framework.container.ContainerConstants;
    56  import org.seasar.framework.util.StringUtil;
    57
    58  /***
    59   * S2によりインスタンス管理されるハンドラのWSDDによる表現です。
    60   *
    61   * @author koichik
    62   */
    63  public class WSDDS2Handler extends WSDDHandler {
    64      protected ComponentDef componentDef;
    65
    66      /***
    67       * コンポーネント定義からインスタンスを構築します。
    68       *
    69       * @param componentDef コンポーネント定義
    70       */
    71      public WSDDS2Handler(final ComponentDef componentDef) {
    72          this.componentDef = componentDef;
    73
    74          final String namespace = componentDef.getContainer().getNamespace();
    75          final String componentName = componentDef.getComponentName();
    76          if (StringUtil.isEmpty(namespace)) {
    77              qname = new QName(componentName);
    78          }
    79          else {
    80              qname = new QName(namespace + ContainerConstants.NS_SEP + componentName);
    81          }
    82      }
    83
    84      /***
    85       * ハンドラのインスタンスを返します。
    86       *
    87       * @param registry レジストリ
    88       * @return ハンドラ
    89       */
    90      protected Handler makeNewInstance(EngineConfiguration registry) throws ConfigurationException {
    91          return (Handler) componentDef.getComponent();
    92      }
    93  }