diff --git a/config/alfresco/messages/avm-messages_it.properties b/config/alfresco/messages/avm-messages_it.properties
index 4d92ce1638..1aa79ad60c 100755
--- a/config/alfresco/messages/avm-messages_it.properties
+++ b/config/alfresco/messages/avm-messages_it.properties
@@ -1,7 +1,7 @@
# AVM related messages
expiredcontent.workflow.title=Contenuto scaduto in ''{0}''
-avmlockservice.locked=Non si dispone dell'accesso a ''{0}''; attualmente \u00e8 bloccato dall'utente ''{1}''.
+avmlockservice.locked=Non si dispone dell''accesso a ''{0}''; attualmente \u00e8 bloccato dall''utente ''{1}''.
testserver.taken=Il server di test ''{0}'' selezionato \u00e8 stato assegnato a un altro utente, se possibile, selezionare un server diverso e riprovare.
avm.cycle.create=Verrebbe creato un ciclo.
diff --git a/config/alfresco/messages/content-service.properties b/config/alfresco/messages/content-service.properties
index 1384e69172..44ee014a51 100644
--- a/config/alfresco/messages/content-service.properties
+++ b/config/alfresco/messages/content-service.properties
@@ -23,4 +23,4 @@ metadata.extraction.err.type_conversion=Metadata extraction failed because an ex
transform.err.format_or_password=Failed to convert content, possibly due to an incorrectly formatted or password protected file.
-content.routing.err.invalid_default_store=The 'defaultStoreName', ''{0}'' does not refer to a store in 'storesByName' ({1}).
\ No newline at end of file
+content.routing.err.invalid_default_store=The ''defaultStoreName'', ''{0}'' does not refer to a store in ''storesByName'' ({1}).
\ No newline at end of file
diff --git a/config/alfresco/messages/content-service_de.properties b/config/alfresco/messages/content-service_de.properties
index abec384b00..4b4b86b907 100755
--- a/config/alfresco/messages/content-service_de.properties
+++ b/config/alfresco/messages/content-service_de.properties
@@ -23,4 +23,4 @@ metadata.extraction.err.type_conversion=Metadata extraction failed because an ex
transform.err.format_or_password=Failed to convert content, possibly due to an incorrectly formatted or password protected file.
-content.routing.err.invalid_default_store=The 'defaultStoreName', ''{0}'' does not refer to a store in 'storesByName' ({1}).
+content.routing.err.invalid_default_store=The ''defaultStoreName'', ''{0}'' does not refer to a store in ''storesByName'' ({1}).
diff --git a/config/alfresco/messages/content-service_es.properties b/config/alfresco/messages/content-service_es.properties
index abec384b00..4b4b86b907 100755
--- a/config/alfresco/messages/content-service_es.properties
+++ b/config/alfresco/messages/content-service_es.properties
@@ -23,4 +23,4 @@ metadata.extraction.err.type_conversion=Metadata extraction failed because an ex
transform.err.format_or_password=Failed to convert content, possibly due to an incorrectly formatted or password protected file.
-content.routing.err.invalid_default_store=The 'defaultStoreName', ''{0}'' does not refer to a store in 'storesByName' ({1}).
+content.routing.err.invalid_default_store=The ''defaultStoreName'', ''{0}'' does not refer to a store in ''storesByName'' ({1}).
diff --git a/config/alfresco/messages/content-service_fr.properties b/config/alfresco/messages/content-service_fr.properties
index abec384b00..4b4b86b907 100755
--- a/config/alfresco/messages/content-service_fr.properties
+++ b/config/alfresco/messages/content-service_fr.properties
@@ -23,4 +23,4 @@ metadata.extraction.err.type_conversion=Metadata extraction failed because an ex
transform.err.format_or_password=Failed to convert content, possibly due to an incorrectly formatted or password protected file.
-content.routing.err.invalid_default_store=The 'defaultStoreName', ''{0}'' does not refer to a store in 'storesByName' ({1}).
+content.routing.err.invalid_default_store=The ''defaultStoreName'', ''{0}'' does not refer to a store in ''storesByName'' ({1}).
diff --git a/config/alfresco/messages/content-service_it.properties b/config/alfresco/messages/content-service_it.properties
index abec384b00..4b4b86b907 100755
--- a/config/alfresco/messages/content-service_it.properties
+++ b/config/alfresco/messages/content-service_it.properties
@@ -23,4 +23,4 @@ metadata.extraction.err.type_conversion=Metadata extraction failed because an ex
transform.err.format_or_password=Failed to convert content, possibly due to an incorrectly formatted or password protected file.
-content.routing.err.invalid_default_store=The 'defaultStoreName', ''{0}'' does not refer to a store in 'storesByName' ({1}).
+content.routing.err.invalid_default_store=The ''defaultStoreName'', ''{0}'' does not refer to a store in ''storesByName'' ({1}).
diff --git a/config/alfresco/messages/content-service_ja.properties b/config/alfresco/messages/content-service_ja.properties
index abec384b00..4b4b86b907 100755
--- a/config/alfresco/messages/content-service_ja.properties
+++ b/config/alfresco/messages/content-service_ja.properties
@@ -23,4 +23,4 @@ metadata.extraction.err.type_conversion=Metadata extraction failed because an ex
transform.err.format_or_password=Failed to convert content, possibly due to an incorrectly formatted or password protected file.
-content.routing.err.invalid_default_store=The 'defaultStoreName', ''{0}'' does not refer to a store in 'storesByName' ({1}).
+content.routing.err.invalid_default_store=The ''defaultStoreName'', ''{0}'' does not refer to a store in ''storesByName'' ({1}).
diff --git a/config/alfresco/messages/email-service.properties b/config/alfresco/messages/email-service.properties
index bc8eb99a91..60abfc4880 100644
--- a/config/alfresco/messages/email-service.properties
+++ b/config/alfresco/messages/email-service.properties
@@ -5,19 +5,19 @@ email.server.err.sender_blocked=''{0}'' has been denied access.
email.server.err.inbound_mail_disabled=The Alfresco server is not configured to accept inbound emails.
email.server.err.access_denied=''{0}'' has been denied access to ''{1}''.
email.server.err.invalid_subject=The subject line must be a valid file name.
-email.server.err.unknown_source_address=The 'from' email address was not recognised: {0}.
+email.server.err.unknown_source_address=The ''from'' email address was not recognised: {0}.
email.server.err.user_not_email_contributor=The user ''{0}'' in not in the email contributor group.
email.server.err.no_email_contributor_group=The Email Contributor Group doesn't exist.
email.server.err.invalid_node_address=The email address ''{0}'' does not reference a valid accessible node.
email.server.err.handler_not_found=Email message handler was not found for node type ''{0}''.
email.server.err.mail_read_error=An error occurred while reading the mail message: {0}
email.server.err.failed_to_create_mime_message=Failed to create MIME message from input stream: {0}
-email.server.err.extracting_from_address=Failed to extract the 'from' address: {0}
+email.server.err.extracting_from_address=Failed to extract the ''from'' address: {0}
email.server.err.no_from_address=The message has no 'from' address.
-email.server.err.extracting_to_address=Failed to extract the 'to' address: {0}
+email.server.err.extracting_to_address=Failed to extract the ''to'' address: {0}
email.server.err.no_to_address=The message has no 'to' address.
email.server.err.extracting_subject=Failed to extract the message subject: {0}
-email.server.err.extracting_sent_date=Failed to extract the 'sent on' date: {0}
+email.server.err.extracting_sent_date=Failed to extract the ''sent on'' date: {0}
email.server.err.parse_message=Failed to parse the email message: {0}
email.server.err.usupported_encoding=Encoding ''{0}'' is not supported
email.server.err.failed_to_read_content_stream=Failed to read the message part content: {0}
diff --git a/config/alfresco/messages/email-service_es.properties b/config/alfresco/messages/email-service_es.properties
index 264bcfe5f7..0f6416644c 100755
--- a/config/alfresco/messages/email-service_es.properties
+++ b/config/alfresco/messages/email-service_es.properties
@@ -5,19 +5,19 @@ email.server.err.sender_blocked=A ''{0}'' le fue denegado el acceso.
email.server.err.inbound_mail_disabled=El servidor Alfresco no est\u00e1 configurado para aceptar correos entrantes.
email.server.err.access_denied=El acceso a ''{1}'' le fue denegado a ''{0}''.
email.server.err.invalid_subject=La l\u00ednea de asunto debe ser un nombre de fichero v\u00e1lido.
-email.server.err.unknown_source_address=La direcci\u00f3n de correo electr\u00f3nico 'desde' no fue reconocida: {0}.
+email.server.err.unknown_source_address=La direcci\u00f3n de correo electr\u00f3nico ''desde'' no fue reconocida: {0}.
email.server.err.user_not_email_contributor=El usuario ''{0}'' no est\u00e1 en el grupo contribuidor de correos.
email.server.err.no_email_contributor_group=El grupo Contribuidor de correos no existe.
email.server.err.invalid_node_address=La direcci\u00f3n correo electr\u00f3nico ''{0}'' no hace referencia a un nodo de acceso v\u00e1lido.
email.server.err.handler_not_found=No se ha encontrado el controlador de mensajes de correo para el tipo de nodo ''{0}''.
email.server.err.mail_read_error=Se produjo un error al leer el mensaje de correo: {0}
email.server.err.failed_to_create_mime_message=No se pudo crear el mensaje MIME desde la corriente de entrada: {0}
-email.server.err.extracting_from_address=No se pudo extraer la direcci\u00f3n 'desde': {0}
+email.server.err.extracting_from_address=No se pudo extraer la direcci\u00f3n ''desde'': {0}
email.server.err.no_from_address=El mensaje no tiene direcci\u00f3n 'desde'.
-email.server.err.extracting_to_address=No se pudo extraer la direcci\u00f3n 'a': {0}
+email.server.err.extracting_to_address=No se pudo extraer la direcci\u00f3n ''a'': {0}
email.server.err.no_to_address=El mensaje no tiene direcci\u00f3n 'a'.
email.server.err.extracting_subject=No se pudo extraer el asunto del mensaje: {0}
-email.server.err.extracting_sent_date=No se pudo extraer la fecha 'enviado el': {0}
+email.server.err.extracting_sent_date=No se pudo extraer la fecha ''enviado el'': {0}
email.server.err.parse_message=No se pudo analizar sint\u00e1cticamente el mensaje correo: {0}
email.server.err.usupported_encoding=Codificaci\u00f3n ''{0}'' no soportada
email.server.err.failed_to_read_content_stream=No se pudo leer el contenido de la parte de mensaje: {0}
diff --git a/config/alfresco/messages/email-service_fr.properties b/config/alfresco/messages/email-service_fr.properties
index ca5133a630..4dec00ff97 100755
--- a/config/alfresco/messages/email-service_fr.properties
+++ b/config/alfresco/messages/email-service_fr.properties
@@ -6,9 +6,9 @@ email.server.err.inbound_mail_disabled=La configuration du serveur Alfresco ne p
email.server.err.access_denied=''{0}'' s''est vu refuser l''acc\u00e8s \u00e0 ''{1}''.
email.server.err.invalid_subject=La ligne d'objet doit \u00eatre un nom de fichier valide.
email.server.err.unknown_source_address=L''adresse E-mail ''from'' n''est pas reconnue\u00a0: {0}.
-email.server.err.user_not_email_contributor=L'utilisateur ''{0}'' ne fait pas partie du groupe des contributeurs par E-mail.
+email.server.err.user_not_email_contributor=L''utilisateur ''{0}'' ne fait pas partie du groupe des contributeurs par E-mail.
email.server.err.no_email_contributor_group=Le groupe de contributeurs par E-mail n'existe pas.
-email.server.err.invalid_node_address=L'adresse E-mail ''{0}'' ne fait pas r\u00e9f\u00e9rence \u00e0 un n\u009cud accessible valide.
+email.server.err.invalid_node_address=L''adresse E-mail ''{0}'' ne fait pas r\u00e9f\u00e9rence \u00e0 un n\u009cud accessible valide.
email.server.err.handler_not_found=Le gestionnaire des E-mails est introuvable pour le type de n\u009cud ''{0}''.
email.server.err.mail_read_error=Une erreur s''est produite lors de la lecture de l''E-mail\u00a0: {0}
email.server.err.failed_to_create_mime_message=Impossible de cr\u00e9er le message\u00a0MIME \u00e0 partir du flux en entr\u00e9e\u00a0: {0}
diff --git a/config/alfresco/messages/email-service_it.properties b/config/alfresco/messages/email-service_it.properties
index 592553b7ef..55fb2c73cc 100755
--- a/config/alfresco/messages/email-service_it.properties
+++ b/config/alfresco/messages/email-service_it.properties
@@ -14,7 +14,7 @@ email.server.err.mail_read_error=Si \u00e8 verificato un errore durante la lettu
email.server.err.failed_to_create_mime_message=Impossibile creare il messaggio MIME dal flusso di input: {0}
email.server.err.extracting_from_address=Impossibile estrarre l''indirizzo del mittente: {0}
email.server.err.no_from_address=Il messaggio non contiene un indirizzo del mittente:
-email.server.err.extracting_to_address=Impossibile estrarre l'indirizzo del destinatario: {0}
+email.server.err.extracting_to_address=Impossibile estrarre l''indirizzo del destinatario: {0}
email.server.err.no_to_address=Il messaggio non contiene un indirizzo del destinatario.
email.server.err.extracting_subject=Impossibile estrarre l''oggetto del messaggio: {0}
email.server.err.extracting_sent_date=Impossibile estrarre la data di invio: {0}
diff --git a/config/alfresco/messages/email-service_ja.properties b/config/alfresco/messages/email-service_ja.properties
index d1afd5a2c2..43b359efa5 100755
--- a/config/alfresco/messages/email-service_ja.properties
+++ b/config/alfresco/messages/email-service_ja.properties
@@ -5,19 +5,19 @@ email.server.err.sender_blocked=''{0}''\u306e\u30a2\u30af\u30bb\u30b9\u304c\u62d
email.server.err.inbound_mail_disabled=Alfresco\u30b5\u30fc\u30d0\u304c\u7740\u4fe1E\u30e1\u30fc\u30eb\u3092\u53d7\u3051\u5165\u308c\u308b\u3088\u3046\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
email.server.err.access_denied=''{0}''\u306e''{1}''\u3078\u306e\u30a2\u30af\u30bb\u30b9\u304c\u62d2\u5426\u3055\u308c\u307e\u3057\u305f\u3002
email.server.err.invalid_subject=\u4ef6\u540d\u884c\u306f\u6709\u52b9\u306a\u30d5\u30a1\u30a4\u30eb\u540d\u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002
-email.server.err.unknown_source_address='\u9001\u4fe1\u5143'E\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u304c\u8a8d\u8b58\u3055\u308c\u307e\u305b\u3093\u3067\u3057\u305f: {0}\u3002
+email.server.err.unknown_source_address=''\u9001\u4fe1\u5143''E\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u304c\u8a8d\u8b58\u3055\u308c\u307e\u305b\u3093\u3067\u3057\u305f: {0}\u3002
email.server.err.user_not_email_contributor=\u30e6\u30fc\u30b6''{0}''\u306fE\u30e1\u30fc\u30eb\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30bf\u30b0\u30eb\u30fc\u30d7\u306b\u542b\u307e\u308c\u3066\u3044\u307e\u305b\u3093\u3002
email.server.err.no_email_contributor_group=E\u30e1\u30fc\u30eb\u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30bf\u30b0\u30eb\u30fc\u30d7\u304c\u5b58\u5728\u3057\u307e\u305b\u3093\u3002
email.server.err.invalid_node_address=E\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9''{0}''\u306f\u6709\u52b9\u306a\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\u30ce\u30fc\u30c9\u3092\u53c2\u7167\u3057\u3066\u3044\u307e\u305b\u3093\u3002
email.server.err.handler_not_found=\u30ce\u30fc\u30c9\u30bf\u30a4\u30d7''{0}''\u306eE\u30e1\u30fc\u30eb\u30e1\u30c3\u30bb\u30fc\u30b8\u30cf\u30f3\u30c9\u30e9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002
email.server.err.mail_read_error=E\u30e1\u30fc\u30eb\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u8aad\u53d6\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f: {0}
email.server.err.failed_to_create_mime_message=\u5165\u529b\u30b9\u30c8\u30ea\u30fc\u30e0\u304b\u3089MIME\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u751f\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f: {0}
-email.server.err.extracting_from_address='\u9001\u4fe1\u5143'\u30a2\u30c9\u30ec\u30b9\u306e\u62bd\u51fa\u306b\u5931\u6557\u3057\u307e\u3057\u305f: {0}
+email.server.err.extracting_from_address=''\u9001\u4fe1\u5143''\u30a2\u30c9\u30ec\u30b9\u306e\u62bd\u51fa\u306b\u5931\u6557\u3057\u307e\u3057\u305f: {0}
email.server.err.no_from_address=\u30e1\u30c3\u30bb\u30fc\u30b8\u306b'\u9001\u4fe1\u5143'\u30a2\u30c9\u30ec\u30b9\u304c\u3042\u308a\u307e\u305b\u3093\u3002
-email.server.err.extracting_to_address=\u5b9b\u5148'\u30a2\u30c9\u30ec\u30b9\u306e\u62bd\u51fa\u306b\u5931\u6557\u3057\u307e\u3057\u305f: {0}
+email.server.err.extracting_to_address=\u5b9b\u5148''\u30a2\u30c9\u30ec\u30b9\u306e\u62bd\u51fa\u306b\u5931\u6557\u3057\u307e\u3057\u305f: {0}
email.server.err.no_to_address=\u30e1\u30c3\u30bb\u30fc\u30b8\u306b'\u5b9b\u5148'\u30a2\u30c9\u30ec\u30b9\u304c\u3042\u308a\u307e\u305b\u3093\u3002
email.server.err.extracting_subject=\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u4ef6\u540d\u306e\u62bd\u51fa\u306b\u5931\u6557\u3057\u307e\u3057\u305f: {0}
-email.server.err.extracting_sent_date='\u9001\u4fe1\u65e5'\u306e\u65e5\u4ed8\u306e\u62bd\u51fa\u306b\u5931\u6557\u3057\u307e\u3057\u305f: {0}
+email.server.err.extracting_sent_date=''\u9001\u4fe1\u65e5''\u306e\u65e5\u4ed8\u306e\u62bd\u51fa\u306b\u5931\u6557\u3057\u307e\u3057\u305f: {0}
email.server.err.parse_message=E\u30e1\u30fc\u30eb\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u30d1\u30fc\u30b9\u306b\u5931\u6557\u3057\u307e\u3057\u305f: {0}
email.server.err.usupported_encoding=\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0''{0}''\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u307e\u305b\u3093
email.server.err.failed_to_read_content_stream=\u30e1\u30c3\u30bb\u30fc\u30b8\u90e8\u5206\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u306e\u8aad\u8fbc\u306b\u5931\u6557\u3057\u307e\u3057\u305f: {0}
diff --git a/config/alfresco/messages/invitation-service.properties b/config/alfresco/messages/invitation-service.properties
index bd91784f40..ee03a61bb5 100644
--- a/config/alfresco/messages/invitation-service.properties
+++ b/config/alfresco/messages/invitation-service.properties
@@ -8,7 +8,7 @@ invitation.error.invalid_inviteId_format="Invitation Id not valid format, valid
invitation.invite.already_member="The user, {0} is already a member of {1} and cannot be invited again"
invitation.cancel.not_site_manager="Current user, {0}, cannot cancel invitation: {1} because they are not a Site Manager for site: {2}"
invitation.invite.not_site_manager="Current user, {0}, is not a Site Manager for site: {1}"
-invitation.invite.unable_generate_id="Unable to generate a user name for invitee, which doesn't already belong to someone else firstName:{0} lastName:{1} email:{2}"
+invitation.invite.unable_generate_id="Unable to generate a user name for invitee, which doesn''t already belong to someone else firstName:{0} lastName:{1} email:{2}"
invitation.invite.already_finished="Invitation, {0} has already been accepted, cancelled or rejected"
invitation.invite.authentication_chain="Authentication chain does not allow creation of new accounts"
diff --git a/config/alfresco/messages/patch-service.properties b/config/alfresco/messages/patch-service.properties
index 222057b7ea..cf3fa02ba4 100644
--- a/config/alfresco/messages/patch-service.properties
+++ b/config/alfresco/messages/patch-service.properties
@@ -41,11 +41,11 @@ patch.savedSearchesFolder.result.exists=The saved searches folder already exists
patch.savedSearchesFolder.result.created=The saved searches folder was successfully created: {0}
patch.savedSearchesPermission.description=Sets required permissions on 'Saved Searches' folder.
-patch.savedSearchesPermission.result.applied=Granted CONTRIBUTOR role to EVERYONE on 'Saved Searches' folder: {0}.
+patch.savedSearchesPermission.result.applied=Granted CONTRIBUTOR role to EVERYONE on ''Saved Searches'' folder: {0}.
patch.savedSearchesPermission.err.not_found='Saved Searches' folder could not be found.
patch.updatePermissionData.description=Update permissions from 'folder' to 'cmobject' [JIRA: AR-344].
-patch.updatePermissionData.result=Changed {0} 'folder' access control entries to 'cmobject'.
+patch.updatePermissionData.result=Changed {0} ''folder'' access control entries to ''cmobject''.
patch.authoritiesFolder.description=Ensures the existence of the user authorities folder [JIRA: AR-497].
@@ -58,11 +58,11 @@ patch.fixNodeSerializableValues.description=Ensure that property values are not
patch.fixNodeSerializableValues.result=Fixed {0} node property serialized values
patch.updateGuestPermission.description=Rename guest permission from 'Guest' to 'Consumer'
-patch.updateGuestPermission.result=Changed {0} 'Guest' access control entries to 'Consumer'.
+patch.updateGuestPermission.result=Changed {0} ''Guest'' access control entries to ''Consumer''.
patch.categoryRootPermission.description=Sets required permissions on 'Category Root' folder.
-patch.categoryRootPermission.result=Granted CONSUMER role to GUEST on 'Category Root' folder: {0}.
-patch.categoryRootPermission.err.not_found='Category Root' folder ({0}) could not be found.
+patch.categoryRootPermission.result=Granted CONSUMER role to GUEST on ''Category Root'' folder: {0}.
+patch.categoryRootPermission.err.not_found=''Category Root'' folder ({0}) could not be found.
patch.guestPersonPermission.description=Change Guest Person permission from 'Consumer' to 'Read'
patch.guestPersonPermission.result=Updated Guest Person permission from 'Consumer' to 'Read'
@@ -71,7 +71,7 @@ patch.spacesRootPermission.description=Change Spaces store root permission from
patch.spacesRootPermission.result=Updated Spaces store root permission from 'Consumer' to 'Read'
patch.contentPermission.description=Update permission entries from 'cm:content' to 'sys:base'.
-patch.contentPermission.result=Changed {0} 'cm:content' access control entries to 'sys:base'.
+patch.contentPermission.result=Changed {0} ''cm:content'' access control entries to ''sys:base''.
patch.forumsIcons.description=Updates forums icon references
patch.forumsIcons.result=Updated {0} icon references
@@ -170,7 +170,7 @@ patch.userAndPersonUserNamesAsIdentifiers.description=Reindex usr:user and cm:pe
patch.userAndPersonUserNamesAsIdentifiers.result=Reindexed user:user and cm:person uids as identifiers
patch.contentFormFolderType.description=Update WCM Content Form folder type.
-patch.contentFormFolderType.result=Updated {0} WCM Content Form objects to 'wcm:formfolder' type.
+patch.contentFormFolderType.result=Updated {0} WCM Content Form objects to ''wcm:formfolder'' type.
patch.groupNamesAsIdentifiers.description=Reindex usr:authorityContainer gids as identifiers
patch.groupNamesAsIdentifiers.result=Reindexed usr:authorityContainer with identifiers
@@ -235,7 +235,7 @@ patch.deploymentMigration.reportMigrated=Deployment report for ''{0}'' from web
patch.deploymentMigration.result=Deployment data has been migrated.
patch.updateAvmPermissionData.description=Update avm permissions from 'webfolder' to 'cmobject'.
-patch.updateAvmPermissionData.result=Changed {0} 'webfolder' access control entries to 'cmobject'.
+patch.updateAvmPermissionData.result=Changed {0} ''webfolder'' access control entries to ''cmobject''.
patch.updateAvmPermissions.description=Update ACLs on all avm objects to the new 2.2 permission model
patch.updateAvmPermissions.result=Updated ACLs. Created {0} defining and {1} layered ACLs.
@@ -319,7 +319,7 @@ patch.fixNameCrcValues.associationTypeNotDefined=Association type ''{0}'' has no
patch.fixNameCrcValues.associationTypeNotChild=Association type ''{0}'' does not represent a child association but is used as one; for child association ID {1}.
patch.personUsagePatch.description=Add person 'cm:sizeCurrent' property (if missing).
-patch.personUsagePatch.result1=Added 'cm:sizeCurrent' property to {0} people that were missing this property.
+patch.personUsagePatch.result1=Added ''cm:sizeCurrent'' property to {0} people that were missing this property.
patch.personUsagePatch.result2=No people were missing the 'cm:sizeCurrent' property.
patch.redeployNominatedInvitationProcessWithPropsForShare.description=Redeploy nominated invitation workflow
@@ -353,7 +353,7 @@ patch.convertContentUrls.store.done=This job is complete. Deactivate the schedu
patch.fixAuthoritiesCrcValues.description=Fixes authority CRC32 values to match UTF-8 encoding.
patch.fixAuthoritiesCrcValues.result=Fixed CRC32 values for UTF-8 encoding for {0} authorities. See file {1} for details.
-patch.fixAuthoritiesCrcValues.fixed=Updated CRC32 values for authority '{0}'.
+patch.fixAuthoritiesCrcValues.fixed=Updated CRC32 values for authority ''{0}''.
patch.fixAuthoritiesCrcValues.unableToChange=Failed to update the CRC32 value for authority: \n Authority: {0} \n Error: {1}
patch.updateMimetypes1.description=Fix mimetypes for Excel and Powerpoint.
diff --git a/config/alfresco/messages/schema-update.properties b/config/alfresco/messages/schema-update.properties
index 28c3626d39..32c2e5a5d0 100644
--- a/config/alfresco/messages/schema-update.properties
+++ b/config/alfresco/messages/schema-update.properties
@@ -24,7 +24,7 @@ schema.update.err.update_failed=Schema auto-update failed
schema.update.err.validation_failed=Schema validation failed
schema.update.err.update_script_not_run=The following schema upgrade script needs to be executed manually: {0}
schema.update.err.script_not_found=The schema script could not be found at location {0}
-schema.update.err.statement_include_before_sql=Script include '--INCLUDE:' must occur before starting the SQL statement (line {0} of {1}).
-schema.update.err.statement_var_assignment_before_sql=Variable assignment with '--ASSIGN:' must occur before starting the SQL statement (line {0} of {1}).
-schema.update.err.statement_var_assignment_format=Variable assignment uses format '--ASSIGN:x=col' where 'x' is the variable to assign to and 'col' is the column value to extract (line {0} of {1}).
-schema.update.err.statement_terminator=Scripts must terminate all statements with ';' (line {0} of {1}).
+schema.update.err.statement_include_before_sql=Script include ''--INCLUDE:'' must occur before starting the SQL statement (line {0} of {1}).
+schema.update.err.statement_var_assignment_before_sql=Variable assignment with ''--ASSIGN:'' must occur before starting the SQL statement (line {0} of {1}).
+schema.update.err.statement_var_assignment_format=Variable assignment uses format ''--ASSIGN:x=col'' where ''x'' is the variable to assign to and ''col'' is the column value to extract (line {0} of {1}).
+schema.update.err.statement_terminator=Scripts must terminate all statements with '';'' (line {0} of {1}).
diff --git a/config/alfresco/messages/schema-update_de.properties b/config/alfresco/messages/schema-update_de.properties
index a7afca61c3..ae337aad21 100755
--- a/config/alfresco/messages/schema-update_de.properties
+++ b/config/alfresco/messages/schema-update_de.properties
@@ -24,6 +24,6 @@ schema.update.err.update_failed=Schema auto-update failed
schema.update.err.validation_failed=Schema validation failed
schema.update.err.update_script_not_run=The following schema upgrade script needs to be executed manually: {0}
schema.update.err.script_not_found=The schema script could not be found at location {0}
-schema.update.err.statement_var_assignment_before_sql=Variable assignment with '--ASSIGN:' must occur before starting the SQL statement (line {0} of {1}).
-schema.update.err.statement_var_assignment_format=Variable assignment uses format '--ASSIGN:x=col' where 'x' is the variable to assign to and 'col' is the column value to extract (line {0} of {1}).
-schema.update.err.statement_terminator=Scripts must terminate all statements with ';' (line {0} of {1}).
+schema.update.err.statement_var_assignment_before_sql=Variable assignment with ''--ASSIGN:'' must occur before starting the SQL statement (line {0} of {1}).
+schema.update.err.statement_var_assignment_format=Variable assignment uses format ''--ASSIGN:x=col'' where ''x'' is the variable to assign to and ''col'' is the column value to extract (line {0} of {1}).
+schema.update.err.statement_terminator=Scripts must terminate all statements with '';'' (line {0} of {1}).
diff --git a/config/alfresco/messages/schema-update_es.properties b/config/alfresco/messages/schema-update_es.properties
index a7afca61c3..ae337aad21 100755
--- a/config/alfresco/messages/schema-update_es.properties
+++ b/config/alfresco/messages/schema-update_es.properties
@@ -24,6 +24,6 @@ schema.update.err.update_failed=Schema auto-update failed
schema.update.err.validation_failed=Schema validation failed
schema.update.err.update_script_not_run=The following schema upgrade script needs to be executed manually: {0}
schema.update.err.script_not_found=The schema script could not be found at location {0}
-schema.update.err.statement_var_assignment_before_sql=Variable assignment with '--ASSIGN:' must occur before starting the SQL statement (line {0} of {1}).
-schema.update.err.statement_var_assignment_format=Variable assignment uses format '--ASSIGN:x=col' where 'x' is the variable to assign to and 'col' is the column value to extract (line {0} of {1}).
-schema.update.err.statement_terminator=Scripts must terminate all statements with ';' (line {0} of {1}).
+schema.update.err.statement_var_assignment_before_sql=Variable assignment with ''--ASSIGN:'' must occur before starting the SQL statement (line {0} of {1}).
+schema.update.err.statement_var_assignment_format=Variable assignment uses format ''--ASSIGN:x=col'' where ''x'' is the variable to assign to and ''col'' is the column value to extract (line {0} of {1}).
+schema.update.err.statement_terminator=Scripts must terminate all statements with '';'' (line {0} of {1}).
diff --git a/config/alfresco/messages/schema-update_fr.properties b/config/alfresco/messages/schema-update_fr.properties
index a7afca61c3..ae337aad21 100755
--- a/config/alfresco/messages/schema-update_fr.properties
+++ b/config/alfresco/messages/schema-update_fr.properties
@@ -24,6 +24,6 @@ schema.update.err.update_failed=Schema auto-update failed
schema.update.err.validation_failed=Schema validation failed
schema.update.err.update_script_not_run=The following schema upgrade script needs to be executed manually: {0}
schema.update.err.script_not_found=The schema script could not be found at location {0}
-schema.update.err.statement_var_assignment_before_sql=Variable assignment with '--ASSIGN:' must occur before starting the SQL statement (line {0} of {1}).
-schema.update.err.statement_var_assignment_format=Variable assignment uses format '--ASSIGN:x=col' where 'x' is the variable to assign to and 'col' is the column value to extract (line {0} of {1}).
-schema.update.err.statement_terminator=Scripts must terminate all statements with ';' (line {0} of {1}).
+schema.update.err.statement_var_assignment_before_sql=Variable assignment with ''--ASSIGN:'' must occur before starting the SQL statement (line {0} of {1}).
+schema.update.err.statement_var_assignment_format=Variable assignment uses format ''--ASSIGN:x=col'' where ''x'' is the variable to assign to and ''col'' is the column value to extract (line {0} of {1}).
+schema.update.err.statement_terminator=Scripts must terminate all statements with '';'' (line {0} of {1}).
diff --git a/config/alfresco/messages/schema-update_it.properties b/config/alfresco/messages/schema-update_it.properties
index a7afca61c3..ae337aad21 100755
--- a/config/alfresco/messages/schema-update_it.properties
+++ b/config/alfresco/messages/schema-update_it.properties
@@ -24,6 +24,6 @@ schema.update.err.update_failed=Schema auto-update failed
schema.update.err.validation_failed=Schema validation failed
schema.update.err.update_script_not_run=The following schema upgrade script needs to be executed manually: {0}
schema.update.err.script_not_found=The schema script could not be found at location {0}
-schema.update.err.statement_var_assignment_before_sql=Variable assignment with '--ASSIGN:' must occur before starting the SQL statement (line {0} of {1}).
-schema.update.err.statement_var_assignment_format=Variable assignment uses format '--ASSIGN:x=col' where 'x' is the variable to assign to and 'col' is the column value to extract (line {0} of {1}).
-schema.update.err.statement_terminator=Scripts must terminate all statements with ';' (line {0} of {1}).
+schema.update.err.statement_var_assignment_before_sql=Variable assignment with ''--ASSIGN:'' must occur before starting the SQL statement (line {0} of {1}).
+schema.update.err.statement_var_assignment_format=Variable assignment uses format ''--ASSIGN:x=col'' where ''x'' is the variable to assign to and ''col'' is the column value to extract (line {0} of {1}).
+schema.update.err.statement_terminator=Scripts must terminate all statements with '';'' (line {0} of {1}).
diff --git a/config/alfresco/messages/schema-update_ja.properties b/config/alfresco/messages/schema-update_ja.properties
index a7afca61c3..ae337aad21 100755
--- a/config/alfresco/messages/schema-update_ja.properties
+++ b/config/alfresco/messages/schema-update_ja.properties
@@ -24,6 +24,6 @@ schema.update.err.update_failed=Schema auto-update failed
schema.update.err.validation_failed=Schema validation failed
schema.update.err.update_script_not_run=The following schema upgrade script needs to be executed manually: {0}
schema.update.err.script_not_found=The schema script could not be found at location {0}
-schema.update.err.statement_var_assignment_before_sql=Variable assignment with '--ASSIGN:' must occur before starting the SQL statement (line {0} of {1}).
-schema.update.err.statement_var_assignment_format=Variable assignment uses format '--ASSIGN:x=col' where 'x' is the variable to assign to and 'col' is the column value to extract (line {0} of {1}).
-schema.update.err.statement_terminator=Scripts must terminate all statements with ';' (line {0} of {1}).
+schema.update.err.statement_var_assignment_before_sql=Variable assignment with ''--ASSIGN:'' must occur before starting the SQL statement (line {0} of {1}).
+schema.update.err.statement_var_assignment_format=Variable assignment uses format ''--ASSIGN:x=col'' where ''x'' is the variable to assign to and ''col'' is the column value to extract (line {0} of {1}).
+schema.update.err.statement_terminator=Scripts must terminate all statements with '';'' (line {0} of {1}).
diff --git a/config/alfresco/messages/transfer-service_fr.properties b/config/alfresco/messages/transfer-service_fr.properties
index 2b605ab25b..6799ab459d 100755
--- a/config/alfresco/messages/transfer-service_fr.properties
+++ b/config/alfresco/messages/transfer-service_fr.properties
@@ -7,7 +7,7 @@ transfer_service.unable_to_transfer_async=Impossible de transf\u00e9rer de mani\
transfer_service.target_exists=Impossible de cr\u00e9er une cible de transfert portant le nom {0} car une cible porte d\u00e9j\u00e0 ce nom.
transfer_service.comms.unsupported_protocol=Protocole non pris en charge : {0}
transfer_service.comms.unsuccessful_response=Code de r\u00e9ponse infructueuse re\u00e7u depuis le serveur cible : {0}, {1}
-transfer_service.comms.http_request_failed=Echec d'ex\u00e9cution de la requ\u00eate HTTP {0} vers la cible : {1} statut : {2}
+transfer_service.comms.http_request_failed=Echec d''ex\u00e9cution de la requ\u00eate HTTP {0} vers la cible : {1} statut : {2}
transfer_service.incompatible_versions=Transfert impossible entre des versions incompatibles. Identifiant de transfert : {0} de : {1} vers : {2}
transfer_service.no_nodes=Aucun noeud \u00e0 transf\u00e9rer
transfer_service.target_not_enabled=Cible de transfert non activ\u00e9e {0}
@@ -23,7 +23,7 @@ transfer_service.receiver.lock_folder_not_found=Impossible de rep\u00e9rer l''em
transfer_service.receiver.temp_folder_not_found=Impossible de rep\u00e9rer l''emplacement du dossier temporaire sp\u00e9cifi\u00e9 pour le transfert {0} : {1}
transfer_service.receiver.lock_unavailable=Le verrou de transfert a \u00e9t\u00e9 r\u00e9clam\u00e9 pour un autre transfert entrant. Impossible de d\u00e9marrer un nouveau transfert.
transfer_service.receiver.record_folder_not_found=Dossier sp\u00e9cifi\u00e9 pour contenir les enregistrements de transfert entrant introuvable : {0}
-transfer_service.receiver.not_lock_owner=Echec de la tentative d'ex\u00e9cution de l'op\u00e9ration de transfert. Verrou non d\u00e9tenu par le transfert sp\u00e9cifi\u00e9 : {0}
+transfer_service.receiver.not_lock_owner=Echec de la tentative d''ex\u00e9cution de l''op\u00e9ration de transfert. Verrou non d\u00e9tenu par le transfert sp\u00e9cifi\u00e9 : {0}
transfer_service.receiver.error_ending_transfer=La requ\u00eate de fin d''un transfert ({0}) a entra\u00een\u00e9 une erreur.
transfer_service.receiver.error_staging_snapshot=Une erreur s''est produite lors de l''activation du fichier de clich\u00e9 pour le transfert {0}
transfer_service.receiver.error_staging_content=Une erreur s''est produite lors de l''activation d''un fichier de contenu pour le transfert {0}. L''identifiant du fichier est {1}
diff --git a/config/alfresco/node-services-context.xml b/config/alfresco/node-services-context.xml
index c7bbe87169..9fbf1af478 100644
--- a/config/alfresco/node-services-context.xml
+++ b/config/alfresco/node-services-context.xml
@@ -175,6 +175,11 @@
${version.store.version2Store}
+
+
+ {http://www.alfresco.org/model/content/1.0}source
+
+
diff --git a/config/alfresco/patch/patch-services-context.xml b/config/alfresco/patch/patch-services-context.xml
index 07613be5cd..831b521968 100644
--- a/config/alfresco/patch/patch-services-context.xml
+++ b/config/alfresco/patch/patch-services-context.xml
@@ -2048,33 +2048,15 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ${system.content.contentUrlConverter.threadCount}
-
-
- ${system.content.contentUrlConverter.batchSize}
-
-
- ${system.content.contentUrlConverter.runAsScheduledJob}
-
+
+
+
+
+
+
+
+
+
diff --git a/config/alfresco/subsystems/imap/default/imap-server-context.xml b/config/alfresco/subsystems/imap/default/imap-server-context.xml
index d1465a16df..575a508a43 100644
--- a/config/alfresco/subsystems/imap/default/imap-server-context.xml
+++ b/config/alfresco/subsystems/imap/default/imap-server-context.xml
@@ -7,9 +7,6 @@
-
- ${imap.server.enabled}
-
@@ -174,6 +171,9 @@
+
+ ${imap.server.enabled}
+
diff --git a/source/java/org/alfresco/repo/admin/patch/impl/ContentUrlConverterPatch.java b/source/java/org/alfresco/repo/admin/patch/impl/ContentUrlConverterPatch.java
index 1806245671..96ea2f1502 100644
--- a/source/java/org/alfresco/repo/admin/patch/impl/ContentUrlConverterPatch.java
+++ b/source/java/org/alfresco/repo/admin/patch/impl/ContentUrlConverterPatch.java
@@ -22,6 +22,7 @@ import java.sql.Savepoint;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.repo.admin.patch.AbstractPatch;
@@ -39,6 +40,7 @@ import org.alfresco.repo.domain.control.ControlDAO;
import org.alfresco.repo.domain.patch.PatchDAO;
import org.alfresco.repo.lock.JobLockService;
import org.alfresco.repo.lock.LockAcquisitionException;
+import org.alfresco.repo.lock.JobLockService.JobLockRefreshCallback;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.transaction.AlfrescoTransactionSupport;
import org.alfresco.repo.transaction.AlfrescoTransactionSupport.TxnReadState;
@@ -101,7 +103,6 @@ public class ContentUrlConverterPatch extends AbstractPatch
// Lock as per patching
private static Log logger = LogFactory.getLog(PatchExecuter.class);
- private static VmShutdownListener shutdownListener = new VmShutdownListener("ContentUrlConverterPatch");
private RegistryService registryService;
private JobLockService jobLockService;
@@ -255,7 +256,7 @@ public class ContentUrlConverterPatch extends AbstractPatch
logger.info(report);
}
}
-
+
/**
* Gets a set of work to do and executes it within this transaction. If kicked off via a job,
* the task will exit before completion, on the assumption that it will be kicked off at regular
@@ -278,7 +279,6 @@ public class ContentUrlConverterPatch extends AbstractPatch
return I18NUtil.getMessage("patch.convertContentUrls.bypassingPatch");
}
- boolean completed = false;
// Lock in proportion to the batch size (0.1s per node or 0.8 min per 500)
String lockToken = getLock(batchSize*100L);
if (lockToken == null)
@@ -294,16 +294,32 @@ public class ContentUrlConverterPatch extends AbstractPatch
throw new RuntimeException("Unable to get job lock during patch execution. Only one server should perform the upgrade.");
}
}
+ // Use a flag to keep track of the running job
+ final AtomicBoolean running = new AtomicBoolean(true);
+ jobLockService.refreshLock(lockToken, LOCK, batchSize*100, new JobLockRefreshCallback()
+ {
+ @Override
+ public boolean isActive()
+ {
+ return running.get();
+ }
+ @Override
+ public void lockReleased()
+ {
+ running.set(false);
+ }
+ });
+ boolean completed = false;
try
{
logger.info(I18NUtil.getMessage("patch.convertContentUrls.start"));
logger.info(I18NUtil.getMessage("patch.convertContentUrls.adm.start"));
- boolean admCompleted = applyADM(lockToken);
+ boolean admCompleted = applyADMLooping(running);
logger.info(I18NUtil.getMessage("patch.convertContentUrls.avm.start"));
- boolean avmCompleted = applyAVM(lockToken);
+ boolean avmCompleted = applyAVMLooping(running);
logger.info(I18NUtil.getMessage("patch.convertContentUrls.store.start", contentStore));
- boolean urlLiftingCompleted = applyUrlLifting(lockToken);
+ boolean urlLiftingCompleted = applyUrlLifting(running);
completed = admCompleted && avmCompleted && urlLiftingCompleted;
}
@@ -316,7 +332,8 @@ public class ContentUrlConverterPatch extends AbstractPatch
}
finally
{
- jobLockService.releaseLock(lockToken, LOCK);
+ // The lock will self-release if answer isActive in the negative
+ running.set(false);
}
if (completed)
@@ -346,21 +363,7 @@ public class ContentUrlConverterPatch extends AbstractPatch
}
}
- /**
- * Attempts to get the lock. If it fails, the current transaction is marked for rollback.
- *
- * @return Returns the lock token
- */
- private void refreshLock(String lockToken, long time)
- {
- if (lockToken == null)
- {
- throw new IllegalArgumentException("Must provide existing lockToken");
- }
- jobLockService.refreshLock(lockToken, LOCK, time);
- }
-
- private boolean applyADM(final String lockToken)
+ private boolean applyADMLooping(final AtomicBoolean running)
{
RetryingTransactionCallback callback = new RetryingTransactionCallback()
{
@@ -370,10 +373,8 @@ public class ContentUrlConverterPatch extends AbstractPatch
}
};
boolean done = false;
- while (true && !shutdownListener.isVmShuttingDown())
+ while (running.get())
{
- refreshLock(lockToken, batchSize*100L);
-
done = transactionHelper.doInTransaction(callback, false, true);
if (done)
{
@@ -467,7 +468,7 @@ public class ContentUrlConverterPatch extends AbstractPatch
return false;
}
- private boolean applyAVM(final String lockToken)
+ private boolean applyAVMLooping(final AtomicBoolean running)
{
RetryingTransactionCallback callback = new RetryingTransactionCallback()
{
@@ -477,10 +478,8 @@ public class ContentUrlConverterPatch extends AbstractPatch
}
};
boolean done = false;
- while (true && !shutdownListener.isVmShuttingDown())
+ while (running.get())
{
- refreshLock(lockToken, batchSize*100L);
-
done = transactionHelper.doInTransaction(callback, false, true);
if (done)
{
@@ -565,19 +564,19 @@ public class ContentUrlConverterPatch extends AbstractPatch
return false;
}
- private boolean applyUrlLifting(final String lockToken) throws Exception
+ private boolean applyUrlLifting(final AtomicBoolean running) throws Exception
{
RetryingTransactionCallback callback = new RetryingTransactionCallback()
{
public Boolean execute() throws Throwable
{
- return applyUrlLiftingInTxn(lockToken);
+ return applyUrlLiftingInTxn(running);
}
};
return transactionHelper.doInTransaction(callback, false, true);
}
- private boolean applyUrlLiftingInTxn(final String lockToken) throws Exception
+ private boolean applyUrlLiftingInTxn(final AtomicBoolean running) throws Exception
{
// Check the store
if (!contentStore.isWriteSupported())
@@ -613,8 +612,9 @@ public class ContentUrlConverterPatch extends AbstractPatch
private int allCount = 0;
public void handle(String contentUrl)
{
- if (shutdownListener.isVmShuttingDown())
+ if (!running.get())
{
+ // Either VM shutdown or lock release. Either way, bug out.
throw new VmShutdownListener.VmShutdownException();
}
@@ -643,8 +643,6 @@ public class ContentUrlConverterPatch extends AbstractPatch
allCount++;
if (allCount % batchSize == 0)
{
- // Update our lock
- refreshLock(lockToken, batchSize*100L);
if (totalSize < 0)
{
// Report
diff --git a/source/java/org/alfresco/repo/imap/ImapService.java b/source/java/org/alfresco/repo/imap/ImapService.java
index a3b1fc0872..3069a99474 100644
--- a/source/java/org/alfresco/repo/imap/ImapService.java
+++ b/source/java/org/alfresco/repo/imap/ImapService.java
@@ -279,5 +279,11 @@ public interface ImapService
NodeRef messageFile,
MimeMessage originalMessage)
throws IOException, MessagingException;
-
+
+ /**
+ * Determines whether the IMAP server is enabled.
+ *
+ * @return true if enabled
+ */
+ public boolean getImapServerEnabled();
}
diff --git a/source/java/org/alfresco/repo/imap/ImapServiceImpl.java b/source/java/org/alfresco/repo/imap/ImapServiceImpl.java
index 1e2b681446..7f9c96f364 100644
--- a/source/java/org/alfresco/repo/imap/ImapServiceImpl.java
+++ b/source/java/org/alfresco/repo/imap/ImapServiceImpl.java
@@ -147,6 +147,8 @@ public class ImapServiceImpl implements ImapService, OnCreateChildAssociationPol
private final static Map qNameToFlag;
private final static Map flagToQname;
+ private boolean imapServerEnabled = false;
+
static
{
qNameToFlag = new HashMap();
@@ -175,22 +177,16 @@ public class ImapServiceImpl implements ImapService, OnCreateChildAssociationPol
public static class ImapServiceBootstrap extends AbstractLifecycleBean
{
private ImapServiceImpl service;
- private boolean imapServerEnabled;
public void setService(ImapServiceImpl service)
{
this.service = service;
}
- public void setImapServerEnabled(boolean imapServerEnabled)
- {
- this.imapServerEnabled = imapServerEnabled;
- }
-
@Override
protected void onBootstrap(ApplicationEvent event)
{
- if (imapServerEnabled)
+ if (service.getImapServerEnabled())
{
service.startup();
}
@@ -199,7 +195,7 @@ public class ImapServiceImpl implements ImapService, OnCreateChildAssociationPol
@Override
protected void onShutdown(ApplicationEvent event)
{
- if (imapServerEnabled)
+ if (service.getImapServerEnabled())
{
service.shutdown();
}
@@ -305,6 +301,16 @@ public class ImapServiceImpl implements ImapService, OnCreateChildAssociationPol
this.extractAttachmentsEnabled = extractAttachmentsEnabled;
}
+ public void setImapServerEnabled(boolean enabled)
+ {
+ this.imapServerEnabled = enabled;
+ }
+
+ public boolean getImapServerEnabled()
+ {
+ return this.imapServerEnabled;
+ }
+
// ---------------------- Lifecycle Methods ------------------------------
public void init()
diff --git a/source/java/org/alfresco/repo/node/integrity/IncompleteNodeTagger.java b/source/java/org/alfresco/repo/node/integrity/IncompleteNodeTagger.java
index d84aab030c..3086fa7aaa 100644
--- a/source/java/org/alfresco/repo/node/integrity/IncompleteNodeTagger.java
+++ b/source/java/org/alfresco/repo/node/integrity/IncompleteNodeTagger.java
@@ -77,6 +77,7 @@ public class IncompleteNodeTagger
private DictionaryService dictionaryService;
private NodeService nodeService;
private List storesToIgnore = new ArrayList(0);
+ private Set propertiesToIgnore = new HashSet();
public IncompleteNodeTagger()
{
@@ -115,6 +116,19 @@ public class IncompleteNodeTagger
this.storesToIgnore = storesToIgnore;
}
+ /**
+ * @param propertiesToIgnore a list of property fully-qualified names to ignore
+ */
+ public void setPropertiesToIgnore(List propertiesToIgnore)
+ {
+ this.propertiesToIgnore = new HashSet();
+ for (String qnameStr : propertiesToIgnore)
+ {
+ QName qname = QName.createQName(qnameStr);
+ this.propertiesToIgnore.add(qname);
+ }
+ }
+
/**
* Registers the system-level policy behaviours
*/
@@ -493,6 +507,11 @@ public class IncompleteNodeTagger
{
for (PropertyDefinition propertyDef : propertyDefs)
{
+ if (propertiesToIgnore.contains(propertyDef.getName()))
+ {
+ continue;
+ }
+
if (!propertyDef.isMandatory())
{
// The property isn't mandatory in any way
diff --git a/source/java/org/alfresco/repo/version/Version2Model.java b/source/java/org/alfresco/repo/version/Version2Model.java
index 6eef8101e4..e35441ced3 100644
--- a/source/java/org/alfresco/repo/version/Version2Model.java
+++ b/source/java/org/alfresco/repo/version/Version2Model.java
@@ -82,7 +82,7 @@ public interface Version2Model extends VersionBaseModel
public static final String PROP_FROZEN_CREATED = "frozenCreated";
public static final QName PROP_QNAME_FROZEN_CREATED = QName.createQName(NAMESPACE_URI, PROP_FROZEN_CREATED);
- public static final String PROP_FROZEN_MODIFIER = "frozenModifer";
+ public static final String PROP_FROZEN_MODIFIER = "frozenModifier";
public static final QName PROP_QNAME_FROZEN_MODIFIER = QName.createQName(NAMESPACE_URI, PROP_FROZEN_MODIFIER);
public static final String PROP_FROZEN_MODIFIED = "frozenModified";