From 77bdd5e6dc244715c571a6eb6d8ed4136a968666 Mon Sep 17 00:00:00 2001 From: slaws Date: Fri, 7 Aug 2009 11:16:41 +0000 Subject: TUSCANY-3198 - keep generated EJB component implementations distinct. They were being resolved down to one because the hashcode was not based on any unique EJB information git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@801951 13f79535-47bb-0310-9956-ffa450edef68 --- .../java/sample/ejb3/HelloworldService7aBean.java | 41 ++++++++++++++++++++++ .../jee/SCAJarEarNonenhancedTestCase.java | 2 +- .../jee/impl/EJBImplementationGeneratedImpl.java | 7 ++++ 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 branches/sca-java-1.x/itest/contribution-jee-samples/ejb-nonenhanced/src/main/java/sample/ejb3/HelloworldService7aBean.java (limited to 'branches/sca-java-1.x') diff --git a/branches/sca-java-1.x/itest/contribution-jee-samples/ejb-nonenhanced/src/main/java/sample/ejb3/HelloworldService7aBean.java b/branches/sca-java-1.x/itest/contribution-jee-samples/ejb-nonenhanced/src/main/java/sample/ejb3/HelloworldService7aBean.java new file mode 100644 index 0000000000..97242bff96 --- /dev/null +++ b/branches/sca-java-1.x/itest/contribution-jee-samples/ejb-nonenhanced/src/main/java/sample/ejb3/HelloworldService7aBean.java @@ -0,0 +1,41 @@ +/** + * 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 sample.ejb3; + +import javax.ejb.Stateless; + +/** + * Another HelloworldService EJB implementation with no SCA enhancement + * A test for TUSCANY-3198 + */ +@Stateless +public class HelloworldService7aBean implements HelloworldService7, HelloworldLocal7 { + + public String getGreetings(String name) { + String greeting = "Hello remote " + name; + System.out.println(greeting); + return greeting; + } + + public String getGreetingsLocal(String name) { + String greeting = "Hello local " + name; + System.out.println(greeting); + return greeting; + } + +} diff --git a/branches/sca-java-1.x/itest/contribution-jee/src/test/java/org/apache/tuscany/sca/test/contribution/jee/SCAJarEarNonenhancedTestCase.java b/branches/sca-java-1.x/itest/contribution-jee/src/test/java/org/apache/tuscany/sca/test/contribution/jee/SCAJarEarNonenhancedTestCase.java index 334f5eca1b..97e23d1bf7 100644 --- a/branches/sca-java-1.x/itest/contribution-jee/src/test/java/org/apache/tuscany/sca/test/contribution/jee/SCAJarEarNonenhancedTestCase.java +++ b/branches/sca-java-1.x/itest/contribution-jee/src/test/java/org/apache/tuscany/sca/test/contribution/jee/SCAJarEarNonenhancedTestCase.java @@ -127,7 +127,7 @@ public class SCAJarEarNonenhancedTestCase { Assert.assertNotNull(composite); Assert.assertEquals(2, composite.getComponents().size()); - Assert.assertEquals(2, composite.getComponents().get(1).getImplementation().getServices().size()); + Assert.assertEquals(4, composite.getComponents().get(1).getImplementation().getServices().size()); Assert.assertEquals("HelloworldService7Bean_HelloworldService7", composite.getComponents().get(1).getImplementation().getServices().get(0).getName()); domain.buildComposite(composite); diff --git a/branches/sca-java-1.x/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/impl/EJBImplementationGeneratedImpl.java b/branches/sca-java-1.x/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/impl/EJBImplementationGeneratedImpl.java index 777bc68d10..eb5b8d8463 100644 --- a/branches/sca-java-1.x/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/impl/EJBImplementationGeneratedImpl.java +++ b/branches/sca-java-1.x/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/impl/EJBImplementationGeneratedImpl.java @@ -66,5 +66,12 @@ class EJBImplementationGeneratedImpl extends ImplementationImpl implements EJBIm public void setEjbModuleInfo(EjbModuleInfo ejbModuleInfo) { this.ejbModuleInfo = ejbModuleInfo; } + + // make sure the generated implementation can be distinguished + // based on the ejb info that is referenced + @Override + public int hashCode() { + return getEJBInfo().hashCode(); + } } -- cgit v1.2.3