<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">
<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>
                                <td>
                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="https://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>
                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px; -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
Re: Jbpm 5 - call to spring beans
</h3>
<span style="margin-bottom: 10px;">
created by <a href="https://community.jboss.org/people/malabalu">malabalu</a> in <i>jBPM</i> - <a href="https://community.jboss.org/message/718452#718452">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">
<div class="jive-rendered-content"><p>Thanks Esteban for your reply. As I originally mentioned in my post, I have read that in jbpm4, it is possible to call the spring beans from the process.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><a class="jive-link-external-small" href="http://www.inze.be/andries/2009/06/28/documentation-spring-jbpm-integration/">http://www.inze.be/andries/2009/06/28/documentation-spring-jbpm-integration/</a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Please look under configuration.I am new to jbpm and did not understand the whole configuration in the above one . May be it is something that was possible in jbpm4 but not in jbpm5.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>Also currently in our jbpm3 project, we are using a singleton class to look up beans in Spring context .I have pasted some of the code snippets .Since this has the hard coding of  the bean names in the codebase, we want to see if there are other ways.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><span style="font-size: 10pt;"><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p align="left">ServiceInstance serviceInstance = ServiceInstance.<em>getInstance</em>();</p><span style="font-size: 2;"><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p></span></span><strong style="color: #7f0055; font-size: 10pt;"><strong style="color: #7f0055; font-size: 10pt;">return</strong></strong><span style="font-size: 10pt;"> (PaymentService) serviceInstance.getBean(</span><span style="color: #2a00ff; font-size: 10pt;">"paymentServiceBean"</span><span style="font-size: 10pt;">);</span><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p></p><p>where ServiceInstance is a class that implements implements <span style="font-size: 10pt;">org.springframework.context.ApplicationContextAware and has a property of<p><span style="font-size: 10pt;"><p>org.springframework.context.ApplicationContext ...so the getBean will lookup the beans with name and return them.</p></span></p></span></p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><div class="mcePaste" id="_mcePaste" style="position: absolute; top: 0px; left: 0px;"></div><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><span style=": ; color: #7f0055; font-size: 2;"><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p></span><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p></p><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><span style=": ; color: #7f0055; font-size: 2;"><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p></span><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p></p><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p></p><p><strong><span style="color: #7f0055; font-size: 10pt;"><strong style="color: #7f0055; font-size: 10pt;"><strong style=": ; color: #7f0055; font-size: 2;"><p align="left">public <span style="color: #000000; font-size: 10pt;"> </span><strong style="color: #7f0055; font-size: 10pt;"><strong style="color: #7f0055; font-size: 10pt;">class</strong></strong><span style="color: #000000; font-size: 10pt;"> ServiceInstance </span><strong style=": ; color: #7f0055; font-size: 10pt;">implements </strong></p></strong></strong></span><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p></strong></p><p align="left"><span style="color: #000000; font-size: 10pt;">ApplicationContextAware {</span></p><p align="left"><span style="font-size: 10pt;"><span style="font-size: 2;"><p><p><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p></p><strong style="color: #7f0055; font-size: 10pt;"><strong style="color: #7f0055; font-size: 10pt;">private</strong></strong><span style="font-size: 10pt;"> </span><strong style="color: #7f0055; font-size: 10pt;"><strong style="color: #7f0055; font-size: 10pt;">static</strong></strong><span style="font-size: 10pt;"> ServiceInstance </span><em style="color: #0000c0; font-size: 10pt;"><em style="color: #0000c0; font-size: 10pt;">staticServiceInstance</em></em><span style="font-size: 10pt;"> = </span><strong style="color: #7f0055; font-size: 10pt;"><strong style="color: #7f0055; font-size: 10pt;">new</strong></strong></p></span></span></p><p><p align="left"><span style="font-size: 10pt;"> ServiceInstance();<span style="font-size: 2;"><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p></span></span></p></p><p><strong style="color: #7f0055; font-size: 10pt;"><strong style="color: #7f0055; font-size: 10pt;">private</strong></strong><span style="font-size: 10pt;"> </span><strong style="color: #7f0055; font-size: 10pt;"><strong style="color: #7f0055; font-size: 10pt;">static</strong></strong><span style="font-size: 10pt;"> ApplicationContext </span><em style=": ; color: #0000c0; font-size: 10pt;">ac</em><span style="font-size: 10pt;">;<span style="font-size: 2;"><p><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><strong style="color: #7f0055; font-size: 10pt;"><strong style="color: #7f0055; font-size: 10pt;">public</strong></strong><span style="font-size: 10pt;"> </span><strong style="color: #7f0055; font-size: 10pt;"><strong style="color: #7f0055; font-size: 10pt;">static</strong></strong></p><p align="left"><span style="font-size: 10pt;"> ServiceInstance getInstance() {<span style="font-size: 2;"><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p></span></span></p><p><strong style="color: #7f0055; font-size: 10pt;"><strong style="color: #7f0055; font-size: 10pt;">return</strong></strong><span style="font-size: 10pt;"> </span><em style="color: #0000c0; font-size: 10pt;"><em style="color: #0000c0; font-size: 10pt;">staticServiceInstance</em></em></p><p align="left"><span style="font-size: 10pt;">;<p align="left">}</p><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><span style="font-size: 2;"><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p></span></span></p><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p align="left"><span style="color: #646464; font-size: 10pt;"><p align="left"><span style="color: #646464; font-size: 10pt;">@Override</span></p></span></p><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><span style=": ; font-size: 2;"><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p></span><strong style="color: #7f0055; font-size: 10pt;"><strong style="color: #7f0055; font-size: 10pt;">public</strong></strong><span style="font-size: 10pt;"> </span><strong style="color: #7f0055; font-size: 10pt;"><strong style="color: #7f0055; font-size: 10pt;">void</strong></strong></p><p align="left"><span style="font-size: 10pt;"> setApplicationContext(ApplicationContext applicationContext)<span style="font-size: 2;"><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p></span></span></p><p><strong style="color: #7f0055; font-size: 10pt;"><strong style="color: #7f0055; font-size: 10pt;">throws</strong></strong></p><p align="left"><span style="font-size: 10pt;"> BeansException {<span style="font-size: 2;"><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p></span></span></p></p></span></span></p><p><strong style="color: #7f0055; font-size: 10pt;"><strong style="color: #7f0055; font-size: 10pt;">if</strong></strong><span style="font-size: 10pt;"> (</span><em style="color: #0000c0; font-size: 10pt;"><em style="color: #0000c0; font-size: 10pt;">ac</em></em><span style="font-size: 10pt;"> == </span><strong style=": ; color: #7f0055; font-size: 10pt;">null</strong><span style="font-size: 10pt;">) {<span style="font-size: 2;"><p><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p><em style="color: #0000c0; font-size: 10pt;"><em style="color: #0000c0; font-size: 10pt;">ac</em></em></p><p align="left"><span style="font-size: 10pt;"> ac = applicationContext;<p align="left">}</p><p align="left">}</p><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><span style="font-size: 2;"><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p></span></span></p><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><span style=": ; font-size: 2;"><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p></span><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p></p></span></span></p><p><strong style=": ; color: #7f0055; font-size: 10pt;">public </strong><span style="font-size: 10pt;"> Object getBean(String beanId) {<span style="font-size: 2;"><p><p align="left" style="min-height: 8pt; height: 8pt; padding: 0px;"> </p></p></span></span></p><p><strong style="color: #7f0055; font-size: 10pt;"><strong style="color: #7f0055; font-size: 10pt;">return</strong></strong><span style="font-size: 10pt;"> </span><em style=": ; color: #0000c0; font-size: 10pt;">ac</em><span style="font-size: 10pt;">.getBean(beanId);<span style="font-size: 2;"><p><p>}</p></p></span></span></p></div>
<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
<p style="margin: 0;">Reply to this message by <a href="https://community.jboss.org/message/718452#718452">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in jBPM at <a href="https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034">Community</a></p>
</div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>