Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id D571F200CAF for ; Thu, 22 Jun 2017 12:20:53 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id D4256160BE7; Thu, 22 Jun 2017 10:20:53 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 20E05160BE5 for ; Thu, 22 Jun 2017 12:20:52 +0200 (CEST) Received: (qmail 41416 invoked by uid 500); 22 Jun 2017 10:20:52 -0000 Mailing-List: contact commits-help@tomee.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@tomee.apache.org Delivered-To: mailing list commits@tomee.apache.org Received: (qmail 41406 invoked by uid 99); 22 Jun 2017 10:20:52 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 22 Jun 2017 10:20:52 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 31191DFC24; Thu, 22 Jun 2017 10:20:52 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: rmannibucau@apache.org To: commits@tomee.apache.org Message-Id: <19d25a87857d4d42802dd55aeda4adc5@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: tomee git commit: another patch from Svetlin to ensure EJB#beanName is used in any case - missing file Date: Thu, 22 Jun 2017 10:20:52 +0000 (UTC) archived-at: Thu, 22 Jun 2017 10:20:54 -0000 Repository: tomee Updated Branches: refs/heads/master ce3b5359b -> 317a58069 another patch from Svetlin to ensure EJB#beanName is used in any case - missing file Project: http://git-wip-us.apache.org/repos/asf/tomee/repo Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/317a5806 Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/317a5806 Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/317a5806 Branch: refs/heads/master Commit: 317a58069b1f12683354b1ea04419c0ba15500d1 Parents: ce3b535 Author: rmannibucau Authored: Thu Jun 22 12:20:45 2017 +0200 Committer: rmannibucau Committed: Thu Jun 22 12:20:45 2017 +0200 ---------------------------------------------------------------------- ...DescriptorComplementsAnnotationsServlet.java | 95 ++++++++++++++++++++ 1 file changed, 95 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tomee/blob/317a5806/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/core/ejb/ejbjar/DescriptorComplementsAnnotationsServlet.java ---------------------------------------------------------------------- diff --git a/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/core/ejb/ejbjar/DescriptorComplementsAnnotationsServlet.java b/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/core/ejb/ejbjar/DescriptorComplementsAnnotationsServlet.java new file mode 100644 index 0000000..60afec7 --- /dev/null +++ b/arquillian/arquillian-tomee-tests/arquillian-tomee-webprofile-tests/src/test/java/org/apache/openejb/arquillian/tests/core/ejb/ejbjar/DescriptorComplementsAnnotationsServlet.java @@ -0,0 +1,95 @@ +/* + * 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 org.apache.openejb.arquillian.tests.core.ejb.ejbjar; + + +import javax.ejb.EJB; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + +public class DescriptorComplementsAnnotationsServlet extends HttpServlet { + /* + * Check that the deployment descriptor will + * complement the information from the + * EJB annotation. For instance the bean interface + * is resolved from the EjbJar descriptor + */ + + @EJB(name = "ejb/first", beanName = "FirstBean") + Object first; + + @EJB(name = "ejb/second", beanName = "SecondBean") + Object second; + + //Check that the descriptor takes precedence over annotation -> override the bean name + @EJB(name = "ejb/override", beanName = "FirstBean") + Bean override; + + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + final PrintWriter writer = resp.getWriter(); + final String testToExecute = req.getParameter("test"); + + try { + final Method method = this.getClass().getDeclaredMethod(testToExecute); + method.invoke(this); + writer.println(testToExecute + "=true"); + } catch (Exception ex) { + final Throwable rootCause = ex instanceof InvocationTargetException ? ex.getCause() : ex; + writer.println(testToExecute + "=false"); + rootCause.printStackTrace(writer); + } + } + + public void verifyFirstBeanInjection() { + verifyBean(FirstBean.class, first); + } + + public void verifySecondBeanInjection() { + verifyBean(SecondBean.class, second); + } + + public void verifyOverridenBeanInjection() { + verifyBean(SecondBean.class, override); + } + + private void verifyBean(Class beanClass, Object beanInstance) { + if (null == beanInstance) { + throw new IllegalStateException("Expecting [" + beanClass + "] but the injected instance is null"); + } + + if (!(beanInstance instanceof Bean)) { + throw new IllegalStateException("Expecting instance of [" + beanClass + "] " + + "Instead received [" + beanInstance.getClass() + "]" + ); + } + + final String beanName = ((Bean) beanInstance).getName(); + if (!beanClass.getName().equals(beanName)) { + throw new IllegalStateException("Expecting [" + beanClass + "] " + + "Instead received [" + beanName + "]" + ); + } + } +}