[jboss-cvs] JBossBlog SVN: r74 - in trunk: blog-common and 24 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Mar 15 06:05:58 EDT 2007


Author: adamw
Date: 2007-03-15 06:05:57 -0400 (Thu, 15 Mar 2007)
New Revision: 74

Added:
   trunk/blog-common/src/java/org/jboss/blog/service/permissions/context/
   trunk/blog-common/src/java/org/jboss/blog/service/permissions/context/JSFActionContext.java
   trunk/blog-common/src/java/org/jboss/blog/service/permissions/context/JSFSecurityContext.java
   trunk/blog-common/src/java/org/jboss/blog/service/permissions/context/JSFUIContext.java
   trunk/blog-common/src/java/org/jboss/blog/service/permissions/context/SecurityContext.java
   trunk/blog-common/src/java/org/jboss/blog/service/permissions/portal/
   trunk/blog-common/src/java/org/jboss/blog/service/permissions/portal/PortalBlogPermissionsService.java
   trunk/blog-common/src/java/org/jboss/blog/service/permissions/portal/PortalUserBlogAuthor.java
   trunk/blog-jaae/
   trunk/blog-jaae/blog-jaae.iml
   trunk/blog-jaae/build.xml
   trunk/blog-jaae/src/
   trunk/blog-jaae/src/etc/
   trunk/blog-jaae/src/etc/META-INF/
   trunk/blog-jaae/src/etc/META-INF/acl-mapping.xml
   trunk/blog-jaae/src/etc/META-INF/acl-permissions.xml
   trunk/blog-jaae/src/java/
   trunk/blog-jaae/src/java/org/
   trunk/blog-jaae/src/java/org/jboss/
   trunk/blog-jaae/src/java/org/jboss/blog/
   trunk/blog-jaae/src/java/org/jboss/blog/service/
   trunk/blog-jaae/src/java/org/jboss/blog/service/permissions/
   trunk/blog-jaae/src/java/org/jboss/blog/service/permissions/acl/
   trunk/blog-jaae/src/java/org/jboss/blog/service/permissions/acl/AclBlogPermissionsService.java
   trunk/blog-jaae/src/java/org/jboss/security/
   trunk/blog-jaae/src/java/org/jboss/security/acl/
   trunk/blog-jaae/src/java/org/jboss/security/acl/AclKernelFactory.xml
Removed:
   trunk/blog-common/src/java/org/jboss/blog/service/permissions/SecurityContext.java
   trunk/blog-core/src/etc/META-INF/acl-mapping.xml
   trunk/blog-core/src/etc/META-INF/acl-permissions.xml
   trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/AclBlogPermissionsService.java
   trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFActionContext.java
   trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFSecurityContext.java
   trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFUIContext.java
   trunk/blog-core/src/java/org/jboss/blog/service/permissions/model/
   trunk/blog-core/src/java/org/jboss/blog/service/permissions/portal/
Modified:
   trunk/blog-common/blog-common.iml
   trunk/blog-common/build.xml
   trunk/blog-common/src/java/org/jboss/blog/service/permissions/BlogPermissionsService.java
   trunk/blog-common/src/java/org/jboss/blog/tools/BasicTools.java
   trunk/blog-core/build.xml
   trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/ACLTagHandler.java
   trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/AuthorizationListener.java
   trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JBossPortalUtil.java
   trunk/blog-core/src/java/org/jboss/blog/tools/UITools.java
   trunk/blog-core/src/java/org/jboss/blog/ui/BlogEdit.java
   trunk/blog-core/src/java/org/jboss/blog/ui/BlogView.java
   trunk/blog-core/src/java/org/jboss/blog/ui/CommentEdit.java
   trunk/blog-core/src/java/org/jboss/blog/ui/IdEdit.java
   trunk/blog-core/src/java/org/jboss/blog/ui/PostEdit.java
   trunk/blog-hibernate/src/java/org/jboss/blog/service/store/hibernate/HPortalBlogAuthor.java
   trunk/blog-hibernate/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.java
   trunk/build.xml
   trunk/jbossblog.ipr
   trunk/jbossblog.iws
Log:
Refactoring

Modified: trunk/blog-common/blog-common.iml
===================================================================
--- trunk/blog-common/blog-common.iml	2007-03-15 00:14:59 UTC (rev 73)
+++ trunk/blog-common/blog-common.iml	2007-03-15 10:05:57 UTC (rev 74)
@@ -53,6 +53,16 @@
         <SOURCES />
       </library>
     </orderEntry>
+    <orderEntry type="library" name="jsf" level="project" />
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../lib/jboss-portal/portal-identity-lib.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
     <orderEntryProperties />
   </component>
 </module>

Modified: trunk/blog-common/build.xml
===================================================================
--- trunk/blog-common/build.xml	2007-03-15 00:14:59 UTC (rev 73)
+++ trunk/blog-common/build.xml	2007-03-15 10:05:57 UTC (rev 74)
@@ -5,6 +5,8 @@
     <path id="base.jars">
         <fileset refid="rome.jars" />
         <fileset refid="jboss.jars" />
+        <fileset refid="myfaces.jars" />
+        <fileset refid="jboss.portal.jars" />
     </path>
 
     <!-- BUILD TARGETS -->

Modified: trunk/blog-common/src/java/org/jboss/blog/service/permissions/BlogPermissionsService.java
===================================================================
--- trunk/blog-common/src/java/org/jboss/blog/service/permissions/BlogPermissionsService.java	2007-03-15 00:14:59 UTC (rev 73)
+++ trunk/blog-common/src/java/org/jboss/blog/service/permissions/BlogPermissionsService.java	2007-03-15 10:05:57 UTC (rev 74)
@@ -1,6 +1,7 @@
 package org.jboss.blog.service.permissions;
 
 import org.jboss.blog.model.BlogAuthor;
+import org.jboss.blog.service.permissions.context.SecurityContext;
 
 /**
  * A service which enables to check, if a given user can gain access to given

Deleted: trunk/blog-common/src/java/org/jboss/blog/service/permissions/SecurityContext.java
===================================================================
--- trunk/blog-common/src/java/org/jboss/blog/service/permissions/SecurityContext.java	2007-03-15 00:14:59 UTC (rev 73)
+++ trunk/blog-common/src/java/org/jboss/blog/service/permissions/SecurityContext.java	2007-03-15 10:05:57 UTC (rev 74)
@@ -1,9 +0,0 @@
-package org.jboss.blog.service.permissions;
-
-/**
- * @author <a href="mailto:sohil.shah at jboss.com">Sohil Shah</a>
- */
-public interface SecurityContext
-{
-    public Object getIdentity();
-}

Copied: trunk/blog-common/src/java/org/jboss/blog/service/permissions/context/JSFActionContext.java (from rev 72, trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFActionContext.java)
===================================================================
--- trunk/blog-common/src/java/org/jboss/blog/service/permissions/context/JSFActionContext.java	                        (rev 0)
+++ trunk/blog-common/src/java/org/jboss/blog/service/permissions/context/JSFActionContext.java	2007-03-15 10:05:57 UTC (rev 74)
@@ -0,0 +1,46 @@
+package org.jboss.blog.service.permissions.context;
+
+import java.lang.reflect.Method;
+
+import javax.faces.context.FacesContext;
+
+/**
+ * @author <a href="mailto:sohil.shah at jboss.com">Sohil Shah</a>
+ */
+public class JSFActionContext extends JSFSecurityContext {
+    /**
+     * this is the action method on a JSF Managed Bean that is being called
+     * and needs to be authorized access to
+     */
+    private Method businessAction = null;
+    
+    /**
+     * This is the JSF Managed Bean that is being used
+     */
+    private Object managedBean = null;
+
+    public JSFActionContext(Object identity,FacesContext facesContext)
+    {
+       super(identity,facesContext);
+    }
+
+    public Method getBusinessAction()
+    {
+        return this.businessAction;
+    }
+
+    public void setBusinessAction(Method businessAction)
+    {
+        this.businessAction = businessAction;
+    }
+
+    public Object getManagedBean()
+    {
+        return this.managedBean;
+    }
+    
+    public void setManagedBean(Object managedBean)
+    {
+        this.managedBean = managedBean;
+    }
+}

Copied: trunk/blog-common/src/java/org/jboss/blog/service/permissions/context/JSFSecurityContext.java (from rev 72, trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFSecurityContext.java)
===================================================================
--- trunk/blog-common/src/java/org/jboss/blog/service/permissions/context/JSFSecurityContext.java	                        (rev 0)
+++ trunk/blog-common/src/java/org/jboss/blog/service/permissions/context/JSFSecurityContext.java	2007-03-15 10:05:57 UTC (rev 74)
@@ -0,0 +1,52 @@
+package org.jboss.blog.service.permissions.context;
+
+import org.jboss.blog.service.permissions.context.SecurityContext;
+
+import javax.faces.context.FacesContext;
+
+/**
+ * @author <a href="mailto:sohil.shah at jboss.com">Sohil Shah</a>
+ */
+public abstract class JSFSecurityContext implements SecurityContext {
+    /**
+     * 
+     */
+    private FacesContext facesContext = null;
+    
+        
+    /**
+     * this is current user that needs to be authorized..
+     * left the type of this identity open ended..
+     * the actual provider can then cast it based on what it expects it to be
+     */
+    private Object identity = null;
+  
+    public JSFSecurityContext(Object identity,FacesContext facesContext)
+    {
+       this.facesContext = facesContext; 
+       this.identity = identity;
+    }
+    
+    
+        
+    /**
+     * @return Returns the identity.
+     */
+    public Object getIdentity() 
+    {
+        return this.identity;
+    }
+    
+    /**
+     * @param identity The identity to set.
+     */
+    public void setIdentity(Object identity) 
+    {
+        this.identity = identity;
+    }
+
+    public FacesContext getFacesContext()
+    {
+        return this.facesContext;
+    }
+}

Copied: trunk/blog-common/src/java/org/jboss/blog/service/permissions/context/JSFUIContext.java (from rev 72, trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFUIContext.java)
===================================================================
--- trunk/blog-common/src/java/org/jboss/blog/service/permissions/context/JSFUIContext.java	                        (rev 0)
+++ trunk/blog-common/src/java/org/jboss/blog/service/permissions/context/JSFUIContext.java	2007-03-15 10:05:57 UTC (rev 74)
@@ -0,0 +1,48 @@
+package org.jboss.blog.service.permissions.context;
+
+import javax.faces.context.FacesContext;
+
+/**
+ * @author <a href="mailto:sohil.shah at jboss.com">Sohil Shah</a>
+ */
+public class JSFUIContext extends JSFSecurityContext
+{
+    private String fragment = null;
+    private Object[] contextData = null;
+
+
+    public JSFUIContext(Object identity,FacesContext facesContext)
+    {
+        super(identity,facesContext);
+    }
+
+
+    /**
+     * @return Returns the contextData.
+     */
+    public Object[] getContextData()
+    {
+        return contextData;
+    }
+    /**
+     * @param contextData The contextData to set.
+     */
+    public void setContextData(Object[] contextData)
+    {
+        this.contextData = contextData;
+    }
+    /**
+     * @return Returns the fragment.
+     */
+    public String getFragment()
+    {
+        return fragment;
+    }
+    /**
+     * @param fragment The fragment to set.
+     */
+    public void setFragment(String fragment)
+    {
+        this.fragment = fragment;
+    }
+}

Copied: trunk/blog-common/src/java/org/jboss/blog/service/permissions/context/SecurityContext.java (from rev 72, trunk/blog-common/src/java/org/jboss/blog/service/permissions/SecurityContext.java)
===================================================================
--- trunk/blog-common/src/java/org/jboss/blog/service/permissions/context/SecurityContext.java	                        (rev 0)
+++ trunk/blog-common/src/java/org/jboss/blog/service/permissions/context/SecurityContext.java	2007-03-15 10:05:57 UTC (rev 74)
@@ -0,0 +1,9 @@
+package org.jboss.blog.service.permissions.context;
+
+/**
+ * @author <a href="mailto:sohil.shah at jboss.com">Sohil Shah</a>
+ */
+public interface SecurityContext
+{
+    public Object getIdentity();
+}

Copied: trunk/blog-common/src/java/org/jboss/blog/service/permissions/portal/PortalBlogPermissionsService.java (from rev 72, trunk/blog-core/src/java/org/jboss/blog/service/permissions/portal/PortalBlogPermissionsService.java)
===================================================================
--- trunk/blog-common/src/java/org/jboss/blog/service/permissions/portal/PortalBlogPermissionsService.java	                        (rev 0)
+++ trunk/blog-common/src/java/org/jboss/blog/service/permissions/portal/PortalBlogPermissionsService.java	2007-03-15 10:05:57 UTC (rev 74)
@@ -0,0 +1,24 @@
+package org.jboss.blog.service.permissions.portal;
+
+import org.jboss.blog.service.permissions.BlogPermissionsService;
+import org.jboss.portal.identity.UserModule;
+import org.jboss.portal.identity.UserProfileModule;
+
+/**
+ * An interface for blog permissions services designed to work with
+ * JBossPortal.
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public interface PortalBlogPermissionsService extends BlogPermissionsService {
+    /**
+     *
+     * @return User module from portal.
+     */
+    public UserModule getUserModule();
+
+    /**
+     *
+     * @return User profile module from portal.
+     */
+    public UserProfileModule getUserProfileModule();
+}

Copied: trunk/blog-common/src/java/org/jboss/blog/service/permissions/portal/PortalUserBlogAuthor.java (from rev 72, trunk/blog-core/src/java/org/jboss/blog/service/permissions/model/PortalUserBlogAuthor.java)
===================================================================
--- trunk/blog-common/src/java/org/jboss/blog/service/permissions/portal/PortalUserBlogAuthor.java	                        (rev 0)
+++ trunk/blog-common/src/java/org/jboss/blog/service/permissions/portal/PortalUserBlogAuthor.java	2007-03-15 10:05:57 UTC (rev 74)
@@ -0,0 +1,46 @@
+package org.jboss.blog.service.permissions.portal;
+
+import org.jboss.blog.model.AbstractBlogAuthor;
+import org.jboss.blog.service.permissions.portal.PortalBlogPermissionsService;
+import org.jboss.blog.tools.BasicTools;
+import org.jboss.portal.identity.User;
+import org.jboss.portal.identity.IdentityException;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class PortalUserBlogAuthor extends AbstractBlogAuthor {
+    private PortalBlogPermissionsService pbps;
+    private User user;
+
+    public PortalUserBlogAuthor(PortalBlogPermissionsService pbps, User user) {
+        this.pbps = pbps;
+        this.user = user;
+    }
+
+    public String getUserName() {
+        return user.getUserName();
+    }
+
+    public String getGivenName() {
+        try {
+            return BasicTools.safeToString(pbps.getUserProfileModule().getProperty(user,
+                    User.INFO_USER_NAME_GIVEN));
+        } catch (IdentityException e) {
+            return null;
+        }
+    }
+
+    public String getFamilyName() {
+        try {
+            return BasicTools.safeToString(pbps.getUserProfileModule().getProperty(user,
+                    User.INFO_USER_NAME_FAMILY));
+        } catch (IdentityException e) {
+            return null;
+        }
+    }
+
+    public User getUser() {
+        return user;
+    }
+}

Modified: trunk/blog-common/src/java/org/jboss/blog/tools/BasicTools.java
===================================================================
--- trunk/blog-common/src/java/org/jboss/blog/tools/BasicTools.java	2007-03-15 00:14:59 UTC (rev 73)
+++ trunk/blog-common/src/java/org/jboss/blog/tools/BasicTools.java	2007-03-15 10:05:57 UTC (rev 74)
@@ -1,5 +1,9 @@
 package org.jboss.blog.tools;
 
+import org.jboss.blog.service.BlogService;
+import org.jboss.mx.util.MBeanProxyExt;
+import org.jboss.mx.util.MBeanServerLocator;
+
 import java.util.Set;
 import java.util.HashSet;
 
@@ -93,4 +97,33 @@
         return link.startsWith("http:") || link.startsWith("ftp:")
                 || link.startsWith("https:") || link.startsWith("file:");
     }
+
+    public static BlogService instance;
+
+    /**
+     *
+     * @return An instance of the blog service.
+     */
+    public static synchronized BlogService getBlogService() {
+        try {
+            if (instance == null) {
+                instance = (BlogService) MBeanProxyExt.create(
+                        BlogService.class,
+                        "blog:service=Main",
+                        MBeanServerLocator.locate());
+            }
+
+            return instance;
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    public static String safeToString(Object o) {
+        if (o == null) {
+            return null;
+        } else {
+            return o.toString();
+        }
+    }
 }

Modified: trunk/blog-core/build.xml
===================================================================
--- trunk/blog-core/build.xml	2007-03-15 00:14:59 UTC (rev 73)
+++ trunk/blog-core/build.xml	2007-03-15 10:05:57 UTC (rev 74)
@@ -10,8 +10,7 @@
         <fileset refid="facelets.jars" />
         <fileset refid="myfaces.jars" />
         <fileset refid="jstl.jars" />
-        <fileset refid="servlet.jars" />
-        <fileset refid="jboss.jaae.jars" />        
+        <fileset refid="servlet.jars" />       
 
         <fileset refid="log4j.jar" />
     </path>

Deleted: trunk/blog-core/src/etc/META-INF/acl-mapping.xml
===================================================================
--- trunk/blog-core/src/etc/META-INF/acl-mapping.xml	2007-03-15 00:14:59 UTC (rev 73)
+++ trunk/blog-core/src/etc/META-INF/acl-mapping.xml	2007-03-15 10:05:57 UTC (rev 74)
@@ -1,135 +0,0 @@
-<?xml version='1.0' encoding='ISO-8859-1'?>
-
-<!--  make sure all class values are fully qualified names of concrete classes. Interfaces are not supported at this point -->
-<!--  think of the extra-info tag in the permission tag as parameters to the custom Enforcer, Default Enforcer ignores these, extra-info tags are not required -->
-<!--  some rules regarding the relationships between the various concepts. These are subject to change as this framework evolves -->
-
-<!--
-	the functionId - id attribute within the function tag should be unique across the system
-	
-	A resource can be associated with multiple functions, but a resource cannot be associated with multiple modules
-	
-	Module defines the overall component that needs protection within the system, Function defines various protected functions within a Module, and
-	Resources are system level objects (java methods, user interface fragments etc) that need to be accessed to successfully perform a function 
-	within a module 
-			
-	An Enforcer is the object that actually performs the access control logic. The framework comes bundled with a DefaultEnforcer which should take care of 90% 
-    of ACL cases for an application. Applications can plug-in their own Enforcer that can perform this logic based on the runtime values, extra-parameter
-    values etc. Having the Enforcer perform the access control logic keeps any ACL checking code to be hard coded within the business logic of the
-    application. This leads to better flexibility from a security perspective of the system 
-    
-    List of system resources supported:
-    1) Java Class Methods - type=method
-    2) UI Fragments within a Page - type=fragment
-    
-    List of resource extensions:
-    3) JSF ManagedBean action - type=jsfAction
- -->
-
-<acl>
-	<!-- Blog Admin usecases  -->
-	<module id="adminModule" name="Admin Module">
-        <!-- only ui protection -->
-        <function id="accessAdminModule" name="Access Admin Module">
-			<resource type="fragment" criteriaId="accessAdminModule://ui">
-				<id>acl://accessAdminModule</id>
-			</resource>
-		</function>
-
-        <!-- only ui protection -->
-        <function id="manageBlog" name="Manage Blog">
-			<resource type="fragment" criteriaId="manageBlog://ui">
-				<id>acl://manageBlog</id>
-			</resource>
-            <resource type="jsfAction" criteriaId="manageBlog://action">
-				<class>org.jboss.blog.ui.BlogEdit</class>
-				<method>saveNew</method>
-			</resource>
-            <resource type="jsfAction" criteriaId="manageBlog://action">
-				<class>org.jboss.blog.ui.BlogEdit</class>
-				<method>delete</method>
-			</resource>
-        </function>
-
-        <function id="manageCategory" name="Manage Category">
-			<!-- ui protection -->
-			<resource type="fragment" criteriaId="manageCategory://ui">
-				<id>acl://manageCategory</id>
-			</resource>
-			<!-- action protection -->
-			<resource type="jsfAction" criteriaId="manageCategories://action">
-				<class>org.jboss.blog.ui.BlogEdit</class>
-				<method>save</method>
-			</resource>
-			<implies>accessAdminModule</implies>
-		</function>                
-	</module>
-	
-	<!-- Blog User usecases -->
-	<module id="userModule" name="User Module">
-		<function id="viewCategory" name="View Category">
-			<!-- ui protection -->
-			<resource type="fragment" criteriaId="viewCategory://ui">
-				<id>acl://viewCategory</id>
-			</resource>
-		</function>
-
-        <function id="viewComment" name="View Comment">
-			<!-- ui protection -->
-			<resource type="fragment" criteriaId="viewComment://ui">
-				<id>acl://viewComment</id>
-			</resource>
-			<implies>viewCategory</implies>
-		</function>
-
-		<function id="addComment" name="Add Comment">
-			<!-- ui protection -->
-			<resource type="fragment" criteriaId="addComment://ui">
-				<id>acl://addComment</id>
-			</resource>
-			<!-- action protection -->
-			<resource type="jsfAction" criteriaId="addComment://action">
-				<class>org.jboss.blog.ui.CommentEdit</class>
-				<method>saveNew</method>
-			</resource>
-            <implies>viewCategory</implies>
-            <implies>viewComment</implies>
-        </function>
-	</module>		
-	
-	<!-- Blog Owner usecases -->
-	<module id="ownerModule" name="Owner Module">        
-        <function id="manageComment" name="Manage Comment">
-			<!-- ui protection -->
-			<resource type="fragment" criteriaId="manageComment://ui">
-				<id>acl://manageComment</id>
-			</resource>
-			<!-- action protection -->
-			<resource type="jsfAction" criteriaId="manageComment://action">
-				<class>org.jboss.blog.ui.CommentEdit</class>
-				<method>delete</method>
-			</resource>
-		</function>
-
-        <function id="managePost" name="Manage Post">
-			<!-- ui protection -->
-			<resource type="fragment" criteriaId="managePost://ui">
-				<id>acl://managePost</id>
-			</resource>
-			<!-- action protection -->
-			<resource type="jsfAction" criteriaId="managePost://action">
-				<class>org.jboss.blog.ui.PostEdit</class>
-				<method>save</method>
-			</resource>
-			<resource type="jsfAction" criteriaId="managePost://action">
-				<class>org.jboss.blog.ui.PostEdit</class>
-				<method>saveNew</method>
-			</resource>
-            <resource type="jsfAction" criteriaId="managePost://action">
-				<class>org.jboss.blog.ui.PostEdit</class>
-				<method>delete</method>
-			</resource>
-            <implies>manageComment</implies>
-        </function>
-	</module>
-</acl>
\ No newline at end of file

Deleted: trunk/blog-core/src/etc/META-INF/acl-permissions.xml
===================================================================
--- trunk/blog-core/src/etc/META-INF/acl-permissions.xml	2007-03-15 00:14:59 UTC (rev 73)
+++ trunk/blog-core/src/etc/META-INF/acl-permissions.xml	2007-03-15 10:05:57 UTC (rev 74)
@@ -1,99 +0,0 @@
-<?xml version='1.0' encoding='ISO-8859-1'?>
-
-<!--
-	Each role contains a set of permissions. Each permission/no-permission points to a function in the system that this role has/doesnot have access to.
- -->
-
-<acl>				
-	<!--  dynamic roles/permissions defined for the application at runtime (either through the GUI or directly modifying this xml file) -->	
-	<!--
-			Sample permission = 
-			<permission functionId="editCategory"/>	 //plain without criteria
-			
-			<permission functionId="editCategory"> //complicated with criteria specification
-				<criteria context="jsfAction">target.categoryName.indexOf('sandbox') != -1</criteria>			
-				<criteria context="fragment">param[0].categoryName.toLowerCase().indexOf('sandbox') != -1</criteria>
-			</permission>				
-	-->
-	
-	<!--  
-		built-in system defined roles 
-	-->
-	<!-- non-logged in users -->
-	<role name="Anonymous" id="anonymous">	
-		<!-- Admin Module permissions -->
-
-		<!-- User Module permissions -->
-		<!-- giving anonymous users permission to view only the Unit Testing Category of Forums -->
-		<!--permission action="readCategory">
-			<criteria for="readCategory://ui">param[0].title.toLowerCase().startsWith('unit testing')</criteria>
-		</permission-->	
-		<permission action="viewComment" />
-        <!--<permission action="managePost"/>-->
-
-        <!--<permission action="manageCategory"/>-->
-        <!--<permission action="manageBlog"/>-->
-        <!-- <permission action="all"/>	-->
-
-        <!-- Owner Module permissions -->
-	</role>
-	
-	<!-- just a regular registered user -->	
-	<role name="User" id="user">
-		<!-- Admin Module permissions -->
-		
-		<!-- User Module permissions -->
-        <permission action="addComment" />
-        <!-- permission to edit only my own posts -->
-		<!--<permission action="editPost">
-			<criteria for="editPost://ui">param[0].poster.user.userName.equals(identity.identity.userName)</criteria>
-			<criteria for="editPost://action">target.post.poster.user.userName.equals(identity.identity.userName)</criteria>
-		</permission>-->
-
-		<!-- Owner Module permissions -->					
-	</role>
-	
-	<!-- users with Admin privileges -->	
-	<role name="Admin" id="admin">
-		<!-- Admin Module permissions -->
-		
-		<!-- User Module permissions -->
-		
-		<!-- Owner Module permissions -->
-		
-		<!-- wild card permission -->
-		<permission action="all" />
-	</role>		
-	
-	<!-- 
-		deployment specific roles......just examples of how fine grained permissions can be assigned
-		this is an example of how the rules would possibly setup for JBoss.org Forums...
-		These policy rules vary for each consumer of forums depending on their own requirements of
-		access control security 
-	-->
-	
-	<!-- permissions specific to the Drools Team -->
-	<!--<role name="Drools Team" id="droolsTeam">
-		<permission action="viewCategory">
-			<criteria for="viewCategory://ui">param[0].title.toLowerCase().startsWith('jboss rules')</criteria>
-		</permission>
-		<permission action="deleteCategory">
-			<criteria for="deleteCategory://action">target.categoryName.toLowerCase().startsWith('jboss rules')</criteria>
-			<- also criteria for the implied edit category permission ->
-			<criteria for="editCategory://action">target.categoryName.toLowerCase().startsWith('jboss rules')</criteria>
-		</permission>
-		<permission action="viewForum">
-			<criteria for="viewForum://ui">param[0].name.toLowerCase().startsWith('jboss rules')</criteria>
-		</permission>			
-		<permission action="deleteForum">
-			<criteria for="deleteForum://action">target.forumName.toLowerCase().startsWith('jboss rules')</criteria>
-			<- also criteria for the implied edit category permission ->
-			<criteria for="editForum://action">target.forumName.toLowerCase().startsWith('jboss rules')</criteria>
-		</permission>
-
-		<permission action="readCategory">
-			<criteria for="readCategory://ui">param[0].title.toLowerCase().startsWith('jboss rules')</criteria>
-		</permission>
-		<permission action="readForum"/>					
-	</role>-->
-</acl>
\ No newline at end of file

Modified: trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/ACLTagHandler.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/ACLTagHandler.java	2007-03-15 00:14:59 UTC (rev 73)
+++ trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/ACLTagHandler.java	2007-03-15 10:05:57 UTC (rev 74)
@@ -11,7 +11,8 @@
 import javax.faces.component.UIComponent;
 
 //logging
-import org.jboss.blog.tools.UITools;
+import org.jboss.blog.tools.BasicTools;
+import org.jboss.blog.service.permissions.context.JSFUIContext;
 
 //servlet
 import javax.el.ELException;
@@ -103,7 +104,7 @@
 	        
 	        //feed this context to the Authorization system which will decide whether
 	        //access should be granted or not
-	        boolean isAccessAllowed = UITools.getBlogService().getPermissionsService().hasAccess(securityContext);
+	        boolean isAccessAllowed = BasicTools.getBlogService().getPermissionsService().hasAccess(securityContext);
 
             if(isAccessAllowed)
 	        {

Deleted: trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/AclBlogPermissionsService.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/AclBlogPermissionsService.java	2007-03-15 00:14:59 UTC (rev 73)
+++ trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/AclBlogPermissionsService.java	2007-03-15 10:05:57 UTC (rev 74)
@@ -1,138 +0,0 @@
-package org.jboss.blog.service.permissions.acl;
-
-import org.jboss.security.acl.AclProcessor;
-import org.jboss.security.acl.AccessDenied;
-import org.jboss.security.acl.User;
-import org.jboss.security.acl.UserThreadLocal;
-
-import org.jboss.blog.service.permissions.SecurityContext;
-import org.jboss.blog.service.permissions.portal.PortalBlogPermissionsService;
-import org.jboss.blog.service.permissions.model.PortalUserBlogAuthor;
-import org.jboss.blog.model.BlogAuthor;
-import org.jboss.blog.model.impl.EmptyBlogAuthor;
-import org.jboss.portal.identity.UserModule;
-import org.jboss.portal.identity.IdentityException;
-import org.jboss.portal.identity.UserProfileModule;
-
-import javax.portlet.PortletRequest;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-
-/**
- * @author <a href="mailto:sohil.shah at jboss.com">Sohil Shah</a>
- * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
- *
- * @jmx.mbean
- * @jboss.xmbean
- */
-public class AclBlogPermissionsService implements PortalBlogPermissionsService {
-    private UserModule um;
-    private UserProfileModule upm;
-
-    /**
-     * @return User module from portal.
-     */
-    public UserModule getUserModule() {
-        if (um == null) {
-            try {
-                um = (UserModule) new InitialContext().lookup("java:portal/UserModule");
-            } catch (NamingException e) {
-                // TODO
-                e.printStackTrace();
-            }
-        }
-
-        return um;
-        
-    }
-    /**
-     * @return User profile module from portal.
-     */
-    public UserProfileModule getUserProfileModule() {
-        if (upm == null) {
-            try {
-                upm = (UserProfileModule) new InitialContext().lookup("java:portal/UserProfileModule");
-            } catch (NamingException e) {
-                // TODO
-                e.printStackTrace();
-            }
-        }
-
-        return upm;
-    }
-
-    /**
-     * @jmx.managed-operation
-     * @jmx.managed-parameter type="org.jboss.blog.service.permissions.SecurityContext"
-     */
-    public boolean hasAccess(SecurityContext context)
-    {
-        boolean hasAccess = true;
-        try
-        {
-            //setup the engine identity based on identity provided in the security context
-            if(context.getIdentity()!=null)
-            {
-                User user = User.getUser(((org.jboss.portal.identity.User)context.getIdentity()).getUserName());
-                JBossPortalUtil.populateRoles(user);
-                UserThreadLocal.setUser(user);
-            }
-            else
-            {
-                //set an anonymous user
-                UserThreadLocal.setUser(new User());
-            }
-
-            if(context instanceof JSFActionContext)
-            {
-                JSFActionContext securityContext = (JSFActionContext)context;
-
-                //send this to the engine for access control decision
-                AclProcessor.getInstance().processJSFActionAccess(
-                        securityContext.getFacesContext(),
-                        securityContext.getManagedBean(),
-                        securityContext.getBusinessAction());
-            }
-            else if(context instanceof JSFUIContext)
-            {
-                JSFUIContext securityContext = (JSFUIContext)context;
-
-                //send this to the engine for access control decision
-                AclProcessor.getInstance().processFragmentAccess(securityContext.getFragment(),securityContext.getContextData());
-            }
-        }
-        catch(AccessDenied ade)
-        {
-            hasAccess = false;
-        }
-        catch(Exception e)
-        {
-            throw new RuntimeException(e);
-        }
-
-        return hasAccess;
-    }
-
-    /**
-     * @jmx.managed-operation
-     * @jmx.managed-parameter type="java.lang.Object"
-     */
-    public BlogAuthor retrieveBlogAuthor(Object data) {
-        try {
-            if (data instanceof PortletRequest) {
-                return new PortalUserBlogAuthor(this,
-                        getUserModule().findUserByUserName(
-                        ((PortletRequest) data).getRemoteUser()));
-            }
-
-            if (data instanceof Long) {
-                return new PortalUserBlogAuthor(this,
-                        getUserModule().findUserById(data));
-            }
-        } catch (IdentityException e) {
-            return new EmptyBlogAuthor();
-        }
-
-        throw new IllegalArgumentException("Invalid data from which blog author was to be read.");
-    }
-}

Modified: trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/AuthorizationListener.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/AuthorizationListener.java	2007-03-15 00:14:59 UTC (rev 73)
+++ trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/AuthorizationListener.java	2007-03-15 10:05:57 UTC (rev 74)
@@ -18,7 +18,8 @@
 //myfaces integration
 import org.apache.log4j.Logger;
 import org.apache.myfaces.application.ActionListenerImpl;
-import org.jboss.blog.tools.UITools;
+import org.jboss.blog.tools.BasicTools;
+import org.jboss.blog.service.permissions.context.JSFActionContext;
 
 /**
  * @author <a href="mailto:sohil.shah at jboss.com">Sohil Shah</a>
@@ -75,13 +76,13 @@
             }
 	        
 	        //start building the SecurityContext here for the Authorization System
-	        JSFActionContext securityContext = new JSFActionContext(JBossPortalUtil.getUser(),facesContext);	        
+	        JSFActionContext securityContext = new JSFActionContext(JBossPortalUtil.getUser(),facesContext);
 	        securityContext.setBusinessAction(businessAction);
 	        securityContext.setManagedBean(managedBean);
 	        
 	        //feed this context to the Authorization system which will decide whether
 	        //access should be granted or not
-	        isAccessAllowed = UITools.getBlogService().getPermissionsService().hasAccess(securityContext);
+	        isAccessAllowed = BasicTools.getBlogService().getPermissionsService().hasAccess(securityContext);
         }
         catch(NoSuchMethodException nsme)
         {

Modified: trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JBossPortalUtil.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JBossPortalUtil.java	2007-03-15 00:14:59 UTC (rev 73)
+++ trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JBossPortalUtil.java	2007-03-15 10:05:57 UTC (rev 74)
@@ -8,11 +8,11 @@
 import javax.faces.context.FacesContext;
 
 //website security
-import org.jboss.security.util.Util;
+//import org.jboss.security.util.Util;
 
 //jboss-acl framework
-import org.jboss.security.acl.Role;
-import org.jboss.security.acl.User;
+//import org.jboss.security.acl.Role;
+//import org.jboss.security.acl.User;
 
 import org.jboss.portal.identity.UserModule;
 import org.jboss.portal.identity.MembershipModule;
@@ -64,29 +64,7 @@
         return membershipModule;
     }
 
-    public static void populateRoles(User user) throws Exception
-    {          
-        //perform this operation in the context of a JTA Transaction
-        if(user!=null && user.getIdentity()!=null)
-        {            
-            UserModule userModule = getUserModule();
-            
-            //grab the roles for this user
-            String username = user.getIdentity().getUserName();            
-            org.jboss.portal.identity.User portalUser = userModule.findUserByUserName(username);
-            
-            Set roles = getMembershipModule().getRoles(portalUser);
-            if(!Util.isEmpty(roles))
-            {
-                for(Iterator itr=roles.iterator();itr.hasNext();)
-                {
-                    String roleName = ((org.jboss.portal.identity.Role)itr.next()).getName();
-                    Role role = new Role(roleName,roleName);
-                    user.getRoles().add(role);
-                }
-            }
-        }                
-    }
+    /**/
 
      public static org.jboss.portal.identity.User getUser()
         throws Exception

Deleted: trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFActionContext.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFActionContext.java	2007-03-15 00:14:59 UTC (rev 73)
+++ trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFActionContext.java	2007-03-15 10:05:57 UTC (rev 74)
@@ -1,46 +0,0 @@
-package org.jboss.blog.service.permissions.acl;
-
-import java.lang.reflect.Method;
-
-import javax.faces.context.FacesContext;
-
-/**
- * @author <a href="mailto:sohil.shah at jboss.com">Sohil Shah</a>
- */
-public class JSFActionContext extends JSFSecurityContext {
-    /**
-     * this is the action method on a JSF Managed Bean that is being called
-     * and needs to be authorized access to
-     */
-    private Method businessAction = null;
-    
-    /**
-     * This is the JSF Managed Bean that is being used
-     */
-    private Object managedBean = null;
-
-    public JSFActionContext(Object identity,FacesContext facesContext)
-    {
-       super(identity,facesContext);
-    }
-
-    public Method getBusinessAction()
-    {
-        return this.businessAction;
-    }
-
-    public void setBusinessAction(Method businessAction)
-    {
-        this.businessAction = businessAction;
-    }
-
-    public Object getManagedBean()
-    {
-        return this.managedBean;
-    }
-    
-    public void setManagedBean(Object managedBean)
-    {
-        this.managedBean = managedBean;
-    }
-}

Deleted: trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFSecurityContext.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFSecurityContext.java	2007-03-15 00:14:59 UTC (rev 73)
+++ trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFSecurityContext.java	2007-03-15 10:05:57 UTC (rev 74)
@@ -1,52 +0,0 @@
-package org.jboss.blog.service.permissions.acl;
-
-import org.jboss.blog.service.permissions.SecurityContext;
-
-import javax.faces.context.FacesContext;
-
-/**
- * @author <a href="mailto:sohil.shah at jboss.com">Sohil Shah</a>
- */
-public abstract class JSFSecurityContext implements SecurityContext {
-    /**
-     * 
-     */
-    private FacesContext facesContext = null;
-    
-        
-    /**
-     * this is current user that needs to be authorized..
-     * left the type of this identity open ended..
-     * the actual provider can then cast it based on what it expects it to be
-     */
-    private Object identity = null;
-  
-    public JSFSecurityContext(Object identity,FacesContext facesContext)
-    {
-       this.facesContext = facesContext; 
-       this.identity = identity;
-    }
-    
-    
-        
-    /**
-     * @return Returns the identity.
-     */
-    public Object getIdentity() 
-    {
-        return this.identity;
-    }
-    
-    /**
-     * @param identity The identity to set.
-     */
-    public void setIdentity(Object identity) 
-    {
-        this.identity = identity;
-    }
-
-    public FacesContext getFacesContext()
-    {
-        return this.facesContext;
-    }
-}

Deleted: trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFUIContext.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFUIContext.java	2007-03-15 00:14:59 UTC (rev 73)
+++ trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFUIContext.java	2007-03-15 10:05:57 UTC (rev 74)
@@ -1,48 +0,0 @@
-package org.jboss.blog.service.permissions.acl;
-
-import javax.faces.context.FacesContext;
-
-/**
- * @author <a href="mailto:sohil.shah at jboss.com">Sohil Shah</a>
- */
-public class JSFUIContext extends JSFSecurityContext
-{
-    private String fragment = null;
-    private Object[] contextData = null;
-
-
-    public JSFUIContext(Object identity,FacesContext facesContext)
-    {
-        super(identity,facesContext);
-    }
-
-
-    /**
-     * @return Returns the contextData.
-     */
-    public Object[] getContextData()
-    {
-        return contextData;
-    }
-    /**
-     * @param contextData The contextData to set.
-     */
-    public void setContextData(Object[] contextData)
-    {
-        this.contextData = contextData;
-    }
-    /**
-     * @return Returns the fragment.
-     */
-    public String getFragment()
-    {
-        return fragment;
-    }
-    /**
-     * @param fragment The fragment to set.
-     */
-    public void setFragment(String fragment)
-    {
-        this.fragment = fragment;
-    }
-}

Modified: trunk/blog-core/src/java/org/jboss/blog/tools/UITools.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/tools/UITools.java	2007-03-15 00:14:59 UTC (rev 73)
+++ trunk/blog-core/src/java/org/jboss/blog/tools/UITools.java	2007-03-15 10:05:57 UTC (rev 74)
@@ -1,9 +1,6 @@
 package org.jboss.blog.tools;
 
 import org.jboss.blog.BlogName;
-import org.jboss.blog.service.BlogService;
-import org.jboss.mx.util.MBeanProxyExt;
-import org.jboss.mx.util.MBeanServerLocator;
 
 import javax.faces.context.FacesContext;
 import javax.faces.application.FacesMessage;
@@ -49,25 +46,4 @@
     public static void addMessageCommentDoesntExist() {
         addErrorMessage("The comment you requested does not exist.");
     }
-
-    public static BlogService instance;
-    
-    /**
-     *
-     * @return An instance of the blog service.
-     */
-    public static synchronized BlogService getBlogService() {
-        try {
-            if (instance == null) {
-                instance = (BlogService) MBeanProxyExt.create(
-                        BlogService.class,
-                        "blog:service=Main",
-                        MBeanServerLocator.locate());
-            }
-
-            return instance;
-        } catch (Exception e) {
-            throw new RuntimeException(e);
-        }
-    }
 }

Modified: trunk/blog-core/src/java/org/jboss/blog/ui/BlogEdit.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/ui/BlogEdit.java	2007-03-15 00:14:59 UTC (rev 73)
+++ trunk/blog-core/src/java/org/jboss/blog/ui/BlogEdit.java	2007-03-15 10:05:57 UTC (rev 74)
@@ -67,7 +67,7 @@
         BlogModel model;
 
         try {
-            model = UITools.getBlogService().getStoreService().retrieveBlogModel(
+            model = BasicTools.getBlogService().getStoreService().retrieveBlogModel(
                     blogView.getBlogName());
         } catch (BlogModelDoesNotExistException e) {
             model = new EmptyBlogModel();
@@ -83,7 +83,7 @@
 
     public String save() {
         try {
-            ModifiableBlogModel mbm = UITools.getBlogService().getStoreService().retrieveBlogModel(
+            ModifiableBlogModel mbm = BasicTools.getBlogService().getStoreService().retrieveBlogModel(
                     blogView.getBlogName());
 
             boolean changed = false;
@@ -108,10 +108,10 @@
 
     public String saveNew() {
         try {
-            ModifiableBlogModel mbm = UITools.getBlogService().getStoreService().newBlogModel(
+            ModifiableBlogModel mbm = BasicTools.getBlogService().getStoreService().newBlogModel(
                     getState().getSelectedBlogName());
 
-            mbm.setAuthor(UITools.getBlogService().getStoreService().
+            mbm.setAuthor(BasicTools.getBlogService().getStoreService().
                     newBlogAuthor(getBlogView().getRequest()));
             mbm.setTitle(title);
             // TODO: sensible value here
@@ -119,7 +119,7 @@
             mbm.setDescription(description);
             mbm.setCreated(new Date());
 
-            UITools.getBlogService().getStoreService().saveNewBlogModel(mbm);
+            BasicTools.getBlogService().getStoreService().saveNewBlogModel(mbm);
 
             UITools.addInfoMessage("New blog category created.");
         } catch (BlogModelAlreadyExistsException e) {
@@ -133,17 +133,17 @@
         try {
             BlogName toDelete = getState().getSelectedBlogName();
 
-            ModifiableBlogModel mbm = UITools.getBlogService().getStoreService().retrieveBlogModel(
+            ModifiableBlogModel mbm = BasicTools.getBlogService().getStoreService().retrieveBlogModel(
                     toDelete);
 
-            UITools.getBlogService().getStoreService().deleteBlogModel(mbm);
+            BasicTools.getBlogService().getStoreService().deleteBlogModel(mbm);
 
             getState().setSelectedBlogName(null);
 
             UITools.addInfoMessage("Blog category deleted.");
 
             // If this was the last category with this id, we must return to the admin panel.
-            if (UITools.getBlogService().getStoreService().retrieveAllCategories(toDelete).size() == 0) {
+            if (BasicTools.getBlogService().getStoreService().retrieveAllCategories(toDelete).size() == 0) {
                 return UITools.ADMIN_PANEL;
             } else {
                 return UITools.ID_EDIT;

Modified: trunk/blog-core/src/java/org/jboss/blog/ui/BlogView.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/ui/BlogView.java	2007-03-15 00:14:59 UTC (rev 73)
+++ trunk/blog-core/src/java/org/jboss/blog/ui/BlogView.java	2007-03-15 10:05:57 UTC (rev 74)
@@ -10,6 +10,7 @@
 import org.jboss.blog.service.store.model.ModifiableBlogPost;
 import org.jboss.blog.service.store.model.ModifiableBlogModel;
 import org.jboss.blog.tools.UITools;
+import org.jboss.blog.tools.BasicTools;
 
 import javax.faces.context.FacesContext;
 import javax.faces.component.UIData;
@@ -85,7 +86,7 @@
             // Blog name from the state has precedence over the default one.
             blogName = getState().getSelectedBlogName();
             if (blogName == null) {
-                blogName = UITools.getBlogService().getNameService().retrieveBlogName(getRequest());
+                blogName = BasicTools.getBlogService().getNameService().retrieveBlogName(getRequest());
             }
         }
 
@@ -103,7 +104,7 @@
     public BlogModel getBlogModel() {
         if (blogModel == null) {
             try {
-                blogModel = UITools.getBlogService().getModelService().retrieveBlogModel(
+                blogModel = BasicTools.getBlogService().getModelService().retrieveBlogModel(
                         getBlogName());
             } catch (BlogModelDoesNotExistException e) {
                 UITools.addMessageBlogDoesntExist(getBlogName());
@@ -116,7 +117,7 @@
 
     public Boolean getCommentsEnabled() {
         if (commentsEnabled == null) {
-            commentsEnabled = UITools.getBlogService().getConfigurationService().
+            commentsEnabled = BasicTools.getBlogService().getConfigurationService().
                     getCommentsEnabled(getRequest());
         }
 
@@ -125,7 +126,7 @@
 
     public Integer getNumberOfPostsPerPage() {
         if (numberOfPostsPerPage == null) {
-            numberOfPostsPerPage = UITools.getBlogService().getConfigurationService().
+            numberOfPostsPerPage = BasicTools.getBlogService().getConfigurationService().
                     getNumberOfPostsPerPage(getRequest());
         }
 
@@ -134,7 +135,7 @@
 
     public Boolean getViewPostsOnSeparatePage() {
         if (viewPostsOnSeparatePage == null) {
-            viewPostsOnSeparatePage = UITools.getBlogService().getConfigurationService().
+            viewPostsOnSeparatePage = BasicTools.getBlogService().getConfigurationService().
                     getViewPostsOnSeparatePage(getRequest());
         }
 
@@ -143,7 +144,7 @@
 
     public Boolean getViewAllPosts() {
         if (viewAllPosts == null) {
-            viewAllPosts = UITools.getBlogService().getConfigurationService().
+            viewAllPosts = BasicTools.getBlogService().getConfigurationService().
                     getViewAllPosts(getRequest());
         }
 
@@ -169,7 +170,7 @@
 
     public Boolean getBlogModifiable() {
         if (blogModifiable == null) {
-            blogModifiable = Boolean.valueOf(UITools.getBlogService().getStoreService().
+            blogModifiable = Boolean.valueOf(BasicTools.getBlogService().getStoreService().
                     retrieveBlogModifiable(getBlogName()));
         }
 
@@ -232,7 +233,7 @@
     }
 
     ModifiableBlogModel getModifiableModel() throws BlogModelDoesNotExistException {
-        return UITools.getBlogService().getStoreService().retrieveBlogModel(
+        return BasicTools.getBlogService().getStoreService().retrieveBlogModel(
                 getBlogName());
     }
 

Modified: trunk/blog-core/src/java/org/jboss/blog/ui/CommentEdit.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/ui/CommentEdit.java	2007-03-15 00:14:59 UTC (rev 73)
+++ trunk/blog-core/src/java/org/jboss/blog/ui/CommentEdit.java	2007-03-15 10:05:57 UTC (rev 74)
@@ -1,6 +1,7 @@
 package org.jboss.blog.ui;
 
 import org.jboss.blog.tools.UITools;
+import org.jboss.blog.tools.BasicTools;
 import org.jboss.blog.service.store.model.ModifiableBlogPost;
 import org.jboss.blog.service.store.model.ModifiableBlogComment;
 import org.jboss.blog.model.*;
@@ -83,9 +84,9 @@
         try {
             ModifiableBlogComment comment;
 
-            comment = UITools.getBlogService().getStoreService().newBlogComment();
+            comment = BasicTools.getBlogService().getStoreService().newBlogComment();
 
-            comment.setAuthor(UITools.getBlogService().getStoreService().
+            comment.setAuthor(BasicTools.getBlogService().getStoreService().
                     newBlogAuthor(getBlogView().getRequest()));
 
             comment.setTitle(title);
@@ -110,7 +111,7 @@
         try {
             ModifiableBlogComment comment = getSelectedModifiableComment();
 
-            UITools.getBlogService().getStoreService().deleteComment(comment);
+            BasicTools.getBlogService().getStoreService().deleteComment(comment);
 
             UITools.addInfoMessage("Comment deleted.");
         } catch (BlogModelDoesNotExistException e) {

Modified: trunk/blog-core/src/java/org/jboss/blog/ui/IdEdit.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/ui/IdEdit.java	2007-03-15 00:14:59 UTC (rev 73)
+++ trunk/blog-core/src/java/org/jboss/blog/ui/IdEdit.java	2007-03-15 10:05:57 UTC (rev 74)
@@ -43,7 +43,7 @@
     private void populateRawIds() {
         if (rawIds == null) {
             // TODO: filter with permissions of the logged in person
-            rawIds = UITools.getBlogService().getStoreService().retrieveAllBlogs();
+            rawIds = BasicTools.getBlogService().getStoreService().retrieveAllBlogs();
         }
     }
 
@@ -64,7 +64,7 @@
     public List getCategories() {
         if (categories == null) {
             // TODO: filter with permissions of the logged in person
-            List rawCategories = UITools.getBlogService().getStoreService()
+            List rawCategories = BasicTools.getBlogService().getStoreService()
                     .retrieveAllCategories(new BlogName(getState().getSelectedBlogId(), null));
             categories = new ArrayList();
 

Modified: trunk/blog-core/src/java/org/jboss/blog/ui/PostEdit.java
===================================================================
--- trunk/blog-core/src/java/org/jboss/blog/ui/PostEdit.java	2007-03-15 00:14:59 UTC (rev 73)
+++ trunk/blog-core/src/java/org/jboss/blog/ui/PostEdit.java	2007-03-15 10:05:57 UTC (rev 74)
@@ -65,7 +65,7 @@
 
     public List getBlogs() {
         if (blogs == null) {
-            List blogNames = UITools.getBlogService().getStoreService().retrieveAllCategories(
+            List blogNames = BasicTools.getBlogService().getStoreService().retrieveAllCategories(
                     blogView.getBlogName());
             blogs = new ArrayList();
 
@@ -139,9 +139,9 @@
         try {
             ModifiableBlogPost post;
 
-            post = UITools.getBlogService().getStoreService().newBlogPost();
+            post = BasicTools.getBlogService().getStoreService().newBlogPost();
 
-            post.setAuthor(UITools.getBlogService().getStoreService().
+            post.setAuthor(BasicTools.getBlogService().getStoreService().
                     newBlogAuthor(getBlogView().getRequest()));
 
             post.setTitle(title);
@@ -155,7 +155,7 @@
             // Adding the post to all selected categories.
             // TODO permissions for category-level? Both here, save() and post_mod.xhtml
             for (Iterator iter = selectedCategories.iterator(); iter.hasNext();) {
-                ModifiableBlogModel blog = UITools.getBlogService().getStoreService().retrieveBlogModel(
+                ModifiableBlogModel blog = BasicTools.getBlogService().getStoreService().retrieveBlogModel(
                         (BlogName) iter.next());
                 blog.addPost(post);
             }
@@ -199,14 +199,14 @@
             // Adding & removing posts from categories.
             for (Iterator iter = addedCategories.iterator(); iter.hasNext();) {
                 changed = true;
-                model = UITools.getBlogService().getStoreService().retrieveBlogModel(
+                model = BasicTools.getBlogService().getStoreService().retrieveBlogModel(
                         (BlogName) iter.next());
                 model.addPost(post);
             }
 
             for (Iterator iter = removedCategories.iterator(); iter.hasNext();) {
                 changed = true;
-                model = UITools.getBlogService().getStoreService().retrieveBlogModel(
+                model = BasicTools.getBlogService().getStoreService().retrieveBlogModel(
                         (BlogName) iter.next());
                 model.removePost(post);
             }
@@ -227,12 +227,12 @@
 
     public String delete() {
         try {
-            ModifiableBlogModel model = UITools.getBlogService().getStoreService().retrieveBlogModel(
+            ModifiableBlogModel model = BasicTools.getBlogService().getStoreService().retrieveBlogModel(
                     blogView.getBlogName());
             ModifiableBlogPost post = model.getModifiableBlogPostByTitleAsId(
                     blogView.getSelectedPostTitleAsId());
 
-            UITools.getBlogService().getStoreService().deletePost(post);
+            BasicTools.getBlogService().getStoreService().deletePost(post);
 
             UITools.addInfoMessage("Post deleted.");
         } catch (BlogModelDoesNotExistException e) {

Modified: trunk/blog-hibernate/src/java/org/jboss/blog/service/store/hibernate/HPortalBlogAuthor.java
===================================================================
--- trunk/blog-hibernate/src/java/org/jboss/blog/service/store/hibernate/HPortalBlogAuthor.java	2007-03-15 00:14:59 UTC (rev 73)
+++ trunk/blog-hibernate/src/java/org/jboss/blog/service/store/hibernate/HPortalBlogAuthor.java	2007-03-15 10:05:57 UTC (rev 74)
@@ -2,7 +2,7 @@
 
 import org.jboss.blog.model.AbstractBlogAuthor;
 import org.jboss.blog.model.BlogAuthor;
-import org.jboss.blog.service.permissions.model.PortalUserBlogAuthor;
+import org.jboss.blog.service.permissions.portal.PortalUserBlogAuthor;
 
 /**
  * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>

Modified: trunk/blog-hibernate/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.java
===================================================================
--- trunk/blog-hibernate/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.java	2007-03-15 00:14:59 UTC (rev 73)
+++ trunk/blog-hibernate/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.java	2007-03-15 10:05:57 UTC (rev 74)
@@ -6,7 +6,7 @@
 import org.jboss.blog.service.store.model.BlogModelAlreadyExistsException;
 import org.jboss.blog.service.store.model.ModifiableBlogComment;
 import org.jboss.blog.service.AbstractBlogService;
-import org.jboss.blog.service.permissions.model.PortalUserBlogAuthor;
+import org.jboss.blog.service.permissions.portal.PortalUserBlogAuthor;
 import org.jboss.blog.service.permissions.BlogPermissionsService;
 import org.jboss.blog.BlogName;
 import org.jboss.blog.model.BlogModelDoesNotExistException;


Property changes on: trunk/blog-jaae
___________________________________________________________________
Name: svn:ignore
   + target
build


Added: trunk/blog-jaae/blog-jaae.iml
===================================================================
--- trunk/blog-jaae/blog-jaae.iml	                        (rev 0)
+++ trunk/blog-jaae/blog-jaae.iml	2007-03-15 10:05:57 UTC (rev 74)
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module version="4" relativePaths="true" type="JAVA_MODULE">
+  <component name="ModuleRootManager" />
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src/java" isTestSource="false" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../lib/jboss-jaae/jboss-security-common.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../lib/jboss-jaae/jboss-acl.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../lib/jboss-jaae/jboss-identity-management.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module" module-name="blog-common" />
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../lib/portlet/portlet-api-lib.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../lib/jboss-portal/portal-identity-lib.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntryProperties />
+  </component>
+</module>
+

Added: trunk/blog-jaae/build.xml
===================================================================
--- trunk/blog-jaae/build.xml	                        (rev 0)
+++ trunk/blog-jaae/build.xml	2007-03-15 10:05:57 UTC (rev 74)
@@ -0,0 +1,47 @@
+<?xml version='1.0' encoding='UTF-8'?>
+
+<project name="JBoss Blog JAAE">
+    <!-- Classpath for building the application: includes all dependency jars -->
+    <path id="base.jars">
+        <fileset refid="jboss.jars" />
+        <fileset refid="jboss.portal.jars" />
+        <fileset refid="portlet.jars" />
+        <fileset refid="facelets.jars" />
+        <fileset refid="myfaces.jars" />
+        <fileset refid="jboss.jaae.jars" />        
+
+        <fileset refid="log4j.jar" />
+    </path>
+
+    <!-- BUILD TARGETS -->
+
+    <target name="init">
+
+    </target>
+
+    <target name="build" depends="init,clean">
+        <mkdir dir="${build}" />
+        <!-- Compiling the source -->
+        <javac srcdir="${src.java}" destdir="${build}" target="1.4" source="1.4">
+            <classpath refid="base.jars" />
+            <!-- Dependency on the blog-common classes -->
+            <classpath path="../blog-common/${build}" />
+        </javac>
+    </target>
+
+    <target name="dist" depends="build">
+        <mkdir dir="${dist.lib.dir}" />
+
+        <!-- Copying the meta information -->
+        <copy todir="${dist.main.dir}">
+            <fileset dir="${src.meta}"><include name="**/*" /></fileset>
+        </copy>
+
+        <!-- Creating the jar with the classes -->
+        <jar destfile="${dist.lib.dir}/jboss-blog-jaae.jar" basedir="${build}" />
+    </target>
+
+    <target name="clean">
+        <delete dir="${build}" />
+    </target>
+</project>

Copied: trunk/blog-jaae/src/etc/META-INF/acl-mapping.xml (from rev 72, trunk/blog-core/src/etc/META-INF/acl-mapping.xml)
===================================================================
--- trunk/blog-jaae/src/etc/META-INF/acl-mapping.xml	                        (rev 0)
+++ trunk/blog-jaae/src/etc/META-INF/acl-mapping.xml	2007-03-15 10:05:57 UTC (rev 74)
@@ -0,0 +1,135 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+
+<!--  make sure all class values are fully qualified names of concrete classes. Interfaces are not supported at this point -->
+<!--  think of the extra-info tag in the permission tag as parameters to the custom Enforcer, Default Enforcer ignores these, extra-info tags are not required -->
+<!--  some rules regarding the relationships between the various concepts. These are subject to change as this framework evolves -->
+
+<!--
+	the functionId - id attribute within the function tag should be unique across the system
+	
+	A resource can be associated with multiple functions, but a resource cannot be associated with multiple modules
+	
+	Module defines the overall component that needs protection within the system, Function defines various protected functions within a Module, and
+	Resources are system level objects (java methods, user interface fragments etc) that need to be accessed to successfully perform a function 
+	within a module 
+			
+	An Enforcer is the object that actually performs the access control logic. The framework comes bundled with a DefaultEnforcer which should take care of 90% 
+    of ACL cases for an application. Applications can plug-in their own Enforcer that can perform this logic based on the runtime values, extra-parameter
+    values etc. Having the Enforcer perform the access control logic keeps any ACL checking code to be hard coded within the business logic of the
+    application. This leads to better flexibility from a security perspective of the system 
+    
+    List of system resources supported:
+    1) Java Class Methods - type=method
+    2) UI Fragments within a Page - type=fragment
+    
+    List of resource extensions:
+    3) JSF ManagedBean action - type=jsfAction
+ -->
+
+<acl>
+	<!-- Blog Admin usecases  -->
+	<module id="adminModule" name="Admin Module">
+        <!-- only ui protection -->
+        <function id="accessAdminModule" name="Access Admin Module">
+			<resource type="fragment" criteriaId="accessAdminModule://ui">
+				<id>acl://accessAdminModule</id>
+			</resource>
+		</function>
+
+        <!-- only ui protection -->
+        <function id="manageBlog" name="Manage Blog">
+			<resource type="fragment" criteriaId="manageBlog://ui">
+				<id>acl://manageBlog</id>
+			</resource>
+            <resource type="jsfAction" criteriaId="manageBlog://action">
+				<class>org.jboss.blog.ui.BlogEdit</class>
+				<method>saveNew</method>
+			</resource>
+            <resource type="jsfAction" criteriaId="manageBlog://action">
+				<class>org.jboss.blog.ui.BlogEdit</class>
+				<method>delete</method>
+			</resource>
+        </function>
+
+        <function id="manageCategory" name="Manage Category">
+			<!-- ui protection -->
+			<resource type="fragment" criteriaId="manageCategory://ui">
+				<id>acl://manageCategory</id>
+			</resource>
+			<!-- action protection -->
+			<resource type="jsfAction" criteriaId="manageCategories://action">
+				<class>org.jboss.blog.ui.BlogEdit</class>
+				<method>save</method>
+			</resource>
+			<implies>accessAdminModule</implies>
+		</function>                
+	</module>
+	
+	<!-- Blog User usecases -->
+	<module id="userModule" name="User Module">
+		<function id="viewCategory" name="View Category">
+			<!-- ui protection -->
+			<resource type="fragment" criteriaId="viewCategory://ui">
+				<id>acl://viewCategory</id>
+			</resource>
+		</function>
+
+        <function id="viewComment" name="View Comment">
+			<!-- ui protection -->
+			<resource type="fragment" criteriaId="viewComment://ui">
+				<id>acl://viewComment</id>
+			</resource>
+			<implies>viewCategory</implies>
+		</function>
+
+		<function id="addComment" name="Add Comment">
+			<!-- ui protection -->
+			<resource type="fragment" criteriaId="addComment://ui">
+				<id>acl://addComment</id>
+			</resource>
+			<!-- action protection -->
+			<resource type="jsfAction" criteriaId="addComment://action">
+				<class>org.jboss.blog.ui.CommentEdit</class>
+				<method>saveNew</method>
+			</resource>
+            <implies>viewCategory</implies>
+            <implies>viewComment</implies>
+        </function>
+	</module>		
+	
+	<!-- Blog Owner usecases -->
+	<module id="ownerModule" name="Owner Module">        
+        <function id="manageComment" name="Manage Comment">
+			<!-- ui protection -->
+			<resource type="fragment" criteriaId="manageComment://ui">
+				<id>acl://manageComment</id>
+			</resource>
+			<!-- action protection -->
+			<resource type="jsfAction" criteriaId="manageComment://action">
+				<class>org.jboss.blog.ui.CommentEdit</class>
+				<method>delete</method>
+			</resource>
+		</function>
+
+        <function id="managePost" name="Manage Post">
+			<!-- ui protection -->
+			<resource type="fragment" criteriaId="managePost://ui">
+				<id>acl://managePost</id>
+			</resource>
+			<!-- action protection -->
+			<resource type="jsfAction" criteriaId="managePost://action">
+				<class>org.jboss.blog.ui.PostEdit</class>
+				<method>save</method>
+			</resource>
+			<resource type="jsfAction" criteriaId="managePost://action">
+				<class>org.jboss.blog.ui.PostEdit</class>
+				<method>saveNew</method>
+			</resource>
+            <resource type="jsfAction" criteriaId="managePost://action">
+				<class>org.jboss.blog.ui.PostEdit</class>
+				<method>delete</method>
+			</resource>
+            <implies>manageComment</implies>
+        </function>
+	</module>
+</acl>
\ No newline at end of file

Copied: trunk/blog-jaae/src/etc/META-INF/acl-permissions.xml (from rev 72, trunk/blog-core/src/etc/META-INF/acl-permissions.xml)
===================================================================
--- trunk/blog-jaae/src/etc/META-INF/acl-permissions.xml	                        (rev 0)
+++ trunk/blog-jaae/src/etc/META-INF/acl-permissions.xml	2007-03-15 10:05:57 UTC (rev 74)
@@ -0,0 +1,99 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+
+<!--
+	Each role contains a set of permissions. Each permission/no-permission points to a function in the system that this role has/doesnot have access to.
+ -->
+
+<acl>				
+	<!--  dynamic roles/permissions defined for the application at runtime (either through the GUI or directly modifying this xml file) -->	
+	<!--
+			Sample permission = 
+			<permission functionId="editCategory"/>	 //plain without criteria
+			
+			<permission functionId="editCategory"> //complicated with criteria specification
+				<criteria context="jsfAction">target.categoryName.indexOf('sandbox') != -1</criteria>			
+				<criteria context="fragment">param[0].categoryName.toLowerCase().indexOf('sandbox') != -1</criteria>
+			</permission>				
+	-->
+	
+	<!--  
+		built-in system defined roles 
+	-->
+	<!-- non-logged in users -->
+	<role name="Anonymous" id="anonymous">	
+		<!-- Admin Module permissions -->
+
+		<!-- User Module permissions -->
+		<!-- giving anonymous users permission to view only the Unit Testing Category of Forums -->
+		<!--permission action="readCategory">
+			<criteria for="readCategory://ui">param[0].title.toLowerCase().startsWith('unit testing')</criteria>
+		</permission-->	
+		<permission action="viewComment" />
+        <!--<permission action="managePost"/>-->
+
+        <!--<permission action="manageCategory"/>-->
+        <!--<permission action="manageBlog"/>-->
+        <!-- <permission action="all"/>	-->
+
+        <!-- Owner Module permissions -->
+	</role>
+	
+	<!-- just a regular registered user -->	
+	<role name="User" id="user">
+		<!-- Admin Module permissions -->
+		
+		<!-- User Module permissions -->
+        <permission action="addComment" />
+        <!-- permission to edit only my own posts -->
+		<!--<permission action="editPost">
+			<criteria for="editPost://ui">param[0].poster.user.userName.equals(identity.identity.userName)</criteria>
+			<criteria for="editPost://action">target.post.poster.user.userName.equals(identity.identity.userName)</criteria>
+		</permission>-->
+
+		<!-- Owner Module permissions -->					
+	</role>
+	
+	<!-- users with Admin privileges -->	
+	<role name="Admin" id="admin">
+		<!-- Admin Module permissions -->
+		
+		<!-- User Module permissions -->
+		
+		<!-- Owner Module permissions -->
+		
+		<!-- wild card permission -->
+		<permission action="all" />
+	</role>		
+	
+	<!-- 
+		deployment specific roles......just examples of how fine grained permissions can be assigned
+		this is an example of how the rules would possibly setup for JBoss.org Forums...
+		These policy rules vary for each consumer of forums depending on their own requirements of
+		access control security 
+	-->
+	
+	<!-- permissions specific to the Drools Team -->
+	<!--<role name="Drools Team" id="droolsTeam">
+		<permission action="viewCategory">
+			<criteria for="viewCategory://ui">param[0].title.toLowerCase().startsWith('jboss rules')</criteria>
+		</permission>
+		<permission action="deleteCategory">
+			<criteria for="deleteCategory://action">target.categoryName.toLowerCase().startsWith('jboss rules')</criteria>
+			<- also criteria for the implied edit category permission ->
+			<criteria for="editCategory://action">target.categoryName.toLowerCase().startsWith('jboss rules')</criteria>
+		</permission>
+		<permission action="viewForum">
+			<criteria for="viewForum://ui">param[0].name.toLowerCase().startsWith('jboss rules')</criteria>
+		</permission>			
+		<permission action="deleteForum">
+			<criteria for="deleteForum://action">target.forumName.toLowerCase().startsWith('jboss rules')</criteria>
+			<- also criteria for the implied edit category permission ->
+			<criteria for="editForum://action">target.forumName.toLowerCase().startsWith('jboss rules')</criteria>
+		</permission>
+
+		<permission action="readCategory">
+			<criteria for="readCategory://ui">param[0].title.toLowerCase().startsWith('jboss rules')</criteria>
+		</permission>
+		<permission action="readForum"/>					
+	</role>-->
+</acl>
\ No newline at end of file

Copied: trunk/blog-jaae/src/java/org/jboss/blog/service/permissions/acl/AclBlogPermissionsService.java (from rev 72, trunk/blog-core/src/java/org/jboss/blog/service/permissions/acl/AclBlogPermissionsService.java)
===================================================================
--- trunk/blog-jaae/src/java/org/jboss/blog/service/permissions/acl/AclBlogPermissionsService.java	                        (rev 0)
+++ trunk/blog-jaae/src/java/org/jboss/blog/service/permissions/acl/AclBlogPermissionsService.java	2007-03-15 10:05:57 UTC (rev 74)
@@ -0,0 +1,182 @@
+package org.jboss.blog.service.permissions.acl;
+
+import org.jboss.security.acl.*;
+import org.jboss.security.util.Util;
+
+import org.jboss.blog.service.permissions.context.SecurityContext;
+import org.jboss.blog.service.permissions.context.JSFUIContext;
+import org.jboss.blog.service.permissions.context.JSFActionContext;
+import org.jboss.blog.service.permissions.portal.PortalBlogPermissionsService;
+import org.jboss.blog.service.permissions.portal.PortalUserBlogAuthor;
+import org.jboss.blog.model.BlogAuthor;
+import org.jboss.blog.model.impl.EmptyBlogAuthor;
+import org.jboss.portal.identity.UserModule;
+import org.jboss.portal.identity.IdentityException;
+import org.jboss.portal.identity.UserProfileModule;
+import org.jboss.portal.identity.MembershipModule;
+
+import javax.portlet.PortletRequest;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import java.util.Set;
+import java.util.Iterator;
+
+/**
+ * @author <a href="mailto:sohil.shah at jboss.com">Sohil Shah</a>
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ *
+ * @jmx.mbean
+ * @jboss.xmbean
+ */
+public class AclBlogPermissionsService implements PortalBlogPermissionsService {
+    private UserModule um;
+    private UserProfileModule upm;
+    private MembershipModule mm;
+
+    /**
+     * @return User module from portal.
+     */
+    public UserModule getUserModule() {
+        if (um == null) {
+            try {
+                um = (UserModule) new InitialContext().lookup("java:portal/UserModule");
+            } catch (NamingException e) {
+                // TODO
+                e.printStackTrace();
+            }
+        }
+
+        return um;
+        
+    }
+    /**
+     * @return User profile module from portal.
+     */
+    public UserProfileModule getUserProfileModule() {
+        if (upm == null) {
+            try {
+                upm = (UserProfileModule) new InitialContext().lookup("java:portal/UserProfileModule");
+            } catch (NamingException e) {
+                // TODO
+                e.printStackTrace();
+            }
+        }
+
+        return upm;
+    }
+
+    /**
+     * @return Mebership module from portal.
+     */
+    public MembershipModule getMembershipModule() {
+        if (mm == null) {
+            try {
+                mm = (MembershipModule) new InitialContext().lookup("java:portal/MembershipModule");
+            } catch (NamingException e) {
+                // TODO
+                e.printStackTrace();
+            }
+        }
+
+        return mm;
+    }
+
+    /**
+     * @jmx.managed-operation
+     * @jmx.managed-parameter type="org.jboss.blog.service.permissions.context.SecurityContext"
+     */
+    public boolean hasAccess(SecurityContext context)
+    {
+        boolean hasAccess = true;
+        try
+        {
+            //setup the engine identity based on identity provided in the security context
+            if(context.getIdentity()!=null)
+            {
+                User user = User.getUser(((org.jboss.portal.identity.User)context.getIdentity()).getUserName());
+                populateRoles(user);
+                UserThreadLocal.setUser(user);
+            }
+            else
+            {
+                //set an anonymous user
+                UserThreadLocal.setUser(new User());
+            }
+
+            if(context instanceof JSFActionContext)
+            {
+                JSFActionContext securityContext = (JSFActionContext)context;
+
+                //send this to the engine for access control decision
+                AclProcessor.getInstance().processJSFActionAccess(
+                        securityContext.getFacesContext(),
+                        securityContext.getManagedBean(),
+                        securityContext.getBusinessAction());
+            }
+            else if(context instanceof JSFUIContext)
+            {
+                JSFUIContext securityContext = (JSFUIContext)context;
+
+                //send this to the engine for access control decision
+                AclProcessor.getInstance().processFragmentAccess(securityContext.getFragment(),securityContext.getContextData());
+            }
+        }
+        catch(AccessDenied ade)
+        {
+            hasAccess = false;
+        }
+        catch(Exception e)
+        {
+            throw new RuntimeException(e);
+        }
+
+        return hasAccess;
+    }
+
+    /**
+     * @jmx.managed-operation
+     * @jmx.managed-parameter type="java.lang.Object"
+     */
+    public BlogAuthor retrieveBlogAuthor(Object data) {
+        try {
+            if (data instanceof PortletRequest) {
+                return new PortalUserBlogAuthor(this,
+                        getUserModule().findUserByUserName(
+                        ((PortletRequest) data).getRemoteUser()));
+            }
+
+            if (data instanceof Long) {
+                return new PortalUserBlogAuthor(this,
+                        getUserModule().findUserById(data));
+            }
+        } catch (IdentityException e) {
+            return new EmptyBlogAuthor();
+        }
+
+        throw new IllegalArgumentException("Invalid data from which blog author was to be read.");
+    }
+
+    private void populateRoles(User user) throws Exception
+    {
+        //perform this operation in the context of a JTA Transaction
+        if(user!=null && user.getIdentity()!=null)
+        {
+            UserModule userModule = getUserModule();
+
+            //grab the roles for this user
+            String username = user.getIdentity().getUserName();
+            org.jboss.portal.identity.User portalUser = userModule.findUserByUserName(username);
+
+            Set roles = getMembershipModule().getRoles(portalUser);
+            if(!Util.isEmpty(roles))
+            {
+                for(Iterator itr=roles.iterator();itr.hasNext();)
+                {
+                    String roleName = ((org.jboss.portal.identity.Role)itr.next()).getName();
+                    Role role = new Role(roleName,roleName);
+                    user.getRoles().add(role);
+                }
+            }
+        }
+    }
+}

Added: trunk/blog-jaae/src/java/org/jboss/security/acl/AclKernelFactory.xml
===================================================================
--- trunk/blog-jaae/src/java/org/jboss/security/acl/AclKernelFactory.xml	                        (rev 0)
+++ trunk/blog-jaae/src/java/org/jboss/security/acl/AclKernelFactory.xml	2007-03-15 10:05:57 UTC (rev 74)
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mbean PUBLIC "-//JBoss//DTD JBOSS XMBEAN 1.0//EN" "http://www.jboss.org/j2ee/dtd/jboss_xmbean_1_0.dtd">
+
+<mbean>
+    <class>org.jboss.security.acl.AclKernelFactory</class>
+    <constructor>
+        <description>The no-arg constructor</description>
+        <name>org.jboss.security.acl.AclKernelFactory</name>
+    </constructor>
+    <attribute access="read-write" getMethod="getAclKernel" setMethod="setAclKernel">
+        <name>aclKernel</name>
+        <type>java.lang.String</type>
+        <descriptors>
+            <default value="org.jboss.security.acl.JBossAclKernel"/>
+        </descriptors>
+    </attribute>
+    <operation>
+        <description>The start lifecycle operation</description>
+        <name>start</name>
+    </operation>
+    <operation>
+        <description>The stop lifecycle operation</description>
+        <name>stop</name>
+    </operation>
+</mbean>

Modified: trunk/build.xml
===================================================================
--- trunk/build.xml	2007-03-15 00:14:59 UTC (rev 73)
+++ trunk/build.xml	2007-03-15 10:05:57 UTC (rev 74)
@@ -50,6 +50,7 @@
         <ant dir="blog-common" inheritrefs="true" target="${target.name}" />
         <ant dir="blog-core" inheritrefs="true" target="${target.name}" />
         <ant dir="blog-hibernate" inheritrefs="true" target="${target.name}" />
+        <ant dir="blog-jaae" inheritrefs="true" target="${target.name}" />
     </target>
 
     <!-- Main tasks -->

Modified: trunk/jbossblog.ipr
===================================================================
--- trunk/jbossblog.ipr	2007-03-15 00:14:59 UTC (rev 73)
+++ trunk/jbossblog.ipr	2007-03-15 10:05:57 UTC (rev 74)
@@ -296,6 +296,7 @@
       <module fileurl="file://$PROJECT_DIR$/blog-common/blog-common.iml" filepath="$PROJECT_DIR$/blog-common/blog-common.iml" />
       <module fileurl="file://$PROJECT_DIR$/blog-core/blog-core.iml" filepath="$PROJECT_DIR$/blog-core/blog-core.iml" />
       <module fileurl="file://$PROJECT_DIR$/blog-hibernate/blog-hibernate.iml" filepath="$PROJECT_DIR$/blog-hibernate/blog-hibernate.iml" />
+      <module fileurl="file://$PROJECT_DIR$/blog-jaae/blog-jaae.iml" filepath="$PROJECT_DIR$/blog-jaae/blog-jaae.iml" />
       <module fileurl="file://$PROJECT_DIR$/main.iml" filepath="$PROJECT_DIR$/main.iml" />
     </modules>
   </component>

Modified: trunk/jbossblog.iws
===================================================================
--- trunk/jbossblog.iws	2007-03-15 00:14:59 UTC (rev 73)
+++ trunk/jbossblog.iws	2007-03-15 10:05:57 UTC (rev 74)
@@ -17,55 +17,63 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" name="Default" comment="">
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/JBossPortalUtil.java" afterPath="" />
       <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFActionContext.java" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/AuthorizationListener.java" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/AbstractBlogService.java" afterPath="" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-hibernate/src/java/org" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl" afterPath="" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-hibernate/src/java/org/jboss/blog" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-hibernate/src/java/org/jboss/blog/service" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-hibernate/src" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HPortalBlogAuthor.hbm.xml" afterPath="" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/ACLTagHandler.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/ACLTagHandler.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/service/permissions/context/JSFSecurityContext.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-jaae/src/etc/META-INF/acl-permissions.xml" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-jaae/src" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-jaae/src/java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/service/permissions/context/JSFUIContext.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/ui/IdEdit.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/ui/IdEdit.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/ui/BlogEdit.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/ui/BlogEdit.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/service/permissions/context" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-jaae/src/etc" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-jaae/src/java/org/jboss/blog/service" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-jaae/build.xml" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-jaae/src/java/org/jboss/blog/service/permissions/acl" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/JBossPortalUtil.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/JBossPortalUtil.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/service/permissions/portal/PortalBlogPermissionsService.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-jaae/src/java/org/jboss" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-hibernate/src/java/org/jboss/blog/service/store/hibernate/HPortalBlogAuthor.java" afterPath="$PROJECT_DIR$/blog-hibernate/src/java/org/jboss/blog/service/store/hibernate/HPortalBlogAuthor.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-jaae/src/java/org/jboss/security/acl" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/build.xml" afterPath="$PROJECT_DIR$/build.xml" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/security/acl" afterPath="" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/build.xml" afterPath="$PROJECT_DIR$/blog-core/build.xml" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogModel.hbm.xml" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogModelPost.hbm.xml" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateSessionFilter.java" afterPath="" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-hibernate/build.xml" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/service/permissions/portal" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/AuthorizationListener.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/AuthorizationListener.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-jaae" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-hibernate/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.java" afterPath="$PROJECT_DIR$/blog-hibernate/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-jaae/src/etc/META-INF/acl-mapping.xml" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-common/blog-common.iml" afterPath="$PROJECT_DIR$/blog-common/blog-common.iml" />
       <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/AclBlogPermissionsService.java" afterPath="" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-hibernate" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-hibernate/blog-hibernate.iml" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HPortalBlogAuthor.java" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/security/acl/AclKernelFactory.xml" afterPath="" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/service/AbstractBlogService.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/blog-core.iml" afterPath="$PROJECT_DIR$/blog-core/blog-core.iml" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-jaae/src/java/org/jboss/blog" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/ui/PostEdit.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/ui/PostEdit.java" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/service/permissions/SecurityContext.java" afterPath="" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-jaae/src/java/org/jboss/security" />
       <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/portal" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogComment.hbm.xml" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/test" afterPath="" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-jaae/src/java/org/jboss/blog/service/permissions" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-jaae/src/etc/META-INF" />
       <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/portal/PortalBlogPermissionsService.java" afterPath="" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-hibernate/src/java/org/jboss/blog/service/store" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogPost.hbm.xml" afterPath="" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/ui/BlogView.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/ui/BlogView.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-common/build.xml" afterPath="$PROJECT_DIR$/blog-common/build.xml" />
       <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/model" afterPath="" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-hibernate/src/java/org/jboss/blog/service/store/hibernate" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/jbossblog.ipr" afterPath="$PROJECT_DIR$/jbossblog.ipr" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/test/HibernateTest.java" afterPath="" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-jaae/src/java/org/jboss/blog/service/permissions/acl/AclBlogPermissionsService.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/service/permissions/BlogPermissionsService.java" afterPath="$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/service/permissions/BlogPermissionsService.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-jaae/blog-jaae.iml" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/tools/UITools.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/tools/UITools.java" />
       <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFUIContext.java" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/security" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogComment.java" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogPost.java" afterPath="" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-jaae/src/java/org/jboss/security/acl/AclKernelFactory.xml" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/tools/BasicTools.java" afterPath="$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/tools/BasicTools.java" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-jaae/src/java/org" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/jbossblog.iws" afterPath="$PROJECT_DIR$/jbossblog.iws" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/ACLTagHandler.java" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogModel.java" afterPath="" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/service/permissions/portal/PortalUserBlogAuthor.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/ui/CommentEdit.java" afterPath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/ui/CommentEdit.java" />
       <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/model/PortalUserBlogAuthor.java" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HibernateBlogStoreService.java" afterPath="" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate" afterPath="" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/service/permissions/context/JSFActionContext.java" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/etc/META-INF/acl-mapping.xml" afterPath="" />
       <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFSecurityContext.java" afterPath="" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-hibernate/src/java" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/store/hibernate/HBlogModelPost.java" afterPath="" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-hibernate/src/java/org/jboss" />
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/service/permissions/context/SecurityContext.java" />
+      <change type="DELETED" beforePath="$PROJECT_DIR$/blog-core/src/etc/META-INF/acl-permissions.xml" afterPath="" />
     </list>
   </component>
   <component name="ChangeListSynchronizer" />
@@ -190,57 +198,46 @@
   </component>
   <component name="FileEditorManager">
     <leaf>
-      <file leaf-file-name="build.xml" pinned="false" current="true" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/blog-hibernate/build.xml">
+      <file leaf-file-name="build.xml" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/blog-core/build.xml">
           <provider selected="true" editor-type-id="text-editor">
-            <state line="25" column="44" selection-start="879" selection-end="879" vertical-scroll-proportion="0.45509708">
+            <state line="6" column="37" selection-start="256" selection-end="256" vertical-scroll-proportion="0.10688836">
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="build.xml" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/build.xml">
+      <file leaf-file-name="ACLTagHandler.java" pinned="false" current="true" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/ACLTagHandler.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state line="50" column="74" selection-start="2774" selection-end="2774" vertical-scroll-proportion="0.5813107">
+            <state line="38" column="56" selection-start="972" selection-end="972" vertical-scroll-proportion="0.25392985">
               <folding />
             </state>
           </provider>
         </entry>
       </file>
       <file leaf-file-name="build.xml" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/blog-core/build.xml">
+        <entry file="file://$PROJECT_DIR$/blog-jaae/build.xml">
           <provider selected="true" editor-type-id="text-editor">
-            <state line="3" column="40" selection-start="113" selection-end="113" vertical-scroll-proportion="0.05461165">
+            <state line="15" column="54" selection-start="520" selection-end="520" vertical-scroll-proportion="0.2672209">
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="AuthorizationListener.java" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/AuthorizationListener.java">
+      <file leaf-file-name="jboss-service.xml" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/blog-core/src/etc/META-INF/jboss-service.xml">
           <provider selected="true" editor-type-id="text-editor">
-            <state line="71" column="17" selection-start="2537" selection-end="2537" vertical-scroll-proportion="1.0012361">
+            <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="-0.74123335">
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="AclBlogPermissionsService.java" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/AclBlogPermissionsService.java">
+      <file leaf-file-name="build.xml" pinned="false" current="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/build.xml">
           <provider selected="true" editor-type-id="text-editor">
-            <state line="11" column="33" selection-start="502" selection-end="502" vertical-scroll-proportion="0.2039555">
-              <folding>
-                <element signature="imports" expanded="true" />
-              </folding>
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file leaf-file-name="JSFSecurityContext.java" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFSecurityContext.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state line="9" column="54" selection-start="277" selection-end="277" vertical-scroll-proportion="0.12742719">
+            <state line="47" column="54" selection-start="2590" selection-end="2590" vertical-scroll-proportion="0.83729213">
               <folding />
             </state>
           </provider>
@@ -619,6 +616,140 @@
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
         </PATH_ELEMENT>
         <PATH_ELEMENT>
+          <option name="myItemId" value="blog-jaae" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+      </PATH>
+      <PATH>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="jbossblog.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="blog-jaae" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-jaae" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+      </PATH>
+      <PATH>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="jbossblog.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="blog-jaae" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-jaae" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-jaae/src" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-jaae/src/java" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-jaae/src/java/org" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-jaae/src/java/org/jboss" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-jaae/src/java/org/jboss/security" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-jaae/src/java/org/jboss/security/acl" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+      </PATH>
+      <PATH>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="jbossblog.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="blog-jaae" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-jaae" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-jaae/src" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-jaae/src/java" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-jaae/src/java/org" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-jaae/src/java/org/jboss" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-jaae/src/java/org/jboss/blog" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-jaae/src/java/org/jboss/blog/service" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-jaae/src/java/org/jboss/blog/service/permissions" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-jaae/src/java/org/jboss/blog/service/permissions/acl" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+      </PATH>
+      <PATH>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="jbossblog.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="blog-jaae" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-jaae" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-jaae/src" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-jaae/src/etc" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-jaae/src/etc/META-INF" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+      </PATH>
+      <PATH>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="jbossblog.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
           <option name="myItemId" value="blog-hibernate" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
         </PATH_ELEMENT>
@@ -678,6 +809,10 @@
           <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/web" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
       </PATH>
       <PATH>
         <PATH_ELEMENT>
@@ -696,7 +831,25 @@
           <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
+      </PATH>
+      <PATH>
         <PATH_ELEMENT>
+          <option name="myItemId" value="jbossblog.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="blog-core" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
           <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
@@ -708,6 +861,10 @@
           <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
       </PATH>
       <PATH>
         <PATH_ELEMENT>
@@ -742,6 +899,10 @@
           <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/tools" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
       </PATH>
       <PATH>
         <PATH_ELEMENT>
@@ -865,7 +1026,7 @@
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
         <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/model" />
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
       </PATH>
@@ -887,33 +1048,65 @@
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
         <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java" />
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/etc" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
+      </PATH>
+      <PATH>
         <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org" />
+          <option name="myItemId" value="jbossblog.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="blog-core" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
         <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss" />
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
         <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog" />
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/etc" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
         <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service" />
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/etc/META-INF" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
+      </PATH>
+      <PATH>
         <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions" />
+          <option name="myItemId" value="jbossblog.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="blog-core" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
         <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl" />
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/etc" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/etc/conf" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-core/src/etc/conf/hibernate" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
       </PATH>
       <PATH>
         <PATH_ELEMENT>
@@ -939,6 +1132,250 @@
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
       </PATH>
+      <PATH>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="jbossblog.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="blog-common" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java/org" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java/org/jboss" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java/org/jboss/blog" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+      </PATH>
+      <PATH>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="jbossblog.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="blog-common" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java/org" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java/org/jboss" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java/org/jboss/blog" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/tools" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+      </PATH>
+      <PATH>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="jbossblog.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="blog-common" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java/org" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java/org/jboss" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java/org/jboss/blog" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/service" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+      </PATH>
+      <PATH>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="jbossblog.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="blog-common" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java/org" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java/org/jboss" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java/org/jboss/blog" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/service" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/service/permissions" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+      </PATH>
+      <PATH>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="jbossblog.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="blog-common" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java/org" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java/org/jboss" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java/org/jboss/blog" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/service" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/service/permissions" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/service/permissions/portal" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+      </PATH>
+      <PATH>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="jbossblog.ipr" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="blog-common" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java/org" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java/org/jboss" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java/org/jboss/blog" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/service" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/service/permissions" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+        <PATH_ELEMENT>
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/service/permissions/context" />
+          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
+        </PATH_ELEMENT>
+      </PATH>
     </subPane>
   </component>
   <component name="ProjectReloadState">
@@ -952,7 +1389,7 @@
       <showLibraryContents />
       <hideEmptyPackages ProjectPane="false" />
       <abbreviatePackageNames />
-      <showStructure Favorites="false" PackagesPane="false" Scope="false" ProjectPane="false" />
+      <showStructure ProjectPane="false" PackagesPane="false" Scope="false" Favorites="false" />
       <autoscrollToSource />
       <autoscrollFromSource />
       <sortByType />
@@ -973,9 +1410,9 @@
   </component>
   <component name="RecentsManager">
     <key name="MoveMembersDialog.RECENTS_KEY">
+      <recent name="org.jboss.blog.tools.BasicTools" />
       <recent name="org.jboss.blog.tools.UITools" />
       <recent name="org.jboss.blog.tools.PortletTools" />
-      <recent name="org.jboss.blog.tools.BasicTools" />
       <recent name="org.jboss.blog.tools.FacesTools" />
     </key>
     <key name="CopyClassDialog.RECENTS_KEY">
@@ -987,10 +1424,10 @@
     </key>
     <key name="MoveClassesOrPackagesDialog.RECENTS_KEY">
       <recent name="org.jboss.blog.service.permissions.portal" />
+      <recent name="org.jboss.blog.service.permissions.context" />
+      <recent name="org.jboss.blog.service.permissions.cotnext" />
       <recent name="org.jboss.blog.service.permissions.model" />
       <recent name="org.jboss.blog.service.permissions.acl" />
-      <recent name="org.jboss.blog.service" />
-      <recent name="org.jboss.blog.service.store" />
     </key>
   </component>
   <component name="RestoreUpdateTree" />
@@ -1233,101 +1670,117 @@
   </component>
   <component name="com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectRootMasterDetailsConfigurable" proportions="0.16666667" version="1">
     <option name="myPlainMode" value="false" />
-    <option name="myLastEditedConfigurable" value="blog-core" />
+    <option name="myLastEditedConfigurable" value="blog-common" />
   </component>
   <component name="com.intellij.profile.ui.ErrorOptionsConfigurable" proportions="0.16666667,0.5642857" version="1">
     <option name="myLastEditedConfigurable" value="Project Default" />
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/blog-common/build.xml">
+    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/tools/UITools.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="6" column="38" selection-start="259" selection-end="259" vertical-scroll-proportion="0.1092233">
+        <state line="2" column="31" selection-start="62" selection-end="62" vertical-scroll-proportion="0.035629455">
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/build.xml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="47" column="54" selection-start="2590" selection-end="2590" vertical-scroll-proportion="0.83729213">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/security/acl/AclKernelFactory.xml">
+    <entry file="jar://$PROJECT_DIR$/lib/jboss-jaae/jboss-acl.jar!/org/jboss/security/acl/User.class">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="24" column="45" selection-start="919" selection-end="919" vertical-scroll-proportion="0.44499382">
+        <state line="21" column="46" selection-start="814" selection-end="814" vertical-scroll-proportion="0.37082818">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFUIContext.java">
+    <entry file="file://$PROJECT_DIR$/blog-jaae/build.xml">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="7" column="13" selection-start="176" selection-end="176" vertical-scroll-proportion="0.12742719">
+        <state line="15" column="54" selection-start="520" selection-end="520" vertical-scroll-proportion="0.2672209">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/service/permissions/SecurityContext.java">
+    <entry file="file://$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/service/permissions/context/SecurityContext.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="7" column="0" selection-start="152" selection-end="152" vertical-scroll-proportion="0.12742719">
+        <state line="5" column="17" selection-start="142" selection-end="142" vertical-scroll-proportion="0.091019414">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFSecurityContext.java">
+    <entry file="file://$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/service/permissions/context/JSFUIContext.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="9" column="54" selection-start="277" selection-end="277" vertical-scroll-proportion="0.12742719">
+        <state line="7" column="45" selection-start="212" selection-end="212" vertical-scroll-proportion="0.12742719">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/AclBlogPermissionsService.java">
+    <entry file="file://$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/service/permissions/context/JSFActionContext.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="11" column="33" selection-start="502" selection-end="502" vertical-scroll-proportion="0.2039555">
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
+        <state line="9" column="13" selection-start="214" selection-end="214" vertical-scroll-proportion="0.12742719">
+          <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/ACLTagHandler.java">
+    <entry file="file://$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/tools/BasicTools.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="60" column="38" selection-start="1642" selection-end="1642" vertical-scroll-proportion="0.184178">
+        <state line="121" column="17" selection-start="3770" selection-end="3770" vertical-scroll-proportion="0.8543689">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/JSFActionContext.java">
+    <entry file="file://$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/service/permissions/BlogPermissionsService.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="9" column="13" selection-start="210" selection-end="210" vertical-scroll-proportion="0.12742719">
+        <state line="10" column="17" selection-start="309" selection-end="309" vertical-scroll-proportion="0.16383494">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/JBossPortalUtil.java">
+    <entry file="file://$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/service/permissions/context/JSFSecurityContext.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="34" column="86" selection-start="990" selection-end="990" vertical-scroll-proportion="0.36407766">
+        <state line="9" column="22" selection-start="257" selection-end="257" vertical-scroll-proportion="0.12742719">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/AuthorizationListener.java">
+    <entry file="file://$PROJECT_DIR$/blog-common/build.xml">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="71" column="17" selection-start="2537" selection-end="2537" vertical-scroll-proportion="1.0012361">
+        <state line="9" column="35" selection-start="358" selection-end="358" vertical-scroll-proportion="0.16383494">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-core/build.xml">
+    <entry file="file://$PROJECT_DIR$/blog-common/src/java/org/jboss/blog/service/permissions/portal/PortalUserBlogAuthor.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="3" column="40" selection-start="113" selection-end="113" vertical-scroll-proportion="0.05461165">
+        <state line="24" column="34" selection-start="761" selection-end="761" vertical-scroll-proportion="0.36407766">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/build.xml">
+    <entry file="file://$PROJECT_DIR$/blog-core/build.xml">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="50" column="74" selection-start="2774" selection-end="2774" vertical-scroll-proportion="0.5813107">
+        <state line="6" column="37" selection-start="256" selection-end="256" vertical-scroll-proportion="0.10688836">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/blog-hibernate/build.xml">
+    <entry file="file://$PROJECT_DIR$/blog-jaae/src/java/org/jboss/blog/service/permissions/acl/AclBlogPermissionsService.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="25" column="44" selection-start="879" selection-end="879" vertical-scroll-proportion="0.45509708">
+        <state line="92" column="53" selection-start="2798" selection-end="2798" vertical-scroll-proportion="-0.35352287">
+          <folding>
+            <element signature="imports" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/blog-core/src/java/org/jboss/blog/service/permissions/acl/ACLTagHandler.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="38" column="56" selection-start="972" selection-end="972" vertical-scroll-proportion="0.25392985">
           <folding />
         </state>
       </provider>




More information about the jboss-cvs-commits mailing list