[jboss-cvs] JBossBlog SVN: r236 - in trunk: resources/META-INF and 7 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Mar 4 05:20:13 EST 2008


Author: adamw
Date: 2008-03-04 05:20:13 -0500 (Tue, 04 Mar 2008)
New Revision: 236

Added:
   trunk/src/action/org/jboss/blog/session/feed/mod/AggregatedDeleteListener.java
   trunk/src/action/org/jboss/blog/session/xml/velocity/TemplateBootstrap.java
   trunk/src/portal/org/jboss/blog/session/security/external/SecurityBootstrap.java
Removed:
   trunk/bootstrap/
   trunk/hibernate-console.properties
   trunk/resources/META-INF/persistence-test.xml
Modified:
   trunk/build.xml
   trunk/resources/templates/atom_standard.vm
   trunk/src/action/org/jboss/blog/session/feed/mod/FeedModBean.java
   trunk/src/action/org/jboss/blog/session/group/GroupModBean.java
   trunk/src/action/org/jboss/blog/session/security/external/DummyExternalSecurityService.java
   trunk/src/action/org/jboss/blog/session/security/external/ExternalSecurityService.java
   trunk/src/portal/org/jboss/blog/session/security/external/PortalExternalSecurityService.java
   trunk/src/tools/org/jboss/blog/tools/GeneralTools.java
Log:


Modified: trunk/build.xml
===================================================================
--- trunk/build.xml	2008-03-03 16:36:04 UTC (rev 235)
+++ trunk/build.xml	2008-03-04 10:20:13 UTC (rev 236)
@@ -163,6 +163,11 @@
         <copy todir="${war.dir}">
             <fileset dir="${basedir}/view" />
         </copy>
+        <copy todir="${war.dir}">
+            <fileset dir="${basedir}/resources">
+                <include name="templates/**/*.*" />
+            </fileset>
+        </copy>
         <copy todir="${war.dir}/WEB-INF">
             <fileset dir="${basedir}/resources/WEB-INF">
                 <include name="*.*"/>
@@ -288,7 +293,10 @@
             <fileset dir="${ear.dir}"/>
             <fileset dir="${dist.dir}">
                 <include name="${jar.impl.name}"/>
+                <include name="${jar.shotoku.name}"/>
+                <include name="${jar.portal.name}"/>
                 <include name="${project.name}.war"/>
+                <include name="${portal.name}"/>
             </fileset>
         </jar>
     </target>

Deleted: trunk/hibernate-console.properties
===================================================================
--- trunk/hibernate-console.properties	2008-03-03 16:36:04 UTC (rev 235)
+++ trunk/hibernate-console.properties	2008-03-04 10:20:13 UTC (rev 236)
@@ -1,10 +0,0 @@
-#File used by hibernate tools to override <datasource> and other container specific settings in persistence.xml
-hibernate.connection.password=
-hibernate.connection.username=root
-hibernate.connection.driver_class=com.mysql.jdbc.Driver
-hibernate.dialect=org.hibernate.dialect.MySQLDialect
-hibernate.connection.url=jdbc:mysql:///blog
-
-hibernate.connection.provider_class=org.hibernate.connection.DriverManagerConnectionProvider
-hibernate.datasource=
-hibernate.transaction.manager_lookup_class=

Deleted: trunk/resources/META-INF/persistence-test.xml
===================================================================
--- trunk/resources/META-INF/persistence-test.xml	2008-03-03 16:36:04 UTC (rev 235)
+++ trunk/resources/META-INF/persistence-test.xml	2008-03-04 10:20:13 UTC (rev 236)
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Persistence deployment descriptor for tests -->
-<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
-             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" 
-             version="1.0">
-             
-   <persistence-unit name="blog">
-      <provider>org.hibernate.ejb.HibernatePersistence</provider>
-      <jta-data-source>java:/DefaultDS</jta-data-source>
-      <properties>
-         <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
-         <property name="hibernate.show_sql" value="true"/>
-         <property name="hibernate.cache.use_second_level_cache" value="false"/>
-         <property name="jboss.entity.manager.factory.jndi.name" value="java:/blogEntityManagerFactory"/>
-      </properties>
-   </persistence-unit>
-    
-</persistence>

Modified: trunk/resources/templates/atom_standard.vm
===================================================================
--- trunk/resources/templates/atom_standard.vm	2008-03-03 16:36:04 UTC (rev 235)
+++ trunk/resources/templates/atom_standard.vm	2008-03-04 10:20:13 UTC (rev 236)
@@ -21,6 +21,10 @@
                 <content type="text/html" xml:lang="en">
                    <![CDATA[$post.content]]>
                 </content>
+
+                #foreach($enclosure in $post.enclosures)
+                    <link href="$enclosure.url" rel="enclosure" length="$enclosure.length" type="$enclosure.type" />
+                #end
         </entry>
    #end
 </feed>
\ No newline at end of file

Added: trunk/src/action/org/jboss/blog/session/feed/mod/AggregatedDeleteListener.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/mod/AggregatedDeleteListener.java	                        (rev 0)
+++ trunk/src/action/org/jboss/blog/session/feed/mod/AggregatedDeleteListener.java	2008-03-04 10:20:13 UTC (rev 236)
@@ -0,0 +1,57 @@
+package org.jboss.blog.session.feed.mod;
+
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.annotations.Observer;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.ScopeType;
+import org.jboss.blog.model.Group;
+import org.jboss.blog.model.feed.Feed;
+import org.jboss.blog.model.feed.AggregatedFeed;
+import org.jboss.blog.service.GroupsService;
+
+import java.util.List;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+ at Name("aggregatedDeleteListener")
+ at Scope(ScopeType.STATELESS)
+public class AggregatedDeleteListener {
+    @In
+    private GroupsService groupsService;
+
+    private void deleteFrom(Feed feedToDelete, List<Feed> feeds) {
+        for (Feed feed : feeds) {
+            if (feed instanceof AggregatedFeed) {
+                AggregatedFeed aggregatedFeed = (AggregatedFeed) feed;
+                aggregatedFeed.getFeeds().remove(feedToDelete);
+            }
+        }
+    }
+
+    private void deleteFrom(Group groupToDelete, List<Feed> feeds) {
+        for (Feed feed : feeds) {
+            if (feed instanceof AggregatedFeed) {
+                AggregatedFeed aggregatedFeed = (AggregatedFeed) feed;
+                aggregatedFeed.getGroups().remove(groupToDelete);
+            }
+        }
+    }
+
+    @Observer("org.jboss.blog.feed.before_delete")
+    public void beforeFeedDeleted(Feed feedToDelete) {
+        for (Group group : groupsService.getAllGroups()) {
+            deleteFrom(feedToDelete, groupsService.acceptedFeeds(group));
+            deleteFrom(feedToDelete, groupsService.unacceptedFeeds(group));
+        }
+    }
+
+    @Observer("org.jboss.blog.group.before_delete")
+    public void beforeGroupDeleted(Group groupToDelete) {
+        for (Group group : groupsService.getAllGroups()) {
+            deleteFrom(groupToDelete, groupsService.acceptedFeeds(group));
+            deleteFrom(groupToDelete, groupsService.unacceptedFeeds(group));
+        }
+    }
+}

Modified: trunk/src/action/org/jboss/blog/session/feed/mod/FeedModBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/mod/FeedModBean.java	2008-03-03 16:36:04 UTC (rev 235)
+++ trunk/src/action/org/jboss/blog/session/feed/mod/FeedModBean.java	2008-03-04 10:20:13 UTC (rev 236)
@@ -116,6 +116,8 @@
 
     @Restrict("#{identity.hasPermission('feed', 'delete', feedMod.feed, feedMod.feed.group)}")
     public void delete() {
+        Events.instance().raiseEvent("org.jboss.blog.feed.before_delete", getFeed());
+
         entityManager.remove(getFeed());
 
         facesMessages.addFromResourceBundle(FacesMessage.SEVERITY_INFO, "blog.feed.deleted", getFeed().getName());

Modified: trunk/src/action/org/jboss/blog/session/group/GroupModBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/group/GroupModBean.java	2008-03-03 16:36:04 UTC (rev 235)
+++ trunk/src/action/org/jboss/blog/session/group/GroupModBean.java	2008-03-04 10:20:13 UTC (rev 236)
@@ -74,6 +74,8 @@
             return;
         }
 
+        Events.instance().raiseEvent("org.jboss.blog.group.before_delete", group);
+
         entityManager.remove(group);
 
         facesMessages.addFromResourceBundle(FacesMessage.SEVERITY_INFO, "blog.group.deleted", group.getDisplayName(),

Modified: trunk/src/action/org/jboss/blog/session/security/external/DummyExternalSecurityService.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/security/external/DummyExternalSecurityService.java	2008-03-03 16:36:04 UTC (rev 235)
+++ trunk/src/action/org/jboss/blog/session/security/external/DummyExternalSecurityService.java	2008-03-04 10:20:13 UTC (rev 236)
@@ -71,4 +71,8 @@
 
         return securityGroup.getRealGroup().toString();
     }
+
+    public RestrictedSecurityGroup getAdminGroup() {
+        return new SecurityGroup("group1", "1");
+    }
 }

Modified: trunk/src/action/org/jboss/blog/session/security/external/ExternalSecurityService.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/security/external/ExternalSecurityService.java	2008-03-03 16:36:04 UTC (rev 235)
+++ trunk/src/action/org/jboss/blog/session/security/external/ExternalSecurityService.java	2008-03-04 10:20:13 UTC (rev 236)
@@ -27,4 +27,6 @@
     String getDisplayName(RestrictedSecurityUser securityUser);
 
     String getDisplayName(RestrictedSecurityGroup securityGroup);
+
+    RestrictedSecurityGroup getAdminGroup();
 }

Added: trunk/src/action/org/jboss/blog/session/xml/velocity/TemplateBootstrap.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/xml/velocity/TemplateBootstrap.java	                        (rev 0)
+++ trunk/src/action/org/jboss/blog/session/xml/velocity/TemplateBootstrap.java	2008-03-04 10:20:13 UTC (rev 236)
@@ -0,0 +1,39 @@
+package org.jboss.blog.session.xml.velocity;
+
+import org.jboss.seam.annotations.*;
+import org.jboss.seam.ScopeType;
+import org.jboss.blog.model.Template;
+import org.jboss.blog.model.XmlType;
+import org.jboss.blog.tools.GeneralTools;
+
+import javax.persistence.EntityManager;
+import java.util.Date;
+import java.io.IOException;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+ at Name("templateBootstrap")
+ at Scope(ScopeType.STATELESS)
+public class TemplateBootstrap {
+    @In
+    private EntityManager entityManager;
+    
+    @Observer("org.jboss.blog.postBlogInit")
+    @Transactional
+    public void initAtomTemplate() throws IOException {
+        if (((Long) entityManager.createQuery("select count(t) from Template t").getSingleResult()) == 0) {
+            String templateText = GeneralTools.readInputStream(
+                    this.getClass().getResourceAsStream("/templates/atom_standard.vm"));
+            
+            Template atomTemplate = new Template();
+            atomTemplate.setType(XmlType.ATOM);
+            atomTemplate.setLastModified(new Date());
+            atomTemplate.setName("0_atom_standard");
+            atomTemplate.setText(templateText);
+
+            entityManager.persist(atomTemplate);
+            entityManager.flush();
+        }
+    }
+}

Modified: trunk/src/portal/org/jboss/blog/session/security/external/PortalExternalSecurityService.java
===================================================================
--- trunk/src/portal/org/jboss/blog/session/security/external/PortalExternalSecurityService.java	2008-03-03 16:36:04 UTC (rev 235)
+++ trunk/src/portal/org/jboss/blog/session/security/external/PortalExternalSecurityService.java	2008-03-04 10:20:13 UTC (rev 236)
@@ -209,4 +209,20 @@
             return "<? " + e.getMessage() + ">";
         }
     }
+
+    public RestrictedSecurityGroup getAdminGroup() {
+        try {
+            Role adminRole = getRoleModule().findRoleByName("Admin");
+
+            if (adminRole == null) {
+                return null;
+            }
+
+            return new SecurityGroup(adminRole, adminRole.getId().toString());
+        } catch (IdentityException e) {
+            return null;
+        } catch (PortalSecurityException e) {
+            return null;
+        }
+    }
 }
\ No newline at end of file

Added: trunk/src/portal/org/jboss/blog/session/security/external/SecurityBootstrap.java
===================================================================
--- trunk/src/portal/org/jboss/blog/session/security/external/SecurityBootstrap.java	                        (rev 0)
+++ trunk/src/portal/org/jboss/blog/session/security/external/SecurityBootstrap.java	2008-03-04 10:20:13 UTC (rev 236)
@@ -0,0 +1,45 @@
+package org.jboss.blog.session.security.external;
+
+import org.jboss.seam.annotations.*;
+import org.jboss.seam.ScopeType;
+import org.jboss.blog.session.security.SecurityModBean;
+import org.jboss.blog.model.security.SecurityGroup;
+import org.jboss.blog.model.security.FeedsSecurityRole;
+import org.jboss.blog.model.security.RestrictedSecurityGroup;
+
+import javax.persistence.EntityManager;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+ at Name("securityBootstrap")
+ at Scope(ScopeType.STATELESS)
+public class SecurityBootstrap {
+    @In
+    private SecurityModBean securityMod;
+
+    @In
+    private ExternalSecurityService externalSecurityService;
+
+    @In
+    private EntityManager entityManager;
+    
+    @Observer("org.jboss.blog.postBlogInit")
+    @Transactional    
+    public void initAdministrator() {
+        List<SecurityGroup> administratorGroups = securityMod.getAdministratorGroups();
+        if (administratorGroups == null || administratorGroups.size() == 0) {
+            RestrictedSecurityGroup group = externalSecurityService.getAdminGroup();
+            
+            if (group != null) {
+                securityMod.setRole(FeedsSecurityRole.ADMIN);
+                securityMod.setRestrictedSecurityGroup(group);
+
+                securityMod.addSecurityGroup();
+
+                entityManager.flush();
+            }
+        }
+    }
+}

Modified: trunk/src/tools/org/jboss/blog/tools/GeneralTools.java
===================================================================
--- trunk/src/tools/org/jboss/blog/tools/GeneralTools.java	2008-03-03 16:36:04 UTC (rev 235)
+++ trunk/src/tools/org/jboss/blog/tools/GeneralTools.java	2008-03-04 10:20:13 UTC (rev 236)
@@ -111,4 +111,21 @@
             return -1;
         }
     }
+
+    public static String readInputStream(InputStream is) throws IOException {
+        StringBuffer contents = new StringBuffer();
+
+        BufferedReader input =  new BufferedReader(new InputStreamReader(is));
+        try {
+            String line;
+            while ((line = input.readLine()) != null) {
+                contents.append(line);
+                contents.append(System.getProperty("line.separator"));
+            }
+        } finally {
+            input.close();
+        }
+
+        return contents.toString();
+    }
 }




More information about the jboss-cvs-commits mailing list