diff --git a/jaas/src/main/java/org/apache/felix/jaas/LoginModuleFactory.java b/jaas/src/main/java/org/apache/felix/jaas/LoginModuleFactory.java
index a9edf97..d613791 100644
--- a/jaas/src/main/java/org/apache/felix/jaas/LoginModuleFactory.java
+++ b/jaas/src/main/java/org/apache/felix/jaas/LoginModuleFactory.java
@@ -21,18 +21,33 @@
 
 import javax.security.auth.spi.LoginModule;
 
-
 /**
- * User: chetanm
- * Date: 7/9/12
- * Time: 5:43 PM
+ * 
  */
 public interface LoginModuleFactory
 {
-
+    /**
+     * Property name specifying whether or not a <code>LoginModule</code> is
+     * REQUIRED, REQUISITE, SUFFICIENT or OPTIONAL. Refer to {@link javax.security.auth.login.Configuration}
+     * for more details around the meaning of these flags
+     *
+     * By default the value is set to REQUIRED
+     */
     String JAAS_CONTROL_FLAG = "jaas.controlFlag";
+
+    /**
+     * Property name specifying the Realm name (or application name) against which the
+     * LoginModule would be registered.
+     *
+     * <p>If no realm name is provided then LoginModule would registered with a default realm
+     * as configured
+     */
     String JAAS_REALM_NAME = "jaas.realmName";
 
+    /**
+     * Creates the LoginModule instance
+     * @return loginModule instance
+     */
     LoginModule createLoginModule();
 
 }
diff --git a/jaas/src/main/java/org/apache/felix/jaas/internal/Activator.java b/jaas/src/main/java/org/apache/felix/jaas/internal/Activator.java
index b014e72..71d43d3 100644
--- a/jaas/src/main/java/org/apache/felix/jaas/internal/Activator.java
+++ b/jaas/src/main/java/org/apache/felix/jaas/internal/Activator.java
@@ -38,8 +38,7 @@
         loginModuleCreator = new BundleLoginModuleCreator(context, logger);
         jaasConfigFactory = new JaasConfigFactory(context, loginModuleCreator, logger);
         configSpi = new ConfigSpiOsgi(context, logger);
-        webConsolePlugin = new JaasWebConsolePlugin(context, configSpi,
-            loginModuleCreator);
+        webConsolePlugin = new JaasWebConsolePlugin(context, configSpi,loginModuleCreator);
 
         logger.open();
         loginModuleCreator.open();
diff --git a/jaas/src/main/java/org/apache/felix/jaas/internal/ConfigLoginModuleProvider.java b/jaas/src/main/java/org/apache/felix/jaas/internal/ConfigLoginModuleProvider.java
index 445712c..1114907 100644
--- a/jaas/src/main/java/org/apache/felix/jaas/internal/ConfigLoginModuleProvider.java
+++ b/jaas/src/main/java/org/apache/felix/jaas/internal/ConfigLoginModuleProvider.java
@@ -37,7 +37,9 @@
     private final LoginModuleCreator moduleCreator;
 
     @SuppressWarnings("unchecked")
-    ConfigLoginModuleProvider(String realmName, String className, Map options, LoginModuleControlFlag controlFlag, int order, LoginModuleCreator moduleCreator)
+    ConfigLoginModuleProvider(String realmName, String className, Map options,
+                              LoginModuleControlFlag controlFlag, int order,
+                              LoginModuleCreator moduleCreator)
     {
         this.options = Collections.unmodifiableMap(options);
         this.controlFlag = controlFlag;
diff --git a/jaas/src/main/java/org/apache/felix/jaas/internal/ConfigSpiOsgi.java b/jaas/src/main/java/org/apache/felix/jaas/internal/ConfigSpiOsgi.java
index 175046f..828e5c4 100644
--- a/jaas/src/main/java/org/apache/felix/jaas/internal/ConfigSpiOsgi.java
+++ b/jaas/src/main/java/org/apache/felix/jaas/internal/ConfigSpiOsgi.java
@@ -47,8 +47,14 @@
 import org.osgi.util.tracker.ServiceTracker;
 import org.osgi.util.tracker.ServiceTrackerCustomizer;
 
-@Component(label = "%jaas.spi.name", description = "%jaas.spi.description", metatype = true, ds = false, name = "org.apache.felix.jaas.ConfigurationSpi", policy = ConfigurationPolicy.REQUIRE)
-public class ConfigSpiOsgi extends ConfigurationSpi implements ManagedService, ServiceTrackerCustomizer, LoginContextFactory
+@Component(label = "%jaas.spi.name",
+        description = "%jaas.spi.description",
+        metatype = true,
+        ds = false,
+        name = "org.apache.felix.jaas.ConfigurationSpi",
+        policy = ConfigurationPolicy.REQUIRE)
+public class ConfigSpiOsgi extends ConfigurationSpi implements ManagedService,
+        ServiceTrackerCustomizer, LoginContextFactory
 {
     /**
      * Name of the algorithm to use to fetch JAAS Config
diff --git a/jaas/src/main/java/org/apache/felix/jaas/internal/LoginModuleProvider.java b/jaas/src/main/java/org/apache/felix/jaas/internal/LoginModuleProvider.java
index 4e237f4..b8c018d 100644
--- a/jaas/src/main/java/org/apache/felix/jaas/internal/LoginModuleProvider.java
+++ b/jaas/src/main/java/org/apache/felix/jaas/internal/LoginModuleProvider.java
@@ -35,6 +35,10 @@
 
     int ranking();
 
+    /**
+     * Realm name with which LoginModule is registered. Can be <code>null</code>
+     * @return realmName or null if not provided
+     */
     String realmName();
 
     String getClassName();
