Java Mailing List Archive

http://www.junlu.com/

Google
Google
Mailing List
Home
Forum Home
JBoss - Java Application Server
Tomcat - JSP/Servlet container
Struts - A MVC web framework
iText - An open source PDF Java Library
JDOM - JDOM XML Parser
J2EE - A mailing list for Java(tm) 2 Platform, Enterprise Edition
JSP - A mailing list about Java Server Pages specification and reference
J2EE Pattern - An interest list for Sun Java Center J2EE Pattern Catalog
Servlet - A mailing list for discussion about Sun Microsystem's Java Servlet API Technology
Struts & Hibernate
Subjects
JSP editor plugin for eclipse ?
org apache jasper JasperException: Unable to compile class for JSP
Tomcat: Connection reset by peer: socket write error
Cannot retrieve definition for form bean null
Struts Tiles Tutorial (free Struts training)
Where do I download Tomcat 4 0 6?
Data Access Object (DAO) pattern, example DAO 's
Where to download Tomcat v 4 1 24 from?
Tomcat 5 0 16 Requested resource not available
Oracle Connection Pooling in 3 2 2
Servlet : Session invalidate
Servlet action is currently unavailable
Tomcat/Struts Unicode Encoding/Decoding problems
Tomcat and webapplication specific java library path
Running a Simple JMS Example
Mapping in workers2 properties
org apache jasper JasperException
Cannot find message resources under key org apache struts action
   MESSAGE
problem with html:text bean throwing exception
Cannot find message resources under key org apache struts action MESSAGE
invalid direct reference problem with solution
Tool for jsp debug Try Sysdeo Eclipse Plugin
Tomcat 5 Cannot load JDBC driver class 'null ' SQL state: null
weblogic ejbc
java properties file
Jboss 3 2 3 Coyote Can 't re
Tomcat 5, Apache2 and mod jk2 integration problem
JBoss example problem new to J2EE
url string for connecting jboss to oracle
Value attribute of <html:checkbox
javax servlet ServletException: BeanUtils populate
HTTP Status 404 The requested resource is not available
5 0 18: Windows XP Pro vs Windows 2000
 
- Re: CR3 Listener

- Re: CR3 Listener

2007-07-16       - By jason.greene@(protected)

 Back
"FredrikJ" wrote :
 | 1. Wouldn't this be considered a major api change(?) and as such should not
go in between two cr releases?
 |

Unfortunately we ran into unexpected implementation problems that the current
API could not address. We had to choose between complicating the system by
introducing a secondary API, or breaking API compatibility and fixing the
extensibility problems that lead to this issue in the first place. We decided
that overall it was better to get a solid, extensible, and easy to use API with
well defined behavior in the GA. Had this issue been discovered after GA, we
would have not taken this option.

Before making this change, we also posted a detailed proposal and asked for
feedback from everyone.

anonymous wrote :
 | 2. I understand that the benefit is that you can choose to declare only
those listener methods you are interested of, thus reducing the amount of empty
boilerplate listener methods. However, the downpart is that we are losing type
safety here and I personally do not consider this a good bargain.
 |

That is one of the benefits, although the main reason is to allow easy
extensibility. In this model we can add a new notification type in a future
release, and it will not break existing listeners.

anonymous wrote :
 | Now, isn't this exactly why we have interfaces? An interface enforces
signature and types. If we fail to honor the interface we get a nice
compilation error, with the annotation based model we will get runtime checking
and runtime errors.
 |

As mentioned above, the interface in this particular use case is not the best
fit. It can't be extended, and it forces you to choose between implementing a
bunch of methods you don't care about, or polluting your inheritance tree with
a JBoss Cache class. The annotation model lets you choose whatever class design
fits your application the best.

You do lose compile time checking, although the API is very simple and
predictable. The run-time error occurs the first time you register a listener,
which should be close to immediate.

Also, I should note that this is not a unique concept. EJB3 and DI frameworks
use similar concepts.

anonymous wrote :
 | If we look at the list of available annotations here http://labs.jboss.com
/file-access/default/members/jbosscache/freezone/docs/2.0.0.CR3/JBossCache
-UserGuide/en/html_single/index.html#api.listener we can see that the input ot
the methods differ. Now I have to switch between my IDE and the documentation
to lookup the annotation and what the proper signature is. Should I fail to
comply, my IDE will not tell me since there is no compile-time checking.
 |

If you point your IDE to the JBossCache javadocs, you will be able to pull up
the info without leaving it, since we put docs on all the annotations. Also
there is an easy convention, all notification methods take a single parameter,
and its type is the annotation name + "Event".

i.e.  @(protected) public void doSomething(NodeModifiedEvent event) {}


anonymous wrote :
 | Furthermore, since there is no longer a CacheListener interface, I cannot
use that interface for listener-registration in layers created on top of the
cache, forcing me either into allowing Object or creating my own Listener
interface which will allow me at least some typesafety. But in the end I will
never really know until the cache is started and every possible listener has
been registered to the cache, right?
 |

Yes, although typically this occurs right away. Also usually one would test
their listener before going into production, as compile time safety does not
promise run-time correctness.

anonymous wrote :
 | Generally I'm not opposed annotations. I think they do fill a purpose, but
I can't seem understand the reasons for this particular design decision.

I appreciate your feedback, and I understand your concerns. We are still open
to any ideas you have that can make this better.

Here is the trail for all the design discussions that lead to these changes:
http://www.jboss.com/index.html?module=bb&op=viewtopic&t=110525
http://www.jboss.com/index.html?module=bb&op=viewtopic&t=111094
http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossCacheListenerAPIProposal
http://www.jboss.com/index.html?module=bb&op=viewtopic&t=110911

-Jason

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic
&p=4064559#4064559

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode
=reply&p=4064559
__ ____ ____ ____ ____ ____ ____ ____ ____ ____
jboss-user mailing list
jboss-user@(protected)
https://lists.jboss.org/mailman/listinfo/jboss-user

©2008 junlu.com - Jax Systems, LLC, U.S.A.