diff --git a/config/alfresco/bootstrap-context.xml b/config/alfresco/bootstrap-context.xml
index dee06f97c3..e19bd078e8 100644
--- a/config/alfresco/bootstrap-context.xml
+++ b/config/alfresco/bootstrap-context.xml
@@ -156,6 +156,7 @@
+
diff --git a/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoCreate-AvmTables.sql b/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoCreate-AvmTables.sql
index 6a2b5da47a..053fc5f1d4 100644
--- a/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoCreate-AvmTables.sql
+++ b/config/alfresco/dbscripts/create/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoCreate-AvmTables.sql
@@ -15,9 +15,10 @@
create table avm_child_entries (
parent_id bigint not null,
+ lc_name varchar(160) not null,
name varchar(160) not null,
child_id bigint not null,
- primary key (parent_id, name)
+ primary key (parent_id, lc_name)
) ENGINE=InnoDB;
create table avm_history_links (
@@ -234,6 +235,7 @@ CREATE INDEX idx_avm_hl_revpk ON avm_history_links (descendent, ancestor);
CREATE INDEX idx_avm_vr_revuq ON avm_version_roots (avm_store_id, version_id);
+CREATE INDEX idx_avm_ce_lc_name ON avm_child_entries (lc_name, parent_id);
--
-- Record script finish
diff --git a/config/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect/AlfrescoCreate-AvmTables.sql b/config/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect/AlfrescoCreate-AvmTables.sql
index b3096998e2..2b6dfb3d43 100644
--- a/config/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect/AlfrescoCreate-AvmTables.sql
+++ b/config/alfresco/dbscripts/create/org.hibernate.dialect.PostgreSQLDialect/AlfrescoCreate-AvmTables.sql
@@ -15,9 +15,10 @@
create table avm_child_entries (
parent_id INT8 not null,
+ lc_name varchar(160) not null,
name varchar(160) not null,
child_id INT8 not null,
- primary key (parent_id, name)
+ primary key (parent_id, lc_name)
);
create table avm_history_links (
@@ -238,6 +239,7 @@ CREATE INDEX idx_avm_hl_revpk ON avm_history_links (descendent, ancestor);
CREATE INDEX idx_avm_vr_revuq ON avm_version_roots (avm_store_id, version_id);
+CREATE INDEX idx_avm_ce_lc_name ON avm_child_entries (lc_name, parent_id);
--
-- Record script finish
diff --git a/config/alfresco/dbscripts/upgrade/3.4/org.hibernate.dialect.MySQLInnoDBDialect/AVM-index-child-entries-lower.sql b/config/alfresco/dbscripts/upgrade/3.4/org.hibernate.dialect.MySQLInnoDBDialect/AVM-index-child-entries-lower.sql
new file mode 100644
index 0000000000..944fafa54b
--- /dev/null
+++ b/config/alfresco/dbscripts/upgrade/3.4/org.hibernate.dialect.MySQLInnoDBDialect/AVM-index-child-entries-lower.sql
@@ -0,0 +1,50 @@
+--
+-- Title: Upgrade to V3.4 - AVM rename duplicates (if any)
+-- Database: MySQL
+-- Since: V3.4 schema 4209
+-- Author: dward
+--
+-- Please contact support@alfresco.com if you need assistance with the upgrade.
+--
+create table t_avm_child_entries (
+ parent_id bigint not null,
+ lc_name varchar(160) not null,
+ name varchar(160) not null,
+ child_id bigint not null,
+ primary key (parent_id, lc_name)
+) ENGINE=InnoDB;
+
+--FOREACH avm_child_entries.child_id system.upgrade.t_avm_child_entries.batchsize
+INSERT INTO t_avm_child_entries (parent_id, lc_name, name, child_id)
+SELECT parent_id, LOWER(name), name, child_id
+FROM avm_child_entries
+WHERE child_id >= ${LOWERBOUND} AND child_id <= ${UPPERBOUND};
+
+DROP TABLE avm_child_entries;
+ALTER TABLE t_avm_child_entries RENAME TO avm_child_entries;
+
+alter table avm_child_entries
+ add index fk_avm_ce_child (child_id),
+ add constraint fk_avm_ce_child
+ foreign key (child_id)
+ references avm_nodes (id);
+
+alter table avm_child_entries
+ add index fk_avm_ce_parent (parent_id),
+ add constraint fk_avm_ce_parent
+ foreign key (parent_id)
+ references avm_nodes (id);
+
+CREATE INDEX idx_avm_ce_lc_name ON avm_child_entries (lc_name, parent_id);
+
+--
+-- Record script finish
+--
+DELETE FROM alf_applied_patch WHERE id = 'patch.db-V3.4-AVM-index-child-entries-lower';
+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.4-AVM-index-child-entries-lower', 'Manually executed script upgrade V3.4',
+ 0, 6002, -1, 6003, null, 'UNKNOWN', ${TRUE}, ${TRUE}, 'Script completed'
+ );
diff --git a/config/alfresco/dbscripts/upgrade/3.4/org.hibernate.dialect.PostgreSQLDialect/AVM-index-child-entries-lower.sql b/config/alfresco/dbscripts/upgrade/3.4/org.hibernate.dialect.PostgreSQLDialect/AVM-index-child-entries-lower.sql
new file mode 100644
index 0000000000..0879d7de95
--- /dev/null
+++ b/config/alfresco/dbscripts/upgrade/3.4/org.hibernate.dialect.PostgreSQLDialect/AVM-index-child-entries-lower.sql
@@ -0,0 +1,51 @@
+--
+-- Title: Upgrade to V3.4 - AVM rename duplicates (if any)
+-- Database: PostgreSQL
+-- Since: V3.4 schema 4209
+-- Author: dward
+--
+-- Please contact support@alfresco.com if you need assistance with the upgrade.
+--
+
+create table t_avm_child_entries (
+ parent_id INT8 not null,
+ lc_name varchar(160) not null,
+ name varchar(160) not null,
+ child_id INT8 not null,
+ primary key (parent_id, lc_name)
+);
+
+--FOREACH avm_child_entries.child_id system.upgrade.t_avm_child_entries.batchsize
+INSERT INTO t_avm_child_entries (parent_id, lc_name, name, child_id)
+SELECT parent_id, LOWER(name), name, child_id
+FROM avm_child_entries
+WHERE child_id >= ${LOWERBOUND} AND child_id <= ${UPPERBOUND};
+
+DROP TABLE avm_child_entries;
+ALTER TABLE t_avm_child_entries RENAME TO avm_child_entries;
+
+alter table avm_child_entries
+ add constraint fk_avm_ce_child
+ foreign key (child_id)
+ references avm_nodes (id);
+create index fk_avm_ce_child on avm_child_entries(child_id);
+
+alter table avm_child_entries
+ add constraint fk_avm_ce_parent
+ foreign key (parent_id)
+ references avm_nodes (id);
+create index fk_avm_ce_parent on avm_child_entries(parent_id);
+
+CREATE INDEX idx_avm_ce_lc_name ON avm_child_entries (lc_name, parent_id);
+
+--
+-- Record script finish
+--
+DELETE FROM alf_applied_patch WHERE id = 'patch.db-V3.4-AVM-index-child-entries-lower';
+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.4-AVM-index-child-entries-lower', 'Manually executed script upgrade V3.4',
+ 0, 6002, -1, 6003, null, 'UNKNOWN', ${TRUE}, ${TRUE}, 'Script completed'
+ );
diff --git a/config/alfresco/ibatis/org.hibernate.dialect.Dialect/avm-common-SqlMap.xml b/config/alfresco/ibatis/org.hibernate.dialect.Dialect/avm-common-SqlMap.xml
index f774adc86d..f22ebbbea0 100644
--- a/config/alfresco/ibatis/org.hibernate.dialect.Dialect/avm-common-SqlMap.xml
+++ b/config/alfresco/ibatis/org.hibernate.dialect.Dialect/avm-common-SqlMap.xml
@@ -264,8 +264,8 @@
- insert into avm_child_entries (parent_id, name, child_id)
- values (#{parentNodeId}, #{name}, #{childNodeId})
+ insert into avm_child_entries (parent_id, lc_name, name, child_id)
+ values (#{parentNodeId}, #{lowerName}, #{name}, #{childNodeId})
@@ -931,18 +931,7 @@
avm_child_entries
where
parent_id = #{parentNodeId} and
- name = #{name} and
- child_id = #{childNodeId}
-
-
-
@@ -964,19 +953,9 @@
avm_child_entries
where
parent_id = ? and
- name like ?
+ lc_name like ?
-
-
-
+
-
-
@@ -1019,29 +988,6 @@
child_id = #{childNodeId}
-
-
-
update
@@ -1060,16 +1006,7 @@
avm_child_entries
where
parent_id = #{parentNodeId} and
- name = #{name}
-
-
-
- delete
- from
- avm_child_entries
- where
- parent_id = #{parentNodeId} and
- lower(name) = lower(#{name})
+ lc_name = #{lowerName}
diff --git a/config/alfresco/messages/action-config_de.properties b/config/alfresco/messages/action-config_de.properties
index a50b39a289..b99ade8ae5 100755
--- a/config/alfresco/messages/action-config_de.properties
+++ b/config/alfresco/messages/action-config_de.properties
@@ -176,6 +176,10 @@ start-workflow.workflowName.display-label=Name des Arbeitsablaufs
start-workflow.endStartTask.display-label=Aufgabe
start-workflow.startTaskTransition.display-label=\u00dcbergang
+cancel-workflow.title=Workflows abbrechen
+cancel-workflow.description=Bricht mehrere Workflows ab.
+cancel-workflow.workflow-id-list.display-label=Liste aller Workflow IDs
+
#WCM Actions
simple-avm-submit.title=Einfaches direktes Vorlegen
diff --git a/config/alfresco/messages/action-config_fr.properties b/config/alfresco/messages/action-config_fr.properties
index b11c869467..c84fd59481 100755
--- a/config/alfresco/messages/action-config_fr.properties
+++ b/config/alfresco/messages/action-config_fr.properties
@@ -176,6 +176,10 @@ start-workflow.workflowName.display-label=Nom du workflow
start-workflow.endStartTask.display-label=T\u00e2che
start-workflow.startTaskTransition.display-label=Transition
+cancel-workflow.title=Annuler des workflows
+cancel-workflow.description=Annule une liste de workflows selon leur ID.
+cancel-workflow.workflow-id-list.display-label=Liste des IDs de workflow
+
#WCM Actions
simple-avm-submit.title=Publication directe simple
diff --git a/config/alfresco/messages/action-config_ja.properties b/config/alfresco/messages/action-config_ja.properties
index f03a863ad7..b5ad0e7592 100755
--- a/config/alfresco/messages/action-config_ja.properties
+++ b/config/alfresco/messages/action-config_ja.properties
@@ -9,7 +9,7 @@ ac-compare-operations.less_than=\u3088\u308a\u5c0f\u3055\u3044
ac-compare-operations.less_than_equal=\u4ee5\u4e0b
ac-content-properties.mime_type=MIME\u30bf\u30a4\u30d7
-ac-content-properties.encoding=\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0
+ac-content-properties.encoding=\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0
ac-content-properties.size=\u30b5\u30a4\u30ba
# Action conditions
@@ -142,7 +142,7 @@ set-property-value.value.display-label=\u5024
import.title=\u30a4\u30f3\u30dd\u30fc\u30c8
import.description=Alfresco\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u30d1\u30c3\u30b1\u30fc\u30b8\u304c\u30ea\u30dd\u30b8\u30c8\u30ea\u306b\u30a4\u30f3\u30dd\u30fc\u30c8\u3055\u308c\u307e\u3059\u3002
-import.encoding.display-label=\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0
+import.encoding.display-label=\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0
import.destination.display-label=\u5b9b\u5148
extract-metadata.title=\u5171\u901a\u306e\u30e1\u30bf\u30c7\u30fc\u30bf\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u62bd\u51fa\u3059\u308b
@@ -176,6 +176,10 @@ start-workflow.workflowName.display-label=\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u
start-workflow.endStartTask.display-label=\u30bf\u30b9\u30af
start-workflow.startTaskTransition.display-label=\u79fb\u884c
+cancel-workflow.title=\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u306e\u30ad\u30e3\u30f3\u30bb\u30eb
+cancel-workflow.description=\u30ef\u30fc\u30af\u30d5\u30ed\u30fcID\u30ea\u30b9\u30c8\u306b\u3042\u308b\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u3092\u30ad\u30e3\u30f3\u30bb\u30eb\u3057\u307e\u3059\u3002
+cancel-workflow.workflow-id-list.display-label=\u30ef\u30fc\u30af\u30d5\u30ed\u30fcID\u30ea\u30b9\u30c8
+
# WCM Actions
simple-avm-submit.title=\u7c21\u6613\u76f4\u63a5\u9001\u4fe1
diff --git a/config/alfresco/messages/action-config_nl.properties b/config/alfresco/messages/action-config_nl.properties
index b5e0325bf3..6f4cb09ca9 100755
--- a/config/alfresco/messages/action-config_nl.properties
+++ b/config/alfresco/messages/action-config_nl.properties
@@ -176,6 +176,10 @@ start-workflow.workflowName.display-label=Naam van werkstroom
start-workflow.endStartTask.display-label=Taak
start-workflow.startTaskTransition.display-label=Overgang
+cancel-workflow.title=Werkstromen annuleren
+cancel-workflow.description=Hiermee wordt een lijst van werkstroom-id's geannuleerd.
+cancel-workflow.workflow-id-list.display-label=Lijst van werkstroom-id's
+
# WCM Actions
simple-avm-submit.title=Eenvoudig direct verzenden
diff --git a/config/alfresco/messages/bootstrap-spaces_fr.properties b/config/alfresco/messages/bootstrap-spaces_fr.properties
index d6f8341ce7..f8a09129d0 100755
--- a/config/alfresco/messages/bootstrap-spaces_fr.properties
+++ b/config/alfresco/messages/bootstrap-spaces_fr.properties
@@ -159,8 +159,5 @@ spaces.inbound_transfer_records.description=Dossier contenant des enregistrement
spaces.templates.email.workflowNotification.name=Notification de workflow
spaces.templates.email.workflowNotification.description=Mod\u00e8les d'e-mail de notification de workflow
-spaces.templates.email.workflowNotification.name=Workflow Notification
-spaces.templates.email.workflowNotification.description=Workflow notification email templates
-
spaces.nodeTemplatesSpace.name=Mod\u00e8les des noeuds
spaces.nodeTemplatesSpace.description=Mod\u00e8les des noeuds pour Share - Cr\u00e9er un nouveau document
\ No newline at end of file
diff --git a/config/alfresco/messages/bpm-messages_de.properties b/config/alfresco/messages/bpm-messages_de.properties
index 6279195b5a..9643358e2e 100755
--- a/config/alfresco/messages/bpm-messages_de.properties
+++ b/config/alfresco/messages/bpm-messages_de.properties
@@ -57,9 +57,8 @@ bpm_businessprocessmodel.aspect.bpm_workflowPackage.description=Inhalte, die dur
bpm_businessprocessmodel.type.bpm_activitiStartTask.title=Startaufgabe des Workflows
bpm_businessprocessmodel.type.bpm_activitiStartTask.description=Aufgabe, die alle Informationen abfragt, die f\u00fcr den Start des Worklfows notwendig sind
-#Workflow Start Task
bpm_businessprocessmodel.type.bpm_startTask.title=Startaufgabe des Workflows
-bpm_businessprocessmodel.type.bpm_startTask.description=Aufgabe, die zur Sammlung der Informationen verwendet wird, die f\u00fcr die Initialisierung eines Workflows erforderlich sind
+bpm_businessprocessmodel.type.bpm_startTask.description=Aufgabe, die alle Informationen abfragt, die f\u00fcr den Start des Worklfows notwendig sind
bpm_businessprocessmodel.property.bpm_workflowDescription.title=Beschreibung
bpm_businessprocessmodel.property.bpm_workflowDescription.description=Beschreibung
bpm_businessprocessmodel.property.bpm_workflowDueDate.title=F\u00e4lligkeitsdatum des Workflows
diff --git a/config/alfresco/messages/bpm-messages_ja.properties b/config/alfresco/messages/bpm-messages_ja.properties
index 7f1aa734ca..39827ad3ff 100755
--- a/config/alfresco/messages/bpm-messages_ja.properties
+++ b/config/alfresco/messages/bpm-messages_ja.properties
@@ -57,7 +57,6 @@ bpm_businessprocessmodel.aspect.bpm_workflowPackage.description=\u30ef\u30fc\u30
bpm_businessprocessmodel.type.bpm_activitiStartTask.title=\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u958b\u59cb\u30bf\u30b9\u30af
bpm_businessprocessmodel.type.bpm_activitiStartTask.description=\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u306e\u958b\u59cb\u306b\u5fc5\u8981\u306a\u60c5\u5831\u3092\u53ce\u96c6\u3059\u308b\u30bf\u30b9\u30af
-# Workflow Start Task
bpm_businessprocessmodel.type.bpm_startTask.title=\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u958b\u59cb\u30bf\u30b9\u30af
bpm_businessprocessmodel.type.bpm_startTask.description=\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u306e\u958b\u59cb\u306b\u5fc5\u8981\u306a\u60c5\u5831\u3092\u53ce\u96c6\u3059\u308b\u30bf\u30b9\u30af
bpm_businessprocessmodel.property.bpm_workflowDescription.title=\u8aac\u660e
diff --git a/config/alfresco/messages/categories_de.properties b/config/alfresco/messages/categories_de.properties
new file mode 100755
index 0000000000..4b3f89aba1
--- /dev/null
+++ b/config/alfresco/messages/categories_de.properties
@@ -0,0 +1,6 @@
+message.changeCategoryName.success=Kategoriename erfolgreich ge\u00e4ndert
+message.changeCategoryName.solr.success=Kategorieaktualisierung wurde zum \u00c4ndern erfolgreich in die SOLR-Warteschlange gestellt. Beachten Sie, dass die Aktualisierung einige Zeit in Anspruch nehmen kann. Sie m\u00fcssen aktualisieren, um die vorgenommene \u00c4nderung zu sehen.
+message.addCategory.success=Kategorie erfolgreich hinzugef\u00fcgt
+message.addCategory.solr.success=Neue Kategorie wurde zum Hinzuf\u00fcgen erfolgreich in die SOLR-Warteschlange gestellt. Beachten Sie, dass das Hinzuf\u00fcgen einige Zeit in Anspruch nehmen kann. Sie m\u00fcssen aktualisieren, um die vorgenommene \u00c4nderung zu sehen.
+message.removeCategory.success=Kategorie erfolgreich entfernt
+message.removeCategory.solr.success=Kategoriel\u00f6schung wurde zum Entfernen erfolgreich in die SOLR-Warteschlange gestellt. Beachten Sie, dass das L\u00f6schen einige Zeit in Anspruch nehmen kann. Sie m\u00fcssen aktualisieren, um die vorgenommene \u00c4nderung zu sehen.
\ No newline at end of file
diff --git a/config/alfresco/messages/categories_fr.properties b/config/alfresco/messages/categories_fr.properties
new file mode 100755
index 0000000000..fbe7750ca2
--- /dev/null
+++ b/config/alfresco/messages/categories_fr.properties
@@ -0,0 +1,6 @@
+message.changeCategoryName.success=Nom de la cat\u00e9gorie modifi\u00e9 avec succ\u00e8s
+message.changeCategoryName.solr.success=Mise \u00e0 jour de la cat\u00e9gorie mise dans la file d'attente SOLR pour modification. Veuillez noter que la mise \u00e0 jour peut prendre quelques minutes ; vous devrez rafra\u00eechir pour afficher la modification une fois actionn\u00e9e
+message.addCategory.success=Cat\u00e9gorie ajout\u00e9e avec succ\u00e8s
+message.addCategory.solr.success=Nouvelle cat\u00e9gorie mise dans la file d'attente SOLR pour ajout. Veuillez noter que l'ajout peut prendre quelques minutes ; vous devrez rafra\u00eechir pour afficher la modification une fois actionn\u00e9e
+message.removeCategory.success=Cat\u00e9gorie supprim\u00e9e avec succ\u00e8s
+message.removeCategory.solr.success=Suppression de la cat\u00e9gorie mise dans la file d'attente SOLR pour suppression. Veuillez noter que la suppression peut prendre quelques minutes ; vous devrez rafra\u00eechir pour afficher la modification une fois actionn\u00e9e
\ No newline at end of file
diff --git a/config/alfresco/messages/categories_ja.properties b/config/alfresco/messages/categories_ja.properties
new file mode 100755
index 0000000000..e6f5cc80b8
--- /dev/null
+++ b/config/alfresco/messages/categories_ja.properties
@@ -0,0 +1,6 @@
+message.changeCategoryName.success=\u30ab\u30c6\u30b4\u30ea\u306e\u540d\u524d\u304c\u5909\u66f4\u3055\u308c\u307e\u3057\u305f\u3002
+message.changeCategoryName.solr.success=\u30ab\u30c6\u30b4\u30ea\u306e\u66f4\u65b0\u304cSOLR\u306e\u5909\u66f4\u30ad\u30e5\u30fc\u306b\u5165\u308c\u3089\u308c\u307e\u3057\u305f\u3002 \u66f4\u65b0\u3055\u308c\u308b\u307e\u3067\u3057\u3070\u3089\u304f\u6642\u9593\u304c\u304b\u304b\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002\u5909\u66f4\u3092\u8868\u793a\u3059\u308b\u306b\u306f\u3001\u30da\u30fc\u30b8\u3092\u518d\u8aad\u307f\u8fbc\u307f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
+message.addCategory.success=\u30ab\u30c6\u30b4\u30ea\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\u3002
+message.addCategory.solr.success=\u65b0\u3057\u3044\u30ab\u30c6\u30b4\u30ea\u304cSOLR\u306e\u8ffd\u52a0\u30ad\u30e5\u30fc\u306b\u5165\u308c\u3089\u308c\u307e\u3057\u305f\u3002 \u8ffd\u52a0\u3055\u308c\u308b\u307e\u3067\u3057\u3070\u3089\u304f\u6642\u9593\u304c\u304b\u304b\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002\u5909\u66f4\u3092\u8868\u793a\u3059\u308b\u306b\u306f\u3001\u30da\u30fc\u30b8\u3092\u518d\u8aad\u307f\u8fbc\u307f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
+message.removeCategory.success=\u30ab\u30c6\u30b4\u30ea\u304c\u524a\u9664\u3055\u308c\u307e\u3057\u305f\u3002
+message.removeCategory.solr.success=\u30ab\u30c6\u30b4\u30ea\u306e\u524a\u9664\u304cSOLR\u306e\u524a\u9664\u30ad\u30e5\u30fc\u306b\u5165\u308c\u3089\u308c\u307e\u3057\u305f\u3002 \u524a\u9664\u3055\u308c\u308b\u307e\u3067\u3057\u3070\u3089\u304f\u6642\u9593\u304c\u304b\u304b\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002\u5909\u66f4\u3092\u8868\u793a\u3059\u308b\u306b\u306f\u3001\u30da\u30fc\u30b8\u3092\u518d\u8aad\u307f\u8fbc\u307f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
\ No newline at end of file
diff --git a/config/alfresco/messages/categories_nl.properties b/config/alfresco/messages/categories_nl.properties
new file mode 100755
index 0000000000..fc119bffa6
--- /dev/null
+++ b/config/alfresco/messages/categories_nl.properties
@@ -0,0 +1,6 @@
+message.changeCategoryName.success=Naam van categorie is gewijzigd
+message.changeCategoryName.solr.success=Bijwerken van categorie is in de SOLR-wachtrij geplaatst voor wijzigingen. Het bijwerken kan enkele ogenblikken duren; u moet de weergave vernieuwen voordat u de ge\u00efmplementeerde wijziging kunt zien
+message.addCategory.success=Categorie is toegevoegd
+message.addCategory.solr.success=Nieuwe categorie is in de SOLR-wachtrij geplaatst voor toevoeging. Het toevoegen kan enkele ogenblikken duren; u moet de weergave vernieuwen voordat u de ge\u00efmplementeerde wijziging kunt zien
+message.removeCategory.success=Categorie is verwijderd.
+message.removeCategory.solr.success=Verwijdering van de categorie is in de SOLR-wachtrij geplaatst voor verwijdering. Het verwijderen kan enkele ogenblikken duren; u moet de weergave vernieuwen voordat u de ge\u00efmplementeerde wijziging kunt zien
\ No newline at end of file
diff --git a/config/alfresco/messages/initiate-inplace_ja.properties b/config/alfresco/messages/initiate-inplace_ja.properties
index 96c68d6064..dec926e1b7 100755
--- a/config/alfresco/messages/initiate-inplace_ja.properties
+++ b/config/alfresco/messages/initiate-inplace_ja.properties
@@ -1 +1 @@
-bfsit.error.importAlreadyInProgress=\u65e2\u306b\u30d0\u30eb\u30af\u30a4\u30f3\u30dd\u30fc\u30c8\u306f\u51e6\u7406\u4e2d\u3067\u3059 \u5f8c\u3067\u3084\u308a\u76f4\u3057\u3066\u304f\u3060\u3055\u3044
+bfsit.error.importAlreadyInProgress=\u65e2\u306b\u30d0\u30eb\u30af\u30a4\u30f3\u30dd\u30fc\u30c8\u306f\u51e6\u7406\u4e2d\u3067\u3059\u3002\u5f8c\u3067\u3084\u308a\u76f4\u3057\u3066\u304f\u3060\u3055\u3044\u3002
diff --git a/config/alfresco/messages/lock-service_nl.properties b/config/alfresco/messages/lock-service_nl.properties
index 749629b112..b0919204c7 100755
--- a/config/alfresco/messages/lock-service_nl.properties
+++ b/config/alfresco/messages/lock-service_nl.properties
@@ -2,5 +2,5 @@
lock_service.insufficent_privileges=U hebt onvoldoende rechten om de vergrendeling op de node (id: {0}) op te heffen. De node is vergrendeld door een andere gebruiker.
lock_service.node_locked=Kan de node (id: {0}) niet vergrendelen omdat deze al is vergrendeld door een andere gebruiker.
-lock_service.no_op=Kan bewerking niet uitvoeren omdat de node (id:{0}) is vergrendeld.
-lock_service.no_op2=Kan bewerking {0} niet uitvoeren omdat de node (id:{1}) is vergrendeld.
\ No newline at end of file
+lock_service.no_op=Kan bewerking niet uitvoeren omdat de node (id: {0}) is vergrendeld.
+lock_service.no_op2=Kan bewerking {0} niet uitvoeren omdat de node (id: {1}) is vergrendeld.
\ No newline at end of file
diff --git a/config/alfresco/messages/patch-service.properties b/config/alfresco/messages/patch-service.properties
index f3dfa382ad..babc3b866a 100644
--- a/config/alfresco/messages/patch-service.properties
+++ b/config/alfresco/messages/patch-service.properties
@@ -457,5 +457,7 @@ patch.fixBpmPackages.emptyContainer={0} node has no children
patch.alterJBPM331CLOBcolumnsToNvarchar.description=Altering CLOB columns in the jBPM 3.3.1 tables to introduce Unicode characters support for jBPM 3.3.1
+patch.avmIndexChildEntriesLower.description=Add an indexed column to avm_child_entries that allows case-insensitive querying of AVM files by name
+
patch.imapUnsubscribedAspect.description=Patch to remove deprecated "imap:nonSubscribed" aspect from folders.
patch.imapUnsubscribedAspect.result.removed="imap:nonSubscribed" aspect was successfully removed from unsubscribed folders.
diff --git a/config/alfresco/messages/patch-service_de.properties b/config/alfresco/messages/patch-service_de.properties
index 20da4afe54..e367a84b2f 100755
--- a/config/alfresco/messages/patch-service_de.properties
+++ b/config/alfresco/messages/patch-service_de.properties
@@ -453,3 +453,5 @@ patch.fixBpmPackages.description=Corrects workflow package types and association
patch.fixBpmPackages.result=Patch successful. {0} packages converted.
patch.fixBpmPackages.invalidBootsrapStore=Bootstrap store has not been set
patch.fixBpmPackages.emptyContainer={0} node has no children
+
+patch.alterJBPM331CLOBcolumnsToNvarchar.description=Altering CLOB columns in the jBPM 3.3.1 tables to introduce Unicode characters support for jBPM 3.3.1
diff --git a/config/alfresco/messages/patch-service_fr.properties b/config/alfresco/messages/patch-service_fr.properties
index 20da4afe54..e367a84b2f 100755
--- a/config/alfresco/messages/patch-service_fr.properties
+++ b/config/alfresco/messages/patch-service_fr.properties
@@ -453,3 +453,5 @@ patch.fixBpmPackages.description=Corrects workflow package types and association
patch.fixBpmPackages.result=Patch successful. {0} packages converted.
patch.fixBpmPackages.invalidBootsrapStore=Bootstrap store has not been set
patch.fixBpmPackages.emptyContainer={0} node has no children
+
+patch.alterJBPM331CLOBcolumnsToNvarchar.description=Altering CLOB columns in the jBPM 3.3.1 tables to introduce Unicode characters support for jBPM 3.3.1
diff --git a/config/alfresco/messages/patch-service_ja.properties b/config/alfresco/messages/patch-service_ja.properties
index 20da4afe54..e367a84b2f 100755
--- a/config/alfresco/messages/patch-service_ja.properties
+++ b/config/alfresco/messages/patch-service_ja.properties
@@ -453,3 +453,5 @@ patch.fixBpmPackages.description=Corrects workflow package types and association
patch.fixBpmPackages.result=Patch successful. {0} packages converted.
patch.fixBpmPackages.invalidBootsrapStore=Bootstrap store has not been set
patch.fixBpmPackages.emptyContainer={0} node has no children
+
+patch.alterJBPM331CLOBcolumnsToNvarchar.description=Altering CLOB columns in the jBPM 3.3.1 tables to introduce Unicode characters support for jBPM 3.3.1
diff --git a/config/alfresco/messages/patch-service_nl.properties b/config/alfresco/messages/patch-service_nl.properties
index 20da4afe54..e367a84b2f 100755
--- a/config/alfresco/messages/patch-service_nl.properties
+++ b/config/alfresco/messages/patch-service_nl.properties
@@ -453,3 +453,5 @@ patch.fixBpmPackages.description=Corrects workflow package types and association
patch.fixBpmPackages.result=Patch successful. {0} packages converted.
patch.fixBpmPackages.invalidBootsrapStore=Bootstrap store has not been set
patch.fixBpmPackages.emptyContainer={0} node has no children
+
+patch.alterJBPM331CLOBcolumnsToNvarchar.description=Altering CLOB columns in the jBPM 3.3.1 tables to introduce Unicode characters support for jBPM 3.3.1
diff --git a/config/alfresco/messages/system-messages_de.properties b/config/alfresco/messages/system-messages_de.properties
index fe79b751bb..3461557222 100755
--- a/config/alfresco/messages/system-messages_de.properties
+++ b/config/alfresco/messages/system-messages_de.properties
@@ -32,6 +32,7 @@ system.schema_comp.redundant_obj.many_matches={0} redundant items? reference: {1
system.schema_comp.validation=Validation: {0} {1}="{2}" fails to match rule: {3}
# Specific validator (implementations) messages...
system.schema_comp.name_validator=name must match pattern ''{0}''
+system.schema_comp.schema_version_validator=version must be at least ''{0}''
# OpenOffice
system.openoffice.info.connection_verified=The connection to OpenOffice has been established.
diff --git a/config/alfresco/messages/system-messages_fr.properties b/config/alfresco/messages/system-messages_fr.properties
index 59c6d23ee4..6b98fab365 100755
--- a/config/alfresco/messages/system-messages_fr.properties
+++ b/config/alfresco/messages/system-messages_fr.properties
@@ -32,6 +32,7 @@ system.schema_comp.redundant_obj.many_matches={0} redundant items? reference: {1
system.schema_comp.validation=Validation: {0} {1}="{2}" fails to match rule: {3}
# Specific validator (implementations) messages...
system.schema_comp.name_validator=name must match pattern ''{0}''
+system.schema_comp.schema_version_validator=version must be at least ''{0}''
# OpenOffice
system.openoffice.info.connection_verified=The connection to OpenOffice has been established.
@@ -68,9 +69,9 @@ system.usage.err.limit_license_expired=La licence Alfresco a expir\u00e9.
# License
system.license.msg.unknown=Inconnu
system.license.msg.unlimited=Illimit\u00e9
-system.license.msg.does_not_expire=N’expire pas
+system.license.msg.does_not_expire=N'expire pas
system.license.msg.reloaded=La licence Alfresco a \u00e9t\u00e9 recharg\u00e9e.
-system.license.err.reloadFailed=Echec du rechargement de la licence: {0}
+system.license.err.reloadFailed=Echec du rechargement de la licence : {0}
# END TRANSLATION
# Startup message
diff --git a/config/alfresco/messages/system-messages_ja.properties b/config/alfresco/messages/system-messages_ja.properties
index 98ec187f49..5d9ea703d6 100755
--- a/config/alfresco/messages/system-messages_ja.properties
+++ b/config/alfresco/messages/system-messages_ja.properties
@@ -32,6 +32,7 @@ system.schema_comp.redundant_obj.many_matches={0} redundant items? reference: {1
system.schema_comp.validation=Validation: {0} {1}="{2}" fails to match rule: {3}
# Specific validator (implementations) messages...
system.schema_comp.name_validator=name must match pattern ''{0}''
+system.schema_comp.schema_version_validator=version must be at least ''{0}''
# OpenOffice
system.openoffice.info.connection_verified=The connection to OpenOffice has been established.
diff --git a/config/alfresco/messages/system-messages_nl.properties b/config/alfresco/messages/system-messages_nl.properties
index 532a6b5eeb..11d24f9067 100755
--- a/config/alfresco/messages/system-messages_nl.properties
+++ b/config/alfresco/messages/system-messages_nl.properties
@@ -32,6 +32,7 @@ system.schema_comp.redundant_obj.many_matches={0} redundant items? reference: {1
system.schema_comp.validation=Validation: {0} {1}="{2}" fails to match rule: {3}
# Specific validator (implementations) messages...
system.schema_comp.name_validator=name must match pattern ''{0}''
+system.schema_comp.schema_version_validator=version must be at least ''{0}''
# OpenOffice
system.openoffice.info.connection_verified=The connection to OpenOffice has been established.
diff --git a/config/alfresco/messages/transfer-service_de.properties b/config/alfresco/messages/transfer-service_de.properties
index 6802916b2f..c70ce65212 100755
--- a/config/alfresco/messages/transfer-service_de.properties
+++ b/config/alfresco/messages/transfer-service_de.properties
@@ -26,7 +26,7 @@ transfer_service.receiver.record_folder_not_found=Angegebener Ordner f\u00fcr Pr
transfer_service.receiver.not_lock_owner=Fehlgeschlagener Versuch, eine \u00dcbertragung auszuf\u00fchren. Sperre nicht von angegebener \u00dcbertragung gehalten: {0}
transfer_service.receiver.error_ending_transfer=Anforderung zur Beendigung einer \u00dcbertragung ({0}) hat zu einem Fehler gef\u00fchrt.
transfer_service.receiver.error_staging_snapshot=Beim Staging der Momentaufnahme einer Datei zur \u00dcbertragung {0} ist ein Fehler aufgetreten
-transfer_service.receiver.error_staging_content=Beim Staging der Content-Datei zur \u00dcbertragung {0} ist ein Fehler aufgetreten Feld-ID ist {1}
+transfer_service.receiver.error_staging_content=Beim Staging der Content-Datei zur \u00dcbertragung {0} ist ein Fehler aufgetreten. Datei-ID ist {1}
transfer_service.receiver.no_snapshot_received=Eine Anfrage nach Ausf\u00fchrung einer \u00dcbertragung ({0}) ist eingegangen, es ist aber keine passende Momentaufnahmen-Datei eingegangen.
transfer_service.receiver.error_committing_transfer=Beim Versuch der Ausf\u00fchrung der \u00dcbertragung {0} ist ein Fehler aufgetreten
transfer_service.receiver.transfer_not_found=Konnte kein Protokoll einer \u00dcbertragungsanfrage finden: {0}
diff --git a/config/alfresco/patch/patch-services-context.xml b/config/alfresco/patch/patch-services-context.xml
index 0e402d63d3..61668d4f23 100644
--- a/config/alfresco/patch/patch-services-context.xml
+++ b/config/alfresco/patch/patch-services-context.xml
@@ -3070,6 +3070,15 @@
+
+ patch.db-V3.4-AVM-index-child-entries-lower
+ patch.avmIndexChildEntriesLower.description
+ 0
+ 6002
+ 6003
+
+ classpath:alfresco/dbscripts/upgrade/3.4/${db.script.dialect}/AVM-index-child-entries-lower.sql
+
+
-
diff --git a/config/alfresco/version.properties b/config/alfresco/version.properties
index 957262c56a..b9980cb5e6 100644
--- a/config/alfresco/version.properties
+++ b/config/alfresco/version.properties
@@ -19,4 +19,4 @@ version.build=@build-number@
# Schema number
-version.schema=6002
+version.schema=6003
diff --git a/source/java/org/alfresco/repo/domain/avm/AVMChildEntryEntity.java b/source/java/org/alfresco/repo/domain/avm/AVMChildEntryEntity.java
index dc7f8ed629..f6d798fc0c 100644
--- a/source/java/org/alfresco/repo/domain/avm/AVMChildEntryEntity.java
+++ b/source/java/org/alfresco/repo/domain/avm/AVMChildEntryEntity.java
@@ -30,6 +30,7 @@ public class AVMChildEntryEntity
{
private Long parentNodeId;
private String name;
+ private String lowerName; // Derived from name for case insensitive lookups
private Long childNodeId;
public AVMChildEntryEntity()
@@ -41,6 +42,7 @@ public class AVMChildEntryEntity
{
this.parentNodeId = parentNodeId;
this.name = name;
+ this.lowerName = name == null ? null : name.toLowerCase();
this.childNodeId = childNodeId;
}
@@ -48,6 +50,7 @@ public class AVMChildEntryEntity
{
this.parentNodeId = parentNodeId;
this.name = name;
+ this.lowerName = name == null ? null : name.toLowerCase();
}
public AVMChildEntryEntity(long parentNodeId, long childNodeId)
@@ -74,8 +77,19 @@ public class AVMChildEntryEntity
public void setName(String name)
{
this.name = name;
+ this.lowerName = name == null ? null : name.toLowerCase();
}
+ public String getLowerName()
+ {
+ return lowerName;
+ }
+
+ public void setLowerName(String lowerName)
+ {
+ this.lowerName = lowerName;
+ }
+
public Long getChildId()
{
return childNodeId;
diff --git a/source/java/org/alfresco/repo/domain/avm/ibatis/AVMNodeLinksDAOImpl.java b/source/java/org/alfresco/repo/domain/avm/ibatis/AVMNodeLinksDAOImpl.java
index 28286ff55e..72cced331b 100644
--- a/source/java/org/alfresco/repo/domain/avm/ibatis/AVMNodeLinksDAOImpl.java
+++ b/source/java/org/alfresco/repo/domain/avm/ibatis/AVMNodeLinksDAOImpl.java
@@ -37,16 +37,13 @@ import org.mybatis.spring.SqlSessionTemplate;
public class AVMNodeLinksDAOImpl extends AbstractAVMNodeLinksDAOImpl
{
private static final String SELECT_AVM_NODE_CHILD_ENTRY ="alfresco.avm.select_AVMChildEntry"; // parent + name + child
- private static final String SELECT_AVM_NODE_CHILD_ENTRY_L ="alfresco.avm.select_AVMChildEntryL"; // parent + lower(name) + child
private static final String SELECT_AVM_NODE_CHILD_ENTRY_BY_PARENT_AND_NAME ="alfresco.avm.select_AVMChildEntryByParentAndName"; // parent + name
- private static final String SELECT_AVM_NODE_CHILD_ENTRY_BY_PARENT_AND_NAME_L ="alfresco.avm.select_AVMChildEntryByParentAndNameL"; // parent + lower(name)
private static final String SELECT_AVM_NODE_CHILD_ENTRY_BY_PARENT_AND_CHILD ="alfresco.avm.select_AVMChildEntryByParentAndChild"; // parent + child
private static final String SELECT_AVM_NODE_CHILD_ENTRIES_BY_PARENT ="alfresco.avm.select_AVMNodeChildEntriesByParent"; // parent
private static final String SELECT_AVM_NODE_CHILD_ENTRIES_BY_PARENT_AND_NAME_PATTERN ="alfresco.avm.select_AVMNodeChildEntriesByParentAndNamePattern"; // parent + name pattern
- private static final String SELECT_AVM_NODE_CHILD_ENTRIES_BY_PARENT_AND_NAME_PATTERN_L ="alfresco.avm.select_AVMNodeChildEntriesByParentAndNamePatternL"; // parent + lower(name pattern)
private static final String SELECT_AVM_NODE_CHILD_ENTRIES_BY_CHILD ="alfresco.avm.select_AVMNodeChildEntriesByChild"; // child
@@ -55,7 +52,6 @@ public class AVMNodeLinksDAOImpl extends AbstractAVMNodeLinksDAOImpl
private static final String UPDATE_AVM_NODE_CHILD_ENTRY ="alfresco.avm.update_AVMChildEntry"; // parent + child (update name)
private static final String DELETE_AVM_NODE_CHILD_ENTRY_BY_PARENT_AND_NAME ="alfresco.avm.delete_AVMChildEntryByParentAndName"; // parent + name
- private static final String DELETE_AVM_NODE_CHILD_ENTRY_BY_PARENT_AND_NAME_L ="alfresco.avm.delete_AVMChildEntryByParentAndNameL"; // parent + lower(name)
private static final String DELETE_AVM_NODE_CHILD_ENTRY_BY_PARENT_AND_CHILD ="alfresco.avm.delete_AVMChildEntryByParentAndChild"; // parent + child
private static final String DELETE_AVM_NODE_CHILD_ENTRIES_BY_PARENT ="alfresco.avm.delete_AVMNodeChildEntriesByParent"; // parent
@@ -75,29 +71,15 @@ public class AVMNodeLinksDAOImpl extends AbstractAVMNodeLinksDAOImpl
private SqlSessionTemplate template;
-
public final void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate)
{
this.template = sqlSessionTemplate;
}
-
- // Initial generic fix for ALF-1940 (pending SAIL-349)
- // Note: in order to override to false DB must be setup to be case-insensitive (at least on column avm_child_entries.name)
- private boolean toLower = true;
-
- public void setToLower(boolean toLower)
- {
- this.toLower = toLower;
- }
-
+
@Override
protected AVMChildEntryEntity getChildEntryEntity(AVMChildEntryEntity childEntryEntity)
{
- if (toLower)
- {
- return (AVMChildEntryEntity) template.selectOne(SELECT_AVM_NODE_CHILD_ENTRY_L, childEntryEntity);
- }
return (AVMChildEntryEntity) template.selectOne(SELECT_AVM_NODE_CHILD_ENTRY, childEntryEntity);
}
@@ -106,10 +88,6 @@ public class AVMNodeLinksDAOImpl extends AbstractAVMNodeLinksDAOImpl
{
AVMChildEntryEntity childEntryEntity = new AVMChildEntryEntity(parentNodeId, name);
- if (toLower)
- {
- return (AVMChildEntryEntity) template.selectOne(SELECT_AVM_NODE_CHILD_ENTRY_BY_PARENT_AND_NAME_L, childEntryEntity);
- }
return (AVMChildEntryEntity) template.selectOne(SELECT_AVM_NODE_CHILD_ENTRY_BY_PARENT_AND_NAME, childEntryEntity);
}
@@ -135,12 +113,8 @@ public class AVMNodeLinksDAOImpl extends AbstractAVMNodeLinksDAOImpl
{
Map params = new HashMap(1);
params.put("id", parentNodeId);
- params.put("pattern", childNamePattern);
+ params.put("pattern", childNamePattern.toLowerCase());
- if (toLower)
- {
- return (List) template.selectList(SELECT_AVM_NODE_CHILD_ENTRIES_BY_PARENT_AND_NAME_PATTERN_L, params);
- }
return (List) template.selectList(SELECT_AVM_NODE_CHILD_ENTRIES_BY_PARENT_AND_NAME_PATTERN, params);
}
@@ -172,11 +146,6 @@ public class AVMNodeLinksDAOImpl extends AbstractAVMNodeLinksDAOImpl
protected int deleteChildEntryEntity(long parentNodeId, String name)
{
AVMChildEntryEntity childEntryEntity = new AVMChildEntryEntity(parentNodeId, name);
-
- if (toLower)
- {
- return template.delete(DELETE_AVM_NODE_CHILD_ENTRY_BY_PARENT_AND_NAME_L, childEntryEntity);
- }
return template.delete(DELETE_AVM_NODE_CHILD_ENTRY_BY_PARENT_AND_NAME, childEntryEntity);
}
diff --git a/source/java/org/alfresco/repo/version/VersionServiceImplTest.java b/source/java/org/alfresco/repo/version/VersionServiceImplTest.java
index 71aed67a60..d78456d9ed 100644
--- a/source/java/org/alfresco/repo/version/VersionServiceImplTest.java
+++ b/source/java/org/alfresco/repo/version/VersionServiceImplTest.java
@@ -1076,6 +1076,73 @@ public class VersionServiceImplTest extends BaseVersionStoreTest
}
+ public void testAddVersionableAspectWithNoVersionType()
+ {
+ // No version-type specified when adding the aspect
+ NodeRef nodeRef = createNodeWithVersionType(null);
+ setComplete();
+ endTransaction();
+ assertCorrectVersionLabel(nodeRef, "0.1");
+ }
+
+ public void testAddVersionableAspectWithMinorVersionType()
+ {
+ // MINOR version-type specified when adding the aspect
+ NodeRef nodeRef = createNodeWithVersionType(VersionType.MINOR);
+ setComplete();
+ endTransaction();
+ assertCorrectVersionLabel(nodeRef, "0.1");
+ }
+
+ public void testAddVersionableAspectWithMajorVersionType()
+ {
+ // MAJOR version-type specified when adding the aspect
+ NodeRef nodeRef = createNodeWithVersionType(VersionType.MAJOR);
+ setComplete();
+ endTransaction();
+ assertCorrectVersionLabel(nodeRef, "1.0");
+ }
+
+ private void assertCorrectVersionLabel(final NodeRef nodeRef, final String versionLabel)
+ {
+ transactionService.getRetryingTransactionHelper().doInTransaction(new RetryingTransactionCallback