diff --git a/config/alfresco/activities/org.hibernate.dialect.DerbyDialect/ActivityFeed.xml b/config/alfresco/activities/org.hibernate.dialect.DerbyDialect/ActivityFeed.xml
new file mode 100644
index 0000000000..24e0e08322
--- /dev/null
+++ b/config/alfresco/activities/org.hibernate.dialect.DerbyDialect/ActivityFeed.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ insert into alf_activity_feed (id, activity_type, activity_summary, activity_format, feed_user_id, post_user_id, post_date, post_id, site_network, app_tool, feed_date)
+ values (DEFAULT, #activityType#, #activitySummary#, #activitySummaryFormat#, #feedUserId#, #postUserId#, #postDate#, #postId#, #siteNetwork#, #appTool#, #feedDate#)
+
+
+
+ values IDENTITY_VAL_LOCAL()
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/config/alfresco/activities/org.hibernate.dialect.DerbyDialect/ActivityFeedControl.xml b/config/alfresco/activities/org.hibernate.dialect.DerbyDialect/ActivityFeedControl.xml
new file mode 100644
index 0000000000..94cf9d63cd
--- /dev/null
+++ b/config/alfresco/activities/org.hibernate.dialect.DerbyDialect/ActivityFeedControl.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ insert into alf_activity_feed_control (id, feed_user_id, site_network, app_tool, last_modified)
+ values (DEFAULT, #feedUserId#, #siteNetwork#, #appTool#, #lastModified#)
+
+
+
+ values IDENTITY_VAL_LOCAL()
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/config/alfresco/activities/org.hibernate.dialect.DerbyDialect/ActivityPost.xml b/config/alfresco/activities/org.hibernate.dialect.DerbyDialect/ActivityPost.xml
new file mode 100755
index 0000000000..9aad898137
--- /dev/null
+++ b/config/alfresco/activities/org.hibernate.dialect.DerbyDialect/ActivityPost.xml
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ insert into alf_activity_post (sequence_id, status, activity_data, post_user_id, post_date, activity_type, site_network, app_tool, job_task_node, last_modified)
+ values (DEFAULT, #status#, #activityData#, #userId#, #postDate#, #activityType#, #siteNetwork#, #appTool#, #jobTaskNode#, #lastModified#)
+
+
+
+ values IDENTITY_VAL_LOCAL()
+
+
+
+
+
+
+
+
+ update alf_activity_post set status = #status#, activity_data=#activityData#, site_network=#siteNetwork#, last_modified=#lastModified#
+ where sequence_id = #id#
+ and status != #status#
+
+
+
+ update alf_activity_post set status = #status#, last_modified=#lastModified#
+ where sequence_id = #id#
+ and status != #status#
+
+
+
\ No newline at end of file
diff --git a/config/alfresco/dbscripts/create/3.0/org.hibernate.dialect.DerbyDialect/create-activities-tables.sql b/config/alfresco/dbscripts/create/3.0/org.hibernate.dialect.DerbyDialect/create-activities-tables.sql
new file mode 100644
index 0000000000..36aaf44699
--- /dev/null
+++ b/config/alfresco/dbscripts/create/3.0/org.hibernate.dialect.DerbyDialect/create-activities-tables.sql
@@ -0,0 +1,71 @@
+--
+-- Title: Activities Schema
+-- Database: Derby
+-- Since: V3.0.0 Schema
+--
+-- Note: The Activities schema is NOT managed by Hibernate
+--
+
+
+CREATE TABLE alf_activity_post (
+ sequence_id bigint generated by default as identity (start with 1),
+ post_date timestamp NOT NULL,
+ status varchar(10) NOT NULL,
+ activity_data varchar(4000) NOT NULL,
+ post_user_id varchar(255) NOT NULL,
+ job_task_node integer NOT NULL,
+ site_network varchar(255) default NULL,
+ app_tool varchar(36) default NULL,
+ activity_type varchar(255) NOT NULL,
+ last_modified timestamp NOT NULL,
+ primary key (sequence_id)
+);
+
+CREATE INDEX jobtasknode_idx on alf_activity_post(job_task_node);
+CREATE INDEX status_idx on alf_activity_post(status);
+
+
+CREATE TABLE alf_activity_feed (
+ id bigint generated by default as identity (start with 1),
+ post_id bigint default NULL,
+ post_date timestamp NOT NULL,
+ activity_summary varchar(4000) default NULL,
+ feed_user_id varchar(255) NOT NULL,
+ activity_type varchar(255) NOT NULL,
+ activity_format varchar(10) default NULL,
+ site_network varchar(255) default NULL,
+ app_tool varchar(36) default NULL,
+ post_user_id varchar(255) NOT NULL,
+ feed_date timestamp NOT NULL,
+ primary key (id)
+);
+
+CREATE INDEX postdate_idx ON alf_activity_feed(post_date);
+CREATE INDEX feeduserid_idx ON alf_activity_feed(feed_user_id);
+CREATE INDEX postuserid_idx ON alf_activity_feed(post_user_id);
+CREATE INDEX sitenetwork_idx ON alf_activity_feed(site_network);
+CREATE INDEX activityformat_idx ON alf_activity_feed(activity_format);
+
+
+CREATE TABLE alf_activity_feed_control (
+ id bigint generated by default as identity (start with 1),
+ feed_user_id varchar(255) NOT NULL,
+ site_network varchar(255) NOT NULL,
+ app_tool varchar(36) default NULL,
+ last_modified timestamp NOT NULL,
+ primary key (id)
+);
+
+CREATE INDEX feedcontroluserid_idx ON alf_activity_feed_control(feed_user_id);
+
+--
+-- Record script finish
+--
+DELETE FROM alf_applied_patch WHERE id = 'patch.db-V3.0-0-CreateActivitiesTables';
+INSERT INTO alf_applied_patch
+ (id, description, fixes_from_schema, fixes_to_schema, applied_to_schema, target_schema, applied_on_date, applied_to_server, was_executed, succeeded, report)
+ VALUES
+ (
+ 'patch.db-V3.0-0-CreateActivitiesTables', 'Executed script create V3.0: Created activities tables',
+ 0, 125, -1, 126, CURRENT_TIMESTAMP, 'UNKNOWN', 1, 1, 'Script completed'
+ );
diff --git a/config/alfresco/extension/custom-activities-SqlMapConfig.xml.sample b/config/alfresco/extension/custom-activities-SqlMapConfig.xml.sample
new file mode 100644
index 0000000000..33130f8179
--- /dev/null
+++ b/config/alfresco/extension/custom-activities-SqlMapConfig.xml.sample
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/config/alfresco/extension/custom-activities-feed-context.xml.sample b/config/alfresco/extension/custom-activities-feed-context.xml.sample
new file mode 100644
index 0000000000..49d97e64b0
--- /dev/null
+++ b/config/alfresco/extension/custom-activities-feed-context.xml.sample
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+ classpath:alfresco/extension/custom-activities-SqlMapConfig.xml
+
+
+
+
diff --git a/config/alfresco/extension/custom-hibernate-dialect.properties.sample b/config/alfresco/extension/custom-hibernate-dialect.properties.sample
index c2a1e97856..a7023363b1 100644
--- a/config/alfresco/extension/custom-hibernate-dialect.properties.sample
+++ b/config/alfresco/extension/custom-hibernate-dialect.properties.sample
@@ -2,6 +2,11 @@
# Sample Hibernate configuration for changing Database dialect
# For a full list: http://www.hibernate.org/hib_docs/v3/reference/en/html_single/#configuration-optional-dialects
#
+
+#
+# Derby dialect
+#
+#hibernate.dialect=org.hibernate.dialect.DerbyDialect
#
# HSQL dialect
diff --git a/config/alfresco/extension/custom-repository.properties.sample b/config/alfresco/extension/custom-repository.properties.sample
index 4096b57670..72d113059a 100644
--- a/config/alfresco/extension/custom-repository.properties.sample
+++ b/config/alfresco/extension/custom-repository.properties.sample
@@ -5,7 +5,7 @@
#
# Sample custom content and index data location
#
-#dir.root=/srv/alfresco/data
+#dir.root=/srv/alfresco/alf_data
#
# Sample database connection properties
@@ -27,6 +27,12 @@
# upgrading to a new version, this can be disabled.
#
#db.schema.update=true
+
+#
+# Derby connection
+#
+#db.driver=org.apache.derby.jdbc.EmbeddedDriver
+#db.url=jdbc:derby:/srv/alfresco/alf_data/derby_data/alfresco;create=true
#
# HSQL connection
diff --git a/source/java/org/alfresco/repo/activities/feed/control/FeedControlDAO.java b/source/java/org/alfresco/repo/activities/feed/control/FeedControlDAO.java
index a9552e9fe0..683aad6e3b 100644
--- a/source/java/org/alfresco/repo/activities/feed/control/FeedControlDAO.java
+++ b/source/java/org/alfresco/repo/activities/feed/control/FeedControlDAO.java
@@ -58,6 +58,7 @@ public class FeedControlDAO
this.feedUserId = feedUserId;
this.siteNetwork = feedControl.getSiteId();
this.appTool = feedControl.getAppToolId();
+ this.lastModified = new Date();
}
public FeedControl getFeedControl()