/*
* 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 client;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
import org.junit.Ignore;
import org.junit.Test;
import services.ejb.CatalogEJBHome;
import services.ejb.CatalogEJBRemote;
import services.ejb.Vegetable;
/**
* A test client for the catalog EJB.
*
* @version $Rev: 644802 $ $Date: 2008-04-04 11:06:47 -0700 (Fri, 04 Apr 2008) $
*/
public class CatalogEJBClientTestCase {
@Test
@Ignore // Ignore the test case for maven build, remove it if you want to run
public void testCatalogEJB() throws Exception {
InitialContext context = new InitialContext();
Object o = context.lookup("corbaname:iiop:1.2@localhost:1050#VegetablesCatalogEJB");
// The narrow(...) call requires generated EJB stubs. Tuscany binding.ejb doesn't the stubs
CatalogEJBHome home = (CatalogEJBHome)PortableRemoteObject.narrow(o, CatalogEJBHome.class);
// The following call will hang with SUN jdk1.6.0_05, please use SUN or IBM jdk 1.5.x instead
CatalogEJBRemote catalog = home.create();
Vegetable items[] = catalog.get();
for (Vegetable item : items) {
System.out.println(item.getName() + " " + item.getPrice());
}
}
public static void main(String args[]) throws Exception {
String javaVersion = System.getProperty("java.version");
String javaVendor = System.getProperty("java.vendor");
if (javaVendor.toUpperCase().contains("SUN") && javaVersion.startsWith("1.6.")) {
System.err.println("The EJB invocation may hang due to a bug in " + javaVendor + ":" + javaVersion);
}
new CatalogEJBClientTestCase().testCatalogEJB();
}
}