roller-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From snoopd...@apache.org
Subject svn commit: r593664 [1/2] - in /roller/branches/roller_4.1_dev/apps/weblogger: ./ docs/installguide/ docs/installguide/generated/ docs/installguide/generated/html/ src/java/org/apache/roller/weblogger/business/jpa/ src/java/org/apache/roller/weblogger/...
Date Fri, 09 Nov 2007 21:54:48 GMT
Author: snoopdave
Date: Fri Nov  9 13:54:45 2007
New Revision: 593664

URL: http://svn.apache.org/viewvc?rev=593664&view=rev
Log:
Merging latest from trunk via this merge command:
svn merge -r 576528:590842 https://svn.apache.org/repos/asf/roller/trunk

Added:
    roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/RollerCasPopulator.java
      - copied unchanged from r590842, roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/RollerCasPopulator.java
Modified:
    roller/branches/roller_4.1_dev/apps/weblogger/build.xml
    roller/branches/roller_4.1_dev/apps/weblogger/docs/installguide/generated/html/roller-install-guide.html
    roller/branches/roller_4.1_dev/apps/weblogger/docs/installguide/generated/roller-install-guide.pdf
    roller/branches/roller_4.1_dev/apps/weblogger/docs/installguide/roller-install-guide.odt
    roller/branches/roller_4.1_dev/apps/weblogger/sign-release.sh
    roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAWeblogEntryManagerImpl.java
    roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java
    roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/business/startup/DatabaseInstaller.java
    roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/business/startup/SQLScriptRunner.java
    roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/config/WebloggerConfig.java
    roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/config/roller.properties
    roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/planet/ui/PlanetUIAction.java
    roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogEntry.java
    roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/AuthoritiesPopulator.java
    roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/PlanetModel.java
    roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager.java
    roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.java
    roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java
    roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java
    roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/adminprotocol/Authenticator.java
    roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/xmlrpc/BaseAPIHandler.java
    roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/xmlrpc/BloggerAPIHandler.java
    roller/branches/roller_4.1_dev/apps/weblogger/src/sql/310-to-400-migration.vm
    roller/branches/roller_4.1_dev/apps/weblogger/test/java/org/apache/roller/weblogger/business/WeblogEntryTest.java
    roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties
    roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/jsps/admin/ModifyUser.jsp
    roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/jsps/editor/Bookmarks.jsp
    roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/security.xml
    roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/velocity/templates/feeds/site-comments-atom.vm
    roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/velocity/templates/feeds/site-comments-rss.vm
    roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/velocity/templates/feeds/site-entries-atom.vm
    roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/velocity/templates/feeds/site-entries-rss.vm

Modified: roller/branches/roller_4.1_dev/apps/weblogger/build.xml
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/build.xml?rev=593664&r1=593663&r2=593664&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/build.xml (original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/build.xml Fri Nov  9 13:54:45 2007
@@ -135,7 +135,7 @@
         
         <!-- compile roller business classes -->
         <javac destdir="${build.compile.business}"
-               excludes="org/apache/roller/weblogger/ui/**, org/apache/roller/weblogger/webservices/**, org/apache/roller/weblogger/planet/**"
+               excludes="**/hibernate/**,org/apache/roller/weblogger/ui/**, org/apache/roller/weblogger/webservices/**, org/apache/roller/weblogger/planet/**"
                debug="${build.debug}" 
                source="${build.sourcelevel}"
                deprecation="${build.deprecation}">
@@ -495,42 +495,33 @@
     <!-- Create Source Release -->
     <!-- ********************************************************************* -->
     
-    <target name="stage-sources" depends="version-check">
+    <target name="stage-sources">
         
         <copy todir="${build.dist.sources}">
-            <fileset dir="${basedir}">
-                <include name="src/**" />
-                <include name="tests/**" />
-                <include name="testdata/**" />
-                <include name="metadata/**" />
-                <include name="personal/**" />
-                <include name="custom/**" />
-                <include name="contrib/**" />
-                <include name="web/**" />
-                <include name="docs/**" />
-                <include name="tools/**" />
-                <include name="ant.properties" />
-                <include name="build.bat" />
-                <include name="build.sh" />
-                <include name="build.xml" />
-                <include name="properties.xmlf" />
-                <include name="CHANGES.txt" />
-                <include name="LICENSE.txt" />
-                <include name="NOTICE.txt" />
-                <include name="README.txt" />
+            <fileset dir="${basedir}/../.."> 
                 
-                <exclude name="**/codewright*/**"/>
-                <exclude name="docs/installguide/old/**"/>
-                <exclude name="docs/userguide/old/**"/>
-                <exclude name="**/CVS/**"/>
-                <exclude name="**/*.bak"/>
-                <exclude name="**/*-hide"/>
-                <exclude name="**/*.diff"/>
-                <exclude name="**/*.patch"/>
-                <exclude name="**/*~"/>
-                <exclude name="**/*.#*"/>
-                <exclude name="**/WS_FTP.LOG"/>
-                <exclude name="**/.nbattrs"/>
+                <include name="**/**" />
+                
+                <!-- Don't ship top level build script, it's confusing -->
+                <exclude name="build.xml"/>    
+                
+                <!-- Or marginalia -->
+                <exclude name="doap_roller.rdf"/>    
+                <exclude name="tlp-resolution.txt"/>    
+                
+                <!-- Don't ship sandbox or website -->
+                <exclude name="site/**"/>
+                <exclude name="sandbox/**"/>
+
+                <!-- And don't ship any Hibernate dependent code -->
+                <exclude name="**/hibernate/**"/>
+
+                <!-- Don't ship log files, build results or Subversion dirs -->
+                <exclude name="**/*.log"/>
+                <exclude name="**/dist/**"/>
+                <exclude name="**/build/**"/>
+                <exclude name="**/.svn/**"/>
+               
             </fileset>
         </copy>
         
@@ -582,12 +573,6 @@
         </zip>
         
     </target>
-    
-    
-    <target name="version-check" if="java15.present" >
-        <fail message="ERROR: DON'T BUILD RELEASES WITH JAVA 1.5 (yet)" />
-    </target>
-    
     
     <!-- ********************************************************************* -->
     <!-- TEST targets -->

Modified: roller/branches/roller_4.1_dev/apps/weblogger/docs/installguide/generated/html/roller-install-guide.html
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/docs/installguide/generated/html/roller-install-guide.html?rev=593664&r1=593663&r2=593664&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/docs/installguide/generated/html/roller-install-guide.html (original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/docs/installguide/generated/html/roller-install-guide.html Fri Nov  9 13:54:45 2007
@@ -3,12 +3,12 @@
 <HEAD>
 	<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-1">
 	<TITLE></TITLE>
-	<META NAME="GENERATOR" CONTENT="OpenOffice.org 2.1  (Solaris x86)">
+	<META NAME="GENERATOR" CONTENT="OpenOffice.org 2.3  (Solaris x86)">
 	<META NAME="CREATED" CONTENT="20070706;11182000">
 	<META NAME="CHANGEDBY" CONTENT="Dave Johnson">
-	<META NAME="CHANGED" CONTENT="20070811;13071400">
+	<META NAME="CHANGED" CONTENT="20071023;23392500">
 	<META NAME="KEYWORDS" CONTENT="OpenDS Directory Server Administration Framework">
-	<STYLE>
+	<STYLE TYPE="text/css">
 	<!--
 		P { margin-bottom: 0.08in; widows: 2; orphans: 2 }
 		P.western { font-family: "Times New Roman", serif }
@@ -148,7 +148,7 @@
 4.0 </B></FONT></FONT>
 </P>
 <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in; background: transparent">
-<SDFIELD TYPE=DOCINFO SUBTYPE=CHANGE FORMAT=DATE SDNUM="1033;1033;MMMM YYYY">August 2007</SDFIELD></P>
+<SDFIELD TYPE=DOCINFO SUBTYPE=CHANGE FORMAT=DATE SDNUM="1033;1033;MMMM YYYY">October 2007</SDFIELD></P>
 <P CLASS="western" ALIGN=LEFT STYLE="margin-bottom: 0in; background: transparent">
 <BR>
 </P>
@@ -325,23 +325,23 @@
 mail connection parameters for those in bold.</P>
 <PRE>        <FONT SIZE=2 STYLE="font-size: 11pt">installation.type=auto</FONT>
         <FONT SIZE=2 STYLE="font-size: 11pt">database.configurationType=jdbc</FONT>
-        <FONT SIZE=2 STYLE="font-size: 11pt">database.jdbc.driverClass=<B><I>com.mysql.jdbc.Driver</I></B></FONT>
-        <FONT SIZE=2 STYLE="font-size: 11pt">database.jdbc.connectionURL=<B><I>jdbc:mysql://localhost:3306/rollerdb</I></B></FONT>
-        <FONT SIZE=2 STYLE="font-size: 11pt">database.jdbc.username=<B><I>scott</I></B></FONT>
-        <FONT SIZE=2 STYLE="font-size: 11pt">database.jdbc.password=<B><I>tiger</I></B></FONT>
+        <FONT SIZE=2 STYLE="font-size: 11pt">database.jdbc.driverClass=<I><B>com.mysql.jdbc.Driver</B></I></FONT>
+        <FONT SIZE=2 STYLE="font-size: 11pt">database.jdbc.connectionURL=<I><B>jdbc:mysql://localhost:3306/rollerdb</B></I></FONT>
+        <FONT SIZE=2 STYLE="font-size: 11pt">database.jdbc.username=<I><B>scott</B></I></FONT>
+        <FONT SIZE=2 STYLE="font-size: 11pt">database.jdbc.password=<I><B>tiger</B></I></FONT>
         <FONT SIZE=2 STYLE="font-size: 11pt">mail.configurationType=properties</FONT>
-        <FONT SIZE=2 STYLE="font-size: 11pt">mail.hostName=</FONT><TT><B><I><FONT SIZE=2 STYLE="font-size: 11pt"><FONT FACE="Courier New">smtp-server.example.com</FONT></FONT></I></B></TT>
-<TT>        <FONT SIZE=2 STYLE="font-size: 11pt"><FONT FACE="Courier New"><SPAN STYLE="font-weight: medium"><SPAN STYLE="font-style: normal">mail.username=</SPAN></SPAN><B><I>scott</I></B></FONT></FONT></TT>
-<TT>        <FONT SIZE=2 STYLE="font-size: 11pt"><FONT FACE="Courier New"><SPAN STYLE="font-weight: medium"><SPAN STYLE="font-style: normal">mail.password=</SPAN></SPAN><B><I>tiger</I></B></FONT></FONT></TT>
+        <FONT SIZE=2 STYLE="font-size: 11pt">mail.hostname=</FONT><TT><FONT FACE="Courier New"><FONT SIZE=2 STYLE="font-size: 11pt"><I><B>smtp-server.example.com</B></I></FONT></FONT></TT>
+<TT>        <FONT FACE="Courier New"><FONT SIZE=2 STYLE="font-size: 11pt"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: medium">mail.username=</SPAN></SPAN></FONT></FONT></TT><TT><FONT FACE="Courier New"><FONT SIZE=2 STYLE="font-size: 11pt"><I><B>scott</B></I></FONT></FONT></TT>
+<TT>        <FONT FACE="Courier New"><FONT SIZE=2 STYLE="font-size: 11pt"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: medium">mail.password=</SPAN></SPAN></FONT></FONT></TT><TT><FONT FACE="Courier New"><FONT SIZE=2 STYLE="font-size: 11pt"><I><B>tiger</B></I></FONT></FONT></TT>
 </PRE><P CLASS="western">
 <B>STEP 4: Check your Servlet container's JDBC and JavaMail setup.
 </B><SPAN STYLE="font-weight: medium">Make sure you've got the JDBC
 driver for your database in your Servlet container's classpath, e.g.
-on Tomcat place the driver JAR in <FONT FACE="Courier New, monospace">common/lib</FONT>.
+on Tomcat place the driver JAR in </SPAN><FONT FACE="Courier New, monospace"><SPAN STYLE="font-weight: medium">common/lib</SPAN></FONT><SPAN STYLE="font-weight: medium">.
 And on Tomcat, if you want to be able to send mail you'll need to add
-the JavaMail and Activation jars (<FONT FACE="Courier New, monospace">mail.jar</FONT>
-and <FONT FACE="Courier New, monospace">activation.jar</FONT>) there
-too.</SPAN></P>
+the JavaMail and Activation jars (</SPAN><FONT FACE="Courier New, monospace"><SPAN STYLE="font-weight: medium">mail.jar</SPAN></FONT><SPAN STYLE="font-weight: medium">
+and </SPAN><FONT FACE="Courier New, monospace"><SPAN STYLE="font-weight: medium">activation.jar</SPAN></FONT><SPAN STYLE="font-weight: medium">)
+there too.</SPAN></P>
 <P CLASS="western"><B>STEP 5: Deploy Roller to your Servlet container</B>
 using your container's Admin Console deploy Roller as a directory.
 The Roller WAR directory is in the installation directory under
@@ -385,22 +385,22 @@
 otherwise you are ready to move on to Section 4: Download and
 un-package Roller.</I></FONT></FONT></P>
 <H2 CLASS="western">3.1Tomcat: JavaMail and Activation</H2>
-<P CLASS="western" STYLE="font-style: normal"><FONT SIZE=3><FONT FACE="Times New Roman, serif">Tomcat
+<P CLASS="western" STYLE="font-style: normal"><FONT FACE="Times New Roman, serif"><FONT SIZE=3>Tomcat
 does not include the Java Mail and Activation jars that Roller needs
 for email notification, So, if you like to use Roller's e-mail
 notification features, you'll need to download those jars and place
 them in Tomcat's classpath. Download them from Sun
-(</FONT></FONT><A HREF="http://java.sun.com/products/javamail"><FONT SIZE=3><FONT FACE="Times New Roman, serif">http://java.sun.com/products/javamail</FONT></FONT></A><FONT SIZE=3><FONT FACE="Times New Roman, serif">)
-and place them in Tomcat's </FONT><FONT FACE="Courier New, monospace">common/lib</FONT><FONT FACE="Times New Roman, serif">
+(</FONT></FONT><A HREF="http://java.sun.com/products/javamail"><FONT FACE="Times New Roman, serif"><FONT SIZE=3>http://java.sun.com/products/javamail</FONT></FONT></A><FONT FACE="Times New Roman, serif"><FONT SIZE=3>)
+and place them in Tomcat's </FONT></FONT><FONT FACE="Courier New, monospace"><FONT SIZE=3>common/lib</FONT></FONT><FONT FACE="Times New Roman, serif"><FONT SIZE=3>
 directory.</FONT></FONT></P>
 <H2 CLASS="western">3.2Tomcat: URI encoding needed for I118N</H2>
-<P CLASS="western"><SPAN STYLE="font-style: normal"><FONT SIZE=3><FONT FACE="Times New Roman, serif">Roller
+<P CLASS="western"><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal">Roller
 supports internationalization (I18N), but on Tomcat some additional
 configuration is necessary. You must ensure that Tomcat's URI
 encoding is set to UTF-8. You can do this by editing the Tomcat
-configuration file </FONT><FONT FACE="Courier New">conf/server.xml</FONT><FONT FACE="Times New Roman, serif">
-and adding </FONT><FONT FACE="Courier New, monospace">URIEncoding=&rdquo;UTF-8&rdquo;</FONT><FONT FACE="Times New Roman, serif">
-to each connector element, as shown below:</FONT></FONT></SPAN></P>
+configuration file </SPAN></FONT></FONT><FONT FACE="Courier New"><FONT SIZE=3><SPAN STYLE="font-style: normal">conf/server.xml</SPAN></FONT></FONT><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal">
+and adding </SPAN></FONT></FONT><FONT FACE="Courier New, monospace"><FONT SIZE=3><SPAN STYLE="font-style: normal">URIEncoding=&rdquo;UTF-8&rdquo;</SPAN></FONT></FONT><FONT FACE="Times New Roman, serif"><FONT SIZE=3><SPAN STYLE="font-style: normal">
+to each connector element, as shown below:</SPAN></FONT></FONT></P>
 <PRE>   &lt;Connector port=&quot;8080&quot;
       maxThreads=&quot;150&quot; minSpareThreads=&quot;25&quot; maxSpareThreads=&quot;75&quot;
       enableLookups=&quot;false&quot; redirectPort=&quot;8443&quot; debug=&quot;0&quot; 
@@ -532,12 +532,12 @@
 settings appropriate for your database and mail server.</P>
 <PRE>   installation.type=auto
    database.configurationType=jdbc
-   database.jdbc.driverClass=<B><I>JDBC driver class name</I></B>]
-   database.jdbc.connectionURL=<B><I>JDBC connection URL</I></B>
-   database.jdbc.username=<B><I>database username</I></B>
-   database.jdbc.password=<B><I>database password</I></B>
+   database.jdbc.driverClass=<I><B>JDBC driver class name</B></I>]
+   database.jdbc.connectionURL=<I><B>JDBC connection URL</B></I>
+   database.jdbc.username=<I><B>database username</B></I>
+   database.jdbc.password=<I><B>database password</B></I>
    mail.configurationType=properties
-   mail.hostName=<B><I>mail server hostname</I></B></PRE><P CLASS="western">
+   mail.hostname=<I><B>mail server hostname</B></I></PRE><P CLASS="western">
 <BR><BR>
 </P>
 <P CLASS="western">The <FONT FACE="Courier New, monospace">installation.type=auto</FONT>
@@ -557,14 +557,14 @@
 username/password settings for the mail connection.</P>
 <PRE>   installation.type=auto
    database.configurationType=jdbc
-   database.jdbc.driverClass=<B><I>com.mysql.jdbc.Driver</I></B>
-   database.jdbc.connectionURL=<B><I>jdbc:mysql://localhost:3306/rollerdb</I></B>
-   database.jdbc.username=<B><I>scott</I></B>
-   database.jdbc.password=<B><I>tiger</I></B>
+   database.jdbc.driverClass=<I><B>com.mysql.jdbc.Driver</B></I>
+   database.jdbc.connectionURL=<I><B>jdbc:mysql://localhost:3306/rollerdb</B></I>
+   database.jdbc.username=<I><B>scott</B></I>
+   database.jdbc.password=<I><B>tiger</B></I>
    mail.configurationType=properties
-   mail.hostName=<TT><B><I><FONT FACE="Courier New">smtp-server.example.com</FONT></I></B></TT>
-<TT>   <FONT FACE="Courier New"><SPAN STYLE="font-weight: medium"><SPAN STYLE="font-style: normal">mail.username=</SPAN></SPAN><B><I>scott</I></B></FONT></TT>
-<TT>   <FONT FACE="Courier New"><SPAN STYLE="font-weight: medium"><SPAN STYLE="font-style: normal">mail.password=</SPAN></SPAN><B><I>tiger</I></B></FONT></TT>
+   mail.hostname=<TT><FONT FACE="Courier New"><I><B>smtp-server.example.com</B></I></FONT></TT>
+<TT>   <FONT FACE="Courier New"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: medium">mail.username=</SPAN></SPAN></FONT></TT><TT><FONT FACE="Courier New"><I><B>scott</B></I></FONT></TT>
+<TT>   <FONT FACE="Courier New"><SPAN STYLE="font-style: normal"><SPAN STYLE="font-weight: medium">mail.password=</SPAN></SPAN></FONT></TT><TT><FONT FACE="Courier New"><I><B>tiger</B></I></FONT></TT>
 </PRE><P CLASS="western">
 Next, we'll deploy Roller.</P>
 <H1 CLASS="western" STYLE="page-break-before: always">7Deploy Roller</H1>
@@ -617,9 +617,9 @@
 there are options to start, stop, reload and undeploy.</SPAN></P>
 <P CLASS="western"><IMG SRC="roller-install-guide_html_m21a69a6a.png" NAME="graphics4" ALIGN=LEFT WIDTH=596 HEIGHT=77 BORDER=0><BR CLEAR=LEFT><SPAN STYLE="background: transparent">If
 Roller doesn't start-up, look for the problem in the logs. You can
-find them in Tomcat's <FONT FACE="Courier New, monospace">logs</FONT>
-directory. The Tomcat log file is <FONT FACE="Courier New, monospace">catalina.out</FONT>
-and the Roller log  is <FONT FACE="Courier New, monospace">roller.log</FONT>.</SPAN></P>
+find them in Tomcat's </SPAN><FONT FACE="Courier New, monospace"><SPAN STYLE="background: transparent">logs</SPAN></FONT><SPAN STYLE="background: transparent">
+directory. The Tomcat log file is </SPAN><FONT FACE="Courier New, monospace"><SPAN STYLE="background: transparent">catalina.out</SPAN></FONT><SPAN STYLE="background: transparent">
+and the Roller log  is </SPAN><FONT FACE="Courier New, monospace"><SPAN STYLE="background: transparent">roller.log</SPAN></FONT><SPAN STYLE="background: transparent">.</SPAN></P>
 <H4 CLASS="western" STYLE="page-break-before: always">Deploying to
 Glassfish v2.0</H4>
 <P CLASS="western">You can also deploy to Glassfish as either a
@@ -735,9 +735,9 @@
 <P CLASS="western">Enable Planet by adding the following to your
 <FONT FACE="Courier New, monospace">roller-custom.properties</FONT>
 file:</P>
-<PRE>   <FONT SIZE=2 STYLE="font-size: 11pt"><FONT FACE="Courier New, monospace">planet.aggregator.enabled=<B>true</B></FONT></FONT>
+<PRE>   <FONT SIZE=2 STYLE="font-size: 11pt"><FONT FACE="Courier New, monospace">planet.aggregator.enabled=</FONT><FONT FACE="Courier New, monospace"><B>true</B></FONT></FONT>
 
-   <FONT SIZE=2 STYLE="font-size: 11pt"><FONT FACE="Courier New, monospace"># Tasks which are enabled.  Only tasks listed here will be run.<BR>   tasks.enabled=ScheduledEntriesTask,ResetHitCountsTask,\<BR>   TurnoverReferersTask,PingQueueTask,<B>RefreshPlanetTask,SyncWebsitesTask</B></FONT></FONT>
+   <FONT SIZE=2 STYLE="font-size: 11pt"><FONT FACE="Courier New, monospace"># Tasks which are enabled.  Only tasks listed here will be run.<BR>   tasks.enabled=ScheduledEntriesTask,ResetHitCountsTask,\<BR>   TurnoverReferersTask,PingQueueTask,</FONT><FONT FACE="Courier New, monospace"><B>RefreshPlanetRollerTask,SyncWebsitesTask</B></FONT></FONT>
    
    <FONT SIZE=2 STYLE="font-size: 11pt"># Set of page models specifically for site-wide rendering</FONT>
    <FONT SIZE=2 STYLE="font-size: 11pt">rendering.siteModels=\</FONT>
@@ -778,10 +778,10 @@
 will be display your Planet entries. You can find your Planet feeds
 at the following URLs:</SPAN></P>
 <UL>
-	<LI><P CLASS="western"><SPAN STYLE="background: #ffff00"><A HREF="http://localhost:8080/roller/planetrss"><SPAN STYLE="background: #ffffff"><FONT COLOR="#000000">Main
-	Planet feed<BR><FONT FACE="Courier New, monospace">http://localhost:8080/roller/planetrss</FONT></FONT></SPAN></A></SPAN></P>
-	<LI><P CLASS="western"><SPAN STYLE="background: #ffff00"><A HREF="http://localhost:8080/roller/rollerrss"><SPAN STYLE="background: #ffffff"><FONT COLOR="#000000">Per
-	group feed<BR><FONT FACE="Courier New, monospace">http://localhost:8080/roller/planetrss?group=&lt;group-name&gt;</FONT></FONT></SPAN></A></SPAN></P>
+	<LI><P CLASS="western"><SPAN STYLE="background: #ffff00"><A HREF="http://localhost:8080/roller/planetrss"><FONT COLOR="#000000"><SPAN STYLE="background: #ffffff">Main
+	Planet feed<BR></SPAN></FONT></A><A HREF="http://localhost:8080/roller/planetrss"><FONT COLOR="#000000"><FONT FACE="Courier New, monospace"><SPAN STYLE="background: #ffffff">http://localhost:8080/roller/planetrss</SPAN></FONT></FONT></A></SPAN></P>
+	<LI><P CLASS="western"><SPAN STYLE="background: #ffff00"><A HREF="http://localhost:8080/roller/rollerrss"><FONT COLOR="#000000"><SPAN STYLE="background: #ffffff">Per
+	group feed<BR></SPAN></FONT></A><A HREF="http://localhost:8080/roller/rollerrss"><FONT COLOR="#000000"><FONT FACE="Courier New, monospace"><SPAN STYLE="background: #ffffff">http://localhost:8080/roller/planetrss?group=&lt;group-name&gt;</SPAN></FONT></FONT></A></SPAN></P>
 </UL>
 <H2 CLASS="western">9.2Changing keys in security.xml</SPAN></H2>
 <P CLASS="western">Starting with version 2.1, Roller uses the Acegi
@@ -838,13 +838,13 @@
 <PRE>   installation.type=auto
 
    database.configurationType=jdbc
-   database.jdbc.driverClass=<B><I>JDBC driver class name</I></B>]
-   database.jdbc.connectionURL=<B><I>JDBC connection URL</I></B>
-   database.jdbc.username=<B><I>database username</I></B>
-   database.jdbc.password=<B><I>database password</I></B>
+   database.jdbc.driverClass=<I><B>JDBC driver class name</B></I>]
+   database.jdbc.connectionURL=<I><B>JDBC connection URL</B></I>
+   database.jdbc.username=<I><B>database username</B></I>
+   database.jdbc.password=<I><B>database password</B></I>
 
    mail.configurationType=properties
-   mail.hostName=<B><I>mail server hostname</I></B>
+   mail.hostName=<I><B>mail server hostname</B></I>
 </PRE><P CLASS="western">
 You do it like this:</P>
 <PRE>    installation.type=auto
@@ -961,18 +961,19 @@
 are upgrading and you want your weblogs to work, you <I>must</I>
 override this Roller property to enable the old &ldquo;legacy&rdquo;
 template system to work:</SPAN></P>
-<P CLASS="western"><FONT FACE="Courier New"><SPAN STYLE="background: transparent">	rendering.legacyModels.enabled=true</SPAN></FONT></P>
+<P CLASS="western"><A NAME="DDE_LINK"></A><FONT FACE="Courier New"><SPAN STYLE="background: transparent">	rendering.legacyModels.enabled=true</SPAN></FONT></P>
 <P CLASS="western"><SPAN STYLE="background: transparent">See <B>Section
 11</B> for information on overriding Roller startup properties.</SPAN></P>
 <H4 CLASS="western">New task management system</H4>
 <P CLASS="western" STYLE="margin-bottom: 0in"><SPAN STYLE="background: transparent"><SPAN STYLE="font-weight: medium">In
 Roller 3.1 we changed the scheduled task properties, so if you were
-overriding  the<FONT FACE="Courier New, monospace"> tasks.daily</FONT>
-or <FONT FACE="Courier New, monospace">tasks.hourly</FONT> properties
-you need to change your <FONT FACE="Courier New, monospace">roller-custom.properties</FONT>
+overriding  the</SPAN><FONT FACE="Courier New, monospace"><SPAN STYLE="font-weight: medium">
+tasks.daily</SPAN></FONT><SPAN STYLE="font-weight: medium"> or
+</SPAN><FONT FACE="Courier New, monospace"><SPAN STYLE="font-weight: medium">tasks.hourly</SPAN></FONT><SPAN STYLE="font-weight: medium">
+properties you need to change your </SPAN><FONT FACE="Courier New, monospace"><SPAN STYLE="font-weight: medium">roller-custom.properties</SPAN></FONT><SPAN STYLE="font-weight: medium">
 file. Refer to the notes in </SPAN><B>Section 11</B><SPAN STYLE="font-weight: medium">
-  <FONT FACE="Courier New, monospace">roller.properties</FONT> in the
-Scheduled Tasks Configuration area.</SPAN></SPAN></P>
+  </SPAN><FONT FACE="Courier New, monospace"><SPAN STYLE="font-weight: medium">roller.properties</SPAN></FONT><SPAN STYLE="font-weight: medium">
+in the Scheduled Tasks Configuration area.</SPAN></SPAN></P>
 <H4 CLASS="western">New package names</H4>
 <P CLASS="western"><SPAN STYLE="background: transparent">In Roller
 3.0 or package names went from from org.roller to org.apache.roller.
@@ -980,6 +981,15 @@
 So check your configuration files for references to the old package
 names. And if you created any plugins, you'll have to recompile them
 against the new code base.</SPAN></P>
+<H4 CLASS="western">Encrypted passwords now the default</H4>
+<P CLASS="western"><SPAN STYLE="background: transparent">Roller now
+defaults to storing passwords in the database in an emcrypted format.
+So, if you are upgrading an older version of Roller and you went with
+the default setting for encrypted passwords, which was off by
+default, then you'll need to set this propery in your
+</SPAN><FONT FACE="Courier New, monospace"><SPAN STYLE="background: transparent">roller-custom.properties</SPAN></FONT><SPAN STYLE="background: transparent">
+file:</SPAN></P>
+<P CLASS="western"><FONT FACE="Courier New"><SPAN STYLE="background: transparent">	passwds.encryption.enabled=false</SPAN></FONT></P>
 <H4 CLASS="western">Non-core themes removed</H4>
 <P CLASS="western"><SPAN STYLE="background: transparent">The Roller
 project is establishing a community site for sharing and maintaining

Modified: roller/branches/roller_4.1_dev/apps/weblogger/docs/installguide/generated/roller-install-guide.pdf
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/docs/installguide/generated/roller-install-guide.pdf?rev=593664&r1=593663&r2=593664&view=diff
==============================================================================
Binary files - no diff available.

Modified: roller/branches/roller_4.1_dev/apps/weblogger/docs/installguide/roller-install-guide.odt
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/docs/installguide/roller-install-guide.odt?rev=593664&r1=593663&r2=593664&view=diff
==============================================================================
Binary files - no diff available.

Modified: roller/branches/roller_4.1_dev/apps/weblogger/sign-release.sh
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/sign-release.sh?rev=593664&r1=593663&r2=593664&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/sign-release.sh (original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/sign-release.sh Fri Nov  9 13:54:45 2007
@@ -1,5 +1,5 @@
 
-export rcstring="-rc2"
+export rcstring="-rc8"
 export vstring="4.0"
 
 cp dist/apache-roller-${vstring}.tar.gz dist/apache-roller-${vstring}${rcstring}.tar.gz

Modified: roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAWeblogEntryManagerImpl.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAWeblogEntryManagerImpl.java?rev=593664&r1=593663&r2=593664&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAWeblogEntryManagerImpl.java (original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/business/jpa/JPAWeblogEntryManagerImpl.java Fri Nov  9 13:54:45 2007
@@ -366,6 +366,17 @@
             }
         }
         
+        // remove attributes
+        if (entry.getEntryAttributes() != null) {
+            for (Iterator it = entry.getEntryAttributes().iterator(); it.hasNext(); ) {
+                WeblogEntryAttribute att = (WeblogEntryAttribute) it.next();
+                it.remove();
+                this.strategy.remove(att);
+            }
+        }
+        // TODO: can we eliminate this unnecessary flush with OpenJPA 1.0
+        this.strategy.flush();
+        
         // remove entry
         this.strategy.remove(entry);
         
@@ -647,8 +658,6 @@
         for (Iterator it = entry.getEntryAttributes().iterator(); it.hasNext();) {
             WeblogEntryAttribute entryAttribute = (WeblogEntryAttribute) it.next();
             if (entryAttribute.getName().equals(name)) {
-                //Call back the entity to adjust its internal state
-                entry.onRemoveEntryAttribute(entryAttribute);
                 //Remove it from database
                 this.strategy.remove(entryAttribute);
                 //Remove it from the collection

Modified: roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java?rev=593664&r1=593663&r2=593664&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java (original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/business/pings/WeblogUpdatePinger.java Fri Nov  9 13:54:45 2007
@@ -18,6 +18,7 @@
 
 package org.apache.roller.weblogger.business.pings;
 
+import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.roller.weblogger.config.PingConfig;
 import org.apache.roller.weblogger.pojos.PingTarget;
@@ -31,10 +32,9 @@
 import java.net.URL;
 import java.net.UnknownHostException;
 import java.util.ArrayList;
-import java.util.Hashtable;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
-import org.apache.commons.logging.Log;
 
 /**
  * Utility for sending a weblog update ping.
@@ -94,8 +94,8 @@
      * @param pingTarget         the target site to ping
      * @param website            the website that changed (from which the ping originates)
      * @return the result message string sent by the server.
-     * @throws IOException
-     * @throws XmlRpcException
+     * @throws IOException if an IOException occurs during the ping
+     * @throws XmlRpcException if the XML RPC client throws one
      */
     public static PingResult sendPing(PingTarget pingTarget, Weblog website) throws IOException, XmlRpcException {
         String websiteUrl = website.getAbsoluteURL();
@@ -113,7 +113,7 @@
             logger.debug("Executing ping to '" + pingTargetUrl + "' for website '" + websiteUrl + "' (" + website.getName() + ")" + (variantOptions.isEmpty() ? "" : " with variant options " + variantOptions));
         }
 
-        // Send the ping.        
+        // Send the ping.
         XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
         config.setServerURL(new URL(pingTargetUrl));
         XmlRpcClient client = new XmlRpcClient();
@@ -128,8 +128,8 @@
         // Deal with the fact that some buggy ping targets may not respond with the proper struct type.
         if (obj == null) return new PingResult(null,null);
         try {
-            // normal case: response is a struct (represented as a Hashtable) with Boolean flerror and String fields.
-            Hashtable result = (Hashtable) obj;
+            // normal case: response is a struct (represented as a Map) with Boolean flerror and String fields.
+            Map result = (Map) obj;
             return new PingResult((Boolean) result.get("flerror"), (String) result.get("message"));
         } catch (Exception ex) {
             // exception case:  The caller responded with an unexpected type, though parsed at the basic XML RPC level.

Modified: roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/business/startup/DatabaseInstaller.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/business/startup/DatabaseInstaller.java?rev=593664&r1=593663&r2=593664&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/business/startup/DatabaseInstaller.java (original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/business/startup/DatabaseInstaller.java Fri Nov  9 13:54:45 2007
@@ -177,8 +177,8 @@
             log.error("ERROR running database creation script", ioe);
             if (create != null) messages.addAll(create.getMessages());
             errorMessage("ERROR reading/parsing database creation script");
-            throw new StartupException("Error running sql script", ioe);
-         
+            throw new StartupException("Error running SQL script", ioe);
+
         } finally {
             try { if (con != null) con.close(); } catch (Exception ignored) {}
         }
@@ -266,12 +266,13 @@
      * Upgrade database for Roller 1.3.0
      */
     private void upgradeTo130(Connection con, boolean runScripts) throws StartupException {
+        SQLScriptRunner runner = null;
         try {
             if (runScripts) {
                 String handle = getDatabaseHandle(con);
                 String scriptPath = handle + "/120-to-130-migration.sql";
                 successMessage("Running database upgrade script: "+scriptPath);                
-                SQLScriptRunner runner = new SQLScriptRunner(scripts.getDatabaseScript(scriptPath));
+                runner = new SQLScriptRunner(scripts.getDatabaseScript(scriptPath));
                 runner.runScript(con, true);
                 messages.addAll(runner.getMessages());
             }
@@ -303,6 +304,9 @@
             successMessage("Upgrade to 130 complete.");
             
         } catch (Exception e) {
+            log.error("ERROR running 310 database upgrade script", e);
+            if (runner != null) messages.addAll(runner.getMessages());
+            
             errorMessage("Problem upgrading database to version 130", e);  
             throw new StartupException("Problem upgrading database to version 130", e);
         }
@@ -314,12 +318,13 @@
      * Upgrade database for Roller 2.0.0
      */
     private void upgradeTo200(Connection con, boolean runScripts) throws StartupException {
+        SQLScriptRunner runner = null;
         try {
             if (runScripts) {
                 String handle = getDatabaseHandle(con);
                 String scriptPath = handle + "/130-to-200-migration.sql";
                 successMessage("Running database upgrade script: "+scriptPath);                
-                SQLScriptRunner runner = new SQLScriptRunner(scripts.getDatabaseScript(scriptPath));
+                runner = new SQLScriptRunner(scripts.getDatabaseScript(scriptPath));
                 runner.runScript(con, true);
                 messages.addAll(runner.getMessages());
             }
@@ -390,6 +395,9 @@
             successMessage("Upgrade to 200 complete.");
             
         } catch (Exception e) {
+            log.error("ERROR running 310 database upgrade script", e);
+            if (runner != null) messages.addAll(runner.getMessages());
+            
             errorMessage("Problem upgrading database to version 200", e);
             throw new StartupException("Problem upgrading database to version 200", e);
         }
@@ -402,12 +410,13 @@
      * Upgrade database for Roller 2.1.0
      */
     private void upgradeTo210(Connection con, boolean runScripts) throws StartupException {
+        SQLScriptRunner runner = null;
         try {
             if (runScripts) {
                 String handle = getDatabaseHandle(con);
                 String scriptPath = handle + "/200-to-210-migration.sql";
                 successMessage("Running database upgrade script: "+scriptPath);                
-                SQLScriptRunner runner = new SQLScriptRunner(scripts.getDatabaseScript(scriptPath));
+                runner = new SQLScriptRunner(scripts.getDatabaseScript(scriptPath));
                 runner.runScript(con, true);
                 messages.addAll(runner.getMessages());
             }
@@ -505,6 +514,9 @@
             successMessage("Upgrade to 210 complete.");
             
         } catch (Exception e) {
+            log.error("ERROR running 310 database upgrade script", e);
+            if (runner != null) messages.addAll(runner.getMessages());
+            
             log.error("Problem upgrading database to version 210", e);
             throw new StartupException("Problem upgrading database to version 210", e);
         }
@@ -517,16 +529,20 @@
      * Upgrade database for Roller 2.3.0
      */
     private void upgradeTo230(Connection con, boolean runScripts) throws StartupException {
+        SQLScriptRunner runner = null;
         try {
             if (runScripts) {
                 String handle = getDatabaseHandle(con);
                 String scriptPath = handle + "/210-to-230-migration.sql";
                 successMessage("Running database upgrade script: "+scriptPath);                
-                SQLScriptRunner runner = new SQLScriptRunner(scripts.getDatabaseScript(scriptPath));
+                runner = new SQLScriptRunner(scripts.getDatabaseScript(scriptPath));
                 runner.runScript(con, true);
                 messages.addAll(runner.getMessages());
             }
         } catch (Exception e) {
+            log.error("ERROR running 310 database upgrade script", e);
+            if (runner != null) messages.addAll(runner.getMessages());
+            
             errorMessage("Problem upgrading database to version 230", e);
             throw new StartupException("Problem upgrading database to version 230", e);
         }
@@ -539,16 +555,20 @@
      * Upgrade database for Roller 2.4.0
      */
     private void upgradeTo240(Connection con, boolean runScripts) throws StartupException {
+        SQLScriptRunner runner = null;
         try {
             if (runScripts) {
                 String handle = getDatabaseHandle(con);
                 String scriptPath = handle + "/230-to-240-migration.sql";
                 successMessage("Running database upgrade script: "+scriptPath);                
-                SQLScriptRunner runner = new SQLScriptRunner(scripts.getDatabaseScript(scriptPath));
+                runner = new SQLScriptRunner(scripts.getDatabaseScript(scriptPath));
                 runner.runScript(con, true);
                 messages.addAll(runner.getMessages());
             }
         } catch (Exception e) {
+            log.error("ERROR running 310 database upgrade script", e);
+            if (runner != null) messages.addAll(runner.getMessages());
+            
             errorMessage("Problem upgrading database to version 240", e);
             throw new StartupException("Problem upgrading database to version 240", e);
         }
@@ -561,12 +581,13 @@
      * Upgrade database for Roller 3.0.0
      */
     private void upgradeTo300(Connection con, boolean runScripts) throws StartupException {
+        SQLScriptRunner runner = null;
         try {
             if (runScripts) {
                 String handle = getDatabaseHandle(con);
                 String scriptPath = handle + "/240-to-300-migration.sql";
                 successMessage("Running database upgrade script: "+scriptPath);                
-                SQLScriptRunner runner = new SQLScriptRunner(scripts.getDatabaseScript(scriptPath));
+                runner = new SQLScriptRunner(scripts.getDatabaseScript(scriptPath));
                 runner.runScript(con, true);
                 messages.addAll(runner.getMessages());
             }
@@ -629,6 +650,9 @@
             successMessage("Upgrade to 300 complete.");
             
         } catch (Exception e) {
+            log.error("ERROR running 310 database upgrade script", e);
+            if (runner != null) messages.addAll(runner.getMessages());
+            
             errorMessage("Problem upgrading database to version 300", e);
             throw new StartupException("Problem upgrading database to version 300", e);
         }
@@ -641,16 +665,20 @@
      * Upgrade database for Roller 3.1.0
      */
     private void upgradeTo310(Connection con, boolean runScripts) throws StartupException {
+        SQLScriptRunner runner = null;
         try {
             if (runScripts) {
                 String handle = getDatabaseHandle(con);
                 String scriptPath = handle + "/300-to-310-migration.sql";
                 successMessage("Running database upgrade script: "+scriptPath);                
-                SQLScriptRunner runner = new SQLScriptRunner(scripts.getDatabaseScript(scriptPath));
+                runner = new SQLScriptRunner(scripts.getDatabaseScript(scriptPath));
                 runner.runScript(con, true);
                 messages.addAll(runner.getMessages());
             }
         } catch (Exception e) {
+            log.error("ERROR running 310 database upgrade script", e);
+            if (runner != null) messages.addAll(runner.getMessages());
+            
             errorMessage("Problem upgrading database to version 310", e);
             throw new StartupException("Problem upgrading database to version 310", e);
         }
@@ -667,16 +695,20 @@
         successMessage("Doing upgrade to 400 ...");
         
         // first we need to run upgrade scripts 
+        SQLScriptRunner runner = null;
         try {    
             if (runScripts) {
                 String handle = getDatabaseHandle(con);
                 String scriptPath = handle + "/310-to-400-migration.sql";
                 successMessage("Running database upgrade script: "+scriptPath);                
-                SQLScriptRunner runner = new SQLScriptRunner(scripts.getDatabaseScript(scriptPath));
+                runner = new SQLScriptRunner(scripts.getDatabaseScript(scriptPath));
                 runner.runScript(con, true);
                 messages.addAll(runner.getMessages());
             }
         } catch(Exception ex) {
+            log.error("ERROR running 400 database upgrade script", ex);
+            if (runner != null) messages.addAll(runner.getMessages());
+            
             errorMessage("Problem upgrading database to version 400", ex);
             throw new StartupException("Problem upgrading database to version 400", ex);
         }
@@ -963,7 +995,7 @@
                         con.prepareStatement("select id,feed_url,author from rag_subscription");
             
             PreparedStatement updateSubUrl = 
-                    con.prepareStatement("update rag_subscription set feed_url = ? where id = ?");
+                    con.prepareStatement("update rag_subscription set last_updated=last_updated, feed_url = ? where id = ?");
             
             ResultSet rset = selectSubs.executeQuery();
             while (rset.next()) {
@@ -1060,14 +1092,14 @@
             
             // set content-type for all existing comments
             PreparedStatement updateCommentsContentType = 
-                    con.prepareStatement("update roller_comment set contenttype = ?");
+                    con.prepareStatement("update roller_comment set posttime=posttime, contenttype = ?");
             updateCommentsContentType.clearParameters();
             updateCommentsContentType.setString(1, contentType);
             updateCommentsContentType.executeUpdate();
 
             // set plugins for all existing comments
             PreparedStatement updateCommentsPlugins = 
-                    con.prepareStatement("update roller_comment set plugins = ?");
+                    con.prepareStatement("update roller_comment set posttime=posttime, plugins = ?");
             updateCommentsPlugins.clearParameters();
             updateCommentsPlugins.setString(1, plugins);
             updateCommentsPlugins.executeUpdate();

Modified: roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/business/startup/SQLScriptRunner.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/business/startup/SQLScriptRunner.java?rev=593664&r1=593663&r2=593664&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/business/startup/SQLScriptRunner.java (original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/business/startup/SQLScriptRunner.java Fri Nov  9 13:54:45 2007
@@ -43,7 +43,6 @@
     
     private static Log   log = LogFactory.getLog(SQLScriptRunner.class);
     
-    private String       scriptPath = null;
     private List<String> commands = new ArrayList<String>();
     private List<String> messages = new ArrayList<String>();
     private boolean      failed = false;
@@ -55,7 +54,6 @@
         
         log.debug("instantiated");
         
-        this.scriptPath = scriptPath;
         BufferedReader in = new BufferedReader(new InputStreamReader(is));
         String command = ""; 
         String line;

Modified: roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/config/WebloggerConfig.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/config/WebloggerConfig.java?rev=593664&r1=593663&r2=593664&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/config/WebloggerConfig.java (original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/config/WebloggerConfig.java Fri Nov  9 13:54:45 2007
@@ -138,7 +138,8 @@
      */
     public static String getProperty(String key) {
         log.debug("Fetching property ["+key+"="+config.getProperty(key)+"]");
-        return config.getProperty(key);
+        String value = config.getProperty(key);
+        return value == null ? value : value.trim();
     }
     
     /**
@@ -153,7 +154,7 @@
         if(value == null)
           return defaultValue;
         
-        return value;
+        return value.trim();
     }
 
     /**

Modified: roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/config/roller.properties
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/config/roller.properties?rev=593664&r1=593663&r2=593664&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/config/roller.properties (original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/config/roller.properties Fri Nov  9 13:54:45 2007
@@ -681,7 +681,6 @@
 Dave Johnson|http://rollerweblogger.org/roller,\
 Matt Raible|http://raibledesigns.com/page/rd,\
 Lance Lavandowska|http://rollerweblogger.org/lance,\
-Henri Yandell|http://blog.generationjava.com/,\
 Elias Torres|http://torrez.us/,\
 Jeff Blattman|http://blogs.sun.com/jtb,\
 blogs.sun.com|http://blogs.sun.com,\

Modified: roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/planet/ui/PlanetUIAction.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/planet/ui/PlanetUIAction.java?rev=593664&r1=593663&r2=593664&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/planet/ui/PlanetUIAction.java (original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/planet/ui/PlanetUIAction.java Fri Nov  9 13:54:45 2007
@@ -31,7 +31,7 @@
     
     private static Log log = LogFactory.getLog(PlanetUIAction.class);
     
-    public static final String PLANET_HANDLE = "zzz_default_planet_zzz";
+    public static final String DEFAULT_PLANET_HANDLE = "default";
     
     // the planet used by all Planet actions
     private Planet planet = null;
@@ -41,9 +41,9 @@
         if(planet == null) {
             try {
                 PlanetManager pmgr = PlanetFactory.getPlanet().getPlanetManager();
-                planet = pmgr.getPlanetById(PLANET_HANDLE);
+                planet = pmgr.getPlanet(DEFAULT_PLANET_HANDLE);
             } catch(Exception ex) {
-                log.error("Error loading weblogger planet - "+PLANET_HANDLE, ex);
+                log.error("Error loading weblogger planet - "+DEFAULT_PLANET_HANDLE, ex);
             }
         }
         return planet;

Modified: roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogEntry.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogEntry.java?rev=593664&r1=593663&r2=593664&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogEntry.java (original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/pojos/WeblogEntry.java Fri Nov  9 13:54:45 2007
@@ -100,7 +100,6 @@
     private WeblogCategory category = null;
     
     // Collection of name/value entry attributes
-    private Map attMap = new HashMap();
     private Set attSet = new TreeSet();
     
     private Set tagSet = new HashSet();
@@ -394,22 +393,8 @@
         return attSet;
     }
     /** @ejb:persistent-field */
-    public void setEntryAttributes(Set attSet) {
-        this.attSet = attSet;
-        
-        // copy set to map
-        if (attSet != null) {
-            this.attSet = attSet;
-            this.attMap = new HashMap();
-            Iterator iter = this.attSet.iterator();
-            while (iter.hasNext()) {
-                WeblogEntryAttribute att = (WeblogEntryAttribute)iter.next();
-                attMap.put(att.getName(), att);
-            }
-        } else {
-            this.attSet = new TreeSet();
-            this.attMap = new HashMap();
-        }
+    public void setEntryAttributes(Set atts) {
+        this.attSet = atts;
     }
     
     
@@ -419,27 +404,33 @@
      * @roller.wrapPojoMethod type="simple"
      */
     public String findEntryAttribute(String name) {
-        WeblogEntryAttribute att = ((WeblogEntryAttribute)attMap.get(name));
-        return (att != null) ? att.getValue() : null;
+        if (getEntryAttributes() != null) {
+            for (Iterator it = getEntryAttributes().iterator(); it.hasNext(); ) {
+                WeblogEntryAttribute att = (WeblogEntryAttribute) it.next();
+                if (name.equals(att.getName())) return att.getValue();
+            }
+        }
+        return null;
     }
-    
-    
+        
     public void putEntryAttribute(String name, String value) throws Exception {
-        WeblogEntryAttribute att = (WeblogEntryAttribute)attMap.get(name);
+        WeblogEntryAttribute att = null;
+        for (Iterator it = getEntryAttributes().iterator(); it.hasNext(); ) {
+            WeblogEntryAttribute o = (WeblogEntryAttribute) it.next();
+            if (name.equals(o.getName())) {
+                att = o; 
+                break;
+            }
+        }
         if (att == null) {
             att = new WeblogEntryAttribute();
             att.setEntry(this);
             att.setName(name);
             att.setValue(value);
-            attMap.put(name, att);
-            attSet.add(att);
+            getEntryAttributes().add(att);
         } else {
             att.setValue(value);
         }
-    }
-    
-    public void onRemoveEntryAttribute(WeblogEntryAttribute att) throws WebloggerException {
-        attMap.remove(att.getName());
     }
     
     //-------------------------------------------------------------------------

Modified: roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/AuthoritiesPopulator.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/AuthoritiesPopulator.java?rev=593664&r1=593663&r2=593664&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/AuthoritiesPopulator.java (original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/core/security/AuthoritiesPopulator.java Fri Nov  9 13:54:45 2007
@@ -1,71 +1,98 @@
 /*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-*  contributor license agreements.  The ASF licenses this file to You
-* under the Apache License, Version 2.0 (the "License"); you may not
-* use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-*     http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.  For additional information regarding
-* copyright in this work, please see the NOTICE file in the top level
-* directory of this distribution.
-*/
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.  For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
 package org.apache.roller.weblogger.ui.core.security;
 
-import java.util.List;
+import java.util.Iterator;
 
+import java.util.List;
 import org.acegisecurity.GrantedAuthority;
 import org.acegisecurity.GrantedAuthorityImpl;
 import org.acegisecurity.ldap.LdapDataAccessException;
 import org.acegisecurity.providers.ldap.LdapAuthoritiesPopulator;
 import org.acegisecurity.userdetails.UsernameNotFoundException;
-import org.acegisecurity.userdetails.jdbc.JdbcDaoImpl;
 import org.acegisecurity.userdetails.ldap.LdapUserDetails;
+import org.apache.roller.weblogger.WebloggerException;
+import org.apache.roller.weblogger.business.UserManager;
+import org.apache.roller.weblogger.business.Weblogger;
+import org.apache.roller.weblogger.business.WebloggerFactory;
+import org.apache.roller.weblogger.pojos.User;
+import org.apache.roller.weblogger.pojos.UserRole;
 import org.springframework.util.Assert;
 
+
 /**
  * @author Elias Torres (<a href="mailto:eliast@us.ibm.com">eliast@us.ibm.com</a>)
- *
  */
-public class AuthoritiesPopulator extends JdbcDaoImpl implements LdapAuthoritiesPopulator {
-  
+public class AuthoritiesPopulator implements LdapAuthoritiesPopulator {
 
-  /** A default role which will be assigned to all authenticated users if set */
-  private GrantedAuthority defaultRole = null;
+    /** A default role which will be assigned to all authenticated users if set */
+    private GrantedAuthority defaultRole = null;
 
-  /* (non-Javadoc)
-   * @see org.acegisecurity.providers.ldap.LdapAuthoritiesPopulator#getGrantedAuthorities(org.acegisecurity.userdetails.ldap.LdapUserDetails)
-   */
-  public GrantedAuthority[] getGrantedAuthorities(LdapUserDetails userDetails) throws LdapDataAccessException {
     
-    List dbAuths = authoritiesByUsernameMapping.execute(userDetails.getUsername());
+    /* (non-Javadoc)
+     * @see org.acegisecurity.providers.ldap.LdapAuthoritiesPopulator#getGrantedAuthorities(org.acegisecurity.userdetails.ldap.LdapUserDetails)
+     */
+    public GrantedAuthority[] getGrantedAuthorities(LdapUserDetails userDetails) throws LdapDataAccessException {
+
+        User userData = null;
+        List roles = null;
+        try {
+            Weblogger roller = WebloggerFactory.getWeblogger();
+            UserManager umgr = roller.getUserManager();
+            userData = umgr.getUserByUserName(userDetails.getUsername(), Boolean.TRUE);
+            roles = umgr.getRoles(userData);
+            
+        } catch (WebloggerException ex) {
+            throw new LdapDataAccessException("ERROR in user lookup", ex);
+        }
+
+        if (userData == null) {
+            throw new LdapDataAccessException("ERROR no user: " + userDetails.getUsername());
+        }
+
+        
+        int roleCount = roles.size();
+        if (defaultRole != null) roleCount++;
+        GrantedAuthority[] authorities = new GrantedAuthorityImpl[roleCount];
+        int i = 0;
+        for (Iterator it = roles.iterator(); it.hasNext();) {
+            UserRole role = (UserRole) it.next();
+            authorities[i++] = new GrantedAuthorityImpl(role.getRole());
+        }
+        
+        if (defaultRole != null) {
+            authorities[roleCount-1] = defaultRole;
+        }
+
+        if (authorities.length == 0) {
+            throw new UsernameNotFoundException("User has no GrantedAuthority");
+        }
 
-    addCustomAuthorities(userDetails.getUsername(), dbAuths);
-    
-    if (defaultRole != null) {
-      dbAuths.add(defaultRole);
+        return authorities;
     }
 
-    if (dbAuths.size() == 0) {
-        throw new UsernameNotFoundException("User has no GrantedAuthority");
+    /**
+     * The default role which will be assigned to all users.
+     *
+     * @param defaultRole the role name, including any desired prefix.
+     */
+    public void setDefaultRole(String defaultRole) {
+        Assert.notNull(defaultRole, "The defaultRole property cannot be set to null");
+        this.defaultRole = new GrantedAuthorityImpl(defaultRole);
     }
-
-    return (GrantedAuthority[]) dbAuths.toArray(new GrantedAuthority[dbAuths.size()]); 
-  }
-  
-  /**
-   * The default role which will be assigned to all users.
-   *
-   * @param defaultRole the role name, including any desired prefix.
-   */
-  public void setDefaultRole(String defaultRole) {
-      Assert.notNull(defaultRole, "The defaultRole property cannot be set to null");
-      this.defaultRole = new GrantedAuthorityImpl(defaultRole);
-  }  
-
 }

Modified: roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/PlanetModel.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/PlanetModel.java?rev=593664&r1=593663&r2=593664&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/PlanetModel.java (original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/model/PlanetModel.java Fri Nov  9 13:54:45 2007
@@ -44,6 +44,8 @@
  */
 public class PlanetModel implements Model {
     
+    public static final String DEFAULT_PLANET_HANDLE = "default";   
+    
     private static Log log = LogFactory.getLog(PlanetModel.class);
     
     private WeblogRequest  weblogRequest = null;
@@ -176,7 +178,7 @@
         List list = new ArrayList();
         try {
             PlanetManager planetManager = PlanetFactory.getPlanet().getPlanetManager();
-            Planet defaultPlanet = planetManager.getPlanet("zzz_default_planet_zzz");
+            Planet defaultPlanet = planetManager.getPlanet(DEFAULT_PLANET_HANDLE);
             PlanetGroup planetGroup = planetManager.getGroup(defaultPlanet, groupHandle);
             List subs = planetManager.getTopSubscriptions(planetGroup, 0, length);
             for (Iterator it = subs.iterator(); it.hasNext();) {

Modified: roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager.java?rev=593664&r1=593663&r2=593664&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager.java (original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager.java Fri Nov  9 13:54:45 2007
@@ -18,6 +18,7 @@
 
 package org.apache.roller.weblogger.ui.rendering.pagers;
 
+import java.sql.Timestamp;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
@@ -52,6 +53,8 @@
     // are there more items?
     private boolean more = false;
     
+    // most recent update time of current set of entries
+    private Date lastUpdated = null;        
     
     public CommentsPager(
             URLStrategy    strat,
@@ -122,4 +125,25 @@
         return more;
     }
     
+    /** Get last updated time from items in pager */
+    public Date getLastUpdated() {
+        if (lastUpdated == null) {
+            // feeds are sorted by pubtime, so first might not be last updated
+            List<WeblogEntryCommentWrapper> items = (List<WeblogEntryCommentWrapper>)getItems();
+            if (getItems() != null && getItems().size() > 0) {
+                Timestamp newest = ((WeblogEntryCommentWrapper)getItems().get(0)).getPostTime();
+                for (WeblogEntryCommentWrapper c : items) {
+                    if (c.getPostTime().after(newest)) {
+                        newest = c.getPostTime();
+                    }
+                }
+                lastUpdated = new Date(newest.getTime());
+            } else {
+                // no update so we assume it's brand new
+                lastUpdated = new Date();
+            }
+        }
+        return lastUpdated;
+    }
 }
+

Modified: roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.java?rev=593664&r1=593663&r2=593664&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.java (original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.java Fri Nov  9 13:54:45 2007
@@ -18,6 +18,7 @@
 
 package org.apache.roller.weblogger.ui.rendering.pagers;
 
+import java.sql.Timestamp;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
@@ -58,6 +59,9 @@
     // are there more entries?
     private boolean more = false;
     
+    // most recent update time of current set of entries
+    private Date lastUpdated = null;    
+    
     
     public WeblogEntriesListPager(
             URLStrategy    strat,
@@ -147,4 +151,24 @@
         return more;
     }
 
+    /** Get last updated time from items in pager */
+    public Date getLastUpdated() {
+        if (lastUpdated == null) {
+            // feeds are sorted by pubtime, so first might not be last updated
+            List<WeblogEntryWrapper> items = (List<WeblogEntryWrapper>)getItems();
+            if (getItems() != null && getItems().size() > 0) {
+                Timestamp newest = ((WeblogEntryWrapper)getItems().get(0)).getUpdateTime();
+                for (WeblogEntryWrapper e : items) {
+                    if (e.getUpdateTime().after(newest)) {
+                        newest = e.getPubTime();
+                    }
+                }
+                lastUpdated = new Date(newest.getTime());
+            } else {
+                // no update so we assume it's brand new
+                lastUpdated = new Date();
+            }
+        }
+        return lastUpdated;
+    }
 }

Modified: roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java?rev=593664&r1=593663&r2=593664&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java (original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/admin/GlobalCommentManagement.java Fri Nov  9 13:54:45 2007
@@ -32,6 +32,7 @@
 import org.apache.roller.weblogger.business.WebloggerFactory;
 import org.apache.roller.weblogger.business.WeblogEntryManager;
 import org.apache.roller.weblogger.pojos.GlobalPermission;
+import org.apache.roller.weblogger.pojos.Weblog;
 import org.apache.roller.weblogger.pojos.WeblogEntryComment;
 import org.apache.roller.weblogger.ui.struts2.pagers.CommentsPager;
 import org.apache.roller.weblogger.ui.struts2.util.KeyValueObject;
@@ -243,7 +244,7 @@
         try {
             WeblogEntryManager wmgr = WebloggerFactory.getWeblogger().getWeblogEntryManager();
             
-            List flushList = new ArrayList();
+            List<Weblog> flushList = new ArrayList<Weblog>();
             
             // delete all comments with delete box checked
             List<String> deletes = Arrays.asList(getBean().getDeleteComments());
@@ -253,8 +254,8 @@
                 WeblogEntryComment deleteComment = null;
                 for(String deleteId : deletes) {
                     deleteComment = wmgr.getComment(deleteId);
+                    flushList.add(deleteComment.getWeblogEntry().getWebsite());
                     wmgr.removeComment(deleteComment);
-                    flushList.add(deleteComment);
                 }
             }
             
@@ -281,21 +282,21 @@
                     comment.setStatus(WeblogEntryComment.SPAM);
                     wmgr.saveComment(comment);
                     
-                    flushList.add(comment);
+                    flushList.add(comment.getWeblogEntry().getWebsite());
                 } else if(WeblogEntryComment.SPAM.equals(comment.getStatus())) {
                     log.debug("Marking as approved - "+comment.getId());
                     comment.setStatus(WeblogEntryComment.APPROVED);
                     wmgr.saveComment(comment);
                     
-                    flushList.add(comment);
+                    flushList.add(comment.getWeblogEntry().getWebsite());
                 }
             }
             
             WebloggerFactory.getWeblogger().flush();
             
-            // notify caches of changes
-            for (Iterator comments=flushList.iterator(); comments.hasNext();) {
-                CacheManager.invalidate((WeblogEntryComment)comments.next());
+            // notify caches of changes, flush weblogs affected by changes
+            for (Iterator sites = flushList.iterator(); sites.hasNext();) {
+                CacheManager.invalidate((Weblog)sites.next());
             }
             
             addMessage("commentManagement.updateSuccess");

Modified: roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java?rev=593664&r1=593663&r2=593664&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java (original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/editor/Comments.java Fri Nov  9 13:54:45 2007
@@ -362,10 +362,9 @@
             
             WebloggerFactory.getWeblogger().flush();
             
-            // notify caches of changes
-            for(WeblogEntryComment comm : flushList) {
-                CacheManager.invalidate(comm);
-            }
+            // notify caches of changes by flushing whole site because we can't
+            // invalidate deleted comment objects (JPA nulls the fields out).
+            CacheManager.invalidate(getActionWeblog());
             
             // send notification for all comments changed
             if (MailUtil.isMailConfigured()) {

Modified: roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/adminprotocol/Authenticator.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/adminprotocol/Authenticator.java?rev=593664&r1=593663&r2=593664&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/adminprotocol/Authenticator.java (original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/adminprotocol/Authenticator.java Fri Nov  9 13:54:45 2007
@@ -24,6 +24,8 @@
 import org.apache.roller.weblogger.business.UserManager;
 import org.apache.roller.weblogger.pojos.GlobalPermission;
 import org.apache.roller.weblogger.pojos.User;
+import org.apache.roller.weblogger.config.WebloggerConfig;
+import org.apache.roller.weblogger.util.Utilities;
 
 /**
  * TODO
@@ -51,7 +53,12 @@
         try {
             User ud = getUserData(userName);
             String realpassword = ud.getPassword();
-
+        
+        boolean encrypted = Boolean.valueOf(WebloggerConfig.getProperty("passwds.encryption.enabled"));
+        if (encrypted) {
+            password = Utilities.encodePassword(password, WebloggerConfig.getProperty("passwds.encryption.algorithm"));
+        }
+        
             if (!userName.trim().equals(ud.getUserName())) {
                 throw new UnauthorizedException("ERROR: User is not authorized: " + userName);
             }

Modified: roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/xmlrpc/BaseAPIHandler.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/xmlrpc/BaseAPIHandler.java?rev=593664&r1=593663&r2=593664&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/xmlrpc/BaseAPIHandler.java (original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/xmlrpc/BaseAPIHandler.java Fri Nov  9 13:54:45 2007
@@ -33,6 +33,7 @@
 import org.apache.roller.weblogger.pojos.Weblog;
 import org.apache.roller.weblogger.util.cache.CacheManager;
 import org.apache.roller.weblogger.util.Utilities;
+import org.apache.xmlrpc.common.XmlRpcNotAuthorizedException;
 
 /**
  * Base API handler does user validation, provides exception types, etc.
@@ -144,24 +145,19 @@
         }
         
         if ( !authenticated ) {
-            throw new XmlRpcException(
-                    AUTHORIZATION_EXCEPTION, AUTHORIZATION_EXCEPTION_MSG);
+            throw new XmlRpcNotAuthorizedException(AUTHORIZATION_EXCEPTION_MSG);
         }
         if ( !userEnabled ) {
-            throw new XmlRpcException(
-                    USER_DISABLED, USER_DISABLED_MSG);
+            throw new XmlRpcNotAuthorizedException(USER_DISABLED_MSG);
         }
         if ( !weblogEnabled ) {
-            throw new XmlRpcException(
-                    WEBLOG_DISABLED, WEBLOG_DISABLED_MSG);
+            throw new XmlRpcNotAuthorizedException(WEBLOG_DISABLED_MSG);
         }
         if ( !weblogFound ) {
-            throw new XmlRpcException(
-                    WEBLOG_NOT_FOUND, WEBLOG_NOT_FOUND_MSG);
+            throw new XmlRpcException(WEBLOG_NOT_FOUND, WEBLOG_NOT_FOUND_MSG);
         }
         if ( !apiEnabled ) {
-            throw new XmlRpcException(
-                    BLOGGERAPI_DISABLED, BLOGGERAPI_DISABLED_MSG);
+            throw new XmlRpcNotAuthorizedException(BLOGGERAPI_DISABLED_MSG);
         }
         return website;
     }
@@ -203,13 +199,11 @@
         }
         
         if ( !enabled ) {
-            throw new XmlRpcException(
-                    BLOGGERAPI_DISABLED, BLOGGERAPI_DISABLED_MSG);
+            throw new XmlRpcNotAuthorizedException(USER_DISABLED_MSG);
         }
         
         if ( !authenticated ) {
-            throw new XmlRpcException(
-                    AUTHORIZATION_EXCEPTION, AUTHORIZATION_EXCEPTION_MSG);
+            throw new XmlRpcNotAuthorizedException(AUTHORIZATION_EXCEPTION_MSG);
         }
         return authenticated;
     }

Modified: roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/xmlrpc/BloggerAPIHandler.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/xmlrpc/BloggerAPIHandler.java?rev=593664&r1=593663&r2=593664&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/xmlrpc/BloggerAPIHandler.java (original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/xmlrpc/BloggerAPIHandler.java Fri Nov  9 13:54:45 2007
@@ -274,16 +274,21 @@
                 
                 UserManager umgr = WebloggerFactory.getWeblogger().getUserManager();
                 User user = umgr.getUserByUserName(userid);
+                
                 // get list of user's enabled websites
                 List websites = WebloggerFactory.getWeblogger().getWeblogManager().getUserWeblogs(user, true);
                 Iterator iter = websites.iterator();
                 while (iter.hasNext()) {
                     Weblog website = (Weblog)iter.next();
-                    Hashtable blog = new Hashtable(3);
-                    blog.put("url", website.getURL());
-                    blog.put("blogid", website.getHandle());
-                    blog.put("blogName", website.getName());
-                    result.add(blog);
+                    
+                    // only include weblog's that have client API support enabled
+                    if (Boolean.TRUE.equals(website.getEnableBloggerApi())) {
+                        Hashtable blog = new Hashtable(3);
+                        blog.put("url", website.getURL());
+                        blog.put("blogid", website.getHandle());
+                        blog.put("blogName", website.getName());
+                        result.add(blog);
+                    }
                 }
             } catch (Exception e) {
                 String msg = "ERROR in BlooggerAPIHander.getUsersBlogs";

Modified: roller/branches/roller_4.1_dev/apps/weblogger/src/sql/310-to-400-migration.vm
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/src/sql/310-to-400-migration.vm?rev=593664&r1=593663&r2=593664&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/src/sql/310-to-400-migration.vm (original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/src/sql/310-to-400-migration.vm Fri Nov  9 13:54:45 2007
@@ -118,7 +118,7 @@
 #addColumnNull("website" "customstylesheet" "varchar(128)")
 
 -- fix blogs which have unchecked showalllangs but did not check enablemultilang
-update website set enablemultilang=$db.BOOLEAN_TRUE where showalllangs=$db.BOOLEAN_FALSE;
+update website set enablemultilang=$db.BOOLEAN_TRUE, datecreated=datecreated where showalllangs=$db.BOOLEAN_FALSE;
 
 
 -- some missing foreign key constraints
@@ -159,7 +159,7 @@
 #dropTableIfExists('rollerconfig')
 
 --- remove old id column of group subscription table
-#dropColumn('rag_group_subscription' 'id')
+-- #dropColumn('rag_group_subscription' 'id')
 
 -- remove old approved, spam, pending columns from comment table
 #dropColumn('roller_comment' 'approved')

Modified: roller/branches/roller_4.1_dev/apps/weblogger/test/java/org/apache/roller/weblogger/business/WeblogEntryTest.java
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/test/java/org/apache/roller/weblogger/business/WeblogEntryTest.java?rev=593664&r1=593663&r2=593664&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/test/java/org/apache/roller/weblogger/business/WeblogEntryTest.java (original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/test/java/org/apache/roller/weblogger/business/WeblogEntryTest.java Fri Nov  9 13:54:45 2007
@@ -956,7 +956,64 @@
      */
     public void testEntryAttributeCRUD() throws Exception {
         
-        // TODO: implement entry attribute test
+        WeblogManager mgr = WebloggerFactory.getWeblogger().getWeblogManager();
+        WeblogEntryManager emgr = WebloggerFactory.getWeblogger().getWeblogEntryManager();
+        WeblogEntry entry = null;
+        
+        WeblogEntry testEntry = new WeblogEntry();
+        testEntry.setTitle("entryTestEntry");
+        testEntry.setLink("testEntryLink");
+        testEntry.setText("blah blah entry");
+        testEntry.setAnchor("testEntryAnchor");
+        testEntry.setPubTime(new java.sql.Timestamp(new java.util.Date().getTime()));
+        testEntry.setUpdateTime(new java.sql.Timestamp(new java.util.Date().getTime()));
+        testEntry.setWebsite(testWeblog);
+        testEntry.setCreatorUserName(testUser.getUserName());
+        
+        testEntry.putEntryAttribute("att_mediacast_url", "http://podcast-schmodcast.com");
+        testEntry.putEntryAttribute("att_mediacast_type", "application/drivel");
+        testEntry.putEntryAttribute("att_mediacast_length", "3141592654");
+                    
+        WeblogCategory cat = emgr.getWeblogCategory(testWeblog.getDefaultCategory().getId());
+        testEntry.setCategory(cat);
+        
+        // create a weblog entry
+        emgr.saveWeblogEntry(testEntry);
+        String id = testEntry.getId();
+        TestUtils.endSession(true);
+        
+        // make sure entry was created
+        entry = emgr.getWeblogEntry(id);
+        assertNotNull(entry);
+        assertEquals(testEntry, entry);
+        assertNotNull(entry.getEntryAttributes());
+        assertEquals(3, entry.getEntryAttributes().size());
+        assertNotNull(entry.findEntryAttribute("att_mediacast_url"));
+        assertNotNull(entry.findEntryAttribute("att_mediacast_type"));
+        assertNotNull(entry.findEntryAttribute("att_mediacast_length"));
+        assertEquals("http://podcast-schmodcast.com", entry.findEntryAttribute("att_mediacast_url"));
+        assertEquals("application/drivel", entry.findEntryAttribute("att_mediacast_type"));
+        assertEquals("3141592654", entry.findEntryAttribute("att_mediacast_length"));
+        
+        // update a weblog entry
+        entry.setTitle("testtest");
+        emgr.saveWeblogEntry(entry);
+        TestUtils.endSession(true);
+        
+        // make sure entry was updated
+        entry = null;
+        entry = emgr.getWeblogEntry(id);
+        assertNotNull(entry);
+        assertEquals("testtest", entry.getTitle());
+        
+        // delete a weblog entry
+        emgr.removeWeblogEntry(entry);
+        TestUtils.endSession(true);
+        
+        // make sure entry was deleted
+        entry = null;
+        entry = emgr.getWeblogEntry(id);
+        assertNull(entry);
     }
     
     

Modified: roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties?rev=593664&r1=593663&r2=593664&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties (original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties Fri Nov  9 13:54:45 2007
@@ -1359,9 +1359,10 @@
 stylesheetEdit.save=Save
 stylesheetEdit.revert=Restore Stylesheet
 
-stylesheetEdit.noStylesheetOverride=Sorry, but the theme you are using does not \
-provide a custom stylesheet for you to edit.  lame huh?  feel free to complain \
-about it to your system administrator.
+stylesheetEdit.noStylesheetOverride=\
+Unfortunately, the theme you're using does not provide a custom \
+stylesheet for you to edit. You can customize your theme or contact \
+your system administrator to see about enabling this feature.
 
 stylesheetEdit.save.success=Stylesheet updated successfully.
 stylesheetEdit.revert.success=Stylesheet reverted successfully.

Modified: roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/jsps/admin/ModifyUser.jsp
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/jsps/admin/ModifyUser.jsp?rev=593664&r1=593663&r2=593664&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/jsps/admin/ModifyUser.jsp (original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/jsps/admin/ModifyUser.jsp Fri Nov  9 13:54:45 2007
@@ -93,13 +93,13 @@
     
     <br />
     
-    <p class="subtitle"><s:text name="userAdmin.userWeblogs" /></p>
+    <p class="subtitle"><s:text name="userAdmin.userWeblogs" /></p> 
     
-    <s:if test="!user.permissions.isEmpty"> 
+    <s:if test="user.permissions != null && !user.permissions.isEmpty() > 0">  
         
         <p><s:text name="userAdmin.userMemberOf" /></p>  
         <table class="rollertable" style="width: 80%">
-            <s:iterator id="perms" value="user.permissions">
+            <s:iterator id="perms" value="#user.permissions">
                 <tr>
                     <td width="%30">
                         <a href='<s:property value="baseURL" />/<s:property value="#perms.website.handle" />'>

Modified: roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/jsps/editor/Bookmarks.jsp
URL: http://svn.apache.org/viewvc/roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/jsps/editor/Bookmarks.jsp?rev=593664&r1=593663&r2=593664&view=diff
==============================================================================
--- roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/jsps/editor/Bookmarks.jsp (original)
+++ roller/branches/roller_4.1_dev/apps/weblogger/web/WEB-INF/jsps/editor/Bookmarks.jsp Fri Nov  9 13:54:45 2007
@@ -33,16 +33,16 @@
 {
     if ( confirm("<s:text name='bookmarksForm.delete.confirm' />") ) 
     {
-        document.bookmarksForm.method.value = "deleteSelected";
-        document.bookmarksForm.submit();
+        document.bookmarks.method.value = "deleteSelected";
+        document.bookmarks.submit();
     }
  }
 function onMove() 
 {
     if ( confirm("<s:text name='bookmarksForm.move.confirm' />") ) 
     {
-        document.bookmarksForm.method.value = "moveSelected";
-        document.bookmarksForm.submit();
+        document.bookmarks.method.value = "moveSelected";
+        document.bookmarks.submit();
     }
 }
 //-->



Mime
View raw message