Add, please, new feature to @ejb.util annotation
------------------------------------------------
Key: XDT-1647
URL: http://opensource.atlassian.com/projects/xdoclet/browse/XDT-1647
Project: XDoclet
Type: New Feature
Components: EJB Module
Environment: java 1.5, EJB 2.1, xdoclet 1.2.3, IDE -- Intellij IDEA, JBoss
4.0.3, Windows XP
Reporter: Anton Nazaruk
Assigned to: xdoclet-devel (Use for new issues)
Add, please, something like this to @ejb.util annotation:
@ejb.util
generate = "logical"
multiple-usage = "true/false" (default false)
This annotation ganerates util object , that cached EJB Home Interface with
using Singleton pattern. This works perfect, when you have not need to use
your application in two or more database instances:
for example,
1) you make one big project using EJB and code generation with XDoclet;
2) you have to use the same application for different customers with their own
relation databases, but with the same tables;
3) all application instances must live in one server instance(i am using JBoss
4.0.3), login-config.xml should be configured (I am using
DatabaseServerLoginModule) with multiple <application-policy ... tags due to
multiple <datasources... tags in XXX-ds.xml.
I just make several copies of my ear, rename every one, rename all jndi-names
in jboss.xml, jboss-web.xml, rename security domain in jboss-app.xml, etc...
(All ear's I made unpacked )
In conclusion, I have singe tree of packages in one EJB.jar file in one
XXX.ear. Another ear's just have the same project structure, all xml
descriptors, but have no java classes.
All Home Interfaces are obtained via COMP_NAME;
SO, when I run the first application: https://localhost:8443/Some and works
with database "Some" via datasource jndi-name -- everything is good, but
Home Interfaces that I use via Util Objects, generated by xdoclet, have
alerady cached as interfaces mapped to "Some" database;
When I run, for example, https://localhost:8443/Some1 -- the same application,
but in database "Some1", and these home interfaces are obtained
from cache:
if(cachedlocalHome == null) {
cacheLocalHome = (XXXHome) lookupHome(...) --- generated code in
XXXUtil.java
}
return cachedLocalHome;
You know, that this function lookupHome(...) will not be called, and I will get
HomeInterface , mapped to database "Some" but not to "Some1";
Thats why I manually remove static field cachedLocalHome, and if(...)
statement from XXXUtil.java.
After that I have to compile this classes, save their copies, and include in
ANT build tags to change generated by XDoclet Util files with saved ones,
alerady compiled Util classes.
So the idea is to add this feature "multiple-usage = "true/false" (default
false)" to @ejb.util annotation , if true -- implement, please, Util Objects
generation
without Singleton pattern.
Thanks, hope, someone will read this issue.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/xdoclet/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
xdoclet-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel