[seam-commits] Seam SVN: r7495 - in trunk/examples/wiki: src/main/org/jboss/seam/wiki/connectors/cache and 4 other directories.

seam-commits at lists.jboss.org seam-commits at lists.jboss.org
Fri Feb 29 07:38:27 EST 2008


Author: christian.bauer at jboss.com
Date: 2008-02-29 07:38:27 -0500 (Fri, 29 Feb 2008)
New Revision: 7495

Modified:
   trunk/examples/wiki/Wiki.iml
   trunk/examples/wiki/Wiki.ipr
   trunk/examples/wiki/Wiki.iws
   trunk/examples/wiki/src/main/org/jboss/seam/wiki/connectors/cache/ConnectorCache.java
   trunk/examples/wiki/src/main/org/jboss/seam/wiki/connectors/feed/FeedAggregateCache.java
   trunk/examples/wiki/src/main/org/jboss/seam/wiki/connectors/feed/FeedAggregatorDAO.java
   trunk/examples/wiki/src/main/org/jboss/seam/wiki/connectors/feed/RomeFeedConnector.java
   trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/feeds/FeedDAO.java
   trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/feeds/WikiCommentFeedEntryManager.java
   trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/feeds/WikiDocumentFeedEntryManager.java
   trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/ui/FeedServlet.java
   trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/ui/FileServlet.java
   trunk/examples/wiki/src/main/org/jboss/seam/wiki/plugin/forum/ForumQueries.hbm.xml
Log:
JBSEAM-2688, etag handling for feed servlet

Modified: trunk/examples/wiki/Wiki.iml
===================================================================
--- trunk/examples/wiki/Wiki.iml	2008-02-28 09:25:03 UTC (rev 7494)
+++ trunk/examples/wiki/Wiki.iml	2008-02-29 12:38:27 UTC (rev 7495)
@@ -9,6 +9,8 @@
       <sourceFolder url="file://$MODULE_DIR$/src/main" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/src/test" isTestSource="true" />
       <excludeFolder url="file://$MODULE_DIR$/build" />
+      <excludeFolder url="file://$MODULE_DIR$/dist" />
+      <excludeFolder url="file://$MODULE_DIR$/production" />
     </content>
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
@@ -399,6 +401,24 @@
         <SOURCES />
       </library>
     </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../../../../../../local/dbdrivers/mysql-connector-java-5.1.5-bin.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../../lib/richfaces-impl.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
     <orderEntryProperties />
   </component>
   <component name="VcsManagerConfiguration">

Modified: trunk/examples/wiki/Wiki.ipr
===================================================================
--- trunk/examples/wiki/Wiki.ipr	2008-02-28 09:25:03 UTC (rev 7494)
+++ trunk/examples/wiki/Wiki.ipr	2008-02-29 12:38:27 UTC (rev 7495)
@@ -50,9 +50,6 @@
   <component name="CompilerConfiguration">
     <option name="DEFAULT_COMPILER" value="Javac" />
     <option name="DEPLOY_AFTER_MAKE" value="0" />
-    <excludeFromCompile>
-      <directory url="file://$PROJECT_DIR$/src/main/org/jboss/seam/wiki/plugin/blogdirectory" includeSubdirectories="true" />
-    </excludeFromCompile>
     <resourceExtensions>
       <entry name=".+\.(properties|xml|html|dtd|tld)" />
       <entry name=".+\.(gif|png|jpeg|jpg)" />
@@ -69,1151 +66,6 @@
       <entry name="?*.jpg" />
     </wildcardResourcePatterns>
   </component>
-  <component name="DataSourceManagerImpl">
-    <DataSource DataSourceSourceName="LOCAL">
-      <option name="DRIVER_CLASS" value="org.hsqldb.jdbcDriver" />
-      <option name="DATABASE_URL" value="jdbc:hsqldb:hsql://localhost" />
-      <option name="DRIVER_PATH" />
-      <option name="DATBASE_USERNAME" value="sa" />
-      <option name="ENCODED_DATABASE_PASSWORD" value="" />
-      <option name="DEFAULT_SCHEMA_NAME" />
-      <option name="TABLE_PATTERN" value="" />
-      <option name="NAME" value="Datasource" />
-      <option name="PROJECT" value="Wiki" />
-      <TABLE_DATA>
-        <option name="NAME" value="COMMENTS" />
-        <option name="SCHEMA" value="PUBLIC" />
-        <option name="CATALOG" />
-        <option name="TYPE" />
-        <FIELD_ELEMENT>
-          <option name="NAME" value="COMMENT_ID" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="-5" />
-          <option name="TYPE" value="java.lang.Long" />
-          <option name="PRIMARY" value="true" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="OBJ_VERSION" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="4" />
-          <option name="TYPE" value="java.lang.Integer" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="SUBJECT" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="255" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="FROM_USER_NAME" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="100" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="FROM_USER_EMAIL" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="255" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="FROM_USER_HOMEPAGE" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="1000" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="COMMENT_TEXT" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="255" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="CREATED_ON" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="93" />
-          <option name="TYPE" value="java.sql.Timestamp" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="6" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="FROM_USER_ID" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="-5" />
-          <option name="TYPE" value="java.lang.Long" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="DOCUMENT_ID" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="-5" />
-          <option name="TYPE" value="java.lang.Long" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <RELATIONSHIP_ELEMENT>
-          <option name="RELATION_NAME" />
-          <option name="TARGET_TABLE" value="NODE" />
-          <option name="TARGET_SCHEMA" value="PUBLIC" />
-          <option name="TARGET_CATALOG" />
-          <option name="TARGET_COLUMN" value="NODE_ID" />
-          <option name="SOURCE_COLUMN" value="DOCUMENT_ID" />
-          <option name="CASCADE_REMOVE" value="false" />
-          <option name="CASCADE_UPDATE" value="false" />
-        </RELATIONSHIP_ELEMENT>
-        <RELATIONSHIP_ELEMENT>
-          <option name="RELATION_NAME" />
-          <option name="TARGET_TABLE" value="USERS" />
-          <option name="TARGET_SCHEMA" value="PUBLIC" />
-          <option name="TARGET_CATALOG" />
-          <option name="TARGET_COLUMN" value="USER_ID" />
-          <option name="SOURCE_COLUMN" value="FROM_USER_ID" />
-          <option name="CASCADE_REMOVE" value="false" />
-          <option name="CASCADE_UPDATE" value="false" />
-        </RELATIONSHIP_ELEMENT>
-      </TABLE_DATA>
-      <TABLE_DATA>
-        <option name="NAME" value="NODE" />
-        <option name="SCHEMA" value="PUBLIC" />
-        <option name="CATALOG" />
-        <option name="TYPE" />
-        <FIELD_ELEMENT>
-          <option name="NAME" value="NODE_TYPE" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="255" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="NODE_ID" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="-5" />
-          <option name="TYPE" value="java.lang.Long" />
-          <option name="PRIMARY" value="true" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="NODE_REVISION" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="4" />
-          <option name="TYPE" value="java.lang.Integer" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="OBJ_VERSION" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="4" />
-          <option name="TYPE" value="java.lang.Integer" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="NAME" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="255" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="WIKINAME" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="255" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="MENU_ITEM" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="16" />
-          <option name="TYPE" value="java.lang.Boolean" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="AREA_NR" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="-5" />
-          <option name="TYPE" value="java.lang.Long" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="CREATED_ON" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="93" />
-          <option name="TYPE" value="java.sql.Timestamp" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="6" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="LAST_MODIFIED_ON" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="93" />
-          <option name="TYPE" value="java.sql.Timestamp" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="6" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="WRITE_ACCESS_LEVEL" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="4" />
-          <option name="TYPE" value="java.lang.Integer" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="READ_ACCESS_LEVEL" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="4" />
-          <option name="TYPE" value="java.lang.Integer" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="CONTENT" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="32768" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="NAME_AS_TITLE" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="16" />
-          <option name="TYPE" value="java.lang.Boolean" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="PARENT_NODE_ID" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="-5" />
-          <option name="TYPE" value="java.lang.Long" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="DEFAULT_DOCUMENT_ID" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="-5" />
-          <option name="TYPE" value="java.lang.Long" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="LAST_MODIFIED_BY_USER_ID" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="-5" />
-          <option name="TYPE" value="java.lang.Long" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="CREATED_BY_USER_ID" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="-5" />
-          <option name="TYPE" value="java.lang.Long" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="NODE_POSITION" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="4" />
-          <option name="TYPE" value="java.lang.Integer" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <RELATIONSHIP_ELEMENT>
-          <option name="RELATION_NAME" />
-          <option name="TARGET_TABLE" value="NODE" />
-          <option name="TARGET_SCHEMA" value="PUBLIC" />
-          <option name="TARGET_CATALOG" />
-          <option name="TARGET_COLUMN" value="NODE_ID" />
-          <option name="SOURCE_COLUMN" value="DEFAULT_DOCUMENT_ID" />
-          <option name="CASCADE_REMOVE" value="false" />
-          <option name="CASCADE_UPDATE" value="false" />
-        </RELATIONSHIP_ELEMENT>
-        <RELATIONSHIP_ELEMENT>
-          <option name="RELATION_NAME" />
-          <option name="TARGET_TABLE" value="NODE" />
-          <option name="TARGET_SCHEMA" value="PUBLIC" />
-          <option name="TARGET_CATALOG" />
-          <option name="TARGET_COLUMN" value="NODE_ID" />
-          <option name="SOURCE_COLUMN" value="PARENT_NODE_ID" />
-          <option name="CASCADE_REMOVE" value="false" />
-          <option name="CASCADE_UPDATE" value="false" />
-        </RELATIONSHIP_ELEMENT>
-        <RELATIONSHIP_ELEMENT>
-          <option name="RELATION_NAME" />
-          <option name="TARGET_TABLE" value="USERS" />
-          <option name="TARGET_SCHEMA" value="PUBLIC" />
-          <option name="TARGET_CATALOG" />
-          <option name="TARGET_COLUMN" value="USER_ID" />
-          <option name="SOURCE_COLUMN" value="CREATED_BY_USER_ID" />
-          <option name="CASCADE_REMOVE" value="false" />
-          <option name="CASCADE_UPDATE" value="false" />
-        </RELATIONSHIP_ELEMENT>
-        <RELATIONSHIP_ELEMENT>
-          <option name="RELATION_NAME" />
-          <option name="TARGET_TABLE" value="USERS" />
-          <option name="TARGET_SCHEMA" value="PUBLIC" />
-          <option name="TARGET_CATALOG" />
-          <option name="TARGET_COLUMN" value="USER_ID" />
-          <option name="SOURCE_COLUMN" value="LAST_MODIFIED_BY_USER_ID" />
-          <option name="CASCADE_REMOVE" value="false" />
-          <option name="CASCADE_UPDATE" value="false" />
-        </RELATIONSHIP_ELEMENT>
-      </TABLE_DATA>
-      <TABLE_DATA>
-        <option name="NAME" value="NODE_FILE" />
-        <option name="SCHEMA" value="PUBLIC" />
-        <option name="CATALOG" />
-        <option name="TYPE" />
-        <FIELD_ELEMENT>
-          <option name="NAME" value="FILENAME" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="255" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="FILESIZE" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="4" />
-          <option name="TYPE" value="java.lang.Integer" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="FILEDATA" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="-4" />
-          <option name="TYPE" value="byte[]" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="CONTENT_TYPE" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="255" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="IMAGE_SIZE_X" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="4" />
-          <option name="TYPE" value="java.lang.Integer" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="IMAGE_SIZE_Y" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="4" />
-          <option name="TYPE" value="java.lang.Integer" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="IMAGE_THUMBNAIL" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="1" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="1" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="FILE_ID" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="-5" />
-          <option name="TYPE" value="java.lang.Long" />
-          <option name="PRIMARY" value="true" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <RELATIONSHIP_ELEMENT>
-          <option name="RELATION_NAME" />
-          <option name="TARGET_TABLE" value="NODE" />
-          <option name="TARGET_SCHEMA" value="PUBLIC" />
-          <option name="TARGET_CATALOG" />
-          <option name="TARGET_COLUMN" value="NODE_ID" />
-          <option name="SOURCE_COLUMN" value="FILE_ID" />
-          <option name="CASCADE_REMOVE" value="false" />
-          <option name="CASCADE_UPDATE" value="false" />
-        </RELATIONSHIP_ELEMENT>
-      </TABLE_DATA>
-      <TABLE_DATA>
-        <option name="NAME" value="NODE_HISTORY" />
-        <option name="SCHEMA" value="PUBLIC" />
-        <option name="CATALOG" />
-        <option name="TYPE" />
-        <FIELD_ELEMENT>
-          <option name="NAME" value="NODE_HISTORY_ID" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="-5" />
-          <option name="TYPE" value="java.lang.Long" />
-          <option name="PRIMARY" value="true" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="NODE_TYPE" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="255" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="NODE_ID" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="-5" />
-          <option name="TYPE" value="java.lang.Long" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="NODE_REVISION" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="4" />
-          <option name="TYPE" value="java.lang.Integer" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="NAME" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="255" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="WIKINAME" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="255" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="LAST_MODIFIED_ON" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="93" />
-          <option name="TYPE" value="java.sql.Timestamp" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="6" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="LAST_MODIFIED_BY_USERNAME" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="255" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="CONTENT" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="32768" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="FILENAME" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="255" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="FILESIZE" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="4" />
-          <option name="TYPE" value="java.lang.Integer" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="FILEDATA" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="-3" />
-          <option name="TYPE" value="byte[]" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="255" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="CONTENT_TYPE" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="255" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="IMAGE_SIZE_X" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="4" />
-          <option name="TYPE" value="java.lang.Integer" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="IMAGE_SIZE_Y" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="4" />
-          <option name="TYPE" value="java.lang.Integer" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="IMAGE_THUMBNAIL" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="1" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="1" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-      </TABLE_DATA>
-      <TABLE_DATA>
-        <option name="NAME" value="PREFERENCE" />
-        <option name="SCHEMA" value="PUBLIC" />
-        <option name="CATALOG" />
-        <option name="TYPE" />
-        <FIELD_ELEMENT>
-          <option name="NAME" value="PREF_ID" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="-5" />
-          <option name="TYPE" value="java.lang.Long" />
-          <option name="PRIMARY" value="true" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="OBJ_VERSION" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="4" />
-          <option name="TYPE" value="java.lang.Integer" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="COMPONENT_NAME" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="255" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="PROPERTY_NAME" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="255" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="LONG_VALUE" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="-5" />
-          <option name="TYPE" value="java.lang.Long" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="DOUBLE_VALUE" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="8" />
-          <option name="TYPE" value="java.lang.Double" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="TIMESTAMP_VALUE" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="93" />
-          <option name="TYPE" value="java.sql.Timestamp" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="6" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="BOOLEAN_VALUE" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="16" />
-          <option name="TYPE" value="java.lang.Boolean" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="STRING_VALUE" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="255" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-      </TABLE_DATA>
-      <TABLE_DATA>
-        <option name="NAME" value="PREFERENCE_NODE" />
-        <option name="SCHEMA" value="PUBLIC" />
-        <option name="CATALOG" />
-        <option name="TYPE" />
-        <FIELD_ELEMENT>
-          <option name="NAME" value="PREF_ID" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="-5" />
-          <option name="TYPE" value="java.lang.Long" />
-          <option name="PRIMARY" value="true" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="NODE_ID" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="-5" />
-          <option name="TYPE" value="java.lang.Long" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <RELATIONSHIP_ELEMENT>
-          <option name="RELATION_NAME" />
-          <option name="TARGET_TABLE" value="NODE" />
-          <option name="TARGET_SCHEMA" value="PUBLIC" />
-          <option name="TARGET_CATALOG" />
-          <option name="TARGET_COLUMN" value="NODE_ID" />
-          <option name="SOURCE_COLUMN" value="NODE_ID" />
-          <option name="CASCADE_REMOVE" value="false" />
-          <option name="CASCADE_UPDATE" value="false" />
-        </RELATIONSHIP_ELEMENT>
-        <RELATIONSHIP_ELEMENT>
-          <option name="RELATION_NAME" />
-          <option name="TARGET_TABLE" value="PREFERENCE" />
-          <option name="TARGET_SCHEMA" value="PUBLIC" />
-          <option name="TARGET_CATALOG" />
-          <option name="TARGET_COLUMN" value="PREF_ID" />
-          <option name="SOURCE_COLUMN" value="PREF_ID" />
-          <option name="CASCADE_REMOVE" value="false" />
-          <option name="CASCADE_UPDATE" value="false" />
-        </RELATIONSHIP_ELEMENT>
-      </TABLE_DATA>
-      <TABLE_DATA>
-        <option name="NAME" value="PREFERENCE_USER" />
-        <option name="SCHEMA" value="PUBLIC" />
-        <option name="CATALOG" />
-        <option name="TYPE" />
-        <FIELD_ELEMENT>
-          <option name="NAME" value="PREF_ID" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="-5" />
-          <option name="TYPE" value="java.lang.Long" />
-          <option name="PRIMARY" value="true" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="USER_ID" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="-5" />
-          <option name="TYPE" value="java.lang.Long" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <RELATIONSHIP_ELEMENT>
-          <option name="RELATION_NAME" />
-          <option name="TARGET_TABLE" value="PREFERENCE" />
-          <option name="TARGET_SCHEMA" value="PUBLIC" />
-          <option name="TARGET_CATALOG" />
-          <option name="TARGET_COLUMN" value="PREF_ID" />
-          <option name="SOURCE_COLUMN" value="PREF_ID" />
-          <option name="CASCADE_REMOVE" value="false" />
-          <option name="CASCADE_UPDATE" value="false" />
-        </RELATIONSHIP_ELEMENT>
-        <RELATIONSHIP_ELEMENT>
-          <option name="RELATION_NAME" />
-          <option name="TARGET_TABLE" value="USERS" />
-          <option name="TARGET_SCHEMA" value="PUBLIC" />
-          <option name="TARGET_CATALOG" />
-          <option name="TARGET_COLUMN" value="USER_ID" />
-          <option name="SOURCE_COLUMN" value="USER_ID" />
-          <option name="CASCADE_REMOVE" value="false" />
-          <option name="CASCADE_UPDATE" value="false" />
-        </RELATIONSHIP_ELEMENT>
-      </TABLE_DATA>
-      <TABLE_DATA>
-        <option name="NAME" value="ROLE" />
-        <option name="SCHEMA" value="PUBLIC" />
-        <option name="CATALOG" />
-        <option name="TYPE" />
-        <FIELD_ELEMENT>
-          <option name="NAME" value="ROLE_ID" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="-5" />
-          <option name="TYPE" value="java.lang.Long" />
-          <option name="PRIMARY" value="true" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="OBJ_VERSION" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="4" />
-          <option name="TYPE" value="java.lang.Integer" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="NAME" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="255" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="DISPLAY_NAME" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="40" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="ACCESS_LEVEL" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="4" />
-          <option name="TYPE" value="java.lang.Integer" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="CREATED_ON" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="93" />
-          <option name="TYPE" value="java.sql.Timestamp" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="6" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-      </TABLE_DATA>
-      <TABLE_DATA>
-        <option name="NAME" value="USERS" />
-        <option name="SCHEMA" value="PUBLIC" />
-        <option name="CATALOG" />
-        <option name="TYPE" />
-        <FIELD_ELEMENT>
-          <option name="NAME" value="USER_ID" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="-5" />
-          <option name="TYPE" value="java.lang.Long" />
-          <option name="PRIMARY" value="true" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="OBJ_VERSION" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="4" />
-          <option name="TYPE" value="java.lang.Integer" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="FIRSTNAME" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="63" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="LASTNAME" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="63" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="USERNAME" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="16" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="PASSWORDHASH" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="255" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="EMAIL" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="255" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="ACTIVATED" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="16" />
-          <option name="TYPE" value="java.lang.Boolean" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="ACTIVATION_CODE" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="255" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="CREATED_ON" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="93" />
-          <option name="TYPE" value="java.sql.Timestamp" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="6" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="MEMBER_HOME_NODE_ID" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="-5" />
-          <option name="TYPE" value="java.lang.Long" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <RELATIONSHIP_ELEMENT>
-          <option name="RELATION_NAME" />
-          <option name="TARGET_TABLE" value="NODE" />
-          <option name="TARGET_SCHEMA" value="PUBLIC" />
-          <option name="TARGET_CATALOG" />
-          <option name="TARGET_COLUMN" value="NODE_ID" />
-          <option name="SOURCE_COLUMN" value="MEMBER_HOME_NODE_ID" />
-          <option name="CASCADE_REMOVE" value="false" />
-          <option name="CASCADE_UPDATE" value="false" />
-        </RELATIONSHIP_ELEMENT>
-      </TABLE_DATA>
-      <TABLE_DATA>
-        <option name="NAME" value="USER_IMAGE" />
-        <option name="SCHEMA" value="PUBLIC" />
-        <option name="CATALOG" />
-        <option name="TYPE" />
-        <FIELD_ELEMENT>
-          <option name="NAME" value="USER_IMAGE_ID" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="-5" />
-          <option name="TYPE" value="java.lang.Long" />
-          <option name="PRIMARY" value="true" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="OBJ_VERSION" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="4" />
-          <option name="TYPE" value="java.lang.Integer" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="IMAGE_DATA" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="-4" />
-          <option name="TYPE" value="byte[]" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="CONTENT_TYPE" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="12" />
-          <option name="TYPE" value="java.lang.String" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="255" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="CREATED_ON" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="93" />
-          <option name="TYPE" value="java.sql.Timestamp" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="6" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="USER_ID" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="-5" />
-          <option name="TYPE" value="java.lang.Long" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="true" />
-        </FIELD_ELEMENT>
-        <RELATIONSHIP_ELEMENT>
-          <option name="RELATION_NAME" />
-          <option name="TARGET_TABLE" value="USERS" />
-          <option name="TARGET_SCHEMA" value="PUBLIC" />
-          <option name="TARGET_CATALOG" />
-          <option name="TARGET_COLUMN" value="USER_ID" />
-          <option name="SOURCE_COLUMN" value="USER_ID" />
-          <option name="CASCADE_REMOVE" value="false" />
-          <option name="CASCADE_UPDATE" value="false" />
-        </RELATIONSHIP_ELEMENT>
-      </TABLE_DATA>
-      <TABLE_DATA>
-        <option name="NAME" value="USER_ROLE" />
-        <option name="SCHEMA" value="PUBLIC" />
-        <option name="CATALOG" />
-        <option name="TYPE" />
-        <FIELD_ELEMENT>
-          <option name="NAME" value="USER_ID" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="-5" />
-          <option name="TYPE" value="java.lang.Long" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <FIELD_ELEMENT>
-          <option name="NAME" value="ROLE_ID" />
-          <option name="SQL_TYPE" />
-          <option name="JDBC_TYPE" value="-5" />
-          <option name="TYPE" value="java.lang.Long" />
-          <option name="PRIMARY" value="false" />
-          <option name="LENGTH" value="0" />
-          <option name="PRECISION" value="0" />
-          <option name="NULLABLE" value="false" />
-        </FIELD_ELEMENT>
-        <RELATIONSHIP_ELEMENT>
-          <option name="RELATION_NAME" />
-          <option name="TARGET_TABLE" value="ROLE" />
-          <option name="TARGET_SCHEMA" value="PUBLIC" />
-          <option name="TARGET_CATALOG" />
-          <option name="TARGET_COLUMN" value="ROLE_ID" />
-          <option name="SOURCE_COLUMN" value="ROLE_ID" />
-          <option name="CASCADE_REMOVE" value="false" />
-          <option name="CASCADE_UPDATE" value="false" />
-        </RELATIONSHIP_ELEMENT>
-        <RELATIONSHIP_ELEMENT>
-          <option name="RELATION_NAME" />
-          <option name="TARGET_TABLE" value="USERS" />
-          <option name="TARGET_SCHEMA" value="PUBLIC" />
-          <option name="TARGET_CATALOG" />
-          <option name="TARGET_COLUMN" value="USER_ID" />
-          <option name="SOURCE_COLUMN" value="USER_ID" />
-          <option name="CASCADE_REMOVE" value="false" />
-          <option name="CASCADE_UPDATE" value="false" />
-        </RELATIONSHIP_ELEMENT>
-      </TABLE_DATA>
-      <libraries>
-        <library>
-          <attribute name="URI" value="" />
-          <url>jar://$PROJECT_DIR$/../../../jboss-seam/seam-gen/lib/hsqldb.jar!/</url>
-        </library>
-      </libraries>
-    </DataSource>
-  </component>
   <component name="DependenciesAnalyzeManager">
     <option name="myForwardDirection" value="false" />
   </component>
@@ -1246,13 +98,7 @@
     <autodetection-disabled>
       <facet-type id="jpa">
         <modules>
-          <module name="Wiki">
-            <files>
-              <file url="file://$PROJECT_DIR$/src/etc/META-INF/persistence-dev-war.xml" />
-              <file url="file://$PROJECT_DIR$/src/etc/META-INF/persistence-prod-war.xml" />
-              <file url="file://$PROJECT_DIR$/src/etc/META-INF/persistence-test-war.xml" />
-            </files>
-          </module>
+          <module name="Wiki" />
         </modules>
       </facet-type>
     </autodetection-disabled>

Modified: trunk/examples/wiki/Wiki.iws
===================================================================
--- trunk/examples/wiki/Wiki.iws	2008-02-28 09:25:03 UTC (rev 7494)
+++ trunk/examples/wiki/Wiki.iws	2008-02-29 12:38:27 UTC (rev 7495)
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project relativePaths="true" version="4">
   <component name="AnalysisUIOptions">
+    <option name="ANALYZE_TEST_SOURCES" value="false" />
     <option name="CUSTOM_SCOPE_NAME" value="Project Files" />
     <option name="ANALYSIS_IN_BACKGROUND" value="true" />
   </component>
@@ -37,49 +38,22 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" name="Default" comment="">
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/plugin/blogdirectory/BlogDirectory.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/plugin/blogdirectory/BlogDirectory.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/action/prefs/WikiPreferences.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/action/prefs/WikiPreferences.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/dao/WikiNodeFactory.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/dao/WikiNodeFactory.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/plugin/forum/TopicHome.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/plugin/forum/TopicHome.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/dao/WikiNodeDAO.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/dao/WikiNodeDAO.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/org/jboss/seam/wiki/test/preferences/InstancePreferencesTests.java" afterPath="$PROJECT_DIR$/src/test/org/jboss/seam/wiki/test/preferences/InstancePreferencesTests.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/view/themes/sfwkorg/css/sfwk.css" afterPath="$PROJECT_DIR$/view/themes/sfwkorg/css/sfwk.css" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/action/NodeHome.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/action/NodeHome.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/action/CommentHome.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/action/CommentHome.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/org/jboss/seam/wiki/test/preferences/SystemPreferencesTests.java" afterPath="$PROJECT_DIR$/src/test/org/jboss/seam/wiki/test/preferences/SystemPreferencesTests.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/dao/UserRoleAccessFactory.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/dao/UserRoleAccessFactory.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/org/jboss/seam/wiki/test/WikiBaseData.dbunit.xml" afterPath="$PROJECT_DIR$/src/test/org/jboss/seam/wiki/test/WikiBaseData.dbunit.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/etc/WEB-INF/pages.xml" afterPath="$PROJECT_DIR$/src/etc/WEB-INF/pages.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/etc/WEB-INF/web.xml" afterPath="$PROJECT_DIR$/src/etc/WEB-INF/web.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/action/DirectoryHome.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/action/DirectoryHome.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/org/jboss/seam/wiki/test/editing/BasicNodeOperations.java" afterPath="$PROJECT_DIR$/src/test/org/jboss/seam/wiki/test/editing/BasicNodeOperations.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/util/WikiUtil.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/util/WikiUtil.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/view/docHistory_d.xhtml" afterPath="$PROJECT_DIR$/view/docHistory_d.xhtml" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/connectors/feed/RomeFeedConnector.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/connectors/feed/RomeFeedConnector.java" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Wiki.iws" afterPath="$PROJECT_DIR$/Wiki.iws" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/ui/WikiFormattedTextHandler.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/ui/WikiFormattedTextHandler.java" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/view/themes/sfwkorg/img/runningon_seamlogo_grey.gif" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/plugin/forum/ReplyHome.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/plugin/forum/ReplyHome.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/feeds/WikiDocumentFeedEntryManager.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/feeds/WikiDocumentFeedEntryManager.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/connectors/feed/FeedAggregatorDAO.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/connectors/feed/FeedAggregatorDAO.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/etc/META-INF/components-dev.xml" afterPath="$PROJECT_DIR$/src/etc/META-INF/components-dev.xml" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/ui/FileServlet.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/ui/FileServlet.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/plugin/faqBrowser/FaqQuestionHome.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/plugin/faqBrowser/FaqQuestionHome.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/action/DocumentHome.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/action/DocumentHome.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/feeds/FeedDAO.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/feeds/FeedDAO.java" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Wiki.ipr" afterPath="$PROJECT_DIR$/Wiki.ipr" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/action/UserPasswordReset.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/action/UserPasswordReset.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/search/WikiSearch.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/search/WikiSearch.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/action/UploadHome.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/action/UploadHome.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/plugin/forum/ForumHome.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/plugin/forum/ForumHome.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/action/UserHome.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/action/UserHome.java" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/view/themes/sfwkorg/img/runningon_seamlogo_white.gif" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/etc/WEB-INF/components.xml" afterPath="$PROJECT_DIR$/src/etc/WEB-INF/components.xml" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/org/jboss/seam/wiki/test/preferences/UserPreferencesTests.java" afterPath="$PROJECT_DIR$/src/test/org/jboss/seam/wiki/test/preferences/UserPreferencesTests.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/preferences/Preferences.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/preferences/Preferences.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/Wiki.iml" afterPath="$PROJECT_DIR$/Wiki.iml" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/ui/FeedServlet.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/ui/FeedServlet.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/org/jboss/seam/wiki/test/editing/Uploading.java" afterPath="$PROJECT_DIR$/src/test/org/jboss/seam/wiki/test/editing/Uploading.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/etc/import-prod.sql" afterPath="$PROJECT_DIR$/src/etc/import-prod.sql" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/view/themes/sfwkorg/img/runningon_seamlogo_black.gif" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/view/themes/default/css/template.css" afterPath="$PROJECT_DIR$/view/themes/default/css/template.css" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/connectors/feed/FeedAggregateCache.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/connectors/feed/FeedAggregateCache.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/org/jboss/seam/wiki/test/WikiBaseData.dbunit.xml" afterPath="$PROJECT_DIR$/src/test/org/jboss/seam/wiki/test/WikiBaseData.dbunit.xml" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/plugin/forum/ForumQueries.hbm.xml" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/plugin/forum/ForumQueries.hbm.xml" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/connectors/cache/ConnectorCache.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/connectors/cache/ConnectorCache.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/feeds/WikiCommentFeedEntryManager.java" afterPath="$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/feeds/WikiCommentFeedEntryManager.java" />
     </list>
-    <list name="Failed commit: Default" comment="Oops" />
-    <list name="Foo" comment="" />
     <ignored path="dist/" />
   </component>
   <component name="ChangesViewManager" flattened_view="false" show_ignored="false" />
@@ -203,21 +177,12 @@
       <file leaf-file-name="FeedServlet.java" pinned="false" current="true" current-in-tab="true">
         <entry file="file://$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/ui/FeedServlet.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state line="241" column="0" selection-start="10913" selection-end="10913" vertical-scroll-proportion="0.5566038">
+            <state line="270" column="15" selection-start="12910" selection-end="12910" vertical-scroll-proportion="0.33285302">
               <folding />
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="FileServlet.java" pinned="false" current="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/ui/FileServlet.java">
-          <provider selected="true" editor-type-id="text-editor">
-            <state line="128" column="0" selection-start="4941" selection-end="4941" vertical-scroll-proportion="0.9716981">
-              <folding />
-            </state>
-          </provider>
-        </entry>
-      </file>
     </leaf>
   </component>
   <component name="FindManager">
@@ -480,13 +445,9 @@
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
         <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/view/themes" />
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/view/plugins" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
-        <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/view/themes/sfwkorg" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-        </PATH_ELEMENT>
       </PATH>
       <PATH>
         <PATH_ELEMENT>
@@ -506,31 +467,13 @@
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
         <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/view/themes" />
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/view/plugins" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
-      </PATH>
-      <PATH>
         <PATH_ELEMENT>
-          <option name="myItemId" value="Wiki" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
-        </PATH_ELEMENT>
-        <PATH_ELEMENT>
-          <option name="myItemId" value="Wiki" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
-        </PATH_ELEMENT>
-        <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$" />
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/view/plugins/dirToc" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
-        <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/src" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-        </PATH_ELEMENT>
-        <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/src/test" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-        </PATH_ELEMENT>
       </PATH>
       <PATH>
         <PATH_ELEMENT>
@@ -549,14 +492,6 @@
           <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/src" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
-        <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/src/test" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-        </PATH_ELEMENT>
-        <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/src/test/org/jboss/seam/wiki/test" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-        </PATH_ELEMENT>
       </PATH>
       <PATH>
         <PATH_ELEMENT>
@@ -576,92 +511,10 @@
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
         <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/src/test" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-        </PATH_ELEMENT>
-        <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/src/test/org/jboss/seam/wiki/test" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-        </PATH_ELEMENT>
-        <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/src/test/org/jboss/seam/wiki/test/feeds" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-        </PATH_ELEMENT>
-      </PATH>
-      <PATH>
-        <PATH_ELEMENT>
-          <option name="myItemId" value="Wiki" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
-        </PATH_ELEMENT>
-        <PATH_ELEMENT>
-          <option name="myItemId" value="Wiki" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
-        </PATH_ELEMENT>
-        <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-        </PATH_ELEMENT>
-        <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/src" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-        </PATH_ELEMENT>
-        <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/src/test" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-        </PATH_ELEMENT>
-        <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/src/test/org/jboss/seam/wiki/test" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-        </PATH_ELEMENT>
-        <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/src/test/org/jboss/seam/wiki/test/editing" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-        </PATH_ELEMENT>
-      </PATH>
-      <PATH>
-        <PATH_ELEMENT>
-          <option name="myItemId" value="Wiki" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
-        </PATH_ELEMENT>
-        <PATH_ELEMENT>
-          <option name="myItemId" value="Wiki" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
-        </PATH_ELEMENT>
-        <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-        </PATH_ELEMENT>
-        <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/src" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-        </PATH_ELEMENT>
-        <PATH_ELEMENT>
           <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/src/main" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
-      </PATH>
-      <PATH>
         <PATH_ELEMENT>
-          <option name="myItemId" value="Wiki" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
-        </PATH_ELEMENT>
-        <PATH_ELEMENT>
-          <option name="myItemId" value="Wiki" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
-        </PATH_ELEMENT>
-        <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-        </PATH_ELEMENT>
-        <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/src" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-        </PATH_ELEMENT>
-        <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/src/main" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-        </PATH_ELEMENT>
-        <PATH_ELEMENT>
           <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/src/main/org/jboss/seam/wiki" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
@@ -726,7 +579,7 @@
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
         <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/src/main/org/jboss/seam/wiki/plugin/forum" />
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/src/main/org/jboss/seam/wiki/plugin/dirToc" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
       </PATH>
@@ -756,7 +609,7 @@
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
         <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core" />
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/src/main/org/jboss/seam/wiki/connectors" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
       </PATH>
@@ -786,32 +639,14 @@
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
         <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core" />
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/src/main/org/jboss/seam/wiki/connectors" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
         <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/engine" />
+          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/src/main/org/jboss/seam/wiki/connectors/feed" />
           <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
         </PATH_ELEMENT>
       </PATH>
-      <PATH>
-        <PATH_ELEMENT>
-          <option name="myItemId" value="Wiki" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
-        </PATH_ELEMENT>
-        <PATH_ELEMENT>
-          <option name="myItemId" value="Wiki" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
-        </PATH_ELEMENT>
-        <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-        </PATH_ELEMENT>
-        <PATH_ELEMENT>
-          <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/src" />
-          <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
-        </PATH_ELEMENT>
-      </PATH>
     </subPane>
   </component>
   <component name="ProjectReloadState">
@@ -831,14 +666,14 @@
     <option name="lastEditedConfigurable" value="Wiki" />
   </component>
   <component name="ProjectView">
-    <navigator currentView="ProjectPane" proportions="0.11111111" version="1" splitterProportion="0.5">
+    <navigator currentView="ProjectPane" proportions="0.5" version="1" splitterProportion="0.5">
       <flattenPackages ProjectPane="false" />
       <showMembers />
       <showModules />
       <showLibraryContents />
       <hideEmptyPackages ProjectPane="true" />
       <abbreviatePackageNames />
-      <showStructure PackagesPane="false" Scope="false" Favorites="false" ProjectPane="false" />
+      <showStructure Favorites="false" Scope="false" PackagesPane="false" ProjectPane="false" />
       <autoscrollToSource />
       <autoscrollFromSource ProjectPane="false" />
       <sortByType />
@@ -852,8 +687,8 @@
     <property name="FileHistory.com.intellij.cvsSupport2.history.CvsHistoryProvider_treeOrder4" value="4" />
     <property name="TEMP_MODULE_EXPLODED_DIR_FOR_Wiki/web/Web" value="/private/tmp/webExplodedDir27892tmp" />
     <property name="cvs_file_history_flatOrder1" value="1" />
-    <property name="cvs_file_history_flatWidth1" value="351" />
     <property name="FileHistory.com.intellij.cvsSupport2.history.CvsHistoryProvider_flatOrder5" value="5" />
+    <property name="cvs_file_history_flatWidth1" value="351" />
     <property name="FileHistory.com.intellij.cvsSupport2.history.CvsHistoryProvider_flatWidth6" value="531" />
     <property name="cvs_file_history_flatOrder2" value="2" />
     <property name="MemberChooser.showClasses" value="true" />
@@ -904,12 +739,12 @@
     <property name="FileHistory.com.intellij.cvsSupport2.history.CvsHistoryProvider_treeOrder0" value="0" />
     <property name="FileHistory.com.intellij.cvsSupport2.history.CvsHistoryProvider_treeWidth6" value="531" />
     <property name="FileHistory.com.intellij.cvsSupport2.history.CvsHistoryProvider_flatOrder0" value="0" />
-    <property name="cvs_file_history_flatWidth6" value="350" />
     <property name="FileHistory.com.intellij.cvsSupport2.history.CvsHistoryProvider_flatWidth5" value="319" />
+    <property name="cvs_file_history_flatWidth6" value="350" />
     <property name="FileHistory.com.intellij.cvsSupport2.history.CvsHistoryProvider_flatOrder3" value="3" />
     <property name="cvs_file_history_flatOrder5" value="5" />
-    <property name="cvs_file_history_flatWidth5" value="351" />
     <property name="FileHistory.com.intellij.cvsSupport2.history.CvsHistoryProvider_treeOrder5" value="5" />
+    <property name="cvs_file_history_flatWidth5" value="351" />
     <property name="cvs_file_history_treeOrder2" value="2" />
     <property name="cvs_file_history_treeWidth5" value="351" />
     <property name="cvs_file_history_flatWidth0" value="351" />
@@ -918,32 +753,33 @@
   </component>
   <component name="RecentsManager">
     <key name="CopyClassDialog.RECENTS_KEY">
+      <recent name="org.jboss.seam.wiki.core.ui.icon" />
       <recent name="org.jboss.seam.wiki.plugin.faqBrowser" />
       <recent name="org.jboss.seam.wiki.core.action" />
       <recent name="org.jboss.seam.wiki.test.preferences" />
       <recent name="org.jboss.seam.wiki.core.preferences2.template" />
-      <recent name="org.jboss.seam.wiki.core.preferences2.editor" />
     </key>
     <key name="MoveClassesOrPackagesDialog.RECENTS_KEY">
+      <recent name="org.jboss.seam.wiki.core.action" />
+      <recent name="org.jboss.seam.wiki.core.renderer" />
       <recent name="org.jboss.seam.wiki.connectors.cache" />
       <recent name="org.jboss.seam.wiki.connectors.jira" />
       <recent name="org.jboss.seam.wiki.preferences" />
-      <recent name="org.jboss.seam.wiki.core.preferences" />
-      <recent name="org.jboss.seam.wiki.preferences2.metamodel" />
     </key>
   </component>
   <component name="RunManager" selected="TestNG.AllTests">
-    <configuration default="true" type="#com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory" factoryName="Local">
+    <configuration default="true" type="#com.intellij.j2ee.web.jsr45.JSR45ConfigurationFactory" factoryName="Remote">
       <option name="WORKING_DIRECTORY" />
       <option name="HOST" value="localhost" />
       <option name="PORT" value="8080" />
-      <option name="LOCAL" value="true" />
+      <option name="LOCAL" value="false" />
       <option name="OPEN_IN_BROWSER" value="true" />
       <option name="OPEN_IN_BROWSER_URL" value="/" />
       <option name="COMMON_VM_ARGUMENTS" value="" />
-      <option name="DEPLOY_TOMCAT_MANAGER" value="false" />
-      <option name="BASE_DIRECTORY_NAME" value="" />
-      <predefined_log_file id="TOMCAT_LOCALHOST_LOG_ID" enabled="true" />
+      <option name="JSP_PACKAGE" value="" />
+      <option name="VM_OPTS" value="VM_OPTS" />
+      <option name="USE_WEBSPHERE51_LINEMAPPING_MODEL" value="false" />
+      <option name="LOCAL_PORT" value="80" />
     </configuration>
     <configuration default="true" type="Remote" factoryName="Remote">
       <option name="USE_SOCKET_TRANSPORT" value="true" />
@@ -952,6 +788,46 @@
       <option name="HOST" value="localhost" />
       <option name="PORT" value="5005" />
     </configuration>
+    <configuration default="true" type="WebLogic Instance" factoryName="Remote">
+      <option name="WORKING_DIRECTORY" />
+      <option name="HOST" value="localhost" />
+      <option name="PORT" value="7001" />
+      <option name="LOCAL" value="false" />
+      <option name="OPEN_IN_BROWSER" value="true" />
+      <option name="OPEN_IN_BROWSER_URL" value="/" />
+      <option name="COMMON_VM_ARGUMENTS" value="" />
+      <option name="DOMAIN_PATH" value="" />
+      <option name="USER" value="weblogic" />
+      <option name="PASSWORD" value="weblogic" />
+      <option name="SERVER_NAME" value="myserver" />
+      <option name="DOMAIN_NAME" value="mydomain" />
+      <predefined_log_file id="WEBLOGIC_DOMAIN_LOG_FILE" enabled="true" />
+      <predefined_log_file id="WEBLOGIC_SERVER_LOG_FILE" enabled="true" />
+    </configuration>
+    <configuration default="true" type="#com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory" factoryName="Remote">
+      <option name="WORKING_DIRECTORY" />
+      <option name="HOST" value="localhost" />
+      <option name="PORT" value="8080" />
+      <option name="LOCAL" value="false" />
+      <option name="OPEN_IN_BROWSER" value="true" />
+      <option name="OPEN_IN_BROWSER_URL" value="/" />
+      <option name="COMMON_VM_ARGUMENTS" value="" />
+      <option name="DEPLOY_TOMCAT_MANAGER" value="false" />
+      <option name="BASE_DIRECTORY_NAME" value="" />
+      <predefined_log_file id="TOMCAT_LOCALHOST_LOG_ID" enabled="true" />
+    </configuration>
+    <configuration default="true" type="Applet" factoryName="Applet">
+      <module name="" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="HTML_FILE_NAME" />
+      <option name="HTML_USED" value="false" />
+      <option name="WIDTH" value="400" />
+      <option name="HEIGHT" value="300" />
+      <option name="POLICY_FILE" value="$PROJECT_DIR$/../../../../../../../Desktop/IntelliJ IDEA.app/bin/appletviewer.policy" />
+      <option name="VM_PARAMETERS" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+    </configuration>
     <configuration default="true" type="Application" factoryName="Application" enabled="false" merge="false">
       <option name="MAIN_CLASS_NAME" />
       <option name="VM_PARAMETERS" />
@@ -968,11 +844,11 @@
         <option name="Make" value="true" />
       </method>
     </configuration>
-    <configuration default="true" type="#com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory" factoryName="Remote">
+    <configuration default="true" type="#com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory" factoryName="Local">
       <option name="WORKING_DIRECTORY" />
       <option name="HOST" value="localhost" />
       <option name="PORT" value="8080" />
-      <option name="LOCAL" value="false" />
+      <option name="LOCAL" value="true" />
       <option name="OPEN_IN_BROWSER" value="true" />
       <option name="OPEN_IN_BROWSER_URL" value="/" />
       <option name="COMMON_VM_ARGUMENTS" value="" />
@@ -980,17 +856,18 @@
       <option name="BASE_DIRECTORY_NAME" value="" />
       <predefined_log_file id="TOMCAT_LOCALHOST_LOG_ID" enabled="true" />
     </configuration>
-    <configuration default="true" type="Applet" factoryName="Applet">
-      <module name="" />
-      <option name="MAIN_CLASS_NAME" />
-      <option name="HTML_FILE_NAME" />
-      <option name="HTML_USED" value="false" />
-      <option name="WIDTH" value="400" />
-      <option name="HEIGHT" value="300" />
-      <option name="POLICY_FILE" value="$PROJECT_DIR$/../../../../../../../Desktop/IntelliJ IDEA.app/bin/appletviewer.policy" />
-      <option name="VM_PARAMETERS" />
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
+    <configuration default="true" type="#com.intellij.j2ee.web.jsr45.JSR45ConfigurationFactory" factoryName="Local">
+      <option name="WORKING_DIRECTORY" />
+      <option name="HOST" value="localhost" />
+      <option name="PORT" value="8080" />
+      <option name="LOCAL" value="true" />
+      <option name="OPEN_IN_BROWSER" value="true" />
+      <option name="OPEN_IN_BROWSER_URL" value="/" />
+      <option name="COMMON_VM_ARGUMENTS" value="" />
+      <option name="JSP_PACKAGE" value="" />
+      <option name="VM_OPTS" value="VM_OPTS" />
+      <option name="USE_WEBSPHERE51_LINEMAPPING_MODEL" value="false" />
+      <option name="LOCAL_PORT" value="80" />
     </configuration>
     <configuration default="true" type="TestNG" factoryName="TestNG" enabled="false" merge="false">
       <module name="" />
@@ -1026,6 +903,22 @@
         <option name="Run ant target" value="false" />
       </method>
     </configuration>
+    <configuration default="true" type="WebLogic Instance" factoryName="Local">
+      <option name="WORKING_DIRECTORY" />
+      <option name="HOST" value="localhost" />
+      <option name="PORT" value="7001" />
+      <option name="LOCAL" value="true" />
+      <option name="OPEN_IN_BROWSER" value="true" />
+      <option name="OPEN_IN_BROWSER_URL" value="/" />
+      <option name="COMMON_VM_ARGUMENTS" value="" />
+      <option name="DOMAIN_PATH" value="" />
+      <option name="USER" value="weblogic" />
+      <option name="PASSWORD" value="weblogic" />
+      <option name="SERVER_NAME" value="myserver" />
+      <option name="DOMAIN_NAME" value="mydomain" />
+      <predefined_log_file id="WEBLOGIC_DOMAIN_LOG_FILE" enabled="true" />
+      <predefined_log_file id="WEBLOGIC_SERVER_LOG_FILE" enabled="true" />
+    </configuration>
     <configuration default="true" type="JUnit" factoryName="JUnit" enabled="false" merge="false">
       <module name="" />
       <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
@@ -1142,6 +1035,11 @@
         <option name="TRANSPORT" value="0" />
         <option name="LOCAL" value="true" />
       </RunnerSettings>
+      <RunnerSettings RunnerId="JProfiler">
+        <option name="WINDOW" value="false" />
+        <option name="JVMPI" value="false" />
+        <option name="INTERPRETED" value="false" />
+      </RunnerSettings>
       <RunnerSettings RunnerId="Run" />
       <ConfigurationWrapper RunnerId="Debug" />
       <ConfigurationWrapper RunnerId="Run" />
@@ -1158,7 +1056,7 @@
       <option name="SUITE_NAME" value="" />
       <option name="PACKAGE_NAME" value="org.jboss.seam.wiki.test.editing" />
       <option name="MAIN_CLASS_NAME" value="org.jboss.seam.wiki.test.editing.BasicNodeOperations" />
-      <option name="METHOD_NAME" value="editDirectory" />
+      <option name="METHOD_NAME" value="createDocumentTooMuchContent" />
       <option name="GROUP_NAME" value="" />
       <option name="TEST_OBJECT" value="METHOD" />
       <option name="VM_PARAMETERS" value="" />
@@ -1185,6 +1083,11 @@
         <option name="TRANSPORT" value="0" />
         <option name="LOCAL" value="true" />
       </RunnerSettings>
+      <RunnerSettings RunnerId="JProfiler">
+        <option name="WINDOW" value="false" />
+        <option name="JVMPI" value="false" />
+        <option name="INTERPRETED" value="false" />
+      </RunnerSettings>
       <RunnerSettings RunnerId="Run" />
       <ConfigurationWrapper RunnerId="Debug" />
       <ConfigurationWrapper RunnerId="Run" />
@@ -1201,64 +1104,6 @@
       <item index="3" class="java.lang.String" itemvalue="TestNG.AllTests" />
       <item index="4" class="java.lang.String" itemvalue="TestNG.Adhoc" />
     </list>
-    <configuration default="true" type="#com.intellij.j2ee.web.jsr45.JSR45ConfigurationFactory" factoryName="Remote">
-      <option name="WORKING_DIRECTORY" />
-      <option name="HOST" value="localhost" />
-      <option name="PORT" value="8080" />
-      <option name="LOCAL" value="false" />
-      <option name="OPEN_IN_BROWSER" value="true" />
-      <option name="OPEN_IN_BROWSER_URL" value="/" />
-      <option name="COMMON_VM_ARGUMENTS" value="" />
-      <option name="JSP_PACKAGE" value="" />
-      <option name="VM_OPTS" value="VM_OPTS" />
-      <option name="USE_WEBSPHERE51_LINEMAPPING_MODEL" value="false" />
-      <option name="LOCAL_PORT" value="80" />
-    </configuration>
-    <configuration default="true" type="WebLogic Instance" factoryName="Local">
-      <option name="WORKING_DIRECTORY" />
-      <option name="HOST" value="localhost" />
-      <option name="PORT" value="7001" />
-      <option name="LOCAL" value="true" />
-      <option name="OPEN_IN_BROWSER" value="true" />
-      <option name="OPEN_IN_BROWSER_URL" value="/" />
-      <option name="COMMON_VM_ARGUMENTS" value="" />
-      <option name="DOMAIN_PATH" value="" />
-      <option name="USER" value="weblogic" />
-      <option name="PASSWORD" value="weblogic" />
-      <option name="SERVER_NAME" value="myserver" />
-      <option name="DOMAIN_NAME" value="mydomain" />
-      <predefined_log_file id="WEBLOGIC_DOMAIN_LOG_FILE" enabled="true" />
-      <predefined_log_file id="WEBLOGIC_SERVER_LOG_FILE" enabled="true" />
-    </configuration>
-    <configuration default="true" type="#com.intellij.j2ee.web.jsr45.JSR45ConfigurationFactory" factoryName="Local">
-      <option name="WORKING_DIRECTORY" />
-      <option name="HOST" value="localhost" />
-      <option name="PORT" value="8080" />
-      <option name="LOCAL" value="true" />
-      <option name="OPEN_IN_BROWSER" value="true" />
-      <option name="OPEN_IN_BROWSER_URL" value="/" />
-      <option name="COMMON_VM_ARGUMENTS" value="" />
-      <option name="JSP_PACKAGE" value="" />
-      <option name="VM_OPTS" value="VM_OPTS" />
-      <option name="USE_WEBSPHERE51_LINEMAPPING_MODEL" value="false" />
-      <option name="LOCAL_PORT" value="80" />
-    </configuration>
-    <configuration default="true" type="WebLogic Instance" factoryName="Remote">
-      <option name="WORKING_DIRECTORY" />
-      <option name="HOST" value="localhost" />
-      <option name="PORT" value="7001" />
-      <option name="LOCAL" value="false" />
-      <option name="OPEN_IN_BROWSER" value="true" />
-      <option name="OPEN_IN_BROWSER_URL" value="/" />
-      <option name="COMMON_VM_ARGUMENTS" value="" />
-      <option name="DOMAIN_PATH" value="" />
-      <option name="USER" value="weblogic" />
-      <option name="PASSWORD" value="weblogic" />
-      <option name="SERVER_NAME" value="myserver" />
-      <option name="DOMAIN_NAME" value="mydomain" />
-      <predefined_log_file id="WEBLOGIC_DOMAIN_LOG_FILE" enabled="true" />
-      <predefined_log_file id="WEBLOGIC_SERVER_LOG_FILE" enabled="true" />
-    </configuration>
   </component>
   <component name="SQLPlugin.ProjectConfiguration">
     <queries />
@@ -1346,39 +1191,40 @@
     </todo-panel>
   </component>
   <component name="ToolWindowManager">
-    <frame x="0" y="22" width="2560" height="1523" extended-state="6" />
+    <frame x="0" y="22" width="2560" height="1533" extended-state="6" />
     <editor active="false" />
     <layout>
-      <window_info id="SQL" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.42507002" order="16" x="897" y="216" width="436" height="865" />
+      <window_info id="SQL" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.40333796" order="16" x="897" y="216" width="436" height="865" />
+      <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="2" />
+      <window_info id="IDEtalk" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3297414" order="3" />
       <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.64235127" order="7" />
-      <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.20421974" order="0" />
-      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.6162465" order="1" />
+      <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.1437102" order="0" />
+      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.6133519" order="1" />
       <window_info id="Structure" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.16103522" order="7" />
-      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.28431374" order="12" x="2269" y="1083" width="300" height="438" />
+      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.28025034" order="12" x="2269" y="1083" width="300" height="438" />
       <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" order="5" />
-      <window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.39486468" order="13" />
       <window_info id="Module Dependencies" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32961783" order="6" />
+      <window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.39429763" order="13" />
       <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="4" />
-      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.10987261" order="2" />
-      <window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32913166" order="14" />
-      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.464986" order="2" x="-1442" y="805" width="1440" height="900" />
-      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24874191" order="1" />
+      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.14942528" order="2" />
+      <window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32753825" order="14" />
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.46175244" order="2" x="-1442" y="805" width="1440" height="900" />
+      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24761146" order="1" />
+      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.39968154" order="0" />
       <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.67881244" order="3" />
-      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.2109646" order="11" />
+      <window_info id="IDEtalk Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="15" />
+      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.21070932" order="11" />
       <window_info id="Duplicates" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3296322" order="9" />
       <window_info id="SVN Repositories" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.32928476" order="8" />
-      <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="2" />
-      <window_info id="IDEtalk" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3297414" order="3" />
       <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="4" />
       <window_info id="Maven projects" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32902297" order="3" />
-      <window_info id="SQL Schema" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.29215822" order="0" />
+      <window_info id="SQL Schema" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.2920168" order="0" />
+      <window_info id="JProfiler" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="8" />
       <window_info id="CVS" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="10" />
       <window_info id="Web" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" order="1" />
       <window_info id="EJB" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" order="6" />
       <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" order="8" />
       <window_info id="File View" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="5" />
-      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.39968154" order="0" />
-      <window_info id="IDEtalk Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="15" />
     </layout>
   </component>
   <component name="VCS.FileViewConfiguration">
@@ -1396,7 +1242,7 @@
     <option name="PERFORM_EDIT_IN_BACKGROUND" value="true" />
     <option name="PERFORM_ADD_REMOVE_IN_BACKGROUND" value="true" />
     <option name="FORCE_NON_EMPTY_COMMENT" value="false" />
-    <option name="LAST_COMMIT_MESSAGE" value="Improved exception handling a bit (still buggy)" />
+    <option name="LAST_COMMIT_MESSAGE" value="Minor UI fix for Safari" />
     <option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="false" />
     <option name="REFORMAT_BEFORE_PROJECT_COMMIT" value="false" />
     <option name="REFORMAT_BEFORE_FILE_COMMIT" value="false" />
@@ -1407,31 +1253,31 @@
     <option name="UPDATE_GROUP_BY_CHANGELIST" value="false" />
     <option name="SHOW_FILE_HISTORY_AS_TREE" value="false" />
     <option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" />
-    <MESSAGE value="JBSEAM-2136 - Anchor/linking support for document headlines" />
-    <MESSAGE value="Right-click action menu on dir display" />
-    <MESSAGE value="JBSEAM-2457 - Render &quot;REST&quot; feed/file download URLs, breaks all current feed/file bookmarks" />
-    <MESSAGE value="Minor" />
+    <MESSAGE value="Cleanup and preparation for production" />
+    <MESSAGE value="Formatting toolbar for wiki text editor" />
+    <MESSAGE value="New tag editor, global AJAX status indicator, other cleanup" />
+    <MESSAGE value="UI and forum query performance optimizations" />
+    <MESSAGE value="Nicer URLs for sear" />
+    <MESSAGE value="Submit search form on Enter, nicer URLs for search and after editing, unified URL rendering" />
+    <MESSAGE value="Disabled live preview, manual preview update now with keyboard shortcut" />
+    <MESSAGE value="Button for manual preview, force validation for comments/forum postings" />
+    <MESSAGE value="Optimized execution plan of forum list SQL queries" />
+    <MESSAGE value="Implemented tag cloud" />
+    <MESSAGE value="Fixed search URL rewritting and submit-on-enter on search page, JBSEAM-2626" />
+    <MESSAGE value="Do not show supersecret e-mail addresses to non-admins" />
+    <MESSAGE value="JBSEAM-2631, send notification emails of forum to mailing list" />
+    <MESSAGE value="JBSEAM-2653, creation time should be persist() time" />
+    <MESSAGE value="JBSEAM-2586, new icons for FAQ browser" />
+    <MESSAGE value="d" />
+    <MESSAGE value="JBSEAM-2671" />
+    <MESSAGE value="JBSEAM-2671, too much document content didn't trigger validation" />
+    <MESSAGE value="JBSEAM-2673, use given name as feedentry name for anonymous user comments" />
+    <MESSAGE value="UI Consistency Work" />
+    <MESSAGE value="JBSEAM-2582, UI consistency work and new directory browser" />
     <MESSAGE value="Fix test" />
-    <MESSAGE value="Layout fix for revision display" />
-    <MESSAGE value="Make ORDER BY in queries more typesafe" />
-    <MESSAGE value="Ooops" />
-    <MESSAGE value="JBSEAM-2486 - Implemented FAQ browser plugin" />
-    <MESSAGE value="Fixes for faq browser" />
-    <MESSAGE value="Updated IntelliJ project to subversion" />
-    <MESSAGE value="Stupid bug" />
-    <MESSAGE value="Update IntelliJ, better headline rendering, minor fixes to FAQ plugin" />
-    <MESSAGE value="Various bugfixes" />
-    <MESSAGE value="JBSEAM-2502 - JIRA issue list plugin and JIRA connector (plus re-usable remote connector data cache)" />
-    <MESSAGE value="JBSEAM-2451 - Feed aggregator connector and plugin" />
-    <MESSAGE value="Fix possible non-threadsafe map access, async updater might write after purge" />
-    <MESSAGE value="Configuration switch for site feed in main menu" />
-    <MESSAGE value="Implemented subscription for aggregated feeds" />
-    <MESSAGE value="Minor UI improvements, IE fixes" />
-    <MESSAGE value="Fix tests" />
-    <MESSAGE value="Rating system for comments and top posters plugin" />
-    <MESSAGE value="Fix NPE" />
-    <MESSAGE value="Minor changes" />
-    <MESSAGE value="Improved exception handling a bit (still buggy)" />
+    <MESSAGE value="JBSEAM-2634, table-of-contents plugin" />
+    <MESSAGE value="JBSEAM-2687, activate inactive account on password reset" />
+    <MESSAGE value="Minor UI fix for Safari" />
   </component>
   <component name="VssConfiguration">
     <option name="CLIENT_PATH" value="" />
@@ -1483,6 +1329,7 @@
         <filter targetName="copyjbossembedded" isVisible="false" />
         <filter targetName="copyseam" isVisible="false" />
         <filter targetName="copyseamdependencies" isVisible="false" />
+        <filter targetName="dependencyReport" isVisible="true" />
         <filter targetName="deploy" isVisible="true" />
         <filter targetName="dist" isVisible="true" />
         <filter targetName="explodehotdeploy" isVisible="false" />
@@ -1495,7 +1342,6 @@
         <filter targetName="initdav" isVisible="false" />
         <filter targetName="initpoms" isVisible="false" />
         <filter targetName="redeploy" isVisible="true" />
-        <filter targetName="schemaexport" isVisible="true" />
         <filter targetName="startdb" isVisible="true" />
         <filter targetName="test" isVisible="true" />
         <filter targetName="undeploy" isVisible="true" />
@@ -1517,114 +1363,114 @@
     <option name="myLastEditedConfigurable" value="Default" />
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/migration.sql">
+    <entry file="file://$PROJECT_DIR$/src/main/org/jboss/seam/wiki/util/WikiUtil.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="199" column="59" selection-start="12559" selection-end="12559" vertical-scroll-proportion="0.5471698">
+        <state line="154" column="51" selection-start="5718" selection-end="5718" vertical-scroll-proportion="0.36527377">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/test/org/jboss/seam/wiki/test/WikiBaseData.dbunit.xml">
+    <entry file="file://$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/action/DirectoryBrowser.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="23" column="140" selection-start="3839" selection-end="3873" vertical-scroll-proportion="0.22213967">
+        <state line="167" column="0" selection-start="5638" selection-end="5638" vertical-scroll-proportion="0.5151297">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/action/DirectoryHome.java">
+    <entry file="file://$PROJECT_DIR$/src/main/org/jboss/seam/wiki/connectors/jira/JiraIssueListCache.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="203" column="0" selection-start="6312" selection-end="6563" vertical-scroll-proportion="0.9150943">
+        <state line="33" column="52" selection-start="1174" selection-end="1174" vertical-scroll-proportion="0.3090778">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/view/includes/searchControl.xhtml">
+    <entry file="file://$PROJECT_DIR$/src/main/org/jboss/seam/wiki/connectors/feed/FeedConnectorPreferences.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="21" column="13" selection-start="1410" selection-end="1410" vertical-scroll-proportion="0.20058781">
+        <state line="34" column="12" selection-start="1150" selection-end="1150" vertical-scroll-proportion="0.3184438">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/view/includes/userControl.xhtml">
+    <entry file="file://$PROJECT_DIR$/src/main/org/jboss/seam/wiki/plugin/feedAggregator/FeedAggregator.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="109" column="0" selection-start="5913" selection-end="5913" vertical-scroll-proportion="0.36296842">
+        <state line="25" column="13" selection-start="635" selection-end="635" vertical-scroll-proportion="0.23414986">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/view/themes/default/css/template.css">
+    <entry file="file://$PROJECT_DIR$/src/etc/i18n/messages_en.properties">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="985" column="0" selection-start="16132" selection-end="16132" vertical-scroll-proportion="0.3490566">
+        <state line="42" column="126" selection-start="2242" selection-end="2242" vertical-scroll-proportion="0.0093659945">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/view/themes/sfwkorg/css/sfwk.css">
+    <entry file="file://$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/ui/FileServlet.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="734" column="0" selection-start="11189" selection-end="11237" vertical-scroll-proportion="0.009433962">
+        <state line="90" column="51" selection-start="3425" selection-end="3425" vertical-scroll-proportion="0.40994236">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/view/docDisplay_d.xhtml">
+    <entry file="file://$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/model/FeedEntry.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="205" column="33" selection-start="11321" selection-end="11321" vertical-scroll-proportion="0.51212347">
+        <state line="129" column="27" selection-start="3039" selection-end="3039" vertical-scroll-proportion="0.19380404">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/view/includes/commentsDisplay.xhtml">
+    <entry file="file://$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/feeds/WikiCommentFeedEntryManager.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="104" column="0" selection-start="6141" selection-end="6141" vertical-scroll-proportion="0.55033064">
+        <state line="39" column="0" selection-start="1653" selection-end="1653" vertical-scroll-proportion="0.36527377">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/dao/WikiNodeDAO.java">
+    <entry file="file://$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/feeds/WikiDocumentFeedEntryManager.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="345" column="94" selection-start="15370" selection-end="15370" vertical-scroll-proportion="0.3896952">
+        <state line="38" column="0" selection-start="1447" selection-end="1447" vertical-scroll-proportion="0.35590777">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/org/jboss/seam/wiki/plugin/lastmodified/LastModifiedDocuments.java">
+    <entry file="file://$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/feeds/FeedDAO.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="40" column="37" selection-start="1211" selection-end="1211" vertical-scroll-proportion="0.3773585">
+        <state line="207" column="0" selection-start="8289" selection-end="8289" vertical-scroll-proportion="0.5309798">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/test/org/jboss/seam/wiki/test/dao/WikiNodeDAOTests.java">
+    <entry file="file://$PROJECT_DIR$/src/main/org/jboss/seam/wiki/connectors/feed/FeedAggregateCache.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="82" column="48" selection-start="2791" selection-end="2791" vertical-scroll-proportion="0.11828737">
+        <state line="32" column="34" selection-start="951" selection-end="951" vertical-scroll-proportion="0.29971182">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/model/WikiDocument.java">
+    <entry file="file://$PROJECT_DIR$/src/main/org/jboss/seam/wiki/connectors/cache/ConnectorCache.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="12" column="13" selection-start="324" selection-end="324" vertical-scroll-proportion="0.11320755">
+        <state line="106" column="22" selection-start="3912" selection-end="3912" vertical-scroll-proportion="0.67146975">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/etc/WEB-INF/web.xml">
+    <entry file="file://$PROJECT_DIR$/src/main/org/jboss/seam/wiki/connectors/feed/RomeFeedConnector.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="113" column="26" selection-start="3388" selection-end="3388" vertical-scroll-proportion="0.904482">
+        <state line="122" column="0" selection-start="4659" selection-end="4659" vertical-scroll-proportion="0.82132566">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/ui/FileServlet.java">
+    <entry file="file://$PROJECT_DIR$/src/main/org/jboss/seam/wiki/connectors/feed/FeedAggregatorDAO.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="128" column="0" selection-start="4941" selection-end="4941" vertical-scroll-proportion="0.9716981">
+        <state line="70" column="67" selection-start="3109" selection-end="3109" vertical-scroll-proportion="0.5871758">
           <folding />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/src/main/org/jboss/seam/wiki/core/ui/FeedServlet.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="241" column="0" selection-start="10913" selection-end="10913" vertical-scroll-proportion="0.5566038">
+        <state line="270" column="15" selection-start="12910" selection-end="12910" vertical-scroll-proportion="0.33285302">
           <folding />
         </state>
       </provider>

Modified: trunk/examples/wiki/src/main/org/jboss/seam/wiki/connectors/cache/ConnectorCache.java
===================================================================
--- trunk/examples/wiki/src/main/org/jboss/seam/wiki/connectors/cache/ConnectorCache.java	2008-02-28 09:25:03 UTC (rev 7494)
+++ trunk/examples/wiki/src/main/org/jboss/seam/wiki/connectors/cache/ConnectorCache.java	2008-02-29 12:38:27 UTC (rev 7495)
@@ -118,7 +118,7 @@
 
     protected ConnectorCacheAsyncUpdater<T, K> getAsyncUpdater() {
         return (ConnectorCacheAsyncUpdater<T, K>) Component.getInstance(getAsyncUpdaterClass());
-    };
+    }
 
     protected ConnectorCacheKey<K> findKey(ConnectorCacheKey<K> key) {
         for (ConnectorCacheKey keyOfMap : cache.keySet()) {
@@ -129,10 +129,10 @@
 
     protected long getUpdateTimeoutSeconds() { return 0; }
     protected abstract long getIdleTimeoutSeconds();
-    protected Class<? extends ConnectorCacheAsyncUpdater<T, K>> getAsyncUpdaterClass() { return null; };
+    protected Class<? extends ConnectorCacheAsyncUpdater<T, K>> getAsyncUpdaterClass() { return null; }
     protected boolean isFirstCacheMissResolvedAsynchronously() { return true; }
     protected List<T> udpateCacheSynchronously(ConnectorCache<T, K> cache, ConnectorCacheKey<K> key) {
         return Collections.EMPTY_LIST;
-    };
+    }
 
 }
\ No newline at end of file

Modified: trunk/examples/wiki/src/main/org/jboss/seam/wiki/connectors/feed/FeedAggregateCache.java
===================================================================
--- trunk/examples/wiki/src/main/org/jboss/seam/wiki/connectors/feed/FeedAggregateCache.java	2008-02-28 09:25:03 UTC (rev 7494)
+++ trunk/examples/wiki/src/main/org/jboss/seam/wiki/connectors/feed/FeedAggregateCache.java	2008-02-29 12:38:27 UTC (rev 7495)
@@ -6,22 +6,16 @@
  */
 package org.jboss.seam.wiki.connectors.feed;
 
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.AutoCreate;
+import org.jboss.seam.annotations.Name;
 import org.jboss.seam.annotations.Scope;
 import org.jboss.seam.annotations.Synchronized;
-import org.jboss.seam.annotations.Name;
-import org.jboss.seam.annotations.AutoCreate;
-import org.jboss.seam.ScopeType;
 import org.jboss.seam.wiki.connectors.cache.ConnectorCache;
 import org.jboss.seam.wiki.connectors.cache.ConnectorCacheKey;
-import org.jboss.seam.wiki.core.model.Feed;
-import org.jboss.seam.wiki.core.model.FeedEntry;
 
-import java.net.URL;
-import java.util.List;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Collections;
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * Caches transient feeds.
@@ -36,6 +30,9 @@
 @AutoCreate
 public class FeedAggregateCache extends ConnectorCache<FeedEntryDTO, FeedAggregateCache.FeedAggregateCacheKey> {
 
+    // The stuff in here is valid for 10 minutes
+    public static long CACHE_IDLE_TIMEOUT_SECONDS = 36000l;
+
     public void put(String aggregateId, List<FeedEntryDTO> feedEntries) {
         long currentTime = System.currentTimeMillis();
         FeedAggregateCacheKey newKey = new FeedAggregateCacheKey(aggregateId);
@@ -54,7 +51,7 @@
     }
 
     protected long getIdleTimeoutSeconds() {
-        return 36000;
+        return CACHE_IDLE_TIMEOUT_SECONDS;
     }
 
     public static class FeedAggregateCacheKey implements Serializable {

Modified: trunk/examples/wiki/src/main/org/jboss/seam/wiki/connectors/feed/FeedAggregatorDAO.java
===================================================================
--- trunk/examples/wiki/src/main/org/jboss/seam/wiki/connectors/feed/FeedAggregatorDAO.java	2008-02-28 09:25:03 UTC (rev 7494)
+++ trunk/examples/wiki/src/main/org/jboss/seam/wiki/connectors/feed/FeedAggregatorDAO.java	2008-02-29 12:38:27 UTC (rev 7495)
@@ -7,7 +7,6 @@
 package org.jboss.seam.wiki.connectors.feed;
 
 import org.jboss.seam.ScopeType;
-import org.jboss.seam.wiki.core.model.Feed;
 import org.jboss.seam.annotations.*;
 import org.jboss.seam.log.Log;
 
@@ -16,6 +15,30 @@
 import java.net.URL;
 
 /**
+ * Calls feed connector several times for several feed URLs, optionally stores the result in a cache.
+ *
+ * <p>
+ * Reads the feed information from the feed connector (or the transparent cache on top of the connector) and
+ * then aggregates the data into <tt>FeedEntryDTO</tt> instances. These instances are then again cached
+ * in the <tt>FeedAggregateCache</tt>. We basically have a DTO/DAO/Cache layer on top of the connector layer (with
+ * its own caching). However, this aggregate cache is not transparent, so if a client wants to get cached
+ * <tt>FeedEntryDTO</tt> objects, it needs to ask the <tt>FeedAggregateCache</tt> directly, not this DAO. The DAO
+ * just puts stuff <i>into</i> the cache when its loaded from the connector.
+ * </p>
+ * <p>
+ * The primary motivation behind this architecture is resolving the disconnect that exists between reading external
+ * feeds and storing them in-memory for further reading (display on pages, exposing aggregated feeds). We also need
+ * to channel parameters, that is, a page might want to render external feeds A and B. However, the connector layer
+ * can only handle a single feed at a time, so the additional aggregation layer was added to combine data from
+ * several feeds (with potentially several connector calls). 
+ * </p>
+ * <p>
+ * Finally, caching the aggregated feeds is optional. If a client asks this DAO to aggregate feed entries of
+ * several external feeds, and does not supply a cache key (the aggregateId), the result is not cached in the
+ * <tt>FeedAggregateCache</tt>. So <i>other</i> clients (which might also only know the aggregateId, not the
+ * external feed URLs) can not access the data on the <tt>FeedAggregateCache</tt>.
+ * </p>
+ *
  * @author Christian Bauer
  */
 @Name("feedAggregatorDAO")

Modified: trunk/examples/wiki/src/main/org/jboss/seam/wiki/connectors/feed/RomeFeedConnector.java
===================================================================
--- trunk/examples/wiki/src/main/org/jboss/seam/wiki/connectors/feed/RomeFeedConnector.java	2008-02-28 09:25:03 UTC (rev 7494)
+++ trunk/examples/wiki/src/main/org/jboss/seam/wiki/connectors/feed/RomeFeedConnector.java	2008-02-29 12:38:27 UTC (rev 7495)
@@ -62,6 +62,7 @@
             SyndFeedInput input = new SyndFeedInput();
             SyndFeed syndFeed = input.build(new XmlReader(connection));
              */
+            // So we let Rome do it, whatever it uses internally seems to be safer...
             SyndFeedInput input = new SyndFeedInput();
             SyndFeed syndFeed = input.build(new XmlReader(feedSource));
 

Modified: trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/feeds/FeedDAO.java
===================================================================
--- trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/feeds/FeedDAO.java	2008-02-28 09:25:03 UTC (rev 7494)
+++ trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/feeds/FeedDAO.java	2008-02-29 12:38:27 UTC (rev 7495)
@@ -138,7 +138,7 @@
 
     public List<FeedEntry> findLastFeedEntries(Long feedId, int maxResults) {
         return (List<FeedEntry>) restrictedEntityManager
-                .createQuery("select fe from Feed f join f.feedEntries fe where f.id = :feedId order by fe.publishedDate desc")
+                .createQuery("select fe from Feed f join f.feedEntries fe where f.id = :feedId order by fe.updatedDate desc")
                 .setParameter("feedId", feedId)
                 .setMaxResults(maxResults)
                 .getResultList();

Modified: trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/feeds/WikiCommentFeedEntryManager.java
===================================================================
--- trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/feeds/WikiCommentFeedEntryManager.java	2008-02-28 09:25:03 UTC (rev 7494)
+++ trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/feeds/WikiCommentFeedEntryManager.java	2008-02-29 12:38:27 UTC (rev 7495)
@@ -37,7 +37,6 @@
         fe.setLink(wikiURLRenderer.renderURL(comment, true));
         fe.setTitle(Messages.instance().get("lacewiki.label.comment.FeedEntryTitlePrefix") + " " + comment.getSubject());
         fe.setAuthor(comment.getCreatedBy().getFullname() != null ? comment.getCreatedBy().getFullname() : comment.getFromUserName());
-        fe.setUpdatedDate(comment.getLastModifiedOn());
 
         fe.setDescriptionValue(getCommentDescription(comment));
     }

Modified: trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/feeds/WikiDocumentFeedEntryManager.java
===================================================================
--- trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/feeds/WikiDocumentFeedEntryManager.java	2008-02-28 09:25:03 UTC (rev 7494)
+++ trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/feeds/WikiDocumentFeedEntryManager.java	2008-02-29 12:38:27 UTC (rev 7495)
@@ -36,7 +36,6 @@
         fe.setLink(wikiURLRenderer.renderURL(document, true));
         fe.setTitle(getFeedEntryTitle(document));
         fe.setAuthor(document.getCreatedBy().getFullname());
-        fe.setUpdatedDate(document.getLastModifiedOn());
 
         fe.setDescriptionValue(renderWikiText(document.getAreaNumber(), document.getFeedDescription()));
     }

Modified: trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/ui/FeedServlet.java
===================================================================
--- trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/ui/FeedServlet.java	2008-02-28 09:25:03 UTC (rev 7494)
+++ trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/ui/FeedServlet.java	2008-02-29 12:38:27 UTC (rev 7495)
@@ -9,7 +9,7 @@
 import com.sun.syndication.feed.synd.*;
 import com.sun.syndication.io.SyndFeedOutput;
 import org.jboss.seam.Component;
-import org.jboss.seam.Seam;
+import org.jboss.seam.transaction.Transaction;
 import org.jboss.seam.web.Session;
 import org.jboss.seam.security.Identity;
 import org.jboss.seam.international.Messages;
@@ -20,6 +20,7 @@
 import org.jboss.seam.wiki.core.dao.WikiNodeDAO;
 import org.jboss.seam.wiki.core.dao.WikiNodeFactory;
 import org.jboss.seam.wiki.util.WikiUtil;
+import org.jboss.seam.wiki.util.Hash;
 import org.jboss.seam.wiki.preferences.Preferences;
 import org.jboss.seam.wiki.connectors.feed.FeedAggregateCache;
 import org.jboss.seam.wiki.connectors.feed.FeedEntryDTO;
@@ -43,6 +44,7 @@
  * read-access filtered. Optionally, requests can enable/disable comments on the feed
  * or filter by tag. It's up to the actual <tt>WikiFeedEntry</tt> instance how these
  * filters are applied.
+ * </p>
  *
  * @author Christian Bauer
  */
@@ -93,6 +95,7 @@
         if (!feedTypes.containsKey(pathInfo)) {
             log.debug("can not render this feed type, returning BAD REQUEST");
             response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Unsupported feed type " + pathInfo);
+            invalidateSessionIfPossible(request);
             return;
         }
         SyndFeedType syndFeedType = feedTypes.get(pathInfo);
@@ -100,10 +103,12 @@
         // Comments
         String commentsParam = request.getParameter("comments");
         Comments comments  = Comments.include;
-        if (commentsParam != null) {
+        if (commentsParam != null && commentsParam.length() >0) {
             try {
                 comments = Comments.valueOf(commentsParam);
-            } catch (IllegalArgumentException ex) {}
+            } catch (IllegalArgumentException ex) {
+                log.info("invalid comments request parameter: " + commentsParam);
+            }
         }
         log.debug("feed rendering handles comments: " + comments);
 
@@ -120,7 +125,7 @@
         UserTransaction userTx = null;
         boolean startedTx = false;
         try {
-            userTx = (UserTransaction)org.jboss.seam.Component.getInstance("org.jboss.seam.transaction.transaction");
+            userTx = Transaction.instance();
             if (userTx.getStatus() != javax.transaction.Status.STATUS_ACTIVE) {
                 startedTx = true;
                 userTx.begin();
@@ -140,6 +145,7 @@
                     feed.setAuthor(Messages.instance().get("lacewiki.msg.AutomaticallyGeneratedFeed"));
                     feed.setTitle(Messages.instance().get("lacewiki.msg.AutomaticallyGeneratedFeed") + ": " + aggregateParam);
                     feed.setPublishedDate(new Date());
+                    // We are lying here, we don't really have an alternate representation link for this resource
                     feed.setLink( Preferences.getInstance(WikiPreferences.class).getBaseUrl() );
                     for (FeedEntryDTO feedEntryDTO : result) {
                         feed.getFeedEntries().add(feedEntryDTO.getFeedEntry());
@@ -188,6 +194,7 @@
                 log.debug("feed not found, returning NOT FOUND");
                 response.sendError(HttpServletResponse.SC_NOT_FOUND, "Feed");
                 if (startedTx) userTx.commit();
+                invalidateSessionIfPossible(request);
                 return;
             }
 
@@ -202,11 +209,46 @@
                     response.setHeader("WWW-Authenticate", "Basic realm=\"" + feed.getTitle().replace("\"", "'") + "\"");
                     response.sendError(HttpServletResponse.SC_UNAUTHORIZED);
                     if (startedTx) userTx.commit();
+                    invalidateSessionIfPossible(request);
                     return;
                 }
             }
 
-            // TODO: Refactor this mess a little
+            String etag = null;
+            if (feed.getId() != null) {
+                log.debug("calculating etag for local feed");
+
+                // Ask the database what the latest feed entry is for that feed, then use its updated timestamp hash
+                FeedDAO feedDAO = (FeedDAO)Component.getInstance(FeedDAO.class);
+                List<FeedEntry> result = feedDAO.findLastFeedEntries(feed.getId(), 1);
+                if (result.size() > 0)
+                    etag = calculateEtag(result.get(0).getUpdatedDate());
+
+            } else {
+                log.debug("calculating etag for aggregated feed");
+
+                // Get the first (latest) entry of the aggregated feed and use its published timestamp hash (ignoring updates!)
+                // There is a wrinkle hidden here: What if a feed entry is updated? Then the published timestamp should also
+                // be different because the "first latest" feed entry in the list is sorted by both published and updated
+                // timestamps. So even though we only use published timestamp hash as an ETag, this timestamp also changes
+                // when a feed entry is updated because the collection order changes as well.
+                if (feed.getFeedEntries().size() > 0)
+                    etag = calculateEtag(feed.getFeedEntries().iterator().next().getPublishedDate());
+            }
+            if (etag != null) {
+                log.debug("setting etag header: " + etag);
+                response.setHeader("ETag", etag);
+                String previousToken = request.getHeader("If-None-Match");
+                if (previousToken != null && previousToken.equals(etag)) {
+                    log.debug("found matching etag in request header, returning 304 Not Modified");
+                    response.sendError(HttpServletResponse.SC_NOT_MODIFIED);
+                    if (startedTx) userTx.commit();
+                    invalidateSessionIfPossible(request);
+                    return;
+                }
+            }
+
+            // TODO: Refactor this parameter mess a little
             log.debug("finally rendering feed");
             SyndFeed syndFeed =
                     createSyndFeed(
@@ -229,23 +271,21 @@
             log.debug("<<< commit, rendering complete");
 
             if (startedTx) userTx.commit();
+
         } catch (Exception ex) {
-            try {
-                if (startedTx && userTx.getStatus() != javax.transaction.Status.STATUS_MARKED_ROLLBACK) {
-                    log.error("error serving feed, setting transaction to rollback only");
-                    userTx.setRollbackOnly();
+            if (startedTx && userTx != null) {
+                // We started it, so we need to roll it back
+                try {
+                    userTx.rollback();
+                } catch (Exception rbEx) {
+                    log.error("could not roll back transaction: " + rbEx.getMessage());
                 }
-            } catch (Exception rbEx) {
-                rbEx.printStackTrace();
             }
-            throw new RuntimeException(ex);
+            throw new ServletException(ex);
+        } finally {
+            invalidateSessionIfPossible(request);
         }
 
-        // If the user is not logged in, we might as well destroy the session immediately, saving some memory
-        if (request.getSession().isNew() && !Identity.instance().isLoggedIn()) {
-            log.debug("destroying session that was only created for reading the feed");
-            Session.instance().invalidate();
-        }
     }
 
     public SyndFeed createSyndFeed(String baseURI, SyndFeedType syndFeedType, Feed feed, Integer currentAccessLevel) {
@@ -316,4 +356,17 @@
         return syndFeed;
     }
 
+    private String calculateEtag(Date date) {
+        Hash hash = new Hash();
+        return hash.hash(date.toString());
+    }
+
+    private void invalidateSessionIfPossible(HttpServletRequest request) {
+        // If the user is not logged in, we might as well destroy the session immediately, saving some memory
+        if (request.getSession().isNew() && !Identity.instance().isLoggedIn()) {
+            log.debug("destroying session that was only created for reading the feed");
+            Session.instance().invalidate();
+        }
+    }
+
 }

Modified: trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/ui/FileServlet.java
===================================================================
--- trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/ui/FileServlet.java	2008-02-28 09:25:03 UTC (rev 7494)
+++ trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/ui/FileServlet.java	2008-02-29 12:38:27 UTC (rev 7495)
@@ -5,6 +5,8 @@
 import org.jboss.seam.wiki.core.dao.WikiNodeDAO;
 import org.jboss.seam.wiki.core.model.WikiUpload;
 import org.jboss.seam.wiki.core.model.WikiUploadImage;
+import org.apache.commons.logging.LogFactory;
+import org.apache.commons.logging.Log;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
@@ -17,6 +19,8 @@
 
 public class FileServlet extends HttpServlet {
 
+    private static final Log log = LogFactory.getLog(FileServlet.class);
+
     private static final String DOWNLOAD_PATH = "/download.seam";
 
     private byte[] fileNotFoundImage;
@@ -75,13 +79,16 @@
 
                     if (startedTx) userTx.commit();
                 } catch (Exception ex) {
-                    try {
-                        if (startedTx && userTx.getStatus() != javax.transaction.Status.STATUS_MARKED_ROLLBACK)
-                            userTx.setRollbackOnly();
-                    } catch (Exception rbEx) {
-                        rbEx.printStackTrace();
+                    if (startedTx && userTx != null) {
+                        // We started it, so we need to roll it back
+                        try {
+                            userTx.rollback();
+                        } catch (Exception rbEx) {
+                            log.error("could not roll back transaction: " + rbEx.getMessage());
+                        }
                     }
-                    throw new RuntimeException(ex);
+                    invalidateSessionIfPossible(request);
+                    throw new ServletException(ex);
                 }
             }
 
@@ -131,11 +138,15 @@
             response.getOutputStream().flush();
         }
 
+        invalidateSessionIfPossible(request);
+    }
 
+    private void invalidateSessionIfPossible(HttpServletRequest request) {
         // If the user is not logged in, we might as well destroy the session immediately, saving some memory
         if (request.getSession().isNew() && !Identity.instance().isLoggedIn()) {
+            log.debug("destroying session that was only created for reading the file");
             Session.instance().invalidate();
         }
+    }
 
-    }
 }

Modified: trunk/examples/wiki/src/main/org/jboss/seam/wiki/plugin/forum/ForumQueries.hbm.xml
===================================================================
--- trunk/examples/wiki/src/main/org/jboss/seam/wiki/plugin/forum/ForumQueries.hbm.xml	2008-02-28 09:25:03 UTC (rev 7494)
+++ trunk/examples/wiki/src/main/org/jboss/seam/wiki/plugin/forum/ForumQueries.hbm.xml	2008-02-29 12:38:27 UTC (rev 7495)
@@ -137,6 +137,7 @@
             and t.createdOn > :lastLoginDate
     ]]></query>
 
+    <!-- TODO: Optimize this with native SQL, move where-clause subselect into from-clause join -->
     <query name="forumUnreadReplies"><![CDATA[
         select
             distinct t.id, t.parent.id
@@ -161,6 +162,7 @@
             and t.createdOn > :lastLoginDate
     ]]></query>
 
+    <!-- TODO: Optimize this with native SQL, move where-clause subselect into from-clause join -->
     <query name="forumUnreadRepliesInForum"><![CDATA[
         select
             distinct t.id, t.parent.id
@@ -238,7 +240,7 @@
             by STICKY desc, LAST_POST desc
     ]]></sql-query>
 
-    <!-- TODO: Optimize this with native SQL -->
+    <!-- TODO: Optimize this with native SQL, move where-clause subselect into from-clause join-->
     <query name="forumTopicsReplies"><![CDATA[
         select
             t.id,
@@ -266,6 +268,7 @@
 
     ]]></query>
 
+    <!-- TODO: Optimize this with native SQL, move where-clause subselect into from-clause join -->
     <sql-query name="forumPostersAndRatingPoints">
         <return class="org.jboss.seam.wiki.core.model.User"/>
         <return-scalar column="RATING_POINTS" type="long"/>




More information about the seam-commits mailing list