Author: cziegeler
Date: Sat Mar  6 18:48:37 2010
New Revision: 919814

URL: http://svn.apache.org/viewvc?rev=919814&view=rev
Log:
SLING-1262 - Deprecate JcrResourceResolverFactory and add some javadocs.

Modified:
    
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/JcrResourceResolverFactory.java
    
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/ResourceResolverFactoryImpl.java

Modified: 
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/JcrResourceResolverFactory.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/JcrResourceResolverFactory.java?rev=919814&r1=919813&r2=919814&view=diff
==============================================================================
--- 
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/JcrResourceResolverFactory.java
 (original)
+++ 
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/JcrResourceResolverFactory.java
 Sat Mar  6 18:48:37 2010
@@ -30,13 +30,16 @@
  * This interface is not intended to be implemented by client applications. It
  * is implemented by this bundle and the implementation registered as a service
  * for use by client applications.
+ *
+ * @deprecated Use the {...@link 
org.apache.sling.api.resource.ResourceResolverFactory}
  */
+...@deprecated
 public interface JcrResourceResolverFactory {
 
     /**
      * Returns a <code>ResourceResolver</code> for the given session. Calling
      * this method repeatedly returns a new instance on each call.
-     * 
+     *
      * @param session The JCR <code>Session</code> used by the created
      *            resource manager to access the repository.
      */

Modified: 
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/ResourceResolverFactoryImpl.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/ResourceResolverFactoryImpl.java?rev=919814&r1=919813&r2=919814&view=diff
==============================================================================
--- 
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/ResourceResolverFactoryImpl.java
 (original)
+++ 
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/ResourceResolverFactoryImpl.java
 Sat Mar  6 18:48:37 2010
@@ -84,6 +84,15 @@
         return factory.getResourceResolver(handleSudo(session, 
authenticationInfo));
     }
 
+    /**
+     * Create a login exception from a repository exception.
+     * If the repository exception is a  {...@link javax.jcr.LoginException}
+     * a {...@link LoginException} is created with the same information.
+     * Otherwise a {...@link LoginException} is created which wraps the
+     * repository exception.
+     * @param re The repository exception.
+     * @return The login exception.
+     */
     private LoginException getLoginException(final RepositoryException re) {
         if ( re instanceof javax.jcr.LoginException ) {
             return new LoginException(re.getMessage(), re.getCause());
@@ -91,6 +100,13 @@
         return new LoginException("Unable to login " + re.getMessage(), re);
     }
 
+    /**
+     * Return the workspace name.
+     * If the workspace name is provided, it is returned, otherwise
+     * <code>null</code> is returned.
+     * @param authenticationInfo Optional authentication info.
+     * @return The configured workspace name or <code>null</code>
+     */
     private String getWorkspace(final Map<String, Object> authenticationInfo) {
         if ( authenticationInfo != null ) {
             return (String) authenticationInfo.get("user.jcr.workspace");
@@ -98,6 +114,13 @@
         return null;
     }
 
+    /**
+     * Return the sudo user information.
+     * If the sudo user info is provided, it is returned, otherwise
+     * <code>null</code> is returned.
+     * @param authenticationInfo Optional authentication info.
+     * @return The configured sudo user information or <code>null</code>
+     */
     private String getSudoUser(final Map<String, Object> authenticationInfo) {
         if ( authenticationInfo != null ) {
             return (String) 
authenticationInfo.get(ResourceResolverFactory.SUDO_USER_ID);
@@ -105,6 +128,18 @@
         return null;
     }
 
+    /**
+     * Handle the sudo if configured.
+     * If the authentication info does not contain a sudo info, this method 
simply returns
+     * the passed in session.
+     * If a sudo user info is available, the session is tried to be 
impersonated. The new
+     * impersonated session is returned. The original session is closed. The 
session is
+     * also closed if the impersonation fails.
+     * @param session The session.
+     * @param authenticationInfo The optional authentication info.
+     * @return The original session or impersonated session.
+     * @throws LoginException If something goes wrong.
+     */
     private Session handleSudo(final Session session, final Map<String, 
Object> authenticationInfo)
     throws LoginException {
         final String sudoUser = getSudoUser(authenticationInfo);
@@ -121,6 +156,19 @@
         return session;
     }
 
+    /**
+     * Create a credentials object from the provided authentication info.
+     * If no map is provided, <code>null</code> is returned.
+     * If a map is provided and contains a credentials object, this object is
+     * returned.
+     * If a map is provided but does not contain a credentials object nor a
+     * user, <code>null</code> is returned.
+     * if a map is provided with a user name but without a credentials object
+     * a new credentials object is created and all values from the 
authentication
+     * info are added as attributes.
+     * @param authenticationInfo Optional authentication info
+     * @return A credentials object or <code>null</code>
+     */
     private Credentials getCredentials(final Map<String, Object> 
authenticationInfo) {
         if ( authenticationInfo == null ) {
             return null;
@@ -131,9 +179,7 @@
             final String userId = (String) authenticationInfo.get("user.name");
             if (userId != null) {
                 final char[] password = (char[]) 
authenticationInfo.get("user.password");
-                credentials = new SimpleCredentials(userId, (password == null)
-                        ? new char[0]
-                        : password);
+                credentials = new SimpleCredentials(userId, (password == null 
? new char[0] : password));
 
                 // add attributes
                 final Iterator<Map.Entry<String, Object>> i = 
authenticationInfo.entrySet().iterator();


Reply via email to