[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