/**
* 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 cxf.server;
import java.util.HashMap;
import java.util.Map;
import javax.xml.ws.Endpoint;
import javax.xml.ws.wsaddressing.W3CEndpointReference;
import cxf.common.Bank;
@javax.jws.WebService(portName = "BankCORBAPort",
serviceName = "BankCORBAService",
targetNamespace = "http://cxf.apache.org/schemas/cxf/idl/Bank",
wsdlLocation = "classpath:/wsdl/BankWS-corba.wsdl",
endpointInterface = "cxf.common.Bank")
public class BankImpl implements Bank {
private Map<String, W3CEndpointReference> accountList =
new HashMap<String, W3CEndpointReference>();
private Map<String, Endpoint> endpointList = new HashMap<>();
public BankImpl() {
}
public W3CEndpointReference createAccount(String accountName) {
System.out.println("[Bank] Called createAccount( " + accountName + " )...");
System.out.println();
W3CEndpointReference ref = null;
ref = createAccountReference(accountName);
if (ref != null) {
accountList.put(accountName, ref);
}
return ref;
}
public W3CEndpointReference createEprAccount(String accountName) {
System.out.println("[Bank] Called createEprAccount( " + accountName + " )...");
System.out.println();
W3CEndpointReference ref = createAccountReference(accountName);
if (ref != null) {
accountList.put(accountName, ref);
}
return ref;
}
public W3CEndpointReference getAccount(String accountName) {
System.out.println("[Bank] Called getAccount( " + accountName + " )...");
System.out.println();
return accountList.get(accountName);
}
public W3CEndpointReference getEprAccount(String accountName) {
System.out.println("[Bank] Called getEprAccount( " + accountName + " )...");
System.out.println();
return accountList.get(accountName);
}
// TODO: What is the correct implementation for this operation?
public W3CEndpointReference getAccountEprWithNoUseAttribute(String accountName) {
return null;
}
// TODO: What is the correct implementation for this operation?
public void findAccount(javax.xml.ws.Holder<java.lang.Object> accountDetails) {
}
public void removeAccount(String accountName) {
System.out.println("[Bank] Called removeAccount( " + accountName + " )...");
System.out.println();
accountList.remove(accountName);
Endpoint ep = endpointList.remove(accountName);
ep.stop();
}
private W3CEndpointReference createAccountReference(String accountName) {
String corbaAddress = "corbaname::localhost:1050#" + accountName;
Object account = new AccountImpl();
Endpoint ep = Endpoint.publish(corbaAddress, account);
endpointList.put(accountName, ep);
return (W3CEndpointReference)ep.getEndpointReference((org.w3c.dom.Element[])null);
}
}