[jboss-cvs] JBossBlog SVN: r234 - in trunk: lib and 20 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Mar 3 08:05:35 EST 2008
Author: adamw
Date: 2008-03-03 08:05:35 -0500 (Mon, 03 Mar 2008)
New Revision: 234
Added:
trunk/lib/portal-identity-lib.jar
trunk/lib/shotoku-base.jar
trunk/resources-portlet/WEB-INF/blog-object.xml
trunk/resources-portlet/WEB-INF/portlet-instances.xml
trunk/src/action/org/jboss/blog/session/security/external/
trunk/src/action/org/jboss/blog/session/security/external/AbstractExternalSecurityService.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/
trunk/src/portal/org/
trunk/src/portal/org/jboss/blog/session/
trunk/src/portal/org/jboss/blog/session/security/
trunk/src/portal/org/jboss/blog/session/security/external/
trunk/src/portal/org/jboss/blog/session/security/external/PortalExternalSecurityService.java
trunk/src/portal/org/jboss/blog/session/security/external/PortalSecurityException.java
trunk/src/shotoku/org/jboss/blog/session/shotoku/PostContentTooLargeException.java
trunk/view-portlet/view_main.jsp
Removed:
trunk/src/action/org/jboss/blog/session/security/ExternalSecurityService.java
trunk/src/portal/org/
trunk/src/portlet/
Modified:
trunk/blog.iml
trunk/build.properties
trunk/build.xml
trunk/resources-portlet/WEB-INF/portlet.xml
trunk/resources/META-INF/application.xml
trunk/resources/META-INF/security.drl
trunk/resources/WEB-INF/urlrewrite.xml
trunk/src/action/org/jboss/blog/session/security/Authenticator.java
trunk/src/action/org/jboss/blog/session/security/SecurityModBean.java
trunk/src/portal/org/jboss/blog/portlet/BlogPortlet.java
trunk/src/shotoku/org/jboss/blog/session/feed/mod/ShotokuModBean.java
trunk/src/shotoku/org/jboss/blog/session/feed/update/ShotokuFeedUpdate.java
trunk/src/shotoku/org/jboss/blog/session/shotoku/ShotokuFeedService.java
trunk/src/test/org/jboss/blog/session/merge/test/GenericsExample1.java
trunk/view-portlet/view.jsp
trunk/view/index.html
trunk/view/layout/menu.xhtml
trunk/view/stylesheet/blog.css
Log:
Modified: trunk/blog.iml
===================================================================
--- trunk/blog.iml 2008-03-01 17:48:47 UTC (rev 233)
+++ trunk/blog.iml 2008-03-03 13:05:35 UTC (rev 234)
@@ -22,7 +22,7 @@
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/action" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/model" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/src/portlet" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/portal" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/services" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/shotoku" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/test" isTestSource="true" />
@@ -197,6 +197,15 @@
<SOURCES />
</library>
</orderEntry>
+ <orderEntry type="module-library">
+ <library>
+ <CLASSES>
+ <root url="jar://$MODULE_DIR$/lib/portal-identity-lib.jar!/" />
+ </CLASSES>
+ <JAVADOC />
+ <SOURCES />
+ </library>
+ </orderEntry>
<orderEntryProperties />
</component>
</module>
Modified: trunk/build.properties
===================================================================
--- trunk/build.properties 2008-03-01 17:48:47 UTC (rev 233)
+++ trunk/build.properties 2008-03-03 13:05:35 UTC (rev 234)
@@ -1,4 +1,5 @@
#jboss.home = /Users/adamwarski/portal-extensions/feeds/binaries
jboss.home = /Users/adamwarski/jboss/jboss-4.2
+#jboss.home = /Users/adamwarski/jboss/jboss-4.0.5
#profile = design
#jboss.home = /Users/adamwarski/jboss/jboss-design
\ No newline at end of file
Modified: trunk/build.xml
===================================================================
--- trunk/build.xml 2008-03-01 17:48:47 UTC (rev 233)
+++ trunk/build.xml 2008-03-03 13:05:35 UTC (rev 234)
@@ -15,21 +15,23 @@
<property name="src.services.dir" value="src/services" />
<property name="src.tools.dir" value="src/tools" />
<property name="src.test.dir" value="src/test" />
- <property name="src.portlet.dir" value="src/portlet" />
+ <property name="src.portal.dir" value="src/portal" />
<property name="src.shotoku.dir" value="src/shotoku" />
<property name="lib.dir" value="lib" />
<property name="jar.impl.name" value="${project.name}-impl.jar" />
<property name="jar.api.name" value="${project.name}.jar" />
<property name="jar.shotoku.name" value="${project.name}-shotoku.jar" />
- <property name="portlet.name" value="${project.name}-portlet.war" />
+ <property name="jar.portal.name" value="${project.name}-portal.jar" />
+ <property name="portal.name" value="${project.name}-portal.war" />
<property name="ear.dir" value="exploded-archives/${project.name}.ear" />
<property name="jar.impl.dir" value="exploded-archives/${jar.impl.name}" />
<property name="jar.api.dir" value="exploded-archives/${jar.api.name}" />
<property name="jar.shotoku.dir" value="exploded-archives/${jar.shotoku.name}" />
+ <property name="jar.portal.dir" value="exploded-archives/${jar.portal.name}" />
<property name="war.dir" value="exploded-archives/${project.name}.war" />
- <property name="portlet.dir" value="exploded-archives/${portlet.name}" />
+ <property name="portal.dir" value="exploded-archives/${portal.name}" />
<property name="test.dir" value="test-build" />
<property name="bootstrap.dir" value="${basedir}/bootstrap" />
<property name="deploy.dir" value="${jboss.home}/server/default/deploy" />
@@ -37,8 +39,9 @@
<property name="ear.deploy.dir" value="${deploy.dir}/${project.name}.ear" />
<property name="jar.deploy.dir" value="${ear.deploy.dir}/${jar.impl.name}" />
<property name="jar.shotoku.deploy.dir" value="${ear.deploy.dir}/${jar.shotoku.name}" />
+ <property name="jar.portal.deploy.dir" value="${ear.deploy.dir}/${jar.portal.name}" />
<property name="war.deploy.dir" value="${ear.deploy.dir}/${project.name}.war" />
- <property name="portlet.deploy.dir" value="${ear.deploy.dir}/${portlet.name}" />
+ <property name="portal.deploy.dir" value="${ear.deploy.dir}/${portal.name}" />
<property name="testng.jar" value="${basedir}/lib/testng.jar" />
<property name="javac.debug" value="true" />
<property name="javac.deprecation" value="false" />
@@ -73,12 +76,12 @@
<mkdir dir="${jar.impl.dir}" />
<mkdir dir="${jar.api.dir}" />
<mkdir dir="${jar.shotoku.dir}" />
+ <mkdir dir="${jar.portal.dir}" />
<mkdir dir="${ear.dir}" />
<mkdir dir="${war.dir}" />
- <mkdir dir="${portlet.dir}" />
- <mkdir dir="${portlet.dir}/WEB-INF" />
- <mkdir dir="${portlet.dir}/WEB-INF/classes" />
- <mkdir dir="${portlet.dir}/WEB-INF/lib" />
+ <mkdir dir="${portal.dir}" />
+ <mkdir dir="${portal.dir}/WEB-INF" />
+ <mkdir dir="${portal.dir}/WEB-INF/lib" />
<mkdir dir="${dist.dir}" />
</target>
@@ -100,12 +103,12 @@
nowarn="on">
<src path="${src.action.dir}" />
</javac>
- <javac classpathref="build.impl.classpath"
- destdir="${portlet.dir}/WEB-INF/classes"
+ <javac classpathref="build.dep.classpath"
+ destdir="${jar.portal.dir}"
debug="${javac.debug}"
deprecation="${javac.deprecation}"
nowarn="on">
- <src path="${src.portlet.dir}" />
+ <src path="${src.portal.dir}" />
</javac>
<javac classpathref="build.dep.classpath"
destdir="${jar.shotoku.dir}"
@@ -135,6 +138,13 @@
</fileset>
</copy>
+ <!-- TODO: remove this marker for scanner -->
+ <copy todir="${jar.portal.dir}">
+ <fileset dir="${basedir}/resources">
+ <include name="seam.properties" />
+ </fileset>
+ </copy>
+
<copy todir="${jar.impl.dir}/META-INF">
<fileset dir="${basedir}/resources/META-INF">
<include name="ejb-jar.xml" />
@@ -190,17 +200,17 @@
</fileset>
</copy>
- <copy todir="${portlet.dir}">
+ <copy todir="${portal.dir}">
<fileset dir="${basedir}/resources-portlet">
<include name="**/*"/>
</fileset>
</copy>
- <copy todir="${portlet.dir}">
+ <copy todir="${portal.dir}">
<fileset dir="${basedir}/view-portlet">
<include name="**/*"/>
</fileset>
</copy>
- <copy todir="${portlet.dir}/WEB-INF/lib">
+ <copy todir="${portal.dir}/WEB-INF/lib">
<fileset dir="${basedir}/lib">
<include name="jstl.jar" />
<include name="standard.jar" />
@@ -271,8 +281,9 @@
description="Package the archives">
<jar jarfile="${dist.dir}/${jar.impl.name}" basedir="${jar.impl.dir}"/>
<jar jarfile="${dist.dir}/${jar.shotoku.name}" basedir="${jar.shotoku.dir}"/>
+ <jar jarfile="${dist.dir}/${jar.portal.name}" basedir="${jar.portal.dir}"/>
<jar jarfile="${dist.dir}/${project.name}.war" basedir="${war.dir}"/>
- <jar jarfile="${dist.dir}/${portlet.name}" basedir="${portlet.dir}"/>
+ <jar jarfile="${dist.dir}/${portal.name}" basedir="${portal.dir}"/>
<jar jarfile="${dist.dir}/${project.name}.ear">
<fileset dir="${ear.dir}"/>
<fileset dir="${dist.dir}">
@@ -310,7 +321,7 @@
<mkdir dir="${jar.deploy.dir}"/>
<mkdir dir="${war.deploy.dir}"/>
- <mkdir dir="${portlet.deploy.dir}"/>
+ <mkdir dir="${portal.deploy.dir}"/>
<copy todir="${jar.deploy.dir}">
<fileset dir="${jar.impl.dir}"/>
@@ -318,11 +329,14 @@
<copy todir="${jar.shotoku.deploy.dir}">
<fileset dir="${jar.shotoku.dir}"/>
</copy>
+ <copy todir="${jar.portal.deploy.dir}">
+ <fileset dir="${jar.portal.dir}"/>
+ </copy>
<copy todir="${war.deploy.dir}">
<fileset dir="${war.dir}"/>
</copy>
- <copy todir="${portlet.deploy.dir}">
- <fileset dir="${portlet.dir}"/>
+ <copy todir="${portal.deploy.dir}">
+ <fileset dir="${portal.dir}"/>
</copy>
<copy todir="${ear.deploy.dir}">
<fileset dir="${ear.dir}"/>
@@ -373,9 +387,10 @@
<delete dir="${dist.dir}"/>
<delete dir="${ear.dir}"/>
<delete dir="${war.dir}"/>
- <delete dir="${portlet.dir}"/>
+ <delete dir="${portal.dir}"/>
<delete dir="${jar.impl.dir}"/>
<delete dir="${jar.api.dir}"/>
+ <delete dir="${jar.portal.dir}"/>
<delete dir="${src.schema.dir}" failonerror="no"/>
<delete dir="${basedir}/test-report"/>
<delete dir="${basedir}/test-output"/>
Added: trunk/lib/portal-identity-lib.jar
===================================================================
(Binary files differ)
Property changes on: trunk/lib/portal-identity-lib.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/lib/shotoku-base.jar
===================================================================
(Binary files differ)
Property changes on: trunk/lib/shotoku-base.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/resources/META-INF/application.xml
===================================================================
--- trunk/resources/META-INF/application.xml 2008-03-01 17:48:47 UTC (rev 233)
+++ trunk/resources/META-INF/application.xml 2008-03-03 13:05:35 UTC (rev 234)
@@ -1,36 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
-<application xmlns="http://java.sun.com/xml/ns/javaee"
+<application xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd"
version="5">
-
- <display-name>blog</display-name>
- <!-- Seam and EL -->
- <module>
- <ejb>jboss-seam.jar</ejb>
- </module>
+ <display-name>blog</display-name>
- <module>
- <ejb>blog-impl.jar</ejb>
- </module>
+ <!-- Seam and EL -->
+ <module>
+ <ejb>jboss-seam.jar</ejb>
+ </module>
<module>
- <ejb>blog-shotoku.jar</ejb>
- </module>
-
- <module>
- <web>
- <web-uri>blog.war</web-uri>
- <context-root>/blogs</context-root>
- </web>
- </module>
+ <ejb>blog-impl.jar</ejb>
+ </module>
- <module>
- <web>
- <web-uri>blog-portlet.war</web-uri>
- <context-root>/blog-portlet</context-root>
- </web>
- </module>
-
+ <module>
+ <ejb>blog-shotoku.jar</ejb>
+ </module>
+
+ <module>
+ <ejb>blog-portal.jar</ejb>
+ </module>
+
+ <module>
+ <web>
+ <web-uri>blog.war</web-uri>
+ <context-root>/blogs</context-root>
+ </web>
+ </module>
+
+ <module>
+ <web>
+ <web-uri>blog-portal.war</web-uri>
+ <context-root>/blog-portal</context-root>
+ </web>
+ </module>
</application>
Modified: trunk/resources/META-INF/security.drl
===================================================================
--- trunk/resources/META-INF/security.drl 2008-03-01 17:48:47 UTC (rev 233)
+++ trunk/resources/META-INF/security.drl 2008-03-03 13:05:35 UTC (rev 234)
@@ -11,12 +11,12 @@
import org.jboss.blog.session.security.FeedsCombinedRole;
// TODO: remove
-rule Dev
+/* rule Dev
when
c: PermissionCheck()
then
c.grant();
-end;
+end; */
rule CanDoAnything
when
Modified: trunk/resources/WEB-INF/urlrewrite.xml
===================================================================
--- trunk/resources/WEB-INF/urlrewrite.xml 2008-03-01 17:48:47 UTC (rev 233)
+++ trunk/resources/WEB-INF/urlrewrite.xml 2008-03-03 13:05:35 UTC (rev 234)
@@ -9,6 +9,18 @@
-->
<urlrewrite>
+ <!-- Main view -->
+
+ <rule>
+ <from>^/index.html$</from>
+ <to>/home.seam</to>
+ </rule>
+
+ <outbound-rule>
+ <from>^/blogs/home.seam$</from>
+ <to>/blogs/</to>
+ </outbound-rule>
+
<!-- Posts view -->
<rule>
@@ -17,18 +29,18 @@
</rule>
<outbound-rule>
- <from>^/blog/view/post.seam\?post=(\w+)$</from>
- <to>/blog/post/$1</to>
+ <from>^/blogs/view/post.seam\?post=(\w+)$</from>
+ <to>/blogs/post/$1</to>
</outbound-rule>
<outbound-rule>
- <from>^/blog/view/post.seam\?post=(\w+)&(.+)$</from>
- <to>/blog/post/$1?$2</to>
+ <from>^/blogs/view/post.seam\?post=(\w+)&(.+)$</from>
+ <to>/blogs/post/$1?$2</to>
</outbound-rule>
<outbound-rule>
- <from>^/blog/view/post.seam\?cid=(\d+)&post=(\w+)(.*)$</from>
- <to>/blog/post/$2?cid=$1$3</to>
+ <from>^/blogs/view/post.seam\?cid=(\d+)&post=(\w+)(.*)$</from>
+ <to>/blogs/post/$2?cid=$1$3</to>
</outbound-rule>
<!-- Feeds -->
@@ -39,8 +51,8 @@
</rule>
<outbound-rule>
- <from>^/blog/feeds.seam\?type=(\w+)&name=([a-z0-9_]*)$</from>
- <to>/blog/feed/$2?type=$1</to>
+ <from>^/blogs/feeds.seam\?type=(\w+)&name=([a-z0-9_]*)$</from>
+ <to>/blogs/feed/$2?type=$1</to>
</outbound-rule>
<!-- Feed view -->
@@ -51,8 +63,8 @@
</rule>
<outbound-rule>
- <from>^/blog/view/feed.seam\?(cid=\d+&)?(from=\d+)&name=([a-z0-9_]+)(.*)$</from>
- <to>/blog/view/$3?$1$2$4</to>
+ <from>^/blogs/view/feed.seam\?(cid=\d+&)?(from=\d+)&name=([a-z0-9_]+)(.*)$</from>
+ <to>/blogs/view/$3?$1$2$4</to>
</outbound-rule>
</urlrewrite>
Added: trunk/resources-portlet/WEB-INF/blog-object.xml
===================================================================
--- trunk/resources-portlet/WEB-INF/blog-object.xml (rev 0)
+++ trunk/resources-portlet/WEB-INF/blog-object.xml 2008-03-03 13:05:35 UTC (rev 234)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE deployments PUBLIC
+ "-//JBoss Portal//DTD Portal Object 2.6//EN"
+ "http://www.jboss.org/portal/dtd/portal-object_2_6.dtd">
+<deployments>
+ <deployment>
+ <parent-ref>default.default</parent-ref>
+ <if-exists>overwrite</if-exists>
+ <window>
+ <window-name>DefaultBlogPortletWindow</window-name>
+ <instance-ref>
+ DefaultBlogPortletInstance
+ </instance-ref>
+ <region>right</region>
+ <height>3</height>
+ </window>
+ </deployment>
+</deployments>
\ No newline at end of file
Added: trunk/resources-portlet/WEB-INF/portlet-instances.xml
===================================================================
--- trunk/resources-portlet/WEB-INF/portlet-instances.xml (rev 0)
+++ trunk/resources-portlet/WEB-INF/portlet-instances.xml 2008-03-03 13:05:35 UTC (rev 234)
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE deployments PUBLIC
+ "-//JBoss Portal//DTD Portlet Instances 2.6//EN"
+ "http://www.jboss.org/portal/dtd/portlet-instances_2_6.dtd">
+<deployments>
+ <deployment>
+ <if-exists>overwrite</if-exists>
+ <instance>
+ <instance-id>DefaultBlogPortletInstance</instance-id>
+ <portlet-ref>BlogPortlet</portlet-ref>
+ <preferences>
+ <preference>
+ <name>feedName</name>
+ <value>all</value>
+ </preference>
+ <preference>
+ <name>numberOfPosts</name>
+ <value>3</value>
+ </preference>
+ <preference>
+ <name>summaryLength</name>
+ <value>0</value>
+ </preference>
+ <preference>
+ <name>showDate</name>
+ <value>true</value>
+ </preference>
+ <preference>
+ <name>jsp</name>
+ <value>/view_main.jsp</value>
+ </preference>
+ </preferences>
+ </instance>
+ </deployment>
+</deployments>
\ No newline at end of file
Modified: trunk/resources-portlet/WEB-INF/portlet.xml
===================================================================
--- trunk/resources-portlet/WEB-INF/portlet.xml 2008-03-01 17:48:47 UTC (rev 233)
+++ trunk/resources-portlet/WEB-INF/portlet.xml 2008-03-03 13:05:35 UTC (rev 234)
@@ -32,6 +32,10 @@
<name>showDate</name>
<value>true</value>
</preference>
+ <preference>
+ <name>jsp</name>
+ <value>/view.jsp</value>
+ </preference>
</portlet-preferences>
</portlet>
</portlet-app>
Modified: trunk/src/action/org/jboss/blog/session/security/Authenticator.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/security/Authenticator.java 2008-03-01 17:48:47 UTC (rev 233)
+++ trunk/src/action/org/jboss/blog/session/security/Authenticator.java 2008-03-03 13:05:35 UTC (rev 234)
@@ -7,6 +7,7 @@
import org.jboss.blog.model.security.SecurityUser;
import org.jboss.blog.model.security.SecurityGroup;
import org.jboss.blog.model.security.SecurityMapping;
+import org.jboss.blog.session.security.external.ExternalSecurityService;
import java.util.List;
Deleted: trunk/src/action/org/jboss/blog/session/security/ExternalSecurityService.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/security/ExternalSecurityService.java 2008-03-01 17:48:47 UTC (rev 233)
+++ trunk/src/action/org/jboss/blog/session/security/ExternalSecurityService.java 2008-03-03 13:05:35 UTC (rev 234)
@@ -1,110 +0,0 @@
-package org.jboss.blog.session.security;
-
-import org.jboss.seam.annotations.Name;
-import org.jboss.seam.annotations.AutoCreate;
-import org.jboss.seam.annotations.Scope;
-import org.jboss.seam.annotations.In;
-import org.jboss.seam.ScopeType;
-import org.jboss.blog.model.security.SecurityUser;
-import org.jboss.blog.model.security.SecurityGroup;
-import org.jboss.blog.model.security.RestrictedSecurityGroup;
-import org.jboss.blog.model.security.RestrictedSecurityUser;
-
-import javax.persistence.EntityManager;
-import javax.persistence.NoResultException;
-import java.util.List;
-import java.util.ArrayList;
-
-/**
- * @author <a href="mailto:adam at warski.org">Adam Warski</a>
- */
- at Name("externalSecurityService")
- at AutoCreate
- at Scope(ScopeType.STATELESS)
-public class ExternalSecurityService {
- @In
- private EntityManager entityManager;
-
- public SecurityUser authenticate(String username, String password) throws InvalidLoginException {
- SecurityUser user = new SecurityUser();
- user.setExternalId(Long.parseLong(username));
-
- return getUnrestrictedSecurityUser(user);
- }
-
- public SecurityGroup getUnrestrictedSecurityGroup(RestrictedSecurityGroup securityGroup) {
- try {
- SecurityGroup entitySg = (SecurityGroup) entityManager.createQuery(
- "select sg from SecurityGroup sg where sg.externalId = ?1")
- .setParameter(1, securityGroup.getExternalId()).getSingleResult();
- entitySg.setRealGroup(securityGroup.getRealGroup());
-
- return entitySg;
- } catch (NoResultException e) {
- SecurityGroup sg = new SecurityGroup();
- sg.setExternalId(securityGroup.getExternalId());
- sg.setRealGroup(securityGroup.getRealGroup());
-
- entityManager.persist(sg);
-
- return sg;
- }
- }
-
- public SecurityUser getUnrestrictedSecurityUser(RestrictedSecurityUser securityUser) {
- try {
- SecurityUser entitySu = (SecurityUser) entityManager.createQuery(
- "select su from SecurityUser su where su.externalId = ?1")
- .setParameter(1, securityUser.getExternalId()).getSingleResult();
- entitySu.setRealUser(securityUser.getRealUser());
-
- return entitySu;
- } catch (NoResultException e) {
- SecurityUser su = new SecurityUser();
- su.setExternalId(securityUser.getExternalId());
- su.setRealUser(securityUser.getRealUser());
-
- entityManager.persist(su);
-
- return su;
- }
- }
-
- public List<RestrictedSecurityGroup> getAllGroups() {
- List<RestrictedSecurityGroup> groups = new ArrayList<RestrictedSecurityGroup>();
- groups.add(new SecurityGroup("group1", 1l));
- groups.add(new SecurityGroup("group2", 2l));
- groups.add(new SecurityGroup("group3", 3l));
-
- return groups;
- }
-
- public List<RestrictedSecurityUser> getAllUsers() {
- List<RestrictedSecurityUser> users = new ArrayList<RestrictedSecurityUser>();
- users.add(new SecurityUser("1", 1l));
- users.add(new SecurityUser("2", 2l));
- users.add(new SecurityUser("2", 3l));
-
- return users;
- }
-
- public List<SecurityGroup> getGroupsOfUser(SecurityUser securityUser) {
- List<SecurityGroup> groups = new ArrayList<SecurityGroup>();
- groups.add(getUnrestrictedSecurityGroup(
- new SecurityGroup("group" + securityUser.getExternalId(), securityUser.getExternalId())));
-
- return groups;
- }
-
- public String getDisplayName(RestrictedSecurityUser securityUser) {
- return securityUser.getExternalId().toString();
- }
-
- public String getDisplayName(RestrictedSecurityGroup securityGroup) {
- if (securityGroup.getRealGroup() == null) {
- securityGroup.setRealGroup("group" + securityGroup.getExternalId());
- }
-
- return securityGroup.getRealGroup().toString();
- }
-}
Modified: trunk/src/action/org/jboss/blog/session/security/SecurityModBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/security/SecurityModBean.java 2008-03-01 17:48:47 UTC (rev 233)
+++ trunk/src/action/org/jboss/blog/session/security/SecurityModBean.java 2008-03-03 13:05:35 UTC (rev 234)
@@ -9,12 +9,14 @@
import org.jboss.blog.model.security.*;
import org.jboss.blog.model.Group;
import org.jboss.blog.model.feed.Feed;
+import org.jboss.blog.session.security.external.ExternalSecurityService;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.faces.application.FacesMessage;
import java.util.List;
import java.util.ArrayList;
+import java.io.Serializable;
/**
* @author <a href="mailto:adam at warski.org">Adam Warski</a>
@@ -22,7 +24,7 @@
@Name("securityMod")
@Scope(ScopeType.CONVERSATION)
@AutoCreate
-public class SecurityModBean {
+public class SecurityModBean implements Serializable {
@In
private EntityManager entityManager;
Added: trunk/src/action/org/jboss/blog/session/security/external/AbstractExternalSecurityService.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/security/external/AbstractExternalSecurityService.java (rev 0)
+++ trunk/src/action/org/jboss/blog/session/security/external/AbstractExternalSecurityService.java 2008-03-03 13:05:35 UTC (rev 234)
@@ -0,0 +1,54 @@
+package org.jboss.blog.session.security.external;
+
+import org.jboss.blog.model.security.SecurityUser;
+import org.jboss.blog.model.security.SecurityGroup;
+import org.jboss.blog.model.security.RestrictedSecurityGroup;
+import org.jboss.blog.model.security.RestrictedSecurityUser;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+public abstract class AbstractExternalSecurityService implements ExternalSecurityService {
+ protected abstract EntityManager getEntityManager();
+
+ public SecurityGroup getUnrestrictedSecurityGroup(RestrictedSecurityGroup securityGroup) {
+ try {
+ SecurityGroup entitySg = (SecurityGroup) getEntityManager().createQuery(
+ "select sg from SecurityGroup sg where sg.externalId = ?1")
+ .setParameter(1, securityGroup.getExternalId()).getSingleResult();
+ entitySg.setRealGroup(securityGroup.getRealGroup());
+
+ return entitySg;
+ } catch (NoResultException e) {
+ SecurityGroup sg = new SecurityGroup();
+ sg.setExternalId(securityGroup.getExternalId());
+ sg.setRealGroup(securityGroup.getRealGroup());
+
+ getEntityManager().persist(sg);
+
+ return sg;
+ }
+ }
+
+ public SecurityUser getUnrestrictedSecurityUser(RestrictedSecurityUser securityUser) {
+ try {
+ SecurityUser entitySu = (SecurityUser) getEntityManager().createQuery(
+ "select su from SecurityUser su where su.externalId = ?1")
+ .setParameter(1, securityUser.getExternalId()).getSingleResult();
+ entitySu.setRealUser(securityUser.getRealUser());
+
+ return entitySu;
+ } catch (NoResultException e) {
+ SecurityUser su = new SecurityUser();
+ su.setExternalId(securityUser.getExternalId());
+ su.setRealUser(securityUser.getRealUser());
+
+ getEntityManager().persist(su);
+
+ return su;
+ }
+ }
+}
\ No newline at end of file
Copied: trunk/src/action/org/jboss/blog/session/security/external/DummyExternalSecurityService.java (from rev 223, trunk/src/action/org/jboss/blog/session/security/ExternalSecurityService.java)
===================================================================
--- trunk/src/action/org/jboss/blog/session/security/external/DummyExternalSecurityService.java (rev 0)
+++ trunk/src/action/org/jboss/blog/session/security/external/DummyExternalSecurityService.java 2008-03-03 13:05:35 UTC (rev 234)
@@ -0,0 +1,74 @@
+package org.jboss.blog.session.security.external;
+
+import org.jboss.seam.annotations.*;
+import org.jboss.seam.ScopeType;
+import org.jboss.blog.model.security.SecurityUser;
+import org.jboss.blog.model.security.SecurityGroup;
+import org.jboss.blog.model.security.RestrictedSecurityGroup;
+import org.jboss.blog.model.security.RestrictedSecurityUser;
+import org.jboss.blog.session.security.InvalidLoginException;
+
+import javax.persistence.EntityManager;
+import java.util.List;
+import java.util.ArrayList;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+ at Name("externalSecurityService")
+ at AutoCreate
+ at Scope(ScopeType.STATELESS)
+ at Install(precedence = 15)
+public class DummyExternalSecurityService extends AbstractExternalSecurityService {
+ @In
+ private EntityManager entityManager;
+
+ protected EntityManager getEntityManager() {
+ return entityManager;
+ }
+
+ public SecurityUser authenticate(String username, String password) throws InvalidLoginException {
+ SecurityUser user = new SecurityUser();
+ user.setExternalId(Long.parseLong(username));
+
+ return getUnrestrictedSecurityUser(user);
+ }
+
+ public List<? extends RestrictedSecurityGroup> getAllGroups() {
+ List<RestrictedSecurityGroup> groups = new ArrayList<RestrictedSecurityGroup>();
+ groups.add(new SecurityGroup("group1", 1l));
+ groups.add(new SecurityGroup("group2", 2l));
+ groups.add(new SecurityGroup("group3", 3l));
+
+ return groups;
+ }
+
+ public List<? extends RestrictedSecurityUser> getAllUsers() {
+ List<RestrictedSecurityUser> users = new ArrayList<RestrictedSecurityUser>();
+ users.add(new SecurityUser("1", 1l));
+ users.add(new SecurityUser("2", 2l));
+ users.add(new SecurityUser("2", 3l));
+
+ return users;
+ }
+
+ public List<SecurityGroup> getGroupsOfUser(SecurityUser securityUser) {
+ List<SecurityGroup> groups = new ArrayList<SecurityGroup>();
+ groups.add(getUnrestrictedSecurityGroup(
+ new SecurityGroup("group" + securityUser.getExternalId(), securityUser.getExternalId())));
+
+ return groups;
+ }
+
+ public String getDisplayName(RestrictedSecurityUser securityUser) {
+ return securityUser.getExternalId().toString();
+ }
+
+ public String getDisplayName(RestrictedSecurityGroup securityGroup) {
+ if (securityGroup.getRealGroup() == null) {
+ securityGroup.setRealGroup("group" + securityGroup.getExternalId());
+ }
+
+ return securityGroup.getRealGroup().toString();
+ }
+}
Copied: trunk/src/action/org/jboss/blog/session/security/external/ExternalSecurityService.java (from rev 223, trunk/src/action/org/jboss/blog/session/security/ExternalSecurityService.java)
===================================================================
--- trunk/src/action/org/jboss/blog/session/security/external/ExternalSecurityService.java (rev 0)
+++ trunk/src/action/org/jboss/blog/session/security/external/ExternalSecurityService.java 2008-03-03 13:05:35 UTC (rev 234)
@@ -0,0 +1,30 @@
+package org.jboss.blog.session.security.external;
+
+import org.jboss.blog.model.security.SecurityUser;
+import org.jboss.blog.model.security.SecurityGroup;
+import org.jboss.blog.model.security.RestrictedSecurityGroup;
+import org.jboss.blog.model.security.RestrictedSecurityUser;
+import org.jboss.blog.session.security.InvalidLoginException;
+
+import java.util.List;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+public interface ExternalSecurityService {
+ SecurityUser authenticate(String username, String password) throws InvalidLoginException;
+
+ SecurityGroup getUnrestrictedSecurityGroup(RestrictedSecurityGroup securityGroup);
+
+ SecurityUser getUnrestrictedSecurityUser(RestrictedSecurityUser securityUser);
+
+ List<? extends RestrictedSecurityGroup> getAllGroups();
+
+ List<? extends RestrictedSecurityUser> getAllUsers();
+
+ List<SecurityGroup> getGroupsOfUser(SecurityUser securityUser);
+
+ String getDisplayName(RestrictedSecurityUser securityUser);
+
+ String getDisplayName(RestrictedSecurityGroup securityGroup);
+}
Copied: trunk/src/portal (from rev 225, trunk/src/portlet)
Copied: trunk/src/portal/org (from rev 233, trunk/src/portlet/org)
Modified: trunk/src/portal/org/jboss/blog/portlet/BlogPortlet.java
===================================================================
--- trunk/src/portlet/org/jboss/blog/portlet/BlogPortlet.java 2008-03-01 17:48:47 UTC (rev 233)
+++ trunk/src/portal/org/jboss/blog/portlet/BlogPortlet.java 2008-03-03 13:05:35 UTC (rev 234)
@@ -42,6 +42,8 @@
String showDateString = preferences.getValue("showDate", "true");
Boolean showDate = Boolean.valueOf(showDateString);
+ String jsp = preferences.getValue("jsp", "/view.jsp");
+
response.setContentType("text/html");
try {
@@ -58,7 +60,7 @@
request.setAttribute("linkService", linkService);
// Including the jsp
- PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher("/view.jsp");
+ PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(jsp);
rd.include(request, response);
} catch (FeedNotFoundException e) {
request.setAttribute("feedName", feedName);
Added: trunk/src/portal/org/jboss/blog/session/security/external/PortalExternalSecurityService.java
===================================================================
--- trunk/src/portal/org/jboss/blog/session/security/external/PortalExternalSecurityService.java (rev 0)
+++ trunk/src/portal/org/jboss/blog/session/security/external/PortalExternalSecurityService.java 2008-03-03 13:05:35 UTC (rev 234)
@@ -0,0 +1,241 @@
+package org.jboss.blog.session.security.external;
+
+import org.jboss.seam.annotations.*;
+import org.jboss.seam.log.Log;
+import org.jboss.seam.ScopeType;
+import org.jboss.blog.model.security.SecurityUser;
+import org.jboss.blog.model.security.SecurityGroup;
+import org.jboss.blog.model.security.RestrictedSecurityGroup;
+import org.jboss.blog.model.security.RestrictedSecurityUser;
+import org.jboss.blog.session.security.InvalidLoginException;
+import org.jboss.portal.identity.*;
+import org.jboss.portal.identity.Role;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Set;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+ at Name("externalSecurityService")
+ at AutoCreate
+ at Scope(ScopeType.STATELESS)
+public class PortalExternalSecurityService extends AbstractExternalSecurityService {
+ @In
+ private EntityManager entityManager;
+
+ protected EntityManager getEntityManager() {
+ return entityManager;
+ }
+
+ @Logger
+ private Log log;
+
+ private UserModule getUserModule() throws PortalSecurityException {
+ try {
+ return (UserModule) new InitialContext().lookup("java:portal/UserModule");
+ } catch (NamingException e) {
+ log.error(e);
+ throw new PortalSecurityException(e);
+ }
+ }
+
+ private RoleModule getRoleModule() throws PortalSecurityException {
+ try {
+ return (RoleModule) new InitialContext().lookup("java:portal/RoleModule");
+ } catch (NamingException e) {
+ log.error(e);
+ throw new PortalSecurityException(e);
+ }
+ }
+
+ private MembershipModule getMembershipModule() throws PortalSecurityException {
+ try {
+ return (MembershipModule) new InitialContext().lookup("java:portal/MembershipModule");
+ } catch (NamingException e) {
+ log.error(e);
+ throw new PortalSecurityException(e);
+ }
+ }
+
+ private List<SecurityGroup> convertRoles(Set<Role> roles) {
+ List<SecurityGroup> securityGroups = new ArrayList<SecurityGroup>();
+
+ for (Role role : roles) {
+ securityGroups.add(new SecurityGroup(role, (Long) role.getId()));
+ }
+
+ return securityGroups;
+ }
+
+ private List<SecurityUser> convertUsers(Set<User> users) {
+ List<SecurityUser> securityUsers = new ArrayList<SecurityUser>();
+
+ for (User user : users) {
+ securityUsers.add(new SecurityUser(user, (Long) user.getId()));
+ }
+
+ return securityUsers;
+ }
+
+ private User getRealUser(RestrictedSecurityUser securityUser) throws PortalSecurityException, NoSuchUserException {
+ if (securityUser.getRealUser() == null) {
+ try {
+ User user = getUserModule().findUserById(securityUser.getExternalId());
+ securityUser.setRealUser(user);
+
+ return user;
+ } catch (NoSuchUserException e) {
+ throw e;
+ } catch (IdentityException e) {
+ throw new PortalSecurityException(e);
+ }
+ } else {
+ return (User) securityUser.getRealUser();
+ }
+ }
+
+ private Role getRealRole(RestrictedSecurityGroup securityGroup) throws PortalSecurityException {
+ if (securityGroup.getRealGroup() == null) {
+ try {
+ Role role = getRoleModule().findRoleById(securityGroup.getExternalId());
+ securityGroup.setRealGroup(role);
+
+ return role;
+ } catch (IdentityException e) {
+ throw new PortalSecurityException(e);
+ }
+ } else {
+ return (Role) securityGroup.getRealGroup();
+ }
+ }
+
+ public SecurityGroup getUnrestrictedSecurityGroup(RestrictedSecurityGroup securityGroup) {
+ try {
+ SecurityGroup entitySg = (SecurityGroup) entityManager.createQuery(
+ "select sg from SecurityGroup sg where sg.externalId = ?1")
+ .setParameter(1, securityGroup.getExternalId()).getSingleResult();
+ entitySg.setRealGroup(securityGroup.getRealGroup());
+
+ return entitySg;
+ } catch (NoResultException e) {
+ SecurityGroup sg = new SecurityGroup();
+ sg.setExternalId(securityGroup.getExternalId());
+ sg.setRealGroup(securityGroup.getRealGroup());
+
+ entityManager.persist(sg);
+
+ return sg;
+ }
+ }
+
+ public SecurityUser getUnrestrictedSecurityUser(RestrictedSecurityUser securityUser) {
+ try {
+ SecurityUser entitySu = (SecurityUser) entityManager.createQuery(
+ "select su from SecurityUser su where su.externalId = ?1")
+ .setParameter(1, securityUser.getExternalId()).getSingleResult();
+ entitySu.setRealUser(securityUser.getRealUser());
+
+ return entitySu;
+ } catch (NoResultException e) {
+ SecurityUser su = new SecurityUser();
+ su.setExternalId(securityUser.getExternalId());
+ su.setRealUser(securityUser.getRealUser());
+
+ entityManager.persist(su);
+
+ return su;
+ }
+ }
+
+ public SecurityUser authenticate(String username, String password) throws InvalidLoginException {
+ try {
+ User user = getUserModule().findUserByUserName(username);
+
+ if (!user.validatePassword(password)) {
+ throw new InvalidLoginException();
+ }
+
+ SecurityUser securityUser = new SecurityUser();
+ securityUser.setExternalId((Long) user.getId());
+ securityUser.setRealUser(user);
+
+ return getUnrestrictedSecurityUser(securityUser);
+ } catch (NoSuchUserException e) {
+ throw new InvalidLoginException();
+ } catch (IdentityException e) {
+ log.error(e);
+ throw new InvalidLoginException();
+ } catch (PortalSecurityException e) {
+ log.error(e);
+ throw new InvalidLoginException();
+ }
+ }
+
+ public List<? extends RestrictedSecurityGroup> getAllGroups() {
+ try {
+ //noinspection unchecked
+ return convertRoles((Set<Role>) getRoleModule().findRoles());
+ } catch (IdentityException e) {
+ log.error(e);
+ return new ArrayList<RestrictedSecurityGroup>();
+ } catch (PortalSecurityException e) {
+ log.error(e);
+ return new ArrayList<RestrictedSecurityGroup>();
+ }
+ }
+
+ public List<? extends RestrictedSecurityUser> getAllUsers() {
+ try {
+ // TODO - users count
+ //noinspection unchecked
+ return convertUsers((Set<User>) getUserModule().findUsers(0, 100000));
+ } catch (NoSuchUserException e) {
+ return new ArrayList<RestrictedSecurityUser>();
+ } catch (IdentityException e) {
+ log.error(e);
+ return new ArrayList<RestrictedSecurityUser>();
+ } catch (PortalSecurityException e) {
+ log.error(e);
+ return new ArrayList<RestrictedSecurityUser>();
+ }
+ }
+
+ public List<SecurityGroup> getGroupsOfUser(SecurityUser securityUser) {
+ try {
+ //noinspection unchecked
+ return convertRoles((Set<Role>) getMembershipModule().getRoles(getRealUser(securityUser)));
+ } catch (NoSuchUserException e) {
+ return new ArrayList<SecurityGroup>();
+ } catch (IdentityException e) {
+ log.error(e);
+ return new ArrayList<SecurityGroup>();
+ } catch (PortalSecurityException e) {
+ log.error(e);
+ return new ArrayList<SecurityGroup>();
+ }
+ }
+
+ public String getDisplayName(RestrictedSecurityUser securityUser) {
+ try {
+ return getRealUser(securityUser).getUserName();
+ } catch (NoSuchUserException e) {
+ return "<deleted (id = " + securityUser.getExternalId() + ">";
+ } catch (PortalSecurityException e) {
+ return "<? " + e.getMessage() + ">";
+ }
+ }
+
+ public String getDisplayName(RestrictedSecurityGroup securityGroup) {
+ try {
+ return getRealRole(securityGroup).getDisplayName();
+ } catch (PortalSecurityException e) {
+ return "<? " + e.getMessage() + ">";
+ }
+ }
+}
\ No newline at end of file
Added: trunk/src/portal/org/jboss/blog/session/security/external/PortalSecurityException.java
===================================================================
--- trunk/src/portal/org/jboss/blog/session/security/external/PortalSecurityException.java (rev 0)
+++ trunk/src/portal/org/jboss/blog/session/security/external/PortalSecurityException.java 2008-03-03 13:05:35 UTC (rev 234)
@@ -0,0 +1,23 @@
+package org.jboss.blog.session.security.external;
+
+import javax.naming.NamingException;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+public class PortalSecurityException extends Exception {
+ public PortalSecurityException() {
+ }
+
+ public PortalSecurityException(String message) {
+ super(message);
+ }
+
+ public PortalSecurityException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public PortalSecurityException(Throwable cause) {
+ super(cause);
+ }
+}
Modified: trunk/src/shotoku/org/jboss/blog/session/feed/mod/ShotokuModBean.java
===================================================================
--- trunk/src/shotoku/org/jboss/blog/session/feed/mod/ShotokuModBean.java 2008-03-01 17:48:47 UTC (rev 233)
+++ trunk/src/shotoku/org/jboss/blog/session/feed/mod/ShotokuModBean.java 2008-03-03 13:05:35 UTC (rev 234)
@@ -11,18 +11,20 @@
import org.jboss.blog.model.Post;
import org.jboss.blog.session.feed.InvalidFeedTypeException;
import org.jboss.blog.session.shotoku.ShotokuFeedService;
+import org.jboss.blog.session.shotoku.PostContentTooLargeException;
import org.jboss.shotoku.exceptions.RepositoryException;
import javax.persistence.EntityManager;
import javax.faces.application.FacesMessage;
import java.util.List;
+import java.io.Serializable;
/**
* @author <a href="mailto:adam at warski.org">Adam Warski</a>
*/
@Scope(ScopeType.CONVERSATION)
@Name("shotokuFeedMod")
-public class ShotokuModBean {
+public class ShotokuModBean implements Serializable {
@In
private FeedModBean feedMod;
@@ -102,6 +104,9 @@
} catch (RepositoryException e) {
setPathOk(false);
setPathException(e);
+ } catch (PostContentTooLargeException e) {
+ setPathOk(false);
+ setPathException(e);
}
}
Modified: trunk/src/shotoku/org/jboss/blog/session/feed/update/ShotokuFeedUpdate.java
===================================================================
--- trunk/src/shotoku/org/jboss/blog/session/feed/update/ShotokuFeedUpdate.java 2008-03-01 17:48:47 UTC (rev 233)
+++ trunk/src/shotoku/org/jboss/blog/session/feed/update/ShotokuFeedUpdate.java 2008-03-03 13:05:35 UTC (rev 234)
@@ -6,6 +6,7 @@
import org.jboss.blog.session.update.UpdateException;
import org.jboss.blog.session.feed.lock.FeedsLocksBean;
import org.jboss.blog.session.shotoku.ShotokuFeedService;
+import org.jboss.blog.session.shotoku.PostContentTooLargeException;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
@@ -40,6 +41,8 @@
posts = shotokuFeedService.getPosts(feed);
} catch (RepositoryException e) {
throw new UpdateException(e);
+ } catch (PostContentTooLargeException e) {
+ throw new UpdateException(e);
}
mergeService.merge(feed, posts);
Added: trunk/src/shotoku/org/jboss/blog/session/shotoku/PostContentTooLargeException.java
===================================================================
--- trunk/src/shotoku/org/jboss/blog/session/shotoku/PostContentTooLargeException.java (rev 0)
+++ trunk/src/shotoku/org/jboss/blog/session/shotoku/PostContentTooLargeException.java 2008-03-03 13:05:35 UTC (rev 234)
@@ -0,0 +1,21 @@
+package org.jboss.blog.session.shotoku;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+public class PostContentTooLargeException extends Exception {
+ public PostContentTooLargeException() {
+ }
+
+ public PostContentTooLargeException(String message) {
+ super(message);
+ }
+
+ public PostContentTooLargeException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public PostContentTooLargeException(Throwable cause) {
+ super(cause);
+ }
+}
Modified: trunk/src/shotoku/org/jboss/blog/session/shotoku/ShotokuFeedService.java
===================================================================
--- trunk/src/shotoku/org/jboss/blog/session/shotoku/ShotokuFeedService.java 2008-03-01 17:48:47 UTC (rev 233)
+++ trunk/src/shotoku/org/jboss/blog/session/shotoku/ShotokuFeedService.java 2008-03-03 13:05:35 UTC (rev 234)
@@ -31,7 +31,7 @@
@In
private LinkService linkService;
- public List<Post> getPosts(ShotokuFeed feed) throws RepositoryException {
+ public List<Post> getPosts(ShotokuFeed feed) throws RepositoryException, PostContentTooLargeException {
ContentManager cm = ContentManager.getContentManager(feed.getCmId(), feed.getCmPath());
List<Post> posts = new ArrayList<Post>();
@@ -68,7 +68,12 @@
post.getImages().add(new Image(post, linkService.getServerAddress() + '/' + thumbnail));
}
} else {
- post.setContent(node.getContent());
+ if (node.getLength() > 1000000) {
+ throw new PostContentTooLargeException("The content for node: '" + node.getFullName() +
+ "' is too large for a post.");
+ }
+
+ post.setContent(node.getContent());
}
posts.add(post);
Modified: trunk/src/test/org/jboss/blog/session/merge/test/GenericsExample1.java
===================================================================
--- trunk/src/test/org/jboss/blog/session/merge/test/GenericsExample1.java 2008-03-01 17:48:47 UTC (rev 233)
+++ trunk/src/test/org/jboss/blog/session/merge/test/GenericsExample1.java 2008-03-03 13:05:35 UTC (rev 234)
@@ -19,12 +19,17 @@
public static void test1(List<Long> list2) {
new GenericsExample1<List<? extends Number>>().process(list2);
}
+
+ public static void test2(List<? extends Number> list1, List<Long> list2) {
+ GenericsExample1<List<? extends Number>> x = new GenericsExample1<List<? extends Number>>();
+ //GenericsExample1<List<? extends Number>> y = getInstance(list1);
+ }
//
- public void test2(List<? extends Number> list1) { }
+ public void test3(List<? extends Number> list1) { }
- public void test3(List<Long> list2) {
- test2(list2);
+ public void test4(List<Long> list2) {
+ test3(list2);
}
}
Modified: trunk/view/index.html
===================================================================
--- trunk/view/index.html 2008-03-01 17:48:47 UTC (rev 233)
+++ trunk/view/index.html 2008-03-03 13:05:35 UTC (rev 234)
@@ -1,5 +1 @@
-<html>
-<head>
- <meta http-equiv="Refresh" content="0; URL=home.seam">
-</head>
-</html>
\ No newline at end of file
+<html />
\ No newline at end of file
Modified: trunk/view/layout/menu.xhtml
===================================================================
--- trunk/view/layout/menu.xhtml 2008-03-01 17:48:47 UTC (rev 233)
+++ trunk/view/layout/menu.xhtml 2008-03-03 13:05:35 UTC (rev 234)
@@ -44,8 +44,11 @@
<div id="primarynav">
<ul>
<li>
- <s:link view="/home.xhtml" value="Home"/>
+ <a href="/">JBoss.ORG</a>
</li>
+ <li>
+ <s:link view="/home.xhtml" value="Feeds home" propagation="none" />
+ </li>
<s:fragment rendered="#{identity.hasPermission('management', 'view')}">
<li>
<s:link value="Manage" view="/manage/index.xhtml" propagation="none" />
Modified: trunk/view/stylesheet/blog.css
===================================================================
--- trunk/view/stylesheet/blog.css 2008-03-01 17:48:47 UTC (rev 233)
+++ trunk/view/stylesheet/blog.css 2008-03-03 13:05:35 UTC (rev 234)
@@ -194,3 +194,7 @@
.messages {
}
+
+.portlet_author_date {
+ font-style: italic;
+}
Modified: trunk/view-portlet/view.jsp
===================================================================
--- trunk/view-portlet/view.jsp 2008-03-01 17:48:47 UTC (rev 233)
+++ trunk/view-portlet/view.jsp 2008-03-03 13:05:35 UTC (rev 234)
@@ -11,36 +11,58 @@
<portlet:defineObjects />
+<head>
+ <link href="/blogs/stylesheet/blog.css" rel="stylesheet" type="text/css" />
+</head>
+
<%
Feed feed = (Feed) request.getAttribute("feed");
LinkService linkService = (LinkService) request.getAttribute("linkService");
%>
-Now viewing feed '${feed.title}'.
-<a href="<%= linkService.generateFeedPageLink(feed) %>">View full feed on JBoss Feeds Central</a>
+<div>
+ <c:forEach items="${posts}" var="post">
+ <%
+ Post post = (Post) pageContext.getAttribute("post");
+ %>
-<br />
-<br />
+ <p>
+ <b>
+ <a href="<%= linkService.generatePostLink(post) %>">${post.title}</a>
+ </b>
+ <br />
-<c:forEach items="${posts}" var="post">
- <%
- Post post = (Post) pageContext.getAttribute("post");
- %>
- <a href="<%= linkService.generatePostLink(post) %>">${post.title}</a>
- <br />
+ <c:if test="${showDate}">
+ <span class="portlet_author_date">
+ Posted on <%= SimpleDateFormat.getDateTimeInstance().format(post.getPublished()) %> by
+ <%= post.getEffectiveAuthor() %>.
+ </span>
+ </c:if>
- <c:if test="${showDate}">
- Posted on <%= SimpleDateFormat.getDateTimeInstance().format(post.getPublished()) %> by
- <%= post.getEffectiveAuthor() %>.
+ <c:if test="${summaryLength > 0}">
+ <br />
+ <br />
+
+ <span>
+ <%= StringTools.createSummary(post.getContent(), (Integer) request.getAttribute("summaryLength")) %>
+ </span>
+ </c:if>
+ </p>
+ </c:forEach>
- <br/>
- </c:if>
-
- <c:if test="${summaryLength > 0}">
- <%= StringTools.createSummary(post.getContent(), (Integer) request.getAttribute("summaryLength")) %>
-
- <br />
- </c:if>
-
- <br />
-</c:forEach>
\ No newline at end of file
+ <div class="blogFeedNav">
+ <ul>
+ <li>
+ <a href="<%= linkService.generateFeedPageLink(feed) %>"
+ class="standardLinkArrow">
+ View full feed
+ </a>
+ </li>
+ <li>
+ <a href="/blogs" class="standardLinkArrow">
+ Go to JBoss Feeds Central
+ </a>
+ </li>
+ </ul>
+ </div>
+</div>
\ No newline at end of file
Copied: trunk/view-portlet/view_main.jsp (from rev 225, trunk/view-portlet/view.jsp)
===================================================================
--- trunk/view-portlet/view_main.jsp (rev 0)
+++ trunk/view-portlet/view_main.jsp 2008-03-03 13:05:35 UTC (rev 234)
@@ -0,0 +1,67 @@
+<%@ page import="org.jboss.blog.service.LinkService" %>
+<%@ page import="org.jboss.blog.model.feed.Feed" %>
+<%@ page import="org.jboss.blog.model.Post" %>
+<%@ page import="org.jboss.blog.tools.StringTools" %>
+<%@ page import="java.text.SimpleDateFormat" %>
+<%@ page language="java" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
+<%@ page isELIgnored ="false" %>
+
+<portlet:defineObjects />
+
+<head>
+ <link href="/blogs/stylesheet/blog.css" rel="stylesheet" type="text/css" />
+</head>
+
+<%
+ Feed feed = (Feed) request.getAttribute("feed");
+ LinkService linkService = (LinkService) request.getAttribute("linkService");
+%>
+
+<div class="homespot">
+ <h3>Latest Blogs</h3>
+
+ <c:forEach items="${posts}" var="post">
+ <%
+ Post post = (Post) pageContext.getAttribute("post");
+ %>
+
+ <p>
+ <b>
+ <a href="<%= linkService.generatePostLink(post) %>">${post.title}</a>
+ </b>
+ <br />
+
+ <c:if test="${showDate}">
+ <span class="portlet_author_date">
+ Posted on <%= SimpleDateFormat.getDateTimeInstance().format(post.getPublished()) %> by
+ <%= post.getEffectiveAuthor() %>.
+ </span>
+ </c:if>
+
+ <c:if test="${summaryLength > 0}">
+ <span>
+ <%= StringTools.createSummary(post.getContent(), (Integer) request.getAttribute("summaryLength")) %>
+ </span>
+ </c:if>
+ </p>
+ </c:forEach>
+
+ <div class="blogFeedNav">
+ <ul>
+ <li>
+ <a href="<%= linkService.generateFeedPageLink(feed) %>"
+ class="standardLinkArrow">
+ View full feed
+ </a>
+ </li>
+ <li>
+ <a href="/blogs" class="standardLinkArrow">
+ Go to JBoss Feeds Central
+ </a>
+ </li>
+ </ul>
+ </div>
+</div>
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list