<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#ffffff">
This will be a major inconvenience for our users if we expect them to
manually add all the interceptors they need for conversations,
security, transactions, and who knows what else.&nbsp; Is there absolutely
no other way that we can automatically register these in the
extension?&nbsp; Also I'm not a big fan of having to use the
org.jboss.seam.intercept namespace, I don't want to have to include a
lone class in this package if all my other classes are in (for example
the security module) org.jboss.seam.security.<br>
<br>
On 26/03/10 10:14, Lincoln Baxter, III wrote:
<blockquote
 cite="mid:a3f2f0581003251714r4adafa8ak485bdde8fa40d935@mail.gmail.com"
 type="cite">Seam Devs,<br>
  <br>
Dan and I have been working on the @Begin and @End conversation support
for Seam Faces, and we've discovered that there is a new fact of life
for consumers of portable CDI extensions. Due to the fact that
@Interceptors cannot be enabled in the extensions themselves (due to
restrictions on beans.xml for purposes of absolute ordering in the
application. See: <a moz-do-not-send="true"
 href="http://seamframework.org/Community/EnablingAnInterceptorInALibrary"
 target="_blank">http://seamframework.org/Community/EnablingAnInterceptorInALibrary</a>
)<br>
  <br>
This presents an interesting issue; we want to be providing a good
out-of-box experience, but interceptors must be registered manually.<br>
  <br>
This means that @Interceptor classes must be:<br>
  <ul>
    <li>Exposed to the developer</li>
    <li>Registered manually by the developer in beans.xml -
&lt;interceptors&gt;...&lt;/interceptors&gt;<br>
    </li>
    <li>Consistently named and packaged to prevent refactoring /
backwards compatibility issues</li>
    <li>Checked at startup in order to warn devs that they are using
annotations with no enabled @Interceptor<br>
    </li>
  </ul>
We would like to propose the following conventions in order to address
the above concerns:<br>
  <br>
All @Interceptor classes must:<br>
  <ol>
    <li>Adhere to the following package and naming scheme:
org.jboss.seam.intercept.*Interceptor<br>
    </li>
    <li>Warn users (or Error out when appropriate) if they are using
interceptable @Annotations when the @Inteceptor itself is not
registered:<br>
(@Interceptor registration can be checked in the Extension class
AfterBeanDiscovery via BeanManager.resolveInterceptors(type,
interceptorBindings)<br>
    </li>
  </ol>
This presents users with:<br>
  <ol>
    <li>A consistent naming scheme to help prevent typos.</li>
    <li>A safety net to catch them when they fall down (because we
forgot to tie the ladder.)</li>
    <li>A protected namespace so that when we refactor, we don't break
their world. (Even though #2 would catch it.)<br>
    </li>
  </ol>
I've updated the <a moz-do-not-send="true"
 href="http://seamframework.org/Seam3/DevelopmentGuidelines"
 target="_blank">Seam 3 Development Guidelines</a> to reflect these
conventions - they can be changed as needed pending the outcome of this
discussion :)<br>
  <br>
-- <br>
Lincoln Baxter, III<br>
  <a moz-do-not-send="true" href="http://ocpsoft.com" target="_blank">http://ocpsoft.com</a><br>
  <a moz-do-not-send="true" href="http://scrumshark.com" target="_blank">http://scrumshark.com</a><br>
"Keep it Simple"<br>
  <pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
seam-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:seam-dev@lists.jboss.org">seam-dev@lists.jboss.org</a>
<a class="moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/seam-dev">https://lists.jboss.org/mailman/listinfo/seam-dev</a>
  </pre>
</blockquote>
<br>
</body>
</html>