I have some kind of runtime configuration in my application: entity may contain
a reference to the name of some session bean.
| public interface MyPolicy
| {
| public String get();
| }
|
| @Stateless
| @Local(MyPolicy.class)
| public class MyPolicy1 implements MyPolicy
| {
| public String get()
| {
| return "This is policy 1";
| }
| }
|
| @Stateless
| @Local(MyPolicy.class)
| public class MyPolicy2 implements MyPolicy
| {
| public String get()
| {
| return "This is policy 2";
| }
| }
|
| @Entity
| ....
| public class MyEntity
| {
| private String policyClass;
| ...
|
| protected String getPolicyClass()
| {
| return policyClass;
| }
|
| protected void setPolicyClass(String policyClass)
| {
| this.policyClass = policyClass;
| }
| }
|
Should I also add transient methods to these entities to get real session bean
or use another session bean (or simple utility method) to retrieve bean at
runtime?
| public class MyEntity
| {
| private String policyClass;
| private transient MyPolicy policy;
| ...
|
| protected String getPolicyClass()
| {
| return policyClass;
| }
|
| protected void setPolicyClass(String policyClass)
| {
| this.policyClass = policyClass;
| }
|
| @Transient
| public MyPolicy getPolicy()
| {
| if (policy == null)
| {
| try
| {
| policy = new InitialContext().lookup(policyClass);
| }
| catch (NamingException e)
| {
| throw new IllegalStateException("Misconfiguration
exception", e);
| }
| }
|
| return policy;
| }
| }
|
Then is some session bean:
| ...
| log.debug(myEntity.getPolicy().get());
|
OR
| ...
| MyPolicy policy = Utils.lookup(myEntity.getPolicyClass());
| log.debug(policy.get());
|
It's convenient to have a set of methods of entity to get these beans but I
don't want these methods to be visible on RMI clients (and also I have bad (or
not so bad?) dependency of persistence layer from business-logic beans
interfaces).
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4180524#4180524
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4180524
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user