Hi Emmanuel,

We haven't really specified a formal standard per se, but you're right, it
is essentially nearly identical to Sun's.  Prior to joining the ASF
Incubator, most of us (all of us?) used IntelliJ IDEA and just used its
default formatting template, which is Sun's.

I agree that we should formally specify it now that the team is continuing
to grow - it would be good.  Jeremy usually used a file template when
creating new classes that we've followed - that should be posted as well.

And you're right - all final attributes should be in all uppercase - it
helps with readability.  For some reason though, Log instances seemed to
have sneaked in under the radar.  It should be consistent :)

Cheers,

Les

On Mon, Jan 19, 2009 at 4:13 AM, Emmanuel Lecharny <[email protected]>wrote:

> Just jumping on this commit to ask if you are using a Java coding
> standard ? I guess it's pretty close to Sun's standard, but it would
> be good to add a page on the (comming) web site. Many Apache project
> already have one, so it's just a matter to copy/paste one of them, and
> adapt it to the project's choice.
>
> For instance, in this commit, if you follow the Java coding standard,
> the "static final log = ..." should be "static final LOG = ..."
> (http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html#367).
> But it can stay the way it is if the project decide too. The main goal
> is to have a common approach for all the code.
>
> Thanks !
>
> On Mon, Jan 19, 2009 at 9:09 AM,  <[email protected]> wrote:
> > Author: lhazlewood
> > Date: Mon Jan 19 00:09:43 2009
> > New Revision: 735626
> >
> > URL: http://svn.apache.org/viewvc?rev=735626&view=rev
> > Log:
> > Modified to be more robust and based on common Subject lookup mechanisms
> (SecurityUtils).  If not found there, only then fall back to a system
> property (previous behavior).
> >
> > Modified:
> >
>  
> incubator/jsecurity/trunk/support/spring/src/org/jsecurity/spring/remoting/SecureRemoteInvocationFactory.java
> >
> > Modified:
> incubator/jsecurity/trunk/support/spring/src/org/jsecurity/spring/remoting/SecureRemoteInvocationFactory.java
> > URL:
> http://svn.apache.org/viewvc/incubator/jsecurity/trunk/support/spring/src/org/jsecurity/spring/remoting/SecureRemoteInvocationFactory.java?rev=735626&r1=735625&r2=735626&view=diff
> >
> ==============================================================================
> > ---
> incubator/jsecurity/trunk/support/spring/src/org/jsecurity/spring/remoting/SecureRemoteInvocationFactory.java
> (original)
> > +++
> incubator/jsecurity/trunk/support/spring/src/org/jsecurity/spring/remoting/SecureRemoteInvocationFactory.java
> Mon Jan 19 00:09:43 2009
> > @@ -19,11 +19,17 @@
> >  package org.jsecurity.spring.remoting;
> >
> >  import org.aopalliance.intercept.MethodInvocation;
> > +import org.apache.commons.logging.Log;
> > +import org.apache.commons.logging.LogFactory;
> > +import org.jsecurity.SecurityUtils;
> >  import org.jsecurity.session.Session;
> > +import org.jsecurity.subject.Subject;
> >  import
> org.springframework.remoting.support.DefaultRemoteInvocationFactory;
> >  import org.springframework.remoting.support.RemoteInvocation;
> >  import org.springframework.remoting.support.RemoteInvocationFactory;
> >
> > +import java.io.Serializable;
> > +
> >  /**
> >  * A {...@link RemoteInvocationFactory} that passes the session ID to the
> server via a
> >  * {...@link RemoteInvocation} {...@link 
> > RemoteInvocation#getAttribute(String)
> attribute}.
> > @@ -38,7 +44,7 @@
> >  */
> >  public class SecureRemoteInvocationFactory extends
> DefaultRemoteInvocationFactory {
> >
> > -    //TODO - complete JavaDoc
> > +    private static final Log log =
> LogFactory.getLog(SecureRemoteInvocationFactory.class);
> >
> >     public static final String SESSION_ID_KEY = Session.class.getName() +
> "_ID_KEY";
> >
> > @@ -53,13 +59,30 @@
> >      * @return a remote invocation object containing the current session
> ID as an attribute.
> >      */
> >     public RemoteInvocation createRemoteInvocation(MethodInvocation
> methodInvocation) {
> > -        String sessionId =
> System.getProperty(SESSION_ID_SYSTEM_PROPERTY_NAME);
> > +        Serializable sessionId = null;
> > +        Subject subject = SecurityUtils.getSubject();
> > +        if (subject != null) {
> > +            Session session = subject.getSession(false);
> > +            if (session != null) {
> > +                sessionId = session.getId();
> > +            }
> > +        }
> > +
> >         if (sessionId == null) {
> > -            throw new IllegalStateException("System property [" +
> SESSION_ID_SYSTEM_PROPERTY_NAME + "] is not set.  " +
> > -                    "This property must be set to the JSecurity session
> ID for remote calls to function.");
> > +            if (log.isTraceEnabled()) {
> > +                log.trace("No Session found for the currently executing
> subject via subject.getSession(false).  " +
> > +                        "Attempting to revert back to the '
> jsecurity.session.id' system property...");
> > +            }
> > +        }
> > +        sessionId = System.getProperty(SESSION_ID_SYSTEM_PROPERTY_NAME);
> > +        if (sessionId == null && log.isTraceEnabled()) {
> > +            log.trace("No 'jsecurity.session.id' system property found.
>  Heuristics have been exhausted; " +
> > +                    "RemoteInvocation will not contain a sessionId.");
> >         }
> >         RemoteInvocation ri = new RemoteInvocation(methodInvocation);
> > -        ri.addAttribute(SESSION_ID_KEY, sessionId);
> > +        if (sessionId != null) {
> > +            ri.addAttribute(SESSION_ID_KEY, sessionId);
> > +        }
> >
> >         return ri;
> >     }
> >
> >
> >
>
>
>
> --
> Regards,
> Cordialement,
> Emmanuel Lécharny
> www.iktek.com
>

Reply via email to