diff --git a/.gitignore b/.gitignore
index 572434e..6dfea5b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,19 +1,38 @@
-/target
-/*/target
-/*/overlays
-/repo/alf_data_dev/
-/alf_data_dev
-/repo/alfresco.log*
-/surf/share.log*
-/.idea
-*.DS_Store
-*.iml
-*.ipr
-*.iws
-*~
-*.bak
-*.orig
-*.log
-*.project
-/.settings/
-surf/.idea
+**.log*
+
+# Maven
+target/
+pom.xml.tag
+pom.xml.releaseBackup
+pom.xml.versionsBackup
+pom.xml.next
+release.properties
+dependency-reduced-pom.xml
+buildNumber.properties
+.mvn/timing.properties
+.mvn/wrapper/maven-wrapper.jar
+
+# Eclipse
+.metadata
+.project
+.classpath
+bin/
+tmp/
+*.tmp
+.settings/
+.loadpath
+.recommenders
+
+# IntelliJ IDEA
+**.idea
+**.iml
+
+# Visual Studio Code
+.vscode/*
+!.vscode/settings.json
+!.vscode/tasks.json
+!.vscode/launch.json
+!.vscode/extensions.json
+
+# macOS
+*.DS_Store
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index fb6d90b..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,166 +0,0 @@
-GNU LESSER GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-
- This version of the GNU Lesser General Public License incorporates
-the terms and conditions of version 3 of the GNU General Public
-License, supplemented by the additional permissions listed below.
-
- 0. Additional Definitions.
-
- As used herein, "this License" refers to version 3 of the GNU Lesser
-General Public License, and the "GNU GPL" refers to version 3 of the GNU
-General Public License.
-
- "The Library" refers to a covered work governed by this License,
-other than an Application or a Combined Work as defined below.
-
- An "Application" is any work that makes use of an interface provided
-by the Library, but which is not otherwise based on the Library.
-Defining a subclass of a class defined by the Library is deemed a mode
-of using an interface provided by the Library.
-
- A "Combined Work" is a work produced by combining or linking an
-Application with the Library. The particular version of the Library
-with which the Combined Work was made is also called the "Linked
-Version".
-
- The "Minimal Corresponding Source" for a Combined Work means the
-Corresponding Source for the Combined Work, excluding any source code
-for portions of the Combined Work that, considered in isolation, are
-based on the Application, and not on the Linked Version.
-
- The "Corresponding Application Code" for a Combined Work means the
-object code and/or source code for the Application, including any data
-and utility programs needed for reproducing the Combined Work from the
-Application, but excluding the System Libraries of the Combined Work.
-
- 1. Exception to Section 3 of the GNU GPL.
-
- You may convey a covered work under sections 3 and 4 of this License
-without being bound by section 3 of the GNU GPL.
-
- 2. Conveying Modified Versions.
-
- If you modify a copy of the Library, and, in your modifications, a
-facility refers to a function or data to be supplied by an Application
-that uses the facility (other than as an argument passed when the
-facility is invoked), then you may convey a copy of the modified
-version:
-
- a) under this License, provided that you make a good faith effort to
- ensure that, in the event an Application does not supply the
- function or data, the facility still operates, and performs
- whatever part of its purpose remains meaningful, or
-
- b) under the GNU GPL, with none of the additional permissions of
- this License applicable to that copy.
-
- 3. Object Code Incorporating Material from Library Header Files.
-
- The object code form of an Application may incorporate material from
-a header file that is part of the Library. You may convey such object
-code under terms of your choice, provided that, if the incorporated
-material is not limited to numerical parameters, data structure
-layouts and accessors, or small macros, inline functions and templates
-(ten or fewer lines in length), you do both of the following:
-
- a) Give prominent notice with each copy of the object code that the
- Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the object code with a copy of the GNU GPL and this license
- document.
-
- 4. Combined Works.
-
- You may convey a Combined Work under terms of your choice that,
-taken together, effectively do not restrict modification of the
-portions of the Library contained in the Combined Work and reverse
-engineering for debugging such modifications, if you also do each of
-the following:
-
- a) Give prominent notice with each copy of the Combined Work that
- the Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the Combined Work with a copy of the GNU GPL and this license
- document.
-
- c) For a Combined Work that displays copyright notices during
- execution, include the copyright notice for the Library among
- these notices, as well as a reference directing the user to the
- copies of the GNU GPL and this license document.
-
- d) Do one of the following:
-
- 0) Convey the Minimal Corresponding Source under the terms of this
- License, and the Corresponding Application Code in a form
- suitable for, and under terms that permit, the user to
- recombine or relink the Application with a modified version of
- the Linked Version to produce a modified Combined Work, in the
- manner specified by section 6 of the GNU GPL for conveying
- Corresponding Source.
-
- 1) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (a) uses at run time
- a copy of the Library already present on the user's computer
- system, and (b) will operate properly with a modified version
- of the Library that is interface-compatible with the Linked
- Version.
-
- e) Provide Installation Information, but only if you would otherwise
- be required to provide such information under section 6 of the
- GNU GPL, and only to the extent that such information is
- necessary to install and execute a modified version of the
- Combined Work produced by recombining or relinking the
- Application with a modified version of the Linked Version. (If
- you use option 4d0, the Installation Information must accompany
- the Minimal Corresponding Source and Corresponding Application
- Code. If you use option 4d1, you must provide the Installation
- Information in the manner specified by section 6 of the GNU GPL
- for conveying Corresponding Source.)
-
- 5. Combined Libraries.
-
- You may place library facilities that are a work based on the
-Library side by side in a single library together with other library
-facilities that are not Applications and are not covered by this
-License, and convey such a combined library under terms of your
-choice, if you do both of the following:
-
- a) Accompany the combined library with a copy of the same work based
- on the Library, uncombined with any other library facilities,
- conveyed under the terms of this License.
-
- b) Give prominent notice with the combined library that part of it
- is a work based on the Library, and explaining where to find the
- accompanying uncombined form of the same work.
-
- 6. Revised Versions of the GNU Lesser General Public License.
-
- The Free Software Foundation may publish revised and/or new versions
-of the GNU Lesser General Public License from time to time. Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Library as you received it specifies that a certain numbered version
-of the GNU Lesser General Public License "or any later version"
-applies to it, you have the option of following the terms and
-conditions either of that published version or of any later version
-published by the Free Software Foundation. If the Library as you
-received it does not specify a version number of the GNU Lesser
-General Public License, you may choose any version of the GNU Lesser
-General Public License ever published by the Free Software Foundation.
-
- If the Library as you received it specifies that a proxy can decide
-whether future versions of the GNU Lesser General Public License shall
-apply, that proxy's public statement of acceptance of any version is
-permanent authorization for you to choose that version for the
-Library.
-
diff --git a/README.md b/README.md
index ac9323e..a6dbd8e 100644
--- a/README.md
+++ b/README.md
@@ -29,4 +29,5 @@ Contributors:
* [Alexander Mahabir](https://github.com/alex4u2nv)
* [Roxana Angheluta](https://github.com/anghelutar)
* [tomasrgar](https://github.com/tomasrgar)
-* [Tom Vandepoele](https://github.com/tom-vandepoele)
\ No newline at end of file
+* [Tom Vandepoele](https://github.com/tom-vandepoele)
+* [Roberto Gamiz](https://github.com/rgamiz)
\ No newline at end of file
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
new file mode 100644
index 0000000..ece6740
--- /dev/null
+++ b/docker/docker-compose.yml
@@ -0,0 +1,76 @@
+version: '3.4'
+services:
+ uploader-plus-share:
+ image: alfresco-share-uploader-plus:development
+ build:
+ dockerfile: ./Dockerfile
+ context: ../../../uploader-plus-share-docker/target
+ environment:
+ CATALINA_OPTS: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:8888"
+ REPO_HOST: uploader-plus-acs
+ REPO_PORT: 8080
+ ports:
+ - "${share.port}:8080"
+ - "${share.debug.port}:8888"
+ uploader-plus-acs:
+ image: alfresco-content-services-uploader-plus:development
+ build:
+ dockerfile: ./Dockerfile
+ context: ../../../uploader-plus-platform-docker/target
+ environment:
+ JAVA_TOOL_OPTIONS: "${keystore.settings}"
+ JAVA_OPTS: "
+ -Dsolr.secureComms=secret
+ -Dsolr.sharedSecret=secret
+ -Dmessaging.broker.url=\"failover:(nio://uploader-plus-activemq:61616)?timeout=3000&jms.useCompression=true\"
+ "
+ CATALINA_OPTS: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:8888"
+ ports:
+ - "${acs.port}:8080"
+ - "${acs.debug.port}:8888"
+ volumes:
+ - uploader-plus-acs-volume:/usr/local/tomcat/alf_data
+ depends_on:
+ - uploader-plus-postgres
+ uploader-plus-postgres:
+ image: postgres:9.6
+ environment:
+ POSTGRES_DB: alfresco
+ POSTGRES_USER: alfresco
+ POSTGRES_PASSWORD: alfresco
+ command: postgres -c max_connections=300 -c log_min_messages=LOG
+ ports:
+ - "${postgres.port}:5432"
+ volumes:
+ - uploader-plus-db-volume:/var/lib/postgresql/data
+ uploader-plus-ass:
+ image: alfresco/alfresco-search-services:2.0.3
+ environment:
+ SOLR_ALFRESCO_HOST: uploader-plus-acs
+ SOLR_ALFRESCO_PORT: 8080
+ SOLR_SOLR_HOST: uploader-plus-ass
+ SOLR_SOLR_PORT: 8983
+ SOLR_CREATE_ALFRESCO_DEFAULTS: alfresco,archive
+ ALFRESCO_SECURE_COMMS: "secret"
+ JAVA_TOOL_OPTIONS: "-Dalfresco.secureComms.secret=secret"
+ ports:
+ - "8983:8983"
+ volumes:
+ - uploader-plus-ass-volume:/opt/alfresco-search-services/contentstore
+ - uploader-plus-ass-volume:/opt/alfresco-search-services/data
+ uploader-plus-activemq:
+ image: alfresco/alfresco-activemq:5.16.1
+ mem_limit: 1g
+ ports:
+ - 8161:8161 # Web Console
+ - 5672:5672 # AMQP
+ - 61616:61616 # OpenWire
+ - 61613:61613 # STOMP
+
+volumes:
+ uploader-plus-acs-volume:
+ external: true
+ uploader-plus-db-volume:
+ external: true
+ uploader-plus-ass-volume:
+ external: true
diff --git a/docs/alfresco-uploader-plus-diagrams.pdf b/docs/alfresco-uploader-plus-diagrams.pdf
deleted file mode 100644
index 2de1dcf..0000000
Binary files a/docs/alfresco-uploader-plus-diagrams.pdf and /dev/null differ
diff --git a/maven-central-deploy.sh b/maven-central-deploy.sh
old mode 100755
new mode 100644
diff --git a/pom.xml b/pom.xml
index e7cd12c..d3828c3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,248 +1,468 @@
-
-
- 4.0.0
- com.softwareloop
- uploader-plus
- 1.8
- pom
-
- uploader-plus
- An Alfresco uploader that prompts for metadata
- https://github.com/softwareloop/uploader-plus
-
-
-
- GNU LESSER GENERAL PUBLIC LICENSE, Version 3
- http://www.gnu.org/licenses/lgpl.html
- repo
- OSI-approved license
-
-
-
-
- scm:git:git@github.com:softwareloop/uploader-plus.git
- scm:git:git@github.com:softwareloop/uploader-plus.git
- git@github.com:softwareloop/uploader-plus.git
- HEAD
-
-
-
-
- Paolo Predonzani
- paolo.predonzani@gmail.com
- https://github.com/softwareloop
-
-
- Douglas C. R. Paes
- https://github.com/douglascrp
-
-
- Younes Regaieg
- https://github.com/yregaieg
-
-
-
-
-
- Axel Faust
- https://github.com/AFaust
-
-
- Stéphane Prouvez
- https://github.com/sprouvez
-
-
- Oksana Kurysheva
- https://github.com/aviriel
-
-
- Magnus Pedersen
- https://github.com/magp3
-
-
- Alexander Mahabir
- https://github.com/alex4u2nv
-
-
- Roxana Angheluta
- https://github.com/anghelutar
-
-
- tomasrgar
- https://github.com/tomasrgar
-
-
- Tom Vandepoele
- https://github.com/tom-vandepoele
-
-
-
-
- org.alfresco.maven
- alfresco-sdk-parent
- 2.2.0
-
-
-
- repo
- surf
-
-
-
-
+
+ 4.0.0
+ com.softwareloop
+ uploader-plus
+ 2.0
+ uploader-plus
+ An Alfresco uploader that prompts for metadata
+ https://github.com/softwareloop/uploader-plus
+ pom
+
+ 3.3.0
+
+
+
+ 4.10.0
+ UTF-8
+
+ org.alfresco
+ acs-community-packaging
+ 23.4.1
+ alfresco
+ 23.4.0.46
+ 23.4.0
+
+ alfresco/alfresco-content-repository-community
+ alfresco/alfresco-share
+ -Dencryption.keystore.type=JCEKS -Dencryption.cipherAlgorithm=AES/CBC/PKCS5Padding -Dencryption.keyAlgorithm=AES -Dencryption.keystore.location=/usr/local/tomcat/shared/classes/alfresco/extension/keystore/keystore -Dmetadata-keystore.password=mp6yc0UD9e -Dmetadata-keystore.aliases=metadata -Dmetadata-keystore.metadata.password=oKIWzVdEdA -Dmetadata-keystore.metadata.algorithm=AES
+
+ 1.1.8
+
+ 8180
+ 9898
+ uploader-plus-acs
+ 8080
+ 8888
+ 5555
+
+
+
+
+
+
+
+ junit
+ junit
+ test
+
+
+ org.mockito
+ mockito-core
+ 4.2.0
+ test
+
+
+ org.apache.httpcomponents
+ httpclient
+ test
+
+
+
+ ${alfresco.groupId}
+ alfresco-remote-api
+ provided
+
+
+
+ org.alfresco.maven
+ alfresco-rad
+ ${alfresco.sdk.version}
+ test
+
+
+
+
+
+
+ ${alfresco.groupId}
+ ${alfresco.bomDependencyArtifactId}
+ ${alfresco.platform.version}
+ pom
+ import
+
+
+
+ ${alfresco.groupId}
+ share
+ ${alfresco.share.version}
+ war
+ provided
+
+
+ ${alfresco.groupId}
+ share
+ ${alfresco.share.version}
+ classes
+ provided
+
+
+ ${alfresco.groupId}
+ alfresco-web-framework-commons
+ ${alfresco.share.version}
+ classes
+ provided
+
+
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-resources-plugin
+ 3.1.0
+
+ UTF-8
+
+
+ ftl
+ acp
+ svg
+ pdf
+ doc
+ docx
+ xls
+ xlsx
+ ppt
+ pptx
+ bin
+ lic
+ swf
+ zip
+ msg
+ jar
+ ttf
+ eot
+ woff
+ woff2
+ css
+ ico
+ psd
+ js
+
+
+
+
+ org.zeroturnaround
+ jrebel-maven-plugin
+ ${jrebel.version}
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ 3.1.0
+
+
+ org.apache.maven.plugins
+ maven-failsafe-plugin
+ 3.0.0-M1
+
+
+ integration-test
+ integration-test
+
+ integration-test
+
+
+
+ verify-test
+ verify
+
+ verify
+
+
+
+
- ${alfresco.groupId}
- alfresco-platform-distribution
- ${alfresco.version}
- pom
- import
+ org.apache.maven.surefire
+ surefire-junit47
+ 3.0.0-M1
-
-
-
-
-
-
- ossrh
- https://oss.sonatype.org/content/repositories/snapshots
-
-
- ossrh
- https://oss.sonatype.org/service/local/staging/deploy/maven2/
-
-
-
-
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 3.1.1
+
+
+
+
+
+
+ src/main/resources
+ true
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-resources-plugin
+ false
+
+
+
+ copy-and-filter-docker-resources
+ validate
+
+ copy-resources
+
+
+ ${project.build.outputDirectory}/docker
+
+
+ docker
+ true
+
+
+
+
+
+
+
+
+ com.github.blutorange
+ closure-compiler-maven-plugin
+ 2.28.0
+
+
+
+ compress-assembly
+ generate-resources
+
+ minify
+
+
+ ${project.basedir}/src/main/assembly
+ ${project.basedir}/src/main/assembly
+ web
+ web
+ true
+
+ **/*.js
+
+
+ **/webscripts/**
+ **/site-webscripts/**
+ **/META-INF/**
+ **/*.lib.js
+ **/*.css
+ **/*.min.js
+ **/*.min.css
+
+ true
+
+
+
+
+ compress-resources
+ generate-resources
+
+ minify
+
+
+ ${project.basedir}/src/main
+ ${project.basedir}/src/main
+ resources
+ resources
+ true
+
+ **/*.js
+
+
+ **/webscripts/**
+ **/site-webscripts/**
+ **/*.lib.js
+ **/*.css
+ **/*.min.js
+ **/*.min.css
+
+ true
+
+
+
+
+
+
+ org.zeroturnaround
+ jrebel-maven-plugin
+
+
+ generate-rebel-xml
+ process-resources
+
+ generate
+
+
+
+
+
+
+ all
+
+
+ ${project.build.outputDirectory}
+ ${project.build.testOutputDirectory}
+
+
+
+
+ true
+
+
+
+
+
+
+ java8
+
+ [1.8,11.0)
+
+
-
- org.apache.maven.plugins
- maven-resources-plugin
- 2.7
-
- UTF-8
-
- ftl
- acp
- jpg
- png
- gif
- pdf
- doc
- xls
- ppt
- bin
- lic
- swf
-
-
-
-
- org.apache.maven.plugins
- maven-enforcer-plugin
- 1.2
-
-
- enforce-maven
-
- enforce
-
-
-
-
- (,2.1.0),(2.1.0,2.2.0),(2.2.0,)
- Maven 2.1.0 and 2.2.0 produce incorrect GPG signatures and checksums respectively.
-
-
-
-
-
-
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.0
+
+ 1.8
+ 1.8
+
+
-
-
-
- org.apache.maven.plugins
- maven-release-plugin
- 2.5.1
-
- forked-path
- false
- -Psonatype-oss-release
- true
- v@{project.version}
-
-
-
-
-
-
-
- sonatype-oss-release
-
-
-
- org.apache.maven.plugins
- maven-source-plugin
- 2.4
-
-
- attach-sources
-
- jar-no-fork
-
-
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- 2.10.1
-
-
- attach-javadocs
-
- jar
-
-
-
-
-
- org.apache.maven.plugins
- maven-gpg-plugin
- 1.6
-
-
- sign-artifacts
- verify
-
- sign
-
-
-
-
-
-
-
-
-
-
- sonatype-nexus-snapshots
- Sonatype Nexus Snapshots
- https://oss.sonatype.org/content/repositories/snapshots
-
- false
-
-
- true
-
-
-
-
+
+
+
+ java11
+
+ [11.0,17)
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.0
+
+ 11
+
+
+
+
+
+
+ java17
+
+ [17,)
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.0
+
+ 17
+
+
+
+
+
+
+
+
+
+ alfresco-public
+ https://artifacts.alfresco.com/nexus/content/groups/public
+
+
+ alfresco-public-snapshots
+ https://artifacts.alfresco.com/nexus/content/groups/public-snapshots
+
+ true
+ daily
+
+
+
+
+ alfresco-private-repository
+ https://artifacts.alfresco.com/nexus/content/groups/private
+
+
+ alfresco-internal
+ https://artifacts.alfresco.com/nexus/content/groups/internal
+
+
+
+
+ alfresco-plugin-public
+ https://artifacts.alfresco.com/nexus/content/groups/public
+
+
+ alfresco-plugin-public-snapshots
+ https://artifacts.alfresco.com/nexus/content/groups/public-snapshots
+
+ true
+ daily
+
+
+
+
+ uploader-plus-platform
+ uploader-plus-share
+ uploader-plus-integration-tests
+ uploader-plus-platform-docker
+ uploader-plus-share-docker
+
diff --git a/repo/.gitignore b/repo/.gitignore
deleted file mode 100644
index f96903e..0000000
--- a/repo/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-/.settings/
-*.classpath
-/.idea/
diff --git a/repo/pom.xml b/repo/pom.xml
deleted file mode 100644
index a975458..0000000
--- a/repo/pom.xml
+++ /dev/null
@@ -1,121 +0,0 @@
-
-
- 4.0.0
- uploader-plus-repo
- uploader-plus-repo
- amp
- uploader-plus AMP for Alfresco repository
- https://github.com/softwareloop/uploader-plus
-
-
- com.softwareloop
- uploader-plus
- 1.8
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ${alfresco.groupId}
- alfresco-platform-distribution
- ${alfresco.version}
- pom
- import
-
-
-
-
-
-
-
- ${alfresco.groupId}
- alfresco-repository
-
-
-
-
- ${alfresco.groupId}
- alfresco-repository
- ${alfresco.version}
- h2scripts
- test
-
-
- *
- *
-
-
-
-
-
- ${alfresco.groupId}
- alfresco-remote-api
-
-
- org.springframework.social
- *
-
-
-
-
-
- ${alfresco.groupId}
- alfresco-repository
-
-
- org.springframework.social
- *
-
-
-
-
-
-
-
-
- enterprise
-
-
- ${alfresco.groupId}
- alfresco-enterprise-repository
- ${alfresco.version}
- provided
-
-
-
-
-
diff --git a/repo/run.bat b/repo/run.bat
deleted file mode 100644
index 03523c1..0000000
--- a/repo/run.bat
+++ /dev/null
@@ -1,8 +0,0 @@
-@ECHO OFF
-
-IF "%MAVEN_OPTS%" == "" (
- ECHO The environment variable 'MAVEN_OPTS' is not set, setting it for you
- SET MAVEN_OPTS=-Xms256m -Xmx2G -XX:PermSize=300m
-)
-ECHO MAVEN_OPTS is set to '%MAVEN_OPTS%'
-mvn clean install -Pamp-to-war
diff --git a/repo/run.sh b/repo/run.sh
deleted file mode 100755
index 1df845e..0000000
--- a/repo/run.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/bash
-if [[ -z ${MAVEN_OPTS} ]]; then
- echo "The environment variable 'MAVEN_OPTS' is not set, setting it for you";
- MAVEN_OPTS="-Xms256m -Xmx1524m -XX:PermSize=300m"
-fi
-echo "MAVEN_OPTS is set to '$MAVEN_OPTS'";
-mvn clean install -Pamp-to-war
\ No newline at end of file
diff --git a/repo/src/main/amp/config/alfresco/module/uploader-plus-repo/context/bootstrap-context.xml b/repo/src/main/amp/config/alfresco/module/uploader-plus-repo/context/bootstrap-context.xml
deleted file mode 100644
index 2a08281..0000000
--- a/repo/src/main/amp/config/alfresco/module/uploader-plus-repo/context/bootstrap-context.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
- alfresco/module/uploader-plus-repo/model/uploader-plus-model.xml
-
-
-
-
- alfresco/module/uploader-plus-repo/messages/uploader-plus
-
-
-
-
-
\ No newline at end of file
diff --git a/repo/src/main/amp/config/alfresco/module/uploader-plus-repo/log4j.properties b/repo/src/main/amp/config/alfresco/module/uploader-plus-repo/log4j.properties
deleted file mode 100644
index 18485cd..0000000
--- a/repo/src/main/amp/config/alfresco/module/uploader-plus-repo/log4j.properties
+++ /dev/null
@@ -1,40 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#-----------------------------------------------------------------------
-# uploader-plus-repo module log4j.properties
-#
-# NOTE
-# ----
-# Log4j uses the following logging levels:
-# debug,info,warn,error,fatal
-#
-# To set the logging level of {fullClassName} to {loglevel},
-# add a line to this file of the following form:
-#
-# log4j.logger.{fullClassName}={loglevel}
-#
-# For example, to make 'com.example.MyExample' produce 'debug'
-# logs, add a line like this:
-#
-# log4j.logger.com.example.MyExample=debug
-#
-#
-# WARNING
-# -------
-# Log properties in this log4j.properties file override/augment
-# those in the webapp's main log4j.properties.
-#
-#-----------------------------------------------------------------------
-log4j.logger.com.softwareloop.demoamp.DemoComponent=debug
diff --git a/repo/src/main/amp/config/alfresco/module/uploader-plus-repo/messages/uploader-plus_fr.properties b/repo/src/main/amp/config/alfresco/module/uploader-plus-repo/messages/uploader-plus_fr.properties
deleted file mode 100644
index dc2803d..0000000
--- a/repo/src/main/amp/config/alfresco/module/uploader-plus-repo/messages/uploader-plus_fr.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-up_UploaderPlus.aspect.up_UploadFolder.title = R\u00e9pertoire de t\u00e9l\u00e9versement
-up_UploaderPlus.property.up_allowedTypes.title = Types trouv\u00e9s
\ No newline at end of file
diff --git a/repo/src/main/java/com/softwareloop/uploderplus/ListContentTypesGet.java b/repo/src/main/java/com/softwareloop/uploderplus/ListContentTypesGet.java
deleted file mode 100644
index 9f88b85..0000000
--- a/repo/src/main/java/com/softwareloop/uploderplus/ListContentTypesGet.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package com.softwareloop.uploderplus;
-
-import org.alfresco.model.ContentModel;
-import org.alfresco.service.cmr.dictionary.DictionaryService;
-import org.alfresco.service.namespace.QName;
-import org.apache.log4j.Logger;
-import org.springframework.extensions.webscripts.Cache;
-import org.springframework.extensions.webscripts.DeclarativeWebScript;
-import org.springframework.extensions.webscripts.Status;
-import org.springframework.extensions.webscripts.WebScriptRequest;
-
-import java.util.*;
-
-/**
- * @author Paolo Predonzani (https://github.com/softwareloop)
- */
-public class ListContentTypesGet extends DeclarativeWebScript {
- //--------------------------------------------------------------------------
- // Logging
- //--------------------------------------------------------------------------
-
- static Logger logger = Logger.getLogger(ListContentTypesGet.class);
-
- //--------------------------------------------------------------------------
- // Constants
- //--------------------------------------------------------------------------
-
- //--------------------------------------------------------------------------
- // Fields
- //--------------------------------------------------------------------------
-
- final DictionaryService dictionaryService;
-
- //--------------------------------------------------------------------------
- // Constructors
- //--------------------------------------------------------------------------
-
- public ListContentTypesGet(DictionaryService dictionaryService) {
- this.dictionaryService = dictionaryService;
- }
-
-
- //--------------------------------------------------------------------------
- // AbstractWebScript implementations
- //--------------------------------------------------------------------------
-
- @Override
- protected Map executeImpl(WebScriptRequest req, Status status, Cache cache) {
- logger.debug("ListContentTypesGet.execute()");
-
- Map model = new HashMap<>();
-
- Collection subtypes =
- dictionaryService.getSubTypes(ContentModel.TYPE_CONTENT, true);
-
- List typesCollection = new ArrayList<>();
- for (QName subtype : subtypes) {
- typesCollection.add(subtype.getPrefixString());
- }
- Collections.sort(typesCollection);
-
- model.put("types", typesCollection.toArray());
-
- logger.debug("END ListContentTypesGet.execute()");
- return model;
- }
-
- //--------------------------------------------------------------------------
- // Methods
- //--------------------------------------------------------------------------
-
- //--------------------------------------------------------------------------
- // Abstract methods
- //--------------------------------------------------------------------------
-
- //--------------------------------------------------------------------------
- // Getters/setters
- //--------------------------------------------------------------------------
-
-}
diff --git a/repo/src/test/resources/log4j.properties b/repo/src/test/resources/log4j.properties
deleted file mode 100644
index bf4a472..0000000
--- a/repo/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,266 +0,0 @@
-# This is a full override of Alfresco 4.2.b log4j.properties
-# This file overwrites the alfresco.war log4j.properties
-
-# Set root logger level to error
-log4j.rootLogger=${app.log.root.level}, Console, File
-
-###### Console appender definition #######
-
-# All outputs currently set to be a ConsoleAppender.
-log4j.appender.Console=org.apache.log4j.ConsoleAppender
-log4j.appender.Console.layout=org.apache.log4j.PatternLayout
-
-# use log4j NDC to replace %x with tenant domain / username
-log4j.appender.Console.layout.ConversionPattern=%d{ISO8601} %x %-5p [%c{3}] [%t] %m%n
-#log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c] %m%n
-
-###### File appender definition #######
-log4j.appender.File=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.File.File=${app.log.dir}alfresco.log
-log4j.appender.File.Append=true
-log4j.appender.File.DatePattern='.'yyyy-MM-dd
-log4j.appender.File.layout=org.apache.log4j.PatternLayout
-log4j.appender.File.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c] %m%n
-
-###### Hibernate specific appender definition #######
-#log4j.appender.file=org.apache.log4j.FileAppender
-#log4j.appender.file.File=hibernate.log
-#log4j.appender.file.layout=org.apache.log4j.PatternLayout
-#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
-
-###### Log level overrides #######
-
-# Commented-in loggers will be exposed as JMX MBeans (refer to org.alfresco.repo.admin.Log4JHierarchyInit)
-# Hence, generally useful loggers should be listed with at least ERROR level to allow simple runtime
-# control of the level via a suitable JMX Console. Also, any other loggers can be added transiently via
-# Log4j addLoggerMBean as long as the logger exists and has been loaded.
-
-# Hibernate
-log4j.logger.org.hibernate=error
-log4j.logger.org.hibernate.util.JDBCExceptionReporter=fatal
-log4j.logger.org.hibernate.event.def.AbstractFlushingEventListener=fatal
-log4j.logger.org.hibernate.type=warn
-log4j.logger.org.hibernate.cfg.SettingsFactory=warn
-
-# Spring
-log4j.logger.org.springframework=warn
-# Turn off Spring remoting warnings that should really be info or debug.
-log4j.logger.org.springframework.remoting.support=error
-log4j.logger.org.springframework.util=error
-
-# Axis/WSS4J
-log4j.logger.org.apache.axis=info
-log4j.logger.org.apache.ws=info
-
-# CXF
-log4j.logger.org.apache.cxf=error
-
-# MyFaces
-log4j.logger.org.apache.myfaces.util.DebugUtils=info
-log4j.logger.org.apache.myfaces.el.VariableResolverImpl=error
-log4j.logger.org.apache.myfaces.application.jsp.JspViewHandlerImpl=error
-log4j.logger.org.apache.myfaces.taglib=error
-
-# OpenOfficeConnection
-log4j.logger.net.sf.jooreports.openoffice.connection=fatal
-
-# log prepared statement cache activity ###
-log4j.logger.org.hibernate.ps.PreparedStatementCache=info
-
-# Alfresco
-log4j.logger.org.alfresco=error
-log4j.logger.org.alfresco.repo.admin=info
-log4j.logger.org.alfresco.repo.cache.TransactionalCache=warn
-log4j.logger.org.alfresco.repo.model.filefolder=warn
-log4j.logger.org.alfresco.repo.tenant=info
-log4j.logger.org.alfresco.repo.avm=info
-log4j.logger.org.alfresco.config=warn
-log4j.logger.org.alfresco.config.JndiObjectFactoryBean=warn
-log4j.logger.org.alfresco.config.JBossEnabledWebApplicationContext=warn
-log4j.logger.org.alfresco.repo.management.subsystems=warn
-log4j.logger.org.alfresco.repo.management.subsystems.ChildApplicationContextFactory=info
-log4j.logger.org.alfresco.repo.management.subsystems.ChildApplicationContextFactory$ChildApplicationContext=warn
-log4j.logger.org.alfresco.repo.security.sync=info
-log4j.logger.org.alfresco.repo.security.person=info
-
-log4j.logger.org.alfresco.sample=info
-log4j.logger.org.alfresco.web=info
-#log4j.logger.org.alfresco.web.app.AlfrescoNavigationHandler=debug
-#log4j.logger.org.alfresco.web.ui.repo.component.UIActions=debug
-#log4j.logger.org.alfresco.web.ui.repo.tag.PageTag=debug
-#log4j.logger.org.alfresco.web.bean.clipboard=debug
-log4j.logger.org.alfresco.repo.webservice=info
-log4j.logger.org.alfresco.service.descriptor.DescriptorService=info
-#log4j.logger.org.alfresco.web.page=debug
-
-log4j.logger.org.alfresco.repo.importer.ImporterBootstrap=error
-#log4j.logger.org.alfresco.repo.importer.ImporterBootstrap=info
-
-log4j.logger.org.alfresco.web.ui.common.Utils=error
-#log4j.logger.org.alfresco.web.ui.common.Utils=info
-
-log4j.logger.org.alfresco.repo.admin.patch.PatchExecuter=info
-log4j.logger.org.alfresco.repo.domain.patch.ibatis.PatchDAOImpl=info
-
-# Specific patches
-log4j.logger.org.alfresco.repo.admin.patch.impl.DeploymentMigrationPatch=info
-log4j.logger.org.alfresco.repo.version.VersionMigrator=info
-log4j.logger.org.alfresco.repo.admin.patch.impl.ResetWCMToGroupBasedPermissionsPatch=info
-
-log4j.logger.org.alfresco.repo.module.ModuleServiceImpl=info
-log4j.logger.org.alfresco.repo.domain.schema.SchemaBootstrap=info
-log4j.logger.org.alfresco.repo.admin.ConfigurationChecker=info
-log4j.logger.org.alfresco.repo.node.index.AbstractReindexComponent=warn
-log4j.logger.org.alfresco.repo.node.index.IndexTransactionTracker=warn
-log4j.logger.org.alfresco.repo.node.index.FullIndexRecoveryComponent=info
-log4j.logger.org.alfresco.repo.node.index.AVMFullIndexRecoveryComponent=info
-log4j.logger.org.alfresco.util.OpenOfficeConnectionTester=info
-log4j.logger.org.alfresco.repo.node.db.hibernate.HibernateNodeDaoServiceImpl=warn
-log4j.logger.org.alfresco.repo.domain.hibernate.DirtySessionMethodInterceptor=warn
-log4j.logger.org.alfresco.repo.transaction.RetryingTransactionHelper=warn
-log4j.logger.org.alfresco.util.transaction.SpringAwareUserTransaction.trace=warn
-log4j.logger.org.alfresco.util.AbstractTriggerBean=warn
-log4j.logger.org.alfresco.enterprise.repo.cache.cluster.KeepAliveHeartbeatReceiver=info
-log4j.logger.org.alfresco.repo.version.Version2ServiceImpl=warn
-
-#log4j.logger.org.alfresco.web.app.DebugPhaseListener=debug
-
-log4j.logger.org.alfresco.repo.workflow=info
-
-# CIFS server debugging
-log4j.logger.org.alfresco.smb.protocol=error
-#log4j.logger.org.alfresco.smb.protocol.auth=debug
-#log4j.logger.org.alfresco.acegi=debug
-
-# FTP server debugging
-log4j.logger.org.alfresco.ftp.protocol=error
-#log4j.logger.org.alfresco.ftp.server=debug
-
-# WebDAV debugging
-#log4j.logger.org.alfresco.webdav.protocol=debug
-log4j.logger.org.alfresco.webdav.protocol=error
-
-# NTLM servlet filters
-#log4j.logger.org.alfresco.web.app.servlet.NTLMAuthenticationFilter=debug
-#log4j.logger.org.alfresco.repo.webdav.auth.NTLMAuthenticationFilter=debug
-
-# Kerberos servlet filters
-#log4j.logger.org.alfresco.web.app.servlet.KerberosAuthenticationFilter=debug
-#log4j.logger.org.alfresco.repo.webdav.auth.KerberosAuthenticationFilter=debug
-
-# File servers
-log4j.logger.org.alfresco.fileserver=warn
-
-# Repo filesystem debug logging
-#log4j.logger.org.alfresco.filesys.repo.ContentDiskDriver=debug
-
-# AVM filesystem debug logging
-#log4j.logger.org.alfresco.filesys.avm.AVMDiskDriver=debug
-
-# Integrity message threshold - if 'failOnViolation' is off, then WARNINGS are generated
-log4j.logger.org.alfresco.repo.node.integrity=ERROR
-
-# Indexer debugging
-log4j.logger.org.alfresco.repo.search.Indexer=error
-#log4j.logger.org.alfresco.repo.search.Indexer=debug
-
-log4j.logger.org.alfresco.repo.search.impl.lucene.index=error
-log4j.logger.org.alfresco.repo.search.impl.lucene.fts.FullTextSearchIndexerImpl=warn
-#log4j.logger.org.alfresco.repo.search.impl.lucene.index=DEBUG
-
-# Audit debugging
-# log4j.logger.org.alfresco.repo.audit=DEBUG
-# log4j.logger.org.alfresco.repo.audit.model=DEBUG
-
-# Forms debugging
-# log4j.logger.org.alfresco.web.forms=debug
-# log4j.logger.org.chiba.xml.xforms=debug
-log4j.logger.org.alfresco.web.forms.xforms.XFormsBean=error
-log4j.logger.org.alfresco.web.forms.XSLTRenderingEngine=error
-
-# Property sheet and modelling debugging
-# change to error to hide the warnings about missing properties and associations
-log4j.logger.alfresco.missingProperties=warn
-log4j.logger.org.alfresco.web.ui.repo.component.property.UIChildAssociation=warn
-log4j.logger.org.alfresco.web.ui.repo.component.property.UIAssociation=warn
-#log4j.logger.org.alfresco.web.ui.repo.component.property=debug
-
-# Dictionary/Model debugging
-log4j.logger.org.alfresco.repo.dictionary=warn
-log4j.logger.org.alfresco.repo.dictionary.types.period=warn
-
-# Virtualization Server Registry
-log4j.logger.org.alfresco.mbeans.VirtServerRegistry=error
-
-# Spring context runtime property setter
-log4j.logger.org.alfresco.util.RuntimeSystemPropertiesSetter=info
-
-# Debugging options for clustering
-log4j.logger.org.alfresco.repo.content.ReplicatingContentStore=error
-log4j.logger.org.alfresco.repo.content.replication=error
-
-#log4j.logger.org.alfresco.repo.deploy.DeploymentServiceImpl=debug
-
-# Activity service
-log4j.logger.org.alfresco.repo.activities=warn
-
-# User usage tracking
-log4j.logger.org.alfresco.repo.usage=info
-
-# Sharepoint
-log4j.logger.org.alfresco.module.vti=info
-
-# Forms Engine
-log4j.logger.org.alfresco.repo.forms=info
-log4j.logger.org.alfresco.web.config.forms=info
-log4j.logger.org.alfresco.web.scripts.forms=info
-
-# CMIS
-log4j.logger.org.alfresco.opencmis=error
-log4j.logger.org.alfresco.opencmis.AlfrescoCmisServiceInterceptor=error
-log4j.logger.org.alfresco.cmis=error
-log4j.logger.org.alfresco.cmis.dictionary=warn
-log4j.logger.org.apache.chemistry.opencmis=info
-
-# IMAP
-log4j.logger.org.alfresco.repo.imap=info
-
-# JBPM
-# Note: non-fatal errors (eg. logged during job execution) should be handled by Alfresco's retrying transaction handler
-log4j.logger.org.jbpm.graph.def.GraphElement=fatal
-
-#log4j.logger.org.alfresco.repo.googledocs=debug
-
-###### Scripting #######
-
-# Web Framework
-log4j.logger.org.springframework.extensions.webscripts=info
-log4j.logger.org.springframework.extensions.webscripts.ScriptLogger=warn
-log4j.logger.org.springframework.extensions.webscripts.ScriptDebugger=off
-
-# Repository
-log4j.logger.org.alfresco.repo.web.scripts=warn
-log4j.logger.org.alfresco.repo.web.scripts.BaseWebScriptTest=info
-log4j.logger.org.alfresco.repo.web.scripts.AlfrescoRhinoScriptDebugger=off
-log4j.logger.org.alfresco.repo.jscript=error
-log4j.logger.org.alfresco.repo.jscript.ScriptLogger=warn
-log4j.logger.org.alfresco.repo.cmis.rest.CMISTest=info
-
-log4j.logger.org.alfresco.repo.avm.actions=info
-
-# Freemarker
-# Note the freemarker.runtime logger is used to log non-fatal errors that are handled by Alfresco's retrying transaction handler
-log4j.logger.freemarker.runtime=
-
-# Metadata extraction
-log4j.logger.org.alfresco.repo.content.metadata.AbstractMappingMetadataExtracter=warn
-
-# Reduces PDFont error level due to ALF-7105
-log4j.logger.org.apache.pdfbox.pdmodel.font.PDSimpleFont=fatal
-log4j.logger.org.apache.pdfbox.pdmodel.font.PDFont=fatal
-log4j.logger.org.apache.pdfbox.pdmodel.font.PDCIDFont=fatal
-
-# no index support
-log4j.logger.org.alfresco.repo.search.impl.noindex.NoIndexIndexer=fatal
-log4j.logger.org.alfresco.repo.search.impl.noindex.NoIndexSearchService=fatal
-log4j.logger.org.alfresco.demoamp.test=DEBUG
\ No newline at end of file
diff --git a/repo/tomcat/context.xml b/repo/tomcat/context.xml
deleted file mode 100644
index 6ef60da..0000000
--- a/repo/tomcat/context.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/run.bat b/run.bat
new file mode 100644
index 0000000..e4c784d
--- /dev/null
+++ b/run.bat
@@ -0,0 +1,127 @@
+@ECHO OFF
+
+SET COMPOSE_FILE_PATH=%CD%\target\classes\docker\docker-compose.yml
+
+IF [%M2_HOME%]==[] (
+ SET MVN_EXEC=mvn
+)
+
+IF NOT [%M2_HOME%]==[] (
+ SET MVN_EXEC=%M2_HOME%\bin\mvn
+)
+
+IF [%1]==[] (
+ echo "Usage: %0 {build_start|build_start_it_supported|start|stop|purge|tail|reload_share|reload_acs|build_test|test}"
+ GOTO END
+)
+
+IF %1==build_start (
+ CALL :down
+ CALL :build
+ CALL :start
+ CALL :tail
+ GOTO END
+)
+IF %1==build_start_it_supported (
+ CALL :down
+ CALL :build
+ CALL :prepare-test
+ CALL :start
+ CALL :tail
+ GOTO END
+)
+IF %1==start (
+ CALL :start
+ CALL :tail
+ GOTO END
+)
+IF %1==stop (
+ CALL :down
+ GOTO END
+)
+IF %1==purge (
+ CALL:down
+ CALL:purge
+ GOTO END
+)
+IF %1==tail (
+ CALL :tail
+ GOTO END
+)
+IF %1==reload_share (
+ CALL :build_share
+ CALL :start_share
+ CALL :tail
+ GOTO END
+)
+IF %1==reload_acs (
+ CALL :build_acs
+ CALL :start_acs
+ CALL :tail
+ GOTO END
+)
+IF %1==build_test (
+ CALL :down
+ CALL :build
+ CALL :prepare-test
+ CALL :start
+ CALL :test
+ CALL :tail_all
+ CALL :down
+ GOTO END
+)
+IF %1==test (
+ CALL :test
+ GOTO END
+)
+echo "Usage: %0 {build_start|start|stop|purge|tail|reload_share|reload_acs|build_test|test}"
+:END
+EXIT /B %ERRORLEVEL%
+
+:start
+ docker volume create uploader-plus-acs-volume
+ docker volume create uploader-plus-db-volume
+ docker volume create uploader-plus-ass-volume
+ docker compose -f "%COMPOSE_FILE_PATH%" up --build -d
+EXIT /B 0
+:start_share
+ docker compose -f "%COMPOSE_FILE_PATH%" up --build -d uploader-plus-share
+EXIT /B 0
+:start_acs
+ docker compose -f "%COMPOSE_FILE_PATH%" up --build -d uploader-plus-acs
+EXIT /B 0
+:down
+ if exist "%COMPOSE_FILE_PATH%" (
+ docker compose -f "%COMPOSE_FILE_PATH%" down
+ )
+EXIT /B 0
+:build
+ call %MVN_EXEC% clean package
+EXIT /B 0
+:build_share
+ docker compose -f "%COMPOSE_FILE_PATH%" kill uploader-plus-share
+ docker compose -f "%COMPOSE_FILE_PATH%" rm -f uploader-plus-share
+ call %MVN_EXEC% clean package -pl uploader-plus-share,uploader-plus-share-docker
+EXIT /B 0
+:build_acs
+ docker compose -f "%COMPOSE_FILE_PATH%" kill uploader-plus-acs
+ docker compose -f "%COMPOSE_FILE_PATH%" rm -f uploader-plus-acs
+ call %MVN_EXEC% clean package -pl uploader-plus-integration-tests,uploader-plus-platform,uploader-plus-platform-docker
+EXIT /B 0
+:tail
+ docker compose -f "%COMPOSE_FILE_PATH%" logs -f
+EXIT /B 0
+:tail_all
+ docker compose -f "%COMPOSE_FILE_PATH%" logs --tail="all"
+EXIT /B 0
+:prepare-test
+ call %MVN_EXEC% verify -DskipTests=true -pl uploader-plus-platform,uploader-plus-integration-tests,uploader-plus-platform-docker
+EXIT /B 0
+:test
+ call %MVN_EXEC% verify -pl uploader-plus-platform,uploader-plus-integration-tests
+EXIT /B 0
+:purge
+ docker volume rm -f uploader-plus-acs-volume
+ docker volume rm -f uploader-plus-db-volume
+ docker volume rm -f uploader-plus-ass-volume
+EXIT /B 0
\ No newline at end of file
diff --git a/run.sh b/run.sh
new file mode 100644
index 0000000..24f7d58
--- /dev/null
+++ b/run.sh
@@ -0,0 +1,122 @@
+#!/bin/sh
+
+export COMPOSE_FILE_PATH="${PWD}/target/classes/docker/docker-compose.yml"
+
+if [ -z "${M2_HOME}" ]; then
+ export MVN_EXEC="mvn"
+else
+ export MVN_EXEC="${M2_HOME}/bin/mvn"
+fi
+
+start() {
+ docker volume create uploader-plus-acs-volume
+ docker volume create uploader-plus-db-volume
+ docker volume create uploader-plus-ass-volume
+ docker compose -f "$COMPOSE_FILE_PATH" up --build -d
+}
+
+start_share() {
+ docker compose -f "$COMPOSE_FILE_PATH" up --build -d uploader-plus-share
+}
+
+start_acs() {
+ docker compose -f "$COMPOSE_FILE_PATH" up --build -d uploader-plus-acs
+}
+
+down() {
+ if [ -f "$COMPOSE_FILE_PATH" ]; then
+ docker compose -f "$COMPOSE_FILE_PATH" down
+ fi
+}
+
+purge() {
+ docker volume rm -f uploader-plus-acs-volume
+ docker volume rm -f uploader-plus-db-volume
+ docker volume rm -f uploader-plus-ass-volume
+}
+
+build() {
+ $MVN_EXEC clean package
+}
+
+build_share() {
+ docker compose -f "$COMPOSE_FILE_PATH" kill uploader-plus-share
+ yes | docker compose -f "$COMPOSE_FILE_PATH" rm -f uploader-plus-share
+ $MVN_EXEC clean package -pl uploader-plus-share,uploader-plus-share-docker
+}
+
+build_acs() {
+ docker compose -f "$COMPOSE_FILE_PATH" kill uploader-plus-acs
+ yes | docker compose -f "$COMPOSE_FILE_PATH" rm -f uploader-plus-acs
+ $MVN_EXEC clean package -pl uploader-plus-integration-tests,uploader-plus-platform,uploader-plus-platform-docker
+}
+
+tail() {
+ docker compose -f "$COMPOSE_FILE_PATH" logs -f
+}
+
+tail_all() {
+ docker compose -f "$COMPOSE_FILE_PATH" logs --tail="all"
+}
+
+prepare_test() {
+ $MVN_EXEC verify -DskipTests=true -pl uploader-plus-platform,uploader-plus-integration-tests,uploader-plus-platform-docker
+}
+
+test() {
+ $MVN_EXEC verify -pl uploader-plus-platform,uploader-plus-integration-tests
+}
+
+case "$1" in
+ build_start)
+ down
+ build
+ start
+ tail
+ ;;
+ build_start_it_supported)
+ down
+ build
+ prepare_test
+ start
+ tail
+ ;;
+ start)
+ start
+ tail
+ ;;
+ stop)
+ down
+ ;;
+ purge)
+ down
+ purge
+ ;;
+ tail)
+ tail
+ ;;
+ reload_share)
+ build_share
+ start_share
+ tail
+ ;;
+ reload_acs)
+ build_acs
+ start_acs
+ tail
+ ;;
+ build_test)
+ down
+ build
+ prepare_test
+ start
+ test
+ tail_all
+ down
+ ;;
+ test)
+ test
+ ;;
+ *)
+ echo "Usage: $0 {build_start|build_start_it_supported|start|stop|purge|tail|reload_share|reload_acs|build_test|test}"
+esac
\ No newline at end of file
diff --git a/surf/.gitignore b/surf/.gitignore
deleted file mode 100644
index 1ee639b..0000000
--- a/surf/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/.settings/
-*.classpath
diff --git a/surf/pom.xml b/surf/pom.xml
deleted file mode 100644
index c66e0c4..0000000
--- a/surf/pom.xml
+++ /dev/null
@@ -1,90 +0,0 @@
-
-
- 4.0.0
- uploader-plus-surf
- uploader-plus-surf
- amp
- uploader-plus AMP for Alfresco Share
- https://github.com/softwareloop/uploader-plus
-
-
- com.softwareloop
- uploader-plus
- 1.8
-
-
-
-
-
-
-
-
-
-
-
- ${alfresco.share.artifactId}
-
-
- 8081
-
-
- http://localhost:8080/alfresco
-
-
-
-
-
-
-
-
- ${alfresco.groupId}
- alfresco-platform-distribution
- ${alfresco.version}
- pom
- import
-
-
-
-
-
-
-
- ${alfresco.groupId}
- share
- ${alfresco.version}
- classes
- provided
-
-
- org.springframework.extensions.surf
- spring-surf-api
- provided
-
-
-
-
-
-
-
- net.alchim31.maven
- yuicompressor-maven-plugin
-
-
-
-
\ No newline at end of file
diff --git a/surf/run.bat b/surf/run.bat
deleted file mode 100644
index ae97ed3..0000000
--- a/surf/run.bat
+++ /dev/null
@@ -1,3 +0,0 @@
-@ECHO OFF
-
-mvn clean install -Pamp-to-war
\ No newline at end of file
diff --git a/surf/run.sh b/surf/run.sh
deleted file mode 100755
index 3ce06cc..0000000
--- a/surf/run.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash
-# Note. This script requires Alfresco.war to be running in another Tomcat on port 8080
-
-if [[ -z ${MAVEN_OPTS} ]]; then
- echo "The environment variable 'MAVEN_OPTS' is not set, setting it for you";
-
- # Downloads the spring-loaded lib if not existing and runs the Share AMP applied to Share WAR
- springloadedfile=~/.m2/repository/org/springframework/springloaded/1.2.5.RELEASE/springloaded-1.2.5.RELEASE.jar
-
- if [ ! -f $springloadedfile ]; then
- mvn validate -Psetup
- fi
-
- # Spring loaded can be used with the Share AMP project in 5.1
- # (i.e. it does not have the same problem as Repo AMP and AIO)
- MAVEN_OPTS="-javaagent:$springloadedfile -noverify"
-fi
-echo "MAVEN_OPTS is set to '$MAVEN_OPTS'";
-mvn clean install -Pamp-to-war
\ No newline at end of file
diff --git a/surf/src/main/amp/config/alfresco/web-extension/messages/uploader-plus_fr.properties b/surf/src/main/amp/config/alfresco/web-extension/messages/uploader-plus_fr.properties
deleted file mode 100644
index e99f265..0000000
--- a/surf/src/main/amp/config/alfresco/web-extension/messages/uploader-plus_fr.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-tool.uploader-plus-admin.label=Uploader Plus
-tool.uploader-plus-admin.description=Uploader Plus
-aspect.up_UploadFolder=R\u00e9pertoire de t\u00e9l\u00e9versement
-content.type=Type de contenu
-uploader.plus.next=Suivant
diff --git a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader-plus-admin.get_fr.properties b/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader-plus-admin.get_fr.properties
deleted file mode 100644
index b6cada4..0000000
--- a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader-plus-admin.get_fr.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-title.path = Chemin
-title.allowed.types = Types autoris\u00e9s
-title.actions = Actions
-loading.folders = R\u00e9pertoire de t\u00e9l\u00e9versement
-no.folders.found = Aucun dossier trouv\u00e9
-upload.folders = Upload folders
-open.in.repository=Ouvrir dans l'entrep\u00f4t
-operation.completed.successfully = Op\u00e9ration r\u00e9alis\u00e9e avec succ\u00e8s
-operation.failed = Op\u00e9ration \u00e9chou\u00e9e
-select.the.upload.folder=S\u00e9lectionner un r\u00e9pertoire
-new.upload.folder=Nouveau r\u00e9pertoire de t\u00e9l\u00e9versement
-_.is.already.an.upload.folder={path} est d\u00e9j\u00e0 un r\u00e9pertoire de t\u00e9l\u00e9versement
diff --git a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get.desc.xml b/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get.desc.xml
deleted file mode 100644
index 901e601..0000000
--- a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get.desc.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
- Flash upload
- File upload component that uses flash to select and upload multiple files
- /components/uploader-plus/flash-upload
-
\ No newline at end of file
diff --git a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get.html.ftl b/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get.html.ftl
deleted file mode 100644
index 2b82fbc..0000000
--- a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get.html.ftl
+++ /dev/null
@@ -1,120 +0,0 @@
-<@markup id="css" >
-<#-- CSS Dependencies -->
- <@link href="${url.context}/res/components/upload/flash-upload.css" group="upload"/>
- <@link href="${url.context}/res/components/uploader-plus/css/uploader-plus.css" group="upload"/>
-@>
-
-<@markup id="js">
-<#-- JavaScript Dependencies -->
- <@script type="text/javascript" src="${url.context}/res/components/upload/flash-upload.js" group="upload"/>
- <@script type="text/javascript" src="${url.context}/res/components/uploader-plus/js/common.js" group="upload"/>
- <@script type="text/javascript" src="${url.context}/res/components/uploader-plus/js/uploader-plus-mixin.js" group="upload"/>
- <@script type="text/javascript" src="${url.context}/res/components/uploader-plus/js/flash-upload-plus.js" group="upload"/>
-@>
-
-<@markup id="widgets">
- <@createWidgets group="upload"/>
- <@inlineScript group="upload">
- if(Alfresco.getFileUploadInstance)
- {
- Alfresco.getFileUploadInstance().setOptions({
- flashUploader : YAHOO.lang.isObject(SoftwareLoop) && YAHOO.lang.isFunction(SoftwareLoop.FlashUpload) ? "SoftwareLoop.FlashUpload" : "Alfresco.FlashUpload"
- });
- }
- @>
-@>
-
-<@markup id="html">
- <@uniqueIdDiv>
- <#assign el=args.htmlid?html>
-
- @>
-@>
diff --git a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get.js b/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get.js
deleted file mode 100644
index f163d33..0000000
--- a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get.js
+++ /dev/null
@@ -1,6 +0,0 @@
-
-// The above import allows us to reuse Alfresco original flash-upload component web script.
-// When end user overrides via web-extension directory, this won't pick up the override.
-// This is a drawback of Alfresco JS importing.
-
-model.widgets[0].name = "SoftwareLoop.FlashUpload";
\ No newline at end of file
diff --git a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get.properties b/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get.properties
deleted file mode 100644
index e56f6e4..0000000
--- a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get.properties
+++ /dev/null
@@ -1,31 +0,0 @@
-header.singleUpload=Upload File
-header.multiUpload=Upload File(s)
-header.singleUpdate=Update File
-
-label.browse=Select file(s) to upload
-label.multiUploadTip=Use CTRL or SHIFT to select multiple files
-label.singleUpdateTip=Click icon to upload a new version of {0}
-label.noFiles=No files to display, click icon to select file(s) to upload
-label.noFlash=You need a Flash Player of version 9.0.45 to use this component. You can download the latest version of Flash Player from the \
- Adobe Flash Player Download Center.
-label.success=Success
-label.failure=Failure
-label.failure.413=Failure: Quota exceeded
-label.failure.409=Failure: Content size violation
-label.illegalChars=Failure: Filename contains illegal characters
-button.upload=Upload File(s)
-label.uploadStatus=Status: {0}/{1} uploaded ({2} failed)
-message.cancelStatus=Upload(s) cancelled; {0} file(s) uploaded
-message.zeroByteFileSelected=You selected file {0}. It is 0 bytes in size and cannot be uploaded.
-message.flashError.title=Flash Communication Error
-message.flashError.message=The browser cannot communicate with the Flash Uploader. You can continue to upload in single-file mode, or refresh the page to restart Flash.
-
-section.version=Version Information
-label.version=This version has:
-label.minorVersion=minor changes
-label.majorVersion=major changes
-label.minorVersion.more=minor changes ({0})
-label.majorVersion.more=major changes ({0})
-label.comments=Comments
-
-type.cm_content=Content
\ No newline at end of file
diff --git a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_de.properties b/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_de.properties
deleted file mode 100644
index 6afc6c7..0000000
--- a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_de.properties
+++ /dev/null
@@ -1,31 +0,0 @@
-header.singleUpload=Datei hochladen
-header.multiUpload=Dateien hochladen
-header.singleUpdate=Datei aktualisieren
-
-label.browse=Datei(en) zum Hochladen ausw\u00e4hlen
-label.multiUploadTip=Mehrere Dateien \u00fcber CTRL oder SHIFT ausw\u00e4hlen
-label.singleUpdateTip=Klicken Sie auf das Icon, um eine neue Version von {0} hoch zu laden
-label.noFiles=Keine Dateien anzuzeigen, klicken Sie auf das Icon um die hochzuladenden Dateien auszuw\u00e4hlen
-label.noFlash=Sie ben\u00f6tigen einen Flash Player in der Version 9.0.45 um die Funktion nutzen zu k\u00f6nnen. Die aktuellste Version des Flash Player k\u00f6nnen Sie herunterladen von \
- Adobe Flash Player Download Center.
-label.success=Erfolg
-label.failure=Misserfolg
-label.failure.413=Fehler: Kontingent \u00fcberschritten
-label.failure.409=Fehler: Dateigr\u00f6\u00dfe \u00fcberschritten
-label.illegalChars=Fehler: Dateiname enth\u00e4lt nicht zul\u00e4ssige Zeichen
-button.upload=Dateien hochladen
-label.uploadStatus=Status: {0}/{1} hochgeladen ({2} fehlgeschlagen)
-message.cancelStatus=Upload(s) abgebrochen; {0} Datei(en) hochgeladen
-message.zeroByteFileSelected=Sie haben die Datei {0} ausgew\u00e4hlt. Die Datei ist 0 Byte gro\u00df und kann nicht hochgeladen werden.
-message.flashError.title=Flash Kommunikationsfehler
-message.flashError.message=Der Browser kann nicht mit dem Flash Uploader kommunizieren. Sie k\u00f6nnen weiterhin Dateien im Einzeldateien Modus hochladen oder die Seite neu aufrufen, um Flash neu zu starten.
-
-section.version=Version Information
-label.version=Diese Version:
-label.minorVersion=kleine \u00c4nderungen
-label.majorVersion=bedeutende \u00c4nderungen
-label.minorVersion.more=kleine \u00c4nderungen ({0})
-label.majorVersion.more=bedeutende \u00c4nderungen ({0})
-label.comments=Kommentare
-
-type.cm_content=Inhalt
\ No newline at end of file
diff --git a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_es.properties b/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_es.properties
deleted file mode 100644
index fbe21ca..0000000
--- a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_es.properties
+++ /dev/null
@@ -1,31 +0,0 @@
-header.singleUpload=A\u00f1adir fichero
-header.multiUpload=A\u00f1adir fichero(s)
-header.singleUpdate=Actualizar fichero
-
-label.browse=Seleccione el fichero que desea a\u00f1adir
-label.multiUploadTip=Utilice CTRL o SHIFT para seleccionar m\u00faltiples ficheros
-label.singleUpdateTip=Pulse en el icono para subir una nueva versi\u00f3n de {0}
-label.noFiles=No hay ning\u00fan fichero para mostrar, pulse el icono para seleccionar los ficheros que desea subir
-label.noFlash=Necesita como m\u00ednimo la versi\u00f3n 9.0.45 de Flash Player para utilizar este componente. Puede descargar la \u00faltima versi\u00f3n del visor Flash desde el \
- Centro de descargas Adobe Flash Player.
-label.success=Completado
-label.failure=Error
-label.failure.413=Error: Cuota excedida
-label.failure.409=Error: infracci\u00f3n de tama\u00f1o de contenido
-label.illegalChars=Error: El nombre del fichero contiene caracteres no admitidos
-button.upload=A\u00f1adir fichero(s)
-label.uploadStatus=Estado: {0}/{1} subido(s) ({2} err\u00f3neos)
-message.cancelStatus=Subida(s) cancelada(s); {0} fichero(s) subido(s)
-message.zeroByteFileSelected=Ha seleccionado el fichero {0}. No tiene ning\u00fan contenido y no se puede subir.
-message.flashError.title=Error de comunicaci\u00f3n Flash
-message.flashError.message=El navegador no puede comunicarse con el cargador Flash. Puede continuar subiendo en modo de fichero \u00fanico o recargar la p\u00e1gina para reiniciar Flash.
-
-section.version=Informaci\u00f3n de la versi\u00f3n
-label.version=Esta versi\u00f3n tiene:
-label.minorVersion=cambios menores
-label.majorVersion=cambios mayores
-label.minorVersion.more=cambios menores ({0})
-label.majorVersion.more=cambios mayores ({0})
-label.comments=Comentarios
-
-type.cm_content=Contenido
\ No newline at end of file
diff --git a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_fr.properties b/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_fr.properties
deleted file mode 100644
index 2431878..0000000
--- a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_fr.properties
+++ /dev/null
@@ -1,31 +0,0 @@
-header.singleUpload=Ajouter un fichier
-header.multiUpload=Ajout de fichier(s)
-header.singleUpdate=Mettre le fichier \u00e0 jour
-
-label.browse=S\u00e9lectionner le(s) fichier(s) \u00e0 ajouter
-label.multiUploadTip=Utiliser CTRL ou SHIFT(Maj) pour s\u00e9lectionner des fichiers multiples
-label.singleUpdateTip=Cliquez sur l''ic\u00f4ne pour remplacer par une nouvelle version de {0}
-label.noFiles=Pas de fichier \u00e0 afficher, cliquer sur l'ic\u00f4ne pour s\u00e9lectionner un ou des fichiers \u00e0 ajouter
-label.noFlash=Vous devez poss\u00e9der Flash Player version 9.0.45 pour utiliser ce composant. Vous pouvez t\u00e9l\u00e9charger la derni\u00e8re version de Flash Player depuis \
- Adobe Flash Player Download Center.
-label.success=Succ\u00e8s
-label.failure=Echec
-label.failure.413=Echec : Quota d\u00e9pass\u00e9
-label.failure.409=Echec : Probl\u00e8me de taille de contenu
-label.illegalChars=Echec : Le nom de fichier contient des caract\u00e8res ill\u00e9gaux
-button.upload=Ajout de fichier(s)
-label.uploadStatus=Statut : {0}/{1} ajout\u00e9(s) ({2} \u00e9chec(s))
-message.cancelStatus=Ajout(s) annul\u00e9(s) ; {0} fichier(s) ajout\u00e9(s)
-message.zeroByteFileSelected=Vous avez s\u00e9lectionn\u00e9 le fichier {0}. La taille de ce fichier est nulle et ce dernier ne peut pas \u00eatre ajout\u00e9.
-message.flashError.title=Erreur de communication Flash
-message.flashError.message=Le navigateur n'arrive pas \u00e0 communiquer avec l'injecteur Flash. Vous pouvez continuer en mode fichier unique ou rafra\u00eechir la page pour relancer Flash.
-
-section.version=Informations de version
-label.version=Cette version contient :
-label.minorVersion=changements mineurs
-label.majorVersion=changements majeurs
-label.minorVersion.more=changements mineurs ({0})
-label.majorVersion.more=changements majeurs ({0})
-label.comments=Commentaires
-
-type.cm_content=Contenu
\ No newline at end of file
diff --git a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_it.properties b/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_it.properties
deleted file mode 100644
index f3a2126..0000000
--- a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_it.properties
+++ /dev/null
@@ -1,31 +0,0 @@
-header.singleUpload=Carica file
-header.multiUpload=Carica pi\u00f9 file
-header.singleUpdate=Aggiorna file
-
-label.browse=Selezionare i file da caricare
-label.multiUploadTip=Utilizzare CTRL o MAIUSC per selezionare pi\u00f9 file
-label.singleUpdateTip=Scegliere l''icona per caricare una nuova versione di {0}
-label.noFiles=Nessun file da visualizzare, scegliere l'icona per selezionare i file da caricare
-label.noFlash=Per utilizzare questo componente, \u00e8 necessario Flash Player versione 9.0.45. \u00c8 possibile scaricare l'ultima versione di Flash Player da \
- Adobe Flash Player Download Center.
-label.success=Operazione riuscita
-label.failure=Operazione non riuscita
-label.failure.413=Operazione non riuscita: quota superata
-label.failure.409=Operazione non riuscita: violazione dimensioni contenuto
-label.illegalChars=Operazione non riuscita: il nome file contiene caratteri non validi
-button.upload=Carica pi\u00f9 file
-label.uploadStatus=Stato: {0}/{1} caricati ({2} non riusciti)
-message.cancelStatus=Caricamenti annullati; {0} file caricati
-message.zeroByteFileSelected=\u00c8 stato selezionato il file {0}. Questo file non pu\u00f2 essere caricato perch\u00e9 ha dimensioni pari a 0 byte.
-message.flashError.title=Errore di comunicazione con Flash
-message.flashError.message=Il browser non \u00e8 in grado di comunicare con Flash Uploader. \u00c8 possibile continuare a caricare in modalit\u00e0 file singolo o aggiornare la pagina per riavviare Flash.
-
-section.version=Informazioni sulla versione
-label.version=Questa versione dispone di:
-label.minorVersion=cambiamenti minori
-label.majorVersion=cambiamenti maggiori
-label.minorVersion.more=cambiamenti minori ({0})
-label.majorVersion.more=cambiamenti maggiori ({0})
-label.comments=Commenti
-
-type.cm_content=Contenuto
\ No newline at end of file
diff --git a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_ja.properties b/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_ja.properties
deleted file mode 100644
index 7db05f5..0000000
--- a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_ja.properties
+++ /dev/null
@@ -1,31 +0,0 @@
-header.singleUpload=\u30d5\u30a1\u30a4\u30eb\u306e\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9
-header.multiUpload=\u30d5\u30a1\u30a4\u30eb\u306e\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9
-header.singleUpdate=\u30d5\u30a1\u30a4\u30eb\u306e\u66f4\u65b0
-
-label.browse=\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u30d5\u30a1\u30a4\u30eb\u306e\u9078\u629e
-label.multiUploadTip=CTRL\u307e\u305f\u306fSHIFT\u3092\u4f7f\u3063\u3066\u8907\u6570\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u9078\u629e\u3057\u307e\u3059\u3002
-label.singleUpdateTip=\u30a2\u30a4\u30b3\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u3001\u65b0\u3057\u3044\u30d0\u30fc\u30b8\u30e7\u30f3\u306e {0} \u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u307e\u3059\u3002
-label.noFiles=\u8868\u793a\u3059\u308b\u30d5\u30a1\u30a4\u30eb\u304c\u3042\u308a\u307e\u305b\u3093\u3002\u30a2\u30a4\u30b3\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u3001\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3059\u308b\u30d5\u30a1\u30a4\u30eb\u3092\u9078\u629e\u3057\u307e\u3059\u3002
-label.noFlash=\u3053\u306e\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u4f7f\u7528\u3059\u308b\u306b\u306f\u3001Flash Player\u30d0\u30fc\u30b8\u30e7\u30f39.0.45\u304c\u5fc5\u8981\u3067\u3059\u3002 \
-Adobe Flash Player\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u30bb\u30f3\u30bf\u30fc\u304b\u3089\u3001\u6700\u65b0\u306eFlash Player\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3067\u304d\u307e\u3059\u3002
-label.success=\u6210\u529f
-label.failure=\u5931\u6557
-label.failure.413=\u5931\u6557: \u30af\u30a9\u30fc\u30bf\u8d85\u904e
-label.failure.409=\u30a8\u30e9\u30fc: \u30b3\u30f3\u30c6\u30f3\u30c4\u306e\u30b5\u30a4\u30ba\u30a8\u30e9\u30fc
-label.illegalChars=\u5931\u6557: \u30d5\u30a1\u30a4\u30eb\u540d\u306b\u4f7f\u7528\u3067\u304d\u306a\u3044\u6587\u5b57\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059
-button.upload=\u30d5\u30a1\u30a4\u30eb\u306e\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9
-label.uploadStatus=\u30b9\u30c6\u30fc\u30bf\u30b9: {1}\u500b\u306e\u3046\u3061{0}\u500b\u304c\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3055\u308c\u307e\u3057\u305f\uff08{2}\u5931\u6557\uff09
-message.cancelStatus=\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u304c\u30ad\u30e3\u30f3\u30bb\u30eb\u3055\u308c\u307e\u3057\u305f\u3002{0}\u500b\u306e\u30d5\u30a1\u30a4\u30eb\u304c\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3055\u308c\u307e\u3057\u305f
-message.zeroByteFileSelected=\u30d5\u30a1\u30a4\u30eb{0}\u3092\u9078\u629e\u3057\u307e\u3057\u305f\u3002 \u30b5\u30a4\u30ba\u304c0\u30d0\u30a4\u30c8\u3067\u3042\u308b\u305f\u3081\u3001\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3067\u304d\u307e\u305b\u3093\u3002
-message.flashError.title=Flash\u901a\u4fe1\u30a8\u30e9\u30fc
-message.flashError.message=\u30d6\u30e9\u30a6\u30b6\u304cFlash\u30a2\u30c3\u30d7\u30ed\u30fc\u30c0\u3068\u901a\u4fe1\u3067\u304d\u307e\u305b\u3093\u3002 \u30b7\u30f3\u30b0\u30eb\u30d5\u30a1\u30a4\u30eb\u30e2\u30fc\u30c9\u3067\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3092\u7d9a\u884c\u3059\u308b\u304b\u3001\u30da\u30fc\u30b8\u3092\u518d\u8aad\u307f\u8fbc\u307f\u3057\u3066Flash\u3092\u518d\u8d77\u52d5\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-
-section.version=\u30d0\u30fc\u30b8\u30e7\u30f3\u60c5\u5831
-label.version=\u3053\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306e\u6539\u8a02\u30ec\u30d9\u30eb:
-label.minorVersion=\u5c0f\u3055\u306a\u5909\u66f4
-label.majorVersion=\u5927\u304d\u306a\u5909\u66f4
-label.minorVersion.more=\u5c0f\u3055\u306a\u5909\u66f4\uff08{0}\uff09
-label.majorVersion.more=\u5927\u304d\u306a\u5909\u66f4\uff08{0}\uff09
-label.comments=\u30b3\u30e1\u30f3\u30c8
-
-type.cm_content=\u30b3\u30f3\u30c6\u30f3\u30c4
diff --git a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_nb.properties b/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_nb.properties
deleted file mode 100644
index 23888ac..0000000
--- a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_nb.properties
+++ /dev/null
@@ -1,31 +0,0 @@
-header.singleUpload=Last opp file
-header.multiUpload=Last opp file(er)
-header.singleUpdate=Oppdater fil
-
-label.browse=Velg fil(er) som skal lastes opp
-label.multiUploadTip=Bruk CTRL eller SKIFT for \u00e5 velge flere filer
-label.singleUpdateTip=Klikk ikon for \u00e5 laste opp en ny versjon av {0}
-label.noFiles=Ingen filer vises. Klikk ikon for \u00e5 velge fil(er) som skal lastes opp.
-label.noFlash=Du trenger Flash Player versjon 9.0.45 for \u00e5 bruke denne komponenten. Du kan laste ned den nyeste versjonen av Flash Player fra \
- Adobe Flash Player Download Center.
-label.success=Vellykket
-label.failure=Mislykket
-label.failure.413=Mislykket: Kvote overskredet
-label.failure.409=Mislykket: St\u00f8rrelsesfeil innhold
-label.illegalChars=Mislykket: Filnavn inneholder ulovlige tegn
-button.upload=Last opp file(er)
-label.uploadStatus=Status: {0}/{1} lastet opp ({2} mislyktes)
-message.cancelStatus=Opplasting(er) avbrutt. {0} fil(er) lastet opp
-message.zeroByteFileSelected=Du valgte fil {0}. Den har en st\u00f8rrelse p\u00e5 0 byte og kan ikke lastes opp.
-message.flashError.title=Flash-kommunikasjonsfeil
-message.flashError.message=Nettleseren kan ikke kommunisere med Flash Uploader. Du kan fortsette \u00e5 laste opp i enkeltfil-modus, eller oppdatere siden for \u00e5 starte Flash p\u00e5 nytt.
-
-section.version=Versjonsinformasjon
-label.version=Denne versjonen har:
-label.minorVersion=mindre endringer
-label.majorVersion=st\u00f8rre endringer
-label.minorVersion.more=mindre endringer ({0})
-label.majorVersion.more=st\u00f8rre endringer ({0})
-label.comments=Kommentarer
-
-type.cm_content=Innhold
\ No newline at end of file
diff --git a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_nl.properties b/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_nl.properties
deleted file mode 100644
index 44c70db..0000000
--- a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_nl.properties
+++ /dev/null
@@ -1,31 +0,0 @@
-header.singleUpload=Bestand uploaden
-header.multiUpload=Bestand(en) uploaden
-header.singleUpdate=Bestand bijwerken
-
-label.browse=Selecteer een of meer bestanden om te uploaden
-label.multiUploadTip=Gebruik CTRL of SHIFT om meerdere bestanden te selecteren
-label.singleUpdateTip=Klik op pictogram om een nieuwe versie van {0} te uploaden
-label.noFiles=Geen bestanden om weer te geven, klik op pictogram om een of meer bestanden te selecteren om te uploaden
-label.noFlash=U hebt een Flash Player van versie 9.0.45 nodig om dit onderdeel te kunnen gebruiken. U kunt de laatste versie van Flash Player downloaden via het \
- downloadcentrum voor Adobe Flash Player.
-label.success=Geslaagd
-label.failure=Mislukt
-label.failure.413=Mislukt: quota overschreden
-label.failure.409=Mislukt: fout in grootte van content
-label.illegalChars=Mislukt: bestandsnaam bevat ongeldige tekens
-button.upload=Bestand(en) uploaden
-label.uploadStatus=Status: {0}/{1} ge\u00fcpload ({2} mislukt)
-message.cancelStatus=Upload(s) geannuleerd; {0} bestand(en) ge\u00fcpload
-message.zeroByteFileSelected=U hebt bestand {0} geselecteerd. Het heeft een grootte van 0 bytes en kan niet worden ge\u00fcpload.
-message.flashError.title=Flash-communicatiefout
-message.flashError.message=De browser kan niet communiceren met de Flash Uploader. U kunt doorgaan met uploaden in de modus voor \u00e9\u00e9n bestand of u vernieuwt de pagina om Flash opnieuw te starten.
-
-section.version=Versie-informatie
-label.version=Deze versie heeft:
-label.minorVersion=kleine wijzigingen
-label.majorVersion=grote wijzigingen
-label.minorVersion.more=kleine wijzigingen ({0})
-label.majorVersion.more=grote wijzigingen ({0})
-label.comments=Opmerkingen
-
-type.cm_content=Content
\ No newline at end of file
diff --git a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_pt_BR.properties b/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_pt_BR.properties
deleted file mode 100644
index 7f6503c..0000000
--- a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_pt_BR.properties
+++ /dev/null
@@ -1,31 +0,0 @@
-header.singleUpload=Carregar arquivo
-header.multiUpload=Carregar arquivo(s)
-header.singleUpdate=Atualizar arquivo
-
-label.browse=Selecionar arquivo(s) para carregar
-label.multiUploadTip=Use CTRL ou SHIFT para selecionar m\u00faltiplos arquivos
-label.singleUpdateTip=Clique no \u00edcone para carregar uma nova vers\u00e3o de {0}
-label.noFiles=N\u00e3o h\u00e1 arquivos a serem exibidos. Clique no \u00edcone para selecionar o(s) arquivo(s) a ser(em) carregado(s)
-label.noFlash=\u00c9 preciso ter o Flash Player vers\u00e3o 9.0.45 para usar esse componente. \u00c9 poss\u00edvel fazer o download da vers\u00e3o mais recente do Flash Player no \
- Adobe Flash Player Download Center.
-label.success=Sucesso
-label.failure=Falha
-label.failure.413=Falha: Cota excedida
-label.failure.409=Falha: Viola\u00e7\u00e3o de tamanho de conte\u00fado
-label.illegalChars=Falha: O nome do arquivo cont\u00e9m caracteres ilegais
-button.upload=Carregar arquivo(s)
-label.uploadStatus=Status: {0}/{1} carregados ({2} com falha)
-message.cancelStatus=Carregamento(s) cancelado(s). {0} arquivo(s) carregado(s)
-message.zeroByteFileSelected=Voc\u00ea selecionou o arquivo {0}. Tem 0 byte de tamanho e n\u00e3o pode ser carregado.
-message.flashError.title=Erro de comunica\u00e7\u00e3o com o Flash
-message.flashError.message=O navegador n\u00e3o pode se comunicar com o Flash Uploader. Voc\u00ea pode continuar a carregar no modo de arquivo \u00fanico ou atualizar a p\u00e1gina para reiniciar o Flash.
-
-section.version=Informa\u00e7\u00f5es da vers\u00e3o
-label.version=Esta vers\u00e3o possui:
-label.minorVersion=altera\u00e7\u00f5es secund\u00e1rias
-label.majorVersion=altera\u00e7\u00f5es principais
-label.minorVersion.more=altera\u00e7\u00f5es secund\u00e1rias ({0})
-label.majorVersion.more=altera\u00e7\u00f5es principais ({0})
-label.comments=Coment\u00e1rios
-
-type.cm_content=Conte\u00fado
\ No newline at end of file
diff --git a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_ru.properties b/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_ru.properties
deleted file mode 100644
index c30a38c..0000000
--- a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_ru.properties
+++ /dev/null
@@ -1,30 +0,0 @@
-header.singleUpload=\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0444\u0430\u0439\u043b
-header.multiUpload=\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0444\u0430\u0439\u043b\u044b
-header.singleUpdate=\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0444\u0430\u0439\u043b
-
-label.browse=\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b
-label.multiUploadTip=\u0412\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u0441\u044c \u043a\u043b\u0430\u0432\u0438\u0448\u0435\u0439 CTRL \u0438\u043b\u0438 SHIFT \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432
-label.singleUpdateTip=\u0429\u0435\u043b\u043a\u043d\u0438\u0442\u0435 \u0437\u043d\u0430\u0447\u043e\u043a, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e {0}
-label.noFiles=\u041d\u0435\u0442 \u0444\u0430\u0439\u043b\u043e\u0432 \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f. \u0429\u0435\u043b\u043a\u043d\u0438\u0442\u0435 \u0437\u043d\u0430\u0447\u043e\u043a, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438
-label.noFlash=\u0414\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u0442\u0435\u043b\u044c Flash Player \u0432\u0435\u0440\u0441\u0438\u0438 9.0.45. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0432\u0435\u0440\u0441\u0438\u044e Flash Player \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0438\u0437 \n\u0446\u0435\u043d\u0442\u0440\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u0442\u0435\u043b\u044f Adobe Flash Player.
-label.success=\u0423\u0441\u043f\u0435\u0448\u043d\u043e
-label.failure=\u0421\u0431\u043e\u0439
-label.failure.413=\u0421\u0431\u043e\u0439\: \u043f\u0440\u0435\u0432\u044b\u0448\u0435\u043d\u0430 \u043a\u0432\u043e\u0442\u0430
-label.failure.409=\u0421\u0431\u043e\u0439: \u043e\u0448\u0438\u0431\u043a\u0430 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0444\u0430\u0439\u043b\u0430
-label.illegalChars=\u0421\u0431\u043e\u0439\: \u0432 \u0438\u043c\u0435\u043d\u0438 \u0444\u0430\u0439\u043b\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b
-button.upload=\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0444\u0430\u0439\u043b\u044b
-label.uploadStatus=\u0421\u0442\u0430\u0442\u0443\u0441\: \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043e {0}/{1} (\u0441\u0431\u043e\u0439\: {2})
-message.cancelStatus=\u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043e\u0442\u043c\u0435\u043d\u0435\u043d\u0430; \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043e \u0444\u0430\u0439\u043b\u043e\u0432\: {0}
-message.zeroByteFileSelected=\u0412\u044b\u0431\u0440\u0430\u043d \u0444\u0430\u0439\u043b {0}. \u0420\u0430\u0437\u043c\u0435\u0440 \u0444\u0430\u0439\u043b\u0430 - 0 \u0431\u0430\u0439\u0442, \u0435\u0433\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c.
-message.flashError.title=\u041e\u0448\u0438\u0431\u043a\u0430 \u0441\u0432\u044f\u0437\u0438 Flash
-message.flashError.message=\u0411\u0440\u0430\u0443\u0437\u0435\u0440\u0443 \u043d\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044f \u0441\u0432\u044f\u0437\u0430\u0442\u044c\u0441\u044f \u0441 Flash Uploader. \u041c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438\u043b\u0438 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443, \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c Flash.
-
-section.version=\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0432\u0435\u0440\u0441\u0438\u0438
-label.version=\u0423 \u044d\u0442\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0435\u0441\u0442\u044c\:
-label.minorVersion=\u043d\u0435\u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f
-label.majorVersion=\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f
-label.minorVersion.more=\u043d\u0435\u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f ({0})
-label.majorVersion.more=\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f ({0})
-label.comments=\u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438
-
-type.cm_content=\u0421\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435
diff --git a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_zh_CN.properties b/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_zh_CN.properties
deleted file mode 100644
index 49e9728..0000000
--- a/surf/src/main/amp/config/alfresco/web-extension/site-webscripts/com/softwareloop/uploader-plus/uploader/flash-upload.get_zh_CN.properties
+++ /dev/null
@@ -1,30 +0,0 @@
-header.singleUpload=\u4E0A\u4F20\u6587\u4EF6
-header.multiUpload=\u4E0A\u4F20\u6587\u4EF6
-header.singleUpdate=\u66F4\u65B0\u6587\u4EF6
-
-label.browse=\u9009\u62E9\u8981\u4E0A\u4F20\u7684\u6587\u4EF6
-label.multiUploadTip=\u53EF\u4F7F\u7528 CTRL \u6216 SHIFT \u952E\u9009\u62E9\u591A\u4E2A\u6587\u4EF6
-label.singleUpdateTip=\u5355\u51FB\u56FE\u6807\u53EF\u4E0A\u4F20 {0} \u7684\u65B0\u7248\u672C
-label.noFiles=\u65E0\u8981\u663E\u793A\u7684\u6587\u4EF6\uFF1B\u5355\u51FB\u56FE\u6807\u53EF\u9009\u62E9\u8981\u4E0A\u4F20\u7684\u6587\u4EF6
-label.noFlash=\u9700\u8981 Flash Player \u7248\u672C 9.0.45 \u624D\u80FD\u4F7F\u7528\u6B64\u7EC4\u4EF6\u3002 \u53EF\u4ECE Adobe Flash Player \u4E0B\u8F7D\u4E2D\u5FC3\u4E0B\u8F7D Flash Player \u7684\u6700\u65B0\u7248\u672C\u3002
-label.success=\u6210\u529F
-label.failure=\u5931\u8D25
-label.failure.413=\u5931\u8D25\uFF1A\u8D85\u8FC7\u4E86\u914D\u989D
-label.failure.409=\u5931\u8d25\uff1a\u5185\u5bb9\u5927\u5c0f\u51b2\u7a81
-label.illegalChars=\u5931\u8D25\uFF1A\u6587\u4EF6\u540D\u4E2D\u5305\u542B\u975E\u6CD5\u5B57\u7B26
-button.upload=\u4E0A\u4F20\u6587\u4EF6
-label.uploadStatus=\u72B6\u6001\uFF1A\u4E0A\u4F20\u4E86 {0} \u4E2A\uFF08\u5171 {1} \u4E2A\uFF0C{2} \u4E2A\u5931\u8D25\uFF09
-message.cancelStatus=\u4E0A\u4F20\u5DF2\u53D6\u6D88\uFF1B\u5DF2\u4E0A\u4F20 {0} \u4E2A\u6587\u4EF6
-message.zeroByteFileSelected=\u60A8\u5DF2\u9009\u62E9\u6587\u4EF6 {0}\u3002 \u8BE5\u6587\u4EF6\u5927\u5C0F\u4E3A\u96F6\u5B57\u8282\uFF0C\u6240\u4EE5\u4E0D\u80FD\u4E0A\u4F20\u3002
-message.flashError.title=Flash \u901A\u4FE1\u9519\u8BEF
-message.flashError.message=\u6D4F\u89C8\u5668\u4E0D\u80FD\u4E0E Flash Uploader \u901A\u4FE1\u3002 \u60A8\u53EF\u4EE5\u4F7F\u7528\u5355\u6587\u4EF6\u6A21\u5F0F\u7EE7\u7EED\u4E0A\u4F20\uFF0C\u4E5F\u53EF\u5237\u65B0\u9875\u9762\u4EE5\u91CD\u65B0\u542F\u52A8 Flash\u3002
-
-section.version=\u7248\u672C\u4FE1\u606F
-label.version=\u6B64\u7248\u672C\u6709\uFF1A
-label.minorVersion=\u6B21\u8981\u66F4\u6539
-label.majorVersion=\u4E3B\u8981\u66F4\u6539
-label.minorVersion.more=\u6B21\u8981\u66F4\u6539 ({0})
-label.majorVersion.more=\u4E3B\u8981\u66F4\u6539 ({0})
-label.comments=\u6CE8\u91CA
-
-type.cm_content=\u5185\u5BB9
\ No newline at end of file
diff --git a/surf/src/main/amp/config/org/springframework/extensions/surf/uploader-plus-surf-context.xml b/surf/src/main/amp/config/org/springframework/extensions/surf/uploader-plus-surf-context.xml
deleted file mode 100644
index 5a7e971..0000000
--- a/surf/src/main/amp/config/org/springframework/extensions/surf/uploader-plus-surf-context.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
- alfresco.web-extension.messages.uploader-plus
-
-
-
-
-
diff --git a/surf/src/main/amp/web/components/uploader-plus/js/flash-upload-plus.js b/surf/src/main/amp/web/components/uploader-plus/js/flash-upload-plus.js
deleted file mode 100644
index acea95f..0000000
--- a/surf/src/main/amp/web/components/uploader-plus/js/flash-upload-plus.js
+++ /dev/null
@@ -1,275 +0,0 @@
-(function () {
- Alfresco.logger.debug("flash-upload-plus.js");
-
- SoftwareLoop.FlashUpload = function (id)
- {
- // use "null" to avoid Alfresco.component.Base + Alfresco.util.ComponentManager to override Alfresco.DNDUpload
- SoftwareLoop.FlashUpload.superclass.constructor.call(this, "null");
-
- // re-register with correct id and name
- Alfresco.util.ComponentManager.unregister(this);
- this.id = (typeof id == "undefined" || id === null) ? Alfresco.util.generateDomId() : id;
- this.name = "SoftwareLoop.FlashUpload";
- Alfresco.util.ComponentManager.register(this);
-
- return this;
- };
-
- YAHOO.lang.extend(SoftwareLoop.FlashUpload, Alfresco.FlashUpload, YAHOO.lang.merge(SoftwareLoop.UploaderPlusMixin, {
-
- savedDialogTitle : null,
-
- records : null,
-
- currentRecordIndex : -1,
-
- //**************************************************************************
- // Initialisation at show
- //**************************************************************************
- show: function (config) {
- Alfresco.logger.debug("show", arguments);
-
- SoftwareLoop.FlashUpload.superclass.show.call(this, config);
-
- if (!this.shouldUseSameMetadataSet) {
- this.cleanupOldFormForNextUpload();
- }
-
- this.loadTypes(this.populateSelect, this);
- Alfresco.logger.debug("END show");
- },
-
- //**************************************************************************
- // onRowsAddEvent listener setup
- //**************************************************************************
-
- _createEmptyDataTable: function () {
- Alfresco.logger.debug("_createEmptyDataTable", arguments);
- SoftwareLoop.FlashUpload.superclass._createEmptyDataTable.apply(
- this, arguments
- );
- this.widgets.dataTable.subscribe(
- "rowsAddEvent", this.onRowsAddEvent, this, true
- );
- Alfresco.logger.debug("END _createEmptyDataTable");
- },
-
- //**************************************************************************
- // onRowsAddEvent listener setup
- //**************************************************************************
-
- _createEmptyDataTable: function () {
- Alfresco.logger.debug("_createEmptyDataTable", arguments);
- SoftwareLoop.FlashUpload.superclass._createEmptyDataTable.apply(
- this, arguments
- );
- this.widgets.dataTable.subscribe(
- "rowsAddEvent", this.onRowsAddEvent, this, true
- );
- Alfresco.logger.debug("END _createEmptyDataTable");
- },
-
- //**************************************************************************
- // onRowsAddEvent listener setup
- //**************************************************************************
-
- _createEmptyDataTable: function () {
- Alfresco.logger.debug("_createEmptyDataTable", arguments);
- SoftwareLoop.FlashUpload.superclass._createEmptyDataTable.apply(
- this, arguments
- );
- this.widgets.dataTable.subscribe(
- "rowsAddEvent", this.onRowsAddEvent, this, true
- );
- Alfresco.logger.debug("END _createEmptyDataTable");
- },
-
- //**************************************************************************
- // onRowsAddEvent management
- //**************************************************************************
-
- onRowsAddEvent: function (arg) {
- Alfresco.logger.debug("onRowsAddEvent", arguments);
- if (this.showConfig.mode === this.MODE_SINGLE_UPDATE) {
- Alfresco.logger.debug("Single update");
- return;
- }
- if (this.types == null) {
- Alfresco.logger.debug("Types is null");
- return;
- }
- this.savedDialogTitle =
- YAHOO.util.Dom.get(this.id + "-title-span").innerText;
- this.records = arg.records;
- this.currentRecordIndex = 0;
- this.showMetadataDialog();
- Alfresco.logger.debug("END onRowsAddEvent");
- },
-
- //**************************************************************************
- // Metadata dialog management
- //**************************************************************************
-
- showMetadataDialog: function () {
- Alfresco.logger.debug("showMetadataDialog", arguments);
- if (this.currentRecordIndex == this.records.length) {
- Alfresco.logger.debug("At the end of the records array");
- return this.showMainDialog();
- }
- var currentRecord = this.records[this.currentRecordIndex];
- var data = currentRecord.getData();
- YAHOO.util.Dom.get(this.id + "-title-span").innerText =
- Alfresco.util.encodeHTML(data.name);
-
- YAHOO.util.Dom.addClass(this.id + "-main-dialog", "fake-hidden");
- YAHOO.util.Dom.removeClass(this.id + "-metadata-dialog", "hidden");
-
- this.contentTypeSelectNode.selectedIndex = 0;
- SoftwareLoop.fireEvent(this.contentTypeSelectNode, "change");
- Alfresco.logger.debug("END showMetadataDialog");
- },
-
- showMainDialog: function () {
- Alfresco.logger.debug("showMainDialog", arguments);
- if (this.savedDialogTitle != null) {
- Alfresco.logger.debug("Restore saved dialog title");
- YAHOO.util.Dom.get(this.id + "-title-span").innerText =
- this.savedDialogTitle;
- this.savedDialogTitle = null;
- }
-
- this.records = null;
- this.currentRecordIndex = -1;
-
- YAHOO.util.Dom.removeClass(this.id + "-main-dialog", "fake-hidden");
- YAHOO.util.Dom.addClass(this.id + "-metadata-dialog", "hidden");
- this.centerPanel();
- Alfresco.logger.debug("END showMainDialog");
- },
-
- _resetGUI: function () {
- Alfresco.logger.debug("_resetGUI", arguments);
- this.showMainDialog();
- SoftwareLoop.FlashUpload.superclass._resetGUI.apply(this, arguments);
- Alfresco.logger.debug("END _resetGUI");
- },
-
- //**************************************************************************
- // Form button handling
- //**************************************************************************
-
- onMetadataCancel: function () {
- Alfresco.logger.debug("onMetadataCancel", arguments);
- this.records.reverse();
- for (var i = 0; i < this.records.length; i++) {
- var record = this.records[i];
- Alfresco.logger.debug("Canceling record:", record);
- var flashId = record.getData().id;
- var recordId = record.getId();
- this._onFileButtonClickHandler(flashId, recordId);
- }
- this.showMainDialog();
- Alfresco.logger.debug("END onMetadataCancel");
- },
-
- //**************************************************************************
- // Upload override
- //**************************************************************************
-
- _uploadFromQueue: function (noOfUploadsToStart) {
- Alfresco.logger.debug("_uploadFromQueue", arguments);
- // generate upload POST url
- var url;
- if (this.showConfig.uploadURL === null) {
- url = Alfresco.constants.PROXY_URI + "uploader-plus/upload";
- }
- else {
- url = Alfresco.constants.PROXY_URI + this.showConfig.uploadURL;
- }
-
- // Flash does not correctly bind to the session cookies during POST
- // so we manually patch the jsessionid directly onto the URL instead
- // also include the CSRF token to pass the CSRF token filter
- url += ";jsessionid=" + YAHOO.util.Cookie.get("JSESSIONID") + "?lang=" + Alfresco.constants.JS_LOCALE;
-
- // Pass the CSRF token if the CSRF token filter is enabled
- if (Alfresco.util.CSRFPolicy.isFilterEnabled()) {
- url += "&" + Alfresco.util.CSRFPolicy.getParameter() + "=" + encodeURIComponent(Alfresco.util.CSRFPolicy.getToken());
- }
-
- // Find files to upload
- var startedUploads = 0,
- length = this.widgets.dataTable.getRecordSet().getLength(),
- record, flashId, fileInfo, attributes;
-
- for (var i = 0; i < length && startedUploads < noOfUploadsToStart; i++) {
- record = this.widgets.dataTable.getRecordSet().getRecord(i);
- flashId = record.getData("id");
- fileInfo = this.fileStore[flashId];
- if (fileInfo.state === this.STATE_BROWSING) {
- // Upload has NOT been started for this file, start it now
- fileInfo.state = this.STATE_UPLOADING;
-
- attributes =
- {
- username: this.showConfig.username
- };
-
- // Site or Non-site (Repository) mode
- if (this.showConfig.siteId !== null) {
- attributes.siteId = this.showConfig.siteId;
- attributes.containerId = this.showConfig.containerId;
- }
- else if (this.showConfig.destination !== null) {
- attributes.destination = this.showConfig.destination
- }
-
- if (this.showConfig.mode === this.MODE_SINGLE_UPDATE) {
- attributes.updateNodeRef = this.showConfig.updateNodeRef;
- attributes.majorVersion = !this.minorVersion.checked;
- attributes.description = this.description.value;
- }
- else {
- if (this.showConfig.uploadDirectory !== null) {
- attributes.uploadDirectory = this.showConfig.uploadDirectory;
- }
- if (fileInfo.contentType) {
- if (fileInfo.contentType.tagName.toLowerCase() == "select") {
- attributes.contentType = fileInfo.contentType.options[fileInfo.contentType.selectedIndex].value;
- }
- else {
- attributes.contentType = fileInfo.contentType.value;
- }
- }
- attributes.overwrite = this.showConfig.overwrite;
- if (this.showConfig.thumbnails) {
- attributes.thumbnails = this.showConfig.thumbnails;
- }
- // BEGIN: uploader-plus customisations
- Alfresco.logger.debug("fileInfo", fileInfo);
- if (fileInfo.propertyData) {
- Alfresco.logger.debug("Processing propertyData");
- for (var current in fileInfo.propertyData) {
- Alfresco.logger.debug("Current:", current);
- if (fileInfo.propertyData.hasOwnProperty(current) &&
- (current != "prop_mimetype" ||
- (current == "prop_mimetype" && YAHOO.lang.isString(fileInfo.propertyData[current]) && fileInfo.propertyData[current].length > 0)
- )) {
- Alfresco.logger.debug("Adding attribute", current);
- attributes[current] = fileInfo.propertyData[current];
- }
- }
- }
- Alfresco.logger.debug("Attributes:", attributes);
- // END: uploader-plus customisations
-
- }
-
- this.uploader.upload(flashId, url, "POST", attributes, "filedata");
- startedUploads++;
- }
- }
- }
- }));
-
-})();
diff --git a/surf/src/test/resources/log4j.properties b/surf/src/test/resources/log4j.properties
deleted file mode 100644
index 280996b..0000000
--- a/surf/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,52 +0,0 @@
-# This file is copied from Alfresco Share 5.0.d
-# Overrides tomcat/webapps/share/WEB-INF/classes/log4j,properties
-# and sets new file location from property and log level from property.
-#
-
-# Set root logger level to error
-log4j.rootLogger=${app.log.root.level}, Console, File
-
-###### Console appender definition #######
-
-# All outputs currently set to be a ConsoleAppender.
-log4j.appender.Console=org.apache.log4j.ConsoleAppender
-log4j.appender.Console.layout=org.apache.log4j.PatternLayout
-
-# use log4j NDC to replace %x with tenant domain / username
-log4j.appender.Console.layout.ConversionPattern=%d{ISO8601} %x %-5p [%c{3}] [%t] %m%n
-#log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c] %m%n
-
-###### File appender definition #######
-log4j.appender.File=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.File.File=${app.log.dir}alfresco.log
-log4j.appender.File.Append=true
-log4j.appender.File.DatePattern='.'yyyy-MM-dd
-log4j.appender.File.layout=org.apache.log4j.PatternLayout
-log4j.appender.File.layout.ConversionPattern=%d{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t] %m%n
-
-# Spring
-log4j.logger.org.springframework=warn
-# Turn off Spring remoting warnings that should really be info or debug.
-log4j.logger.org.springframework.remoting.support=error
-log4j.logger.org.springframework.util=error
-
-# MyFaces
-log4j.logger.org.apache.myfaces.util.DebugUtils=info
-log4j.logger.org.apache.myfaces.el.VariableResolverImpl=error
-log4j.logger.org.apache.myfaces.application.jsp.JspViewHandlerImpl=error
-log4j.logger.org.apache.myfaces.taglib=error
-
-# Alfresco
-log4j.logger.org.alfresco=error
-log4j.logger.org.alfresco.config=warn
-log4j.logger.org.alfresco.config.JndiObjectFactoryBean=warn
-log4j.logger.org.alfresco.web=info
-
-# Web Framework
-log4j.logger.org.springframework.extensions.webscripts=info
-log4j.logger.org.springframework.extensions.webscripts.ScriptLogger=warn
-log4j.logger.org.springframework.extensions.webscripts.ScriptDebugger=off
-
-# Freemarker
-# Note the freemarker.runtime logger is used to log non-fatal errors that are handled by Alfresco's retrying transaction handler
-log4j.logger.freemarker.runtime=
\ No newline at end of file
diff --git a/surf/tomcat/context.xml b/surf/tomcat/context.xml
deleted file mode 100644
index 59a0220..0000000
--- a/surf/tomcat/context.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/uploader-plus-integration-tests/pom.xml b/uploader-plus-integration-tests/pom.xml
new file mode 100644
index 0000000..2b590a1
--- /dev/null
+++ b/uploader-plus-integration-tests/pom.xml
@@ -0,0 +1,76 @@
+
+
+ 4.0.0
+ uploader-plus-integration-tests
+ Integration Tests Module
+ Integration Tests module for in-container integration testing - part of AIO - SDK 4.10
+ jar
+
+
+ com.softwareloop
+ uploader-plus
+ 2.0
+
+
+
+
+
+
+
+
+ com.softwareloop
+ uploader-plus-platform
+ 2.0
+ test
+
+
+
+
+
+
+
+ src/test/resources
+ true
+
+
+
+
+
+
+ org.zeroturnaround
+ jrebel-maven-plugin
+
+ ${project.build.testOutputDirectory}
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+ test-jar
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-failsafe-plugin
+
+
+ ${test.acs.endpoint.path}
+
+
+
+
+
+
diff --git a/uploader-plus-platform-docker/pom.xml b/uploader-plus-platform-docker/pom.xml
new file mode 100644
index 0000000..af2aca6
--- /dev/null
+++ b/uploader-plus-platform-docker/pom.xml
@@ -0,0 +1,130 @@
+
+
+ 4.0.0
+ uploader-plus-platform-docker
+ Alfresco Platform/Repository Docker Module
+ Platform/Repo Docker Module to generate the final Docker image
+ jar
+
+
+ com.softwareloop
+ uploader-plus
+ 2.0
+
+
+
+
+
+
+
+ com.softwareloop
+ uploader-plus-platform
+ 2.0
+
+
+ com.softwareloop
+ uploader-plus-integration-tests
+ 2.0
+ test
+ tests
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+
+
+
+ collect-test-artifacts
+ pre-integration-test
+
+ copy-dependencies
+
+
+ ${project.build.directory}/extensions
+ compile
+
+
+
+
+ collect-extensions
+ package
+
+ copy-dependencies
+
+
+ ${project.build.directory}/extensions
+ runtime
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-resources-plugin
+
+
+ copy-and-filter-docker-resources
+ validate
+
+ copy-resources
+
+
+ ${project.build.directory}
+
+
+ src/main/docker
+ true
+
+ **/*.jar
+ **/*.so
+ **/*.gz
+
+
+
+
+
+
+ copy-and-filter-docker-resources-non-filtered
+ validate
+
+ copy-resources
+
+
+ ${project.build.directory}
+
+
+ src/main/docker
+ false
+
+ **/*.jar
+ **/*.so
+ **/*.gz
+
+
+
+
+
+
+
+
+
+
diff --git a/uploader-plus-platform-docker/src/main/docker/Dockerfile b/uploader-plus-platform-docker/src/main/docker/Dockerfile
new file mode 100644
index 0000000..8000c2c
--- /dev/null
+++ b/uploader-plus-platform-docker/src/main/docker/Dockerfile
@@ -0,0 +1,29 @@
+FROM ${docker.acs.image}:${alfresco.platform.version}
+
+ARG TOMCAT_DIR=/usr/local/tomcat
+ARG USERNAME=${alfresco.platform.docker.user}
+
+USER root
+
+# Copy Dockerfile to avoid an error if no JARs exist
+COPY Dockerfile extensions/*.jar $TOMCAT_DIR/webapps/alfresco/WEB-INF/lib/
+
+# Copy Dockerfile to avoid an error if no AMPs exist
+COPY Dockerfile extensions/*.amp $TOMCAT_DIR/amps/
+RUN java -jar $TOMCAT_DIR/alfresco-mmt/alfresco-mmt*.jar install \
+ $TOMCAT_DIR/amps $TOMCAT_DIR/webapps/alfresco -directory -nobackup -force
+
+COPY alfresco-global.properties $TOMCAT_DIR/shared/classes/alfresco-global.properties
+COPY dev-log4j2.properties $TOMCAT_DIR/shared/classes/alfresco/extension/dev-log4j2.properties
+COPY disable-webscript-caching-context.xml $TOMCAT_DIR/shared/classes/alfresco/extension
+
+# Copy Dockerfile to avoid an error if no license file exists
+COPY Dockerfile license/*.* $TOMCAT_DIR/webapps/alfresco/WEB-INF/classes/alfresco/extension/license/
+
+# Move the log file
+RUN sed -i -e "s_appender.rolling.fileName\=alfresco.log_appender.rolling.fileName\=${TOMCAT_DIR}/logs\/alfresco.log_" \
+ ${TOMCAT_DIR}/shared/classes/alfresco/extension/dev-log4j2.properties && \
+ sed -i -e "s_appender.rolling.filePattern=alfresco.log.%d{yyyy-MM-dd}_appender.rolling.filePattern\=${TOMCAT_DIR}/logs\/alfresco.log.%d{yyyy-MM-dd}_" \
+ ${TOMCAT_DIR}/shared/classes/alfresco/extension/dev-log4j2.properties
+
+USER ${USERNAME}
\ No newline at end of file
diff --git a/repo/src/test/properties/local/alfresco-global.properties b/uploader-plus-platform-docker/src/main/docker/alfresco-global.properties
similarity index 64%
rename from repo/src/test/properties/local/alfresco-global.properties
rename to uploader-plus-platform-docker/src/main/docker/alfresco-global.properties
index eed88e1..0ca0d27 100644
--- a/repo/src/test/properties/local/alfresco-global.properties
+++ b/uploader-plus-platform-docker/src/main/docker/alfresco-global.properties
@@ -15,15 +15,12 @@
# RUN TIME PROPERTIES
# -------------------
-########################################################################################################################
-# Alfresco configuration for running locally
+#
+# Alfresco configuration for running locally with PostgreSQL Database
#
# Configuration when running Tomcat embedded from Maven.
-# This will create the alf_data_dev directory relative to Tomcat run folder.
# Property values from the POM but it can also be edited here.
-########################################################################################################################
-
-dir.root=${alfresco.data.location}
+#
# Alfresco Repo Webapp (alfresco.war) context, ports etc
alfresco.context=alfresco
@@ -34,14 +31,11 @@ alfresco.protocol=http
# Alfresco Share Webapp (share.war) context, ports etc
share.context=share
share.host=localhost
-share.port=8080
+share.port=8180
share.protocol=http
# Don't try and recover any index
index.recovery.mode=NONE
-# As we run embedded, we set Lucene
-# TODO: Find a better solution for indexing, as buildonly (embedded Lucene) is deprecated and going to be removed soon
-index.subsystem.name=buildonly
# These jobs seem to require Lucene (Unsupported Operation with Solr) so we disable them / set to future date
# See https://forums.alfresco.com/en/viewtopic.php?f=52&t=41597
@@ -53,16 +47,39 @@ wcmqs.publishQueueProcessor.schedule=0 50 2 * * ? 2060
# Fail or not when there are node integrity checker errors
integrity.failOnError=true
-# Database connection properties
-db.driver=${alfresco.db.datasource.class}
-db.url=${alfresco.db.url}
-db.username=${alfresco.db.username}
-db.password=${alfresco.db.password}
+# Alfresco Repository PostgreSQL Database configuration.
+# The PostgreSQL Driver is brought in via the tomcat7-maven-plugin as a dependency.
+db.driver=org.postgresql.Driver
+
+# This Alfresco Platform Configuration file should be used for custom properties that are introduced by this module.
+# Define default values for all properties here.
+# System Administrators can override these values in environment specific configurations in
+# alfresco/tomcat/shared/classes/alfresco-global.properties.
+#
+index.subsystem.name=solr6
+solr.host=uploader-plus-ass
+solr.port=8983
+solr.secureComms=secret
+solr.sharedSecret=secret
+
+db.username=alfresco
+db.password=alfresco
db.pool.initial=10
db.pool.max=100
-hibernate.dialect=org.hibernate.dialect.H2Dialect
+
+db.url=jdbc:postgresql://uploader-plus-postgres:5432/alfresco
# File servers related properties
# For local runs we disable CIFS and FTP
cifs.enabled=false
-ftp.enabled=false
\ No newline at end of file
+ftp.enabled=false
+
+csrf.filter.enabled=false
+
+# Embedded broker without persistence
+messaging.broker.url=vm://localhost?broker.persistent=false
+
+# Disable ATS
+transform.service.enabled=false
+local.transform.service.enabled=false
+legacy.transform.service.enabled=false
diff --git a/uploader-plus-platform-docker/src/main/docker/dev-log4j2.properties b/uploader-plus-platform-docker/src/main/docker/dev-log4j2.properties
new file mode 100644
index 0000000..6ead657
--- /dev/null
+++ b/uploader-plus-platform-docker/src/main/docker/dev-log4j2.properties
@@ -0,0 +1,409 @@
+rootLogger.level=error
+rootLogger.appenderRef.stdout.ref=ConsoleAppender
+rootLogger.appenderRef.rolling.ref=RollingAppender
+
+# All outputs currently set to be a ConsoleAppender.
+appender.console.type=Console
+appender.console.name=ConsoleAppender
+appender.console.layout.type=PatternLayout
+# use log4j NDC to replace %x with tenant domain / username
+appender.console.layout.pattern=%d{ISO8601} %x %-5p [%c{3}] [%t] %replace{%m}{[\r\n]+}{}%n
+
+# File appender definition #
+appender.rolling.type=RollingFile
+appender.rolling.name=RollingAppender
+appender.rolling.fileName=alfresco.log
+appender.rolling.filePattern=alfresco.log.%d{yyyy-MM-dd}
+appender.rolling.layout.type=PatternLayout
+appender.rolling.layout.pattern=%d{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t] %replace{%m}{[\r\n]+}{}%n
+appender.rolling.policies.type = Policies
+appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
+appender.rolling.policies.time.interval = 1
+
+# Commented-in loggers will be exposed as JMX MBeans (refer to org.alfresco.repo.admin.Log4J2HierarchyInit)
+# Hence, generally useful loggers should be listed with at least ERROR level to allow simple runtime
+# control of the level via a suitable JMX Console. Also, any other loggers can be added transiently via
+# Log4j2 addLoggerMBean as long as the logger exists and has been loaded.
+
+# Hibernate
+logger.hibernate.name=org.hibernate
+logger.hibernate.level=error
+
+logger.hibernate-util-JDBCExceptionReporter.name=org.hibernate.util.JDBCExceptionReporter
+logger.hibernate-util-JDBCExceptionReporter.level=fatal
+
+logger.hibernate-event-def-AbstractFlushingEventListener.name=org.hibernate.event.def.AbstractFlushingEventListener
+logger.hibernate-event-def-AbstractFlushingEventListener.level=fatal
+
+logger.hibernate-type.name=org.hibernate.type
+logger.hibernate-type.level=warn
+
+logger.hibernate-cfg-SettingsFactory.name=org.hibernate.cfg.SettingsFactory
+logger.hibernate-cfg-SettingsFactory.level=warn
+
+# Spring
+logger.springframework.name=org.springframework
+logger.springframework.level=warn
+# Turn off Spring remoting warnings that should really be info or debug.
+logger.springframework-remoting-support.name=org.springframework.remoting.support
+logger.springframework-remoting-support.level=error
+
+logger.springframework-util.name=org.springframework.util
+logger.springframework-util.level=error
+
+# Axis/WSS4J
+logger.apache-axis.name=org.apache.axis
+logger.apache-axis.level=info
+
+logger.apache-ws.name=org.apache.ws
+logger.apache-ws.level=info
+
+# CXF
+logger.apache-cxf.name=org.apache.cxf
+logger.apache-cxf.level=error
+
+# MyFaces
+logger.apache-myfaces-util-DebugUtils.name=org.apache.myfaces.util.DebugUtils
+logger.apache-myfaces-util-DebugUtils.level=info
+
+logger.apache-myfaces-el-VariableResolverImpl.name=org.apache.myfaces.el.VariableResolverImpl
+logger.apache-myfaces-el-VariableResolverImpl.level=error
+
+logger.apache-myfaces-application-jsp-JspViewHandlerImpl.name=org.apache.myfaces.application.jsp.JspViewHandlerImpl
+logger.apache-myfaces-application-jsp-JspViewHandlerImpl.level=error
+
+logger.apache-myfaces-taglib.name=org.apache.myfaces.taglib
+logger.apache-myfaces-taglib.level=error
+
+# OpenOfficeConnection
+logger.sf-jooreports-openoffice-connection.name=net.sf.jooreports.openoffice.connection
+logger.sf-jooreports-openoffice-connection.level=fatal
+
+# log prepared statement cache activity log4j.logger.org.hibernate.ps.PreparedStatementCache=info
+
+# Alfresco
+logger.alfresco.name=org.alfresco
+logger.alfresco.level=error
+
+logger.alfresco-repo-admin.name=org.alfresco.repo.admin
+logger.alfresco-repo-admin.level=info
+
+logger.alfresco-repo-transaction.name=org.alfresco.repo.transaction
+logger.alfresco-repo-transaction.level=warn
+
+logger.alfresco-repo-cache-TransactionalCache.name=org.alfresco.repo.cache.TransactionalCache
+logger.alfresco-repo-cache-TransactionalCache.level=warn
+
+logger.alfresco-repo-model-filefolder.name=org.alfresco.repo.model.filefolder
+logger.alfresco-repo-model-filefolder.level=warn
+
+logger.alfresco-repo-tenant.name=org.alfresco.repo.tenant
+logger.alfresco-repo-tenant.level=info
+
+logger.alfresco-config.name=org.alfresco.config
+logger.alfresco-config.level=warn
+
+logger.alfresco-config-JndiObjectFactoryBean.name=org.alfresco.config.JndiObjectFactoryBean
+logger.alfresco-config-JndiObjectFactoryBean.level=warn
+
+logger.alfresco-config-JBossEnabledWebApplicationContext.name=org.alfresco.config.JBossEnabledWebApplicationContext
+logger.alfresco-config-JBossEnabledWebApplicationContext.level=warn
+
+logger.alfresco-repo-management-subsystems.name=org.alfresco.repo.management.subsystems
+logger.alfresco-repo-management-subsystems.level=warn
+
+logger.alfresco-repo-management-subsystems-ChildApplicationContextFactory.name=org.alfresco.repo.management.subsystems.ChildApplicationContextFactory
+logger.alfresco-repo-management-subsystems-ChildApplicationContextFactory.level=info
+
+logger.alfresco-repo-management-subsystems-ChildApplicationContextFactory$ChildApplicationContext.name=org.alfresco.repo.management.subsystems.ChildApplicationContextFactory$ChildApplicationContext
+logger.alfresco-repo-management-subsystems-ChildApplicationContextFactory$ChildApplicationContext.level=warn
+
+logger.alfresco-repo-security-sync.name=org.alfresco.repo.security.sync
+logger.alfresco-repo-security-sync.level=info
+
+logger.alfresco-repo-security-person.name=org.alfresco.repo.security.person
+logger.alfresco-repo-security-person.level=info
+
+logger.alfresco-sample.name=org.alfresco.sample
+logger.alfresco-sample.level=info
+
+logger.alfresco-web.name=org.alfresco.web
+logger.alfresco-web.level=info
+
+logger.alfresco-service-descriptor-DescriptorService.name=org.alfresco.service.descriptor.DescriptorService
+logger.alfresco-service-descriptor-DescriptorService.level=info
+
+logger.alfresco-repo-importer-ImporterBootstrap.name=org.alfresco.repo.importer.ImporterBootstrap
+logger.alfresco-repo-importer-ImporterBootstrap.level=error
+#log4j.logger.org.alfresco.repo.importer.ImporterBootstrap=info
+
+logger.alfresco-repo-admin-patch-PatchExecuter.name=org.alfresco.repo.admin.patch.PatchExecuter
+logger.alfresco-repo-admin-patch-PatchExecuter.level=info
+
+logger.alfresco-repo-domain-patch-ibatis-PatchDAOImpl.name=org.alfresco.repo.domain.patch.ibatis.PatchDAOImpl
+logger.alfresco-repo-domain-patch-ibatis-PatchDAOImpl.level=info
+
+# Specific patches
+logger.alfresco-repo-admin-patch-impl-DeploymentMigrationPatch.name=org.alfresco.repo.admin.patch.impl.DeploymentMigrationPatch
+logger.alfresco-repo-admin-patch-impl-DeploymentMigrationPatch.level=info
+
+logger.alfresco-repo-version-VersionMigrator.name=org.alfresco.repo.version.VersionMigrator
+logger.alfresco-repo-version-VersionMigrator.level=info
+
+logger.alfresco-repo-module-ModuleServiceImpl.name=org.alfresco.repo.module.ModuleServiceImpl
+logger.alfresco-repo-module-ModuleServiceImpl.level=info
+
+logger.alfresco-repo-domain-schema-SchemaBootstrap.name=org.alfresco.repo.domain.schema.SchemaBootstrap
+logger.alfresco-repo-domain-schema-SchemaBootstrap.level=info
+
+logger.alfresco-repo-admin-ConfigurationChecker.name=org.alfresco.repo.admin.ConfigurationChecker
+logger.alfresco-repo-admin-ConfigurationChecker.level=info
+
+logger.alfresco-repo-node-index-AbstractReindexComponent.name=org.alfresco.repo.node.index.AbstractReindexComponent
+logger.alfresco-repo-node-index-AbstractReindexComponent.level=warn
+
+logger.alfresco-repo-node-index-IndexTransactionTracker.name=org.alfresco.repo.node.index.IndexTransactionTracker
+logger.alfresco-repo-node-index-IndexTransactionTracker.level=warn
+
+logger.alfresco-repo-node-index-FullIndexRecoveryComponent.name=org.alfresco.repo.node.index.FullIndexRecoveryComponent
+logger.alfresco-repo-node-index-FullIndexRecoveryComponent.level=info
+
+#logger.alfresco-repo-node-db-hibernate-HibernateNodeDaoServiceImpl.name=org.alfresco.repo.node.db.hibernate.HibernateNodeDaoServiceImpl
+#logger.alfresco-repo-node-db-hibernate-HibernateNodeDaoServiceImpl.level=warn
+
+logger.alfresco-repo-domain-hibernate-DirtySessionMethodInterceptor.name=org.alfresco.repo.domain.hibernate.DirtySessionMethodInterceptor
+logger.alfresco-repo-domain-hibernate-DirtySessionMethodInterceptor.level=warn
+
+logger.alfresco-repo-transaction-RetryingTransactionHelper.name=org.alfresco.repo.transaction.RetryingTransactionHelper
+logger.alfresco-repo-transaction-RetryingTransactionHelper.level=warn
+
+logger.alfresco-util-transaction-SpringAwareUserTransaction-trace.name=org.alfresco.util.transaction.SpringAwareUserTransaction.trace
+logger.alfresco-util-transaction-SpringAwareUserTransaction-trace.level=warn
+
+logger.alfresco-util-AbstractTriggerBean.name=org.alfresco.util.AbstractTriggerBean
+logger.alfresco-util-AbstractTriggerBean.level=warn
+
+logger.alfresco-enterprise-repo-cluster.name=org.alfresco.enterprise.repo.cluster
+logger.alfresco-enterprise-repo-cluster.level=info
+
+logger.alfresco-repo-version-Version2ServiceImpl.name=org.alfresco.repo.version.Version2ServiceImpl
+logger.alfresco-repo-version-Version2ServiceImpl.level=warn
+
+#logger.alfresco-web-app-DebugPhaseListener.name=org.alfresco.web.app.DebugPhaseListener
+#logger.alfresco-web-app-DebugPhaseListener.level=debug
+
+logger.alfresco-repo-node-db-NodeStringLengthWorker.name=org.alfresco.repo.node.db.NodeStringLengthWorker
+logger.alfresco-repo-node-db-NodeStringLengthWorker.level=info
+
+logger.alfresco-repo-workflow.name=org.alfresco.repo.workflow
+logger.alfresco-repo-workflow.level=info
+
+# FTP server debugging
+logger.alfresco-ftp-protocol.name=org.alfresco.ftp.protocol
+logger.alfresco-ftp-protocol.level=error
+
+# WebDAV debugging
+logger.alfresco-webdav-protocol.name=org.alfresco.webdav.protocol
+logger.alfresco-webdav-protocol.level=info
+
+# NTLM servlet filters
+#log4j.logger.org.alfresco.web.app.servlet.NTLMAuthenticationFilter=debug
+#log4j.logger.org.alfresco.repo.webdav.auth.NTLMAuthenticationFilter=debug
+
+# Kerberos servlet filters
+#log4j.logger.org.alfresco.web.app.servlet.KerberosAuthenticationFilter=debug
+#log4j.logger.org.alfresco.repo.webdav.auth.KerberosAuthenticationFilter=debug
+
+# File servers
+logger.alfresco-fileserver.name=org.alfresco.fileserver
+logger.alfresco-fileserver.level=warn
+
+# Repo filesystem debug logging
+#log4j.logger.org.alfresco.filesys.repo.ContentDiskDriver=debug
+
+# Integrity message threshold - if 'failOnViolation' is off, then WARNINGS are generated
+logger.alfresco-repo-node-integrity.name=org.alfresco.repo.node.integrity
+logger.alfresco-repo-node-integrity.level=error
+
+# Indexer debugging
+logger.alfresco-repo-search-Indexer.name=org.alfresco.repo.search.Indexer
+logger.alfresco-repo-search-Indexer.level=error
+
+logger.alfresco-repo-search-impl-lucene-index.name=org.alfresco.repo.search.impl.lucene.index
+logger.alfresco-repo-search-impl-lucene-index.level=error
+
+logger.alfresco-repo-search-impl-lucene-fts-FullTextSearchIndexerImpl.name=org.alfresco.repo.search.impl.lucene.fts.FullTextSearchIndexerImpl
+logger.alfresco-repo-search-impl-lucene-fts-FullTextSearchIndexerImpl.level=warn
+
+# Audit debugging
+# log4j.logger.org.alfresco.repo.audit=DEBUG
+# log4j.logger.org.alfresco.repo.audit.model=DEBUG
+
+# Property sheet and modelling debugging
+# change to error to hide the warnings about missing properties and associations
+logger.missingProperties.name=alfresco.missingProperties
+logger.missingProperties.level=warn
+
+# Dictionary/Model debugging
+logger.alfresco-repo-dictionary.name=org.alfresco.repo.dictionary
+logger.alfresco-repo-dictionary.level=warn
+
+# Virtualization Server Registry
+logger.alfresco-mbeans-VirtServerRegistry.name=org.alfresco.mbeans.VirtServerRegistry
+logger.alfresco-mbeans-VirtServerRegistry.level=error
+
+# Spring context runtime property setter
+logger.alfresco-util-RuntimeSystemPropertiesSetter.name=org.alfresco.util.RuntimeSystemPropertiesSetter
+logger.alfresco-util-RuntimeSystemPropertiesSetter.level=info
+
+# Debugging options for clustering
+logger.alfresco-repo-content-ReplicatingContentStore.name=org.alfresco.repo.content.ReplicatingContentStore
+logger.alfresco-repo-content-ReplicatingContentStore.level=error
+
+logger.alfresco-repo-content-replication.name=org.alfresco.repo.content.replication
+logger.alfresco-repo-content-replication.level=error
+
+#log4j.logger.org.alfresco.repo.deploy.DeploymentServiceImpl=debug
+
+# Activity service
+logger.alfresco-repo-activities.name=org.alfresco.repo.activities
+logger.alfresco-repo-activities.level=warn
+
+# User usage tracking
+logger.alfresco-repo-usage.name=org.alfresco.repo.usage
+logger.alfresco-repo-usage.level=info
+
+# Sharepoint
+logger.alfresco-module-vti.name=org.alfresco.module.vti
+logger.alfresco-module-vti.level=info
+
+# Forms Engine
+logger.alfresco-web-config-forms.name=org.alfresco.web.config.forms
+logger.alfresco-web-config-forms.level=info
+
+logger.alfresco-web-scripts-forms.name=org.alfresco.web.scripts.forms
+logger.alfresco-web-scripts-forms.level=info
+
+# CMIS
+logger.alfresco-opencmis.name=org.alfresco.opencmis
+logger.alfresco-opencmis.level=error
+
+logger.alfresco-opencmis-AlfrescoCmisServiceInterceptor.name=org.alfresco.opencmis.AlfrescoCmisServiceInterceptor
+logger.alfresco-opencmis-AlfrescoCmisServiceInterceptor.level=error
+
+logger.alfresco-cmis.name=org.alfresco.cmis
+logger.alfresco-cmis.level=error
+
+logger.alfresco-cmis-dictionary.name=org.alfresco.cmis.dictionary
+logger.alfresco-cmis-dictionary.level=warn
+
+logger.apache-chemistry-opencmis.name=org.apache.chemistry.opencmis
+logger.apache-chemistry-opencmis.level=info
+
+logger.apache-chemistry-opencmis-server-impl-browser-CmisBrowserBindingServlet.name=org.apache.chemistry.opencmis.server.impl.browser.CmisBrowserBindingServlet
+logger.apache-chemistry-opencmis-server-impl-browser-CmisBrowserBindingServlet.level=off
+
+logger.apache-chemistry-opencmis-server-impl-atompub-CmisAtomPubServlet.name=org.apache.chemistry.opencmis.server.impl.atompub.CmisAtomPubServlet
+logger.apache-chemistry-opencmis-server-impl-atompub-CmisAtomPubServlet.level=off
+
+# IMAP
+logger.alfresco-repo-imap.name=org.alfresco.repo.imap
+logger.alfresco-repo-imap.level=info
+
+# JBPM
+# Note: non-fatal errors (eg. logged during job execution) should be handled by Alfresco's retrying transaction handler
+logger.jbpm-graph-def-GraphElement.name=org.jbpm.graph.def.GraphElement
+logger.jbpm-graph-def-GraphElement.level=fatal
+
+# Web Framework
+logger.springframework-extensions-webscripts.name=org.springframework.extensions.webscripts
+logger.springframework-extensions-webscripts.level=info
+
+logger.springframework-extensions-webscripts-ScriptLogger.name=org.springframework.extensions.webscripts.ScriptLogger
+logger.springframework-extensions-webscripts-ScriptLogger.level=warn
+
+logger.springframework-extensions-webscripts-ScriptDebugger.name=org.springframework.extensions.webscripts.ScriptDebugger
+logger.springframework-extensions-webscripts-ScriptDebugger.level=off
+
+# Repository
+logger.alfresco-repo-web-scripts.name=org.alfresco.repo.web.scripts
+logger.alfresco-repo-web-scripts.level=warn
+
+logger.alfresco-repo-web-scripts-BaseWebScriptTest.name=org.alfresco.repo.web.scripts.BaseWebScriptTest
+logger.alfresco-repo-web-scripts-BaseWebScriptTest.level=info
+
+logger.alfresco-repo-web-scripts-AlfrescoRhinoScriptDebugger.name=org.alfresco.repo.web.scripts.AlfrescoRhinoScriptDebugger
+logger.alfresco-repo-web-scripts-AlfrescoRhinoScriptDebugger.level=off
+
+logger.alfresco-repo-jscript.name=org.alfresco.repo.jscript
+logger.alfresco-repo-jscript.level=error
+
+logger.alfresco-repo-jscript-ScriptLogger.name=org.alfresco.repo.jscript.ScriptLogger
+logger.alfresco-repo-jscript-ScriptLogger.level=warn
+
+logger.alfresco-repo-cmis-rest-CMISTest.name=org.alfresco.repo.cmis.rest.CMISTest
+logger.alfresco-repo-cmis-rest-CMISTest.level=info
+
+logger.alfresco-repo-domain-schema-script-ScriptBundleExecutorImpl.name=org.alfresco.repo.domain.schema.script.ScriptBundleExecutorImpl
+logger.alfresco-repo-domain-schema-script-ScriptBundleExecutorImpl.level=off
+
+logger.alfresco-repo-domain-schema-script-ScriptExecutorImpl.name=org.alfresco.repo.domain.schema.script.ScriptExecutorImpl
+logger.alfresco-repo-domain-schema-script-ScriptExecutorImpl.level=info
+
+logger.alfresco-repo-domain-schema-script-DeleteNotExistsExecutor.name=org.alfresco.repo.domain.schema.script.DeleteNotExistsExecutor
+logger.alfresco-repo-domain-schema-script-DeleteNotExistsExecutor.level=off
+
+logger.alfresco-repo-search-impl-solr-facet-SolrFacetServiceImpl.name=org.alfresco.repo.search.impl.solr.facet.SolrFacetServiceImpl
+logger.alfresco-repo-search-impl-solr-facet-SolrFacetServiceImpl.level=info
+
+# Bulk Filesystem Import Tool
+logger.alfresco-repo-bulkimport.name=org.alfresco.repo.bulkimport
+logger.alfresco-repo-bulkimport.level=warn
+
+# Freemarker
+# Note the freemarker.runtime logger is used to log non-fatal errors that are handled by Alfresco's retrying transaction handler
+logger.runtime.name=freemarker.runtime
+logger.runtime.level=
+
+# Metadata extraction
+logger.alfresco-repo-content-metadata-AbstractMappingMetadataExtracter.name=org.alfresco.repo.content.metadata.AbstractMappingMetadataExtracter
+logger.alfresco-repo-content-metadata-AbstractMappingMetadataExtracter.level=warn
+
+# Reduces PDFont error level due to ALF-7105
+logger.apache-pdfbox-pdmodel-font-PDSimpleFont.name=org.apache.pdfbox.pdmodel.font.PDSimpleFont
+logger.apache-pdfbox-pdmodel-font-PDSimpleFont.level=fatal
+
+logger.apache-pdfbox-pdmodel-font-PDCIDFont.name=org.apache.pdfbox.pdmodel.font.PDCIDFont
+logger.apache-pdfbox-pdmodel-font-PDCIDFont.level=fatal
+
+# no index support
+logger.alfresco-repo-search-impl-noindex-NoIndexIndexer.name=org.alfresco.repo.search.impl.noindex.NoIndexIndexer
+logger.alfresco-repo-search-impl-noindex-NoIndexIndexer.level=fatal
+
+logger.alfresco-repo-search-impl-noindex-NoIndexSearchService.name=org.alfresco.repo.search.impl.noindex.NoIndexSearchService
+logger.alfresco-repo-search-impl-noindex-NoIndexSearchService.level=fatal
+
+# lucene index warnings
+logger.alfresco-repo-search-impl-lucene-index-IndexInfo.name=org.alfresco.repo.search.impl.lucene.index.IndexInfo
+logger.alfresco-repo-search-impl-lucene-index-IndexInfo.level=warn
+
+# Warn about RMI socket bind retries.
+logger.alfresco-util-remote-server-socket-HostConfigurableSocketFactory.name=org.alfresco.util.remote.server.socket.HostConfigurableSocketFactory
+logger.alfresco-util-remote-server-socket-HostConfigurableSocketFactory.level=warn
+
+logger.alfresco-repo-usage-RepoUsageMonitor.name=org.alfresco.repo.usage.RepoUsageMonitor
+logger.alfresco-repo-usage-RepoUsageMonitor.level=info
+
+# Authorization
+logger.alfresco-enterprise-repo-authorization-AuthorizationService.name=org.alfresco.enterprise.repo.authorization.AuthorizationService
+logger.alfresco-enterprise-repo-authorization-AuthorizationService.level=info
+
+logger.alfresco-enterprise-repo-authorization-AuthorizationsConsistencyMonitor.name=org.alfresco.enterprise.repo.authorization.AuthorizationsConsistencyMonitor
+logger.alfresco-enterprise-repo-authorization-AuthorizationsConsistencyMonitor.level=warn
+
+#-----------------------------------------------------------------------
+# Platform module logging
+#-----------------------------------------------------------------------
+
+
+
diff --git a/repo/src/test/resources/alfresco/extension/disable-webscript-caching-context.xml b/uploader-plus-platform-docker/src/main/docker/disable-webscript-caching-context.xml
similarity index 100%
rename from repo/src/test/resources/alfresco/extension/disable-webscript-caching-context.xml
rename to uploader-plus-platform-docker/src/main/docker/disable-webscript-caching-context.xml
diff --git a/uploader-plus-platform-docker/src/main/docker/hotswap-agent.properties b/uploader-plus-platform-docker/src/main/docker/hotswap-agent.properties
new file mode 100644
index 0000000..6c30787
--- /dev/null
+++ b/uploader-plus-platform-docker/src/main/docker/hotswap-agent.properties
@@ -0,0 +1,48 @@
+# Enable hotswap so that changes in this module will be automatically reloaded
+# Watch for changed class files on watchResources path and reload class definition in the running application.
+autoHotswap=true
+#autoHotswap.port=8000
+
+# Add a directory prior to application classpath (load classes and resources).
+#
+# This may be useful for example in multi module maven project to load class changes from upstream project
+# classes. Set extraClasspath to upstream project compiler output and .class file will have precedence to
+# classes from built JAR file.
+# i.e. monitor /target/classes
+# should work with extraClasspath=${project.build.outputDirectory}
+# If not try
+extraClasspath=/usr/local/tomcat/hotswap-agent
+
+# Comma separated list of disabled plugins
+# Use plugin name - e.g.
+# Hotswapper, AnonymousClassPatch, WatchResources, Hibernate, Spring, Jersey2, Jetty, Tomcat,
+# ZK, Logback, JSF, Seam, ELResolver, OsgiEquinox, Proxy, WebObjects, Weld, JBossModules, Resteasy, Gae
+disabledPlugins=Hibernate,Spring
+
+# Add a directory prior to webapp path (load webapp resources).
+#
+# Load web application resources (such as HTML, JSP, CSS, ...) from this directory prior to default processing.
+# Use this setting to set to serve resources from source directory directly (e.g. src/main/webapp).
+extraWebappContext=/usr/local/tomcat/hotswap-agent/uploader-plus-platform/target/classes/META-INF/resources;
+
+# Load static web resources from different directory.
+#
+# This setting is dependent on application server plugin(Jetty, Tomcat, JBoss, ...)
+webappDir=/usr/local/tomcat/hotswap-agent/uploader-plus-platform/target/classes/META-INF/resources;
+
+# Watch for changes in a directory (resources only).
+#
+# Similar to extraClasspath this property adds classpath when searching for resources (not classes).
+# While extra classpath just modifies the classloader, this setting does nothing until the resource
+# is really changed.
+#
+# Sometimes it is not possible to point extraClasspath to your i.e. src/main/resources, because there are multiple
+# replacements of resources in a building step (maven filtering resource option).
+# This setting will leave i.e. src/target/classes as default source for resources, but after the resource is modified
+# in src/main/resources, the new changed resource is served instead.
+# watchResources=
+
+LOGGER.org.hotswap.agent=DEBUG
+#LOGGER.org.hotswap.agent.plugin=TRACE
+#LOGGER.org.hotswap.agent.watch=TRACE
+#LOGGER.org.hotswap.agent.command=TRACE
\ No newline at end of file
diff --git a/uploader-plus-platform-docker/src/main/docker/license/README.md b/uploader-plus-platform-docker/src/main/docker/license/README.md
new file mode 100644
index 0000000..996f1bd
--- /dev/null
+++ b/uploader-plus-platform-docker/src/main/docker/license/README.md
@@ -0,0 +1,6 @@
+# Enterprise License location
+
+Put the Alfresco Enterprise license file in this directory.
+It will then be copied into the ACS container in the
+$TOMCAT_DIR/WEB-INF/classes/alfresco/extension/license directory.
+
diff --git a/uploader-plus-platform/pom.xml b/uploader-plus-platform/pom.xml
new file mode 100644
index 0000000..03f4335
--- /dev/null
+++ b/uploader-plus-platform/pom.xml
@@ -0,0 +1,31 @@
+
+
+ 4.0.0
+ uploader-plus-platform
+ uploader-plus-repo
+ uploader-plus AMP for Alfresco repository
+ https://github.com/softwareloop/uploader-plus
+ jar
+
+
+ com.softwareloop
+ uploader-plus
+ 2.0
+
+
+
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
diff --git a/uploader-plus-platform/src/main/assembly/amp.xml b/uploader-plus-platform/src/main/assembly/amp.xml
new file mode 100644
index 0000000..238461a
--- /dev/null
+++ b/uploader-plus-platform/src/main/assembly/amp.xml
@@ -0,0 +1,66 @@
+
+
+
+
+ build-amp-file
+
+
+ amp
+
+
+ false
+
+
+
+
+ src/main/resources/alfresco/module/${project.artifactId}/module.properties
+ true
+
+
+
+ src/main/assembly/file-mapping.properties
+ false
+
+
+
+ src/main/resources/alfresco/module/${project.artifactId}/log4j2.properties
+ false
+
+
+
+
+
+
+ src/main/assembly/web
+ web
+ true
+
+ README.md
+
+
+
+
+
+
+
+ lib
+
+
+
+
\ No newline at end of file
diff --git a/surf/src/main/amp/file-mapping.properties b/uploader-plus-platform/src/main/assembly/file-mapping.properties
similarity index 60%
rename from surf/src/main/amp/file-mapping.properties
rename to uploader-plus-platform/src/main/assembly/file-mapping.properties
index 45cccaf..501b3d6 100644
--- a/surf/src/main/amp/file-mapping.properties
+++ b/uploader-plus-platform/src/main/assembly/file-mapping.properties
@@ -1,14 +1,27 @@
-# Custom AMP to WAR location mappings
-
-#
-# The following property can be used to include the standard set of mappings.
-# The contents of this file will override any defaults. The default is
-# 'true', i.e. the default mappings will be augmented or modified by values in
-# this file.
-#
-include.default=true
-
-#
-# Custom mappings. If 'include.default' is false, then this is the complete set.
-#
-/web=/
+# Custom AMP to WAR location mappings
+
+#
+# The following property can be used to include the standard set of mappings.
+# The contents of this file will override any defaults. The default is
+# 'true', i.e. the default mappings will be augmented or modified by values in
+# this file.
+#
+# Default mappings are:
+#
+# /config=/WEB-INF/classes
+# /lib=/WEB-INF/lib
+# /licenses=/WEB-INF/licenses
+# /web/jsp=/jsp
+# /web/css=/css
+# /web/images=/images
+# /web/scripts=/scripts
+# /web/php=/php
+#
+include.default=true
+
+#
+# Custom mappings. If 'include.default' is false, then this is the complete set.
+# Map /web to / in AMP so we can override things like favicon.ico
+#
+/web=/
+
diff --git a/uploader-plus-platform/src/main/assembly/web/README.md b/uploader-plus-platform/src/main/assembly/web/README.md
new file mode 100644
index 0000000..e3b1a7c
--- /dev/null
+++ b/uploader-plus-platform/src/main/assembly/web/README.md
@@ -0,0 +1,22 @@
+# Web resources that should override out-of-the-box files
+
+Put here any web resources that should override out-of-the-box
+web resources, such as favicon.ico. They will then end up in the
+*/web* directory in the AMP, and applied to the WAR, and override
+any existing web resources in the Alfresco.WAR.
+
+**Note**. Module dependency needs to be set to amp for the web resources to be applied by MMT:
+
+`
+
+ ${project.groupId}
+ some-platform
+ ${project.version}
+ amp
+
+`
+
+**Important**. New web resources should not be located here, but instead
+ in the usual place in the *src/main/resources/META-INF/resources* directory.
+
+
diff --git a/uploader-plus-platform/src/main/java/com/softwareloop/uploaderplus/ListContentTypesGet.java b/uploader-plus-platform/src/main/java/com/softwareloop/uploaderplus/ListContentTypesGet.java
new file mode 100644
index 0000000..94e35cd
--- /dev/null
+++ b/uploader-plus-platform/src/main/java/com/softwareloop/uploaderplus/ListContentTypesGet.java
@@ -0,0 +1,42 @@
+package com.softwareloop.uploaderplus;
+
+import org.alfresco.model.ContentModel;
+import org.alfresco.service.cmr.dictionary.DictionaryService;
+import org.alfresco.service.namespace.QName;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.extensions.webscripts.Cache;
+import org.springframework.extensions.webscripts.DeclarativeWebScript;
+import org.springframework.extensions.webscripts.Status;
+import org.springframework.extensions.webscripts.WebScriptRequest;
+
+import java.util.*;
+
+public class ListContentTypesGet extends DeclarativeWebScript {
+ private static final Logger logger = LoggerFactory.getLogger(ListContentTypesGet.class);
+
+ private DictionaryService dictionaryService;
+
+ public void setDictionaryService(DictionaryService dictionaryService) { this.dictionaryService = dictionaryService;}
+
+ @Override
+ protected Map executeImpl(WebScriptRequest req, Status status, Cache cache) {
+ logger.debug("ListContentTypesGet.execute()");
+
+ Map model = new HashMap<>();
+
+ Collection subtypes =
+ dictionaryService.getSubTypes(ContentModel.TYPE_CONTENT, true);
+
+ List typesCollection = new ArrayList<>();
+ for (QName subtype : subtypes) {
+ typesCollection.add(subtype.getPrefixString());
+ }
+ Collections.sort(typesCollection);
+
+ model.put("types", typesCollection.toArray());
+
+ logger.debug("END ListContentTypesGet.execute()");
+ return model;
+ }
+}
diff --git a/repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/allowed-content-types.get.desc.xml b/uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/allowed-content-types.get.desc.xml
similarity index 80%
rename from repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/allowed-content-types.get.desc.xml
rename to uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/allowed-content-types.get.desc.xml
index c94c170..364ab9a 100644
--- a/repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/allowed-content-types.get.desc.xml
+++ b/uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/allowed-content-types.get.desc.xml
@@ -5,6 +5,5 @@
/uploader-plus/allowed-content-types?siteid={siteid}&containerid={containerid}&path={path}/uploader-plus/allowed-content-types?destination={destination}extension
- user
- required
+ user
diff --git a/repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/allowed-content-types.get.js b/uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/allowed-content-types.get.js
similarity index 100%
rename from repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/allowed-content-types.get.js
rename to uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/allowed-content-types.get.js
diff --git a/repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/allowed-content-types.get.json.ftl b/uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/allowed-content-types.get.json.ftl
similarity index 100%
rename from repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/allowed-content-types.get.json.ftl
rename to uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/allowed-content-types.get.json.ftl
diff --git a/repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/list-content-types.get.config.xml b/uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/list-content-types.get.config.xml
similarity index 100%
rename from repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/list-content-types.get.config.xml
rename to uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/list-content-types.get.config.xml
diff --git a/repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/list-content-types.get.desc.xml b/uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/list-content-types.get.desc.xml
similarity index 100%
rename from repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/list-content-types.get.desc.xml
rename to uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/list-content-types.get.desc.xml
diff --git a/repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/list-content-types.get.js b/uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/list-content-types.get.js
similarity index 100%
rename from repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/list-content-types.get.js
rename to uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/list-content-types.get.js
diff --git a/repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/list-content-types.get.json.ftl b/uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/list-content-types.get.json.ftl
similarity index 100%
rename from repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/list-content-types.get.json.ftl
rename to uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/list-content-types.get.json.ftl
diff --git a/repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/upload-folders-list.get.desc.xml b/uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/upload-folders-list.get.desc.xml
similarity index 100%
rename from repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/upload-folders-list.get.desc.xml
rename to uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/upload-folders-list.get.desc.xml
diff --git a/repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/upload-folders-list.get.js b/uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/upload-folders-list.get.js
similarity index 100%
rename from repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/upload-folders-list.get.js
rename to uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/upload-folders-list.get.js
diff --git a/repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/upload-folders-list.get.json.ftl b/uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/upload-folders-list.get.json.ftl
similarity index 100%
rename from repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/upload-folders-list.get.json.ftl
rename to uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/upload-folders-list.get.json.ftl
diff --git a/repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/upload-folders-new.post.desc.xml b/uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/upload-folders-new.post.desc.xml
similarity index 100%
rename from repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/upload-folders-new.post.desc.xml
rename to uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/upload-folders-new.post.desc.xml
diff --git a/repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/upload-folders-new.post.js b/uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/upload-folders-new.post.js
similarity index 100%
rename from repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/upload-folders-new.post.js
rename to uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/upload-folders-new.post.js
diff --git a/repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/upload-folders-new.post.json.ftl b/uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/upload-folders-new.post.json.ftl
similarity index 100%
rename from repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/upload-folders-new.post.json.ftl
rename to uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/upload-folders-new.post.json.ftl
diff --git a/repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/upload.post.desc.xml b/uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/upload.post.desc.xml
similarity index 100%
rename from repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/upload.post.desc.xml
rename to uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/upload.post.desc.xml
diff --git a/repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/upload.post.html.ftl b/uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/upload.post.html.ftl
similarity index 100%
rename from repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/upload.post.html.ftl
rename to uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/upload.post.html.ftl
diff --git a/repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/upload.post.html.status.ftl b/uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/upload.post.html.status.ftl
similarity index 100%
rename from repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/upload.post.html.status.ftl
rename to uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/upload.post.html.status.ftl
diff --git a/repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/upload.post.js b/uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/upload.post.js
similarity index 87%
rename from repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/upload.post.js
rename to uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/upload.post.js
index af34a2d..b8c5007 100644
--- a/repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/upload.post.js
+++ b/uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/upload.post.js
@@ -5,10 +5,12 @@
function uploaderPlusMain()
{
- var repoFormData, fnFieldValue, idx, max, field, fieldName, value;
+ var repoFormData, fnFieldValue, idx, max, field, fieldName, value, name, destNode;
repoFormData = new Packages.org.alfresco.repo.forms.FormData();
-
+ if(logger.isLoggingEnabled()) {
+ logger.log("[Uploader plus] - uploaderPlusMain started..");
+ }
try {
// Prevents Flash- and IE8-sourced "null" values being set for those parameters where they are invalid.
@@ -22,7 +24,7 @@ function uploaderPlusMain()
{
field = formdata.fields[idx];
fieldName = String(field.name);
-
+
switch (fieldName.toLowerCase())
{
case "filename":
@@ -31,7 +33,6 @@ function uploaderPlusMain()
case "containerid":
case "destination":
case "uploaddirectory":
- case "createdirectory":
case "updatenoderef":
case "description":
case "contenttype":
@@ -40,6 +41,8 @@ function uploaderPlusMain()
case "overwrite":
case "thumbnails":
case "updatenameandmimetype":
+ case "prop_cm_name":
+ case "createdirectory":
// ignore all special upload fields
break;
case "alf_redirect":
@@ -55,6 +58,9 @@ function uploaderPlusMain()
}
}
}
+ if(logger.isLoggingEnabled()) {
+ logger.log("[Uploader plus] - Saving form, repoFormData: "+repoFormData);
+ }
formService.saveForm("node", model.document.nodeRef, repoFormData);
}
@@ -69,7 +75,7 @@ function uploaderPlusMain()
}
else {
e.code = 500;
- e.message = "Unexpected error occurred during upload of new content.";
+ e.message = "[Uploader plus] - Unexpected error occurred during upload of new content!";
}
throw e;
}
diff --git a/repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/upload.post.json.ftl b/uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/upload.post.json.ftl
similarity index 100%
rename from repo/src/main/amp/config/alfresco/templates/webscripts/com/softwareloop/uploader-plus/upload.post.json.ftl
rename to uploader-plus-platform/src/main/resources/alfresco/extension/templates/webscripts/com/softwareloop/uploader-plus/upload.post.json.ftl
diff --git a/repo/src/main/amp/config/alfresco/module/uploader-plus-repo/alfresco-global.properties b/uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/alfresco-global.properties
similarity index 62%
rename from repo/src/main/amp/config/alfresco/module/uploader-plus-repo/alfresco-global.properties
rename to uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/alfresco-global.properties
index 90cda7d..f566f22 100644
--- a/repo/src/main/amp/config/alfresco/module/uploader-plus-repo/alfresco-global.properties
+++ b/uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/alfresco-global.properties
@@ -1,5 +1,5 @@
-## This Alfresco Repo Configuration file should be used for custom properties that are introduced by this module.
+## This Alfresco Platform Configuration file should be used for custom properties that are introduced by this module.
## Define default values for all properties here.
## System Administrators can override these values in environment specific configurations in
## alfresco/tomcat/shared/classes/alfresco-global.properties.
-##
\ No newline at end of file
+##
diff --git a/uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/context/bootstrap-context.xml b/uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/context/bootstrap-context.xml
new file mode 100644
index 0000000..262e653
--- /dev/null
+++ b/uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/context/bootstrap-context.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+ alfresco/module/${project.artifactId}/model/uploader-plus-model.xml
+
+
+
+
+
+ alfresco/module/${project.artifactId}/messages/uploader-plus
+
+
+
+
diff --git a/uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/context/service-context.xml b/uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/context/service-context.xml
new file mode 100644
index 0000000..3054fda
--- /dev/null
+++ b/uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/context/service-context.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
diff --git a/repo/src/main/amp/config/alfresco/module/uploader-plus-repo/context/webscript-context.xml b/uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/context/webscript-context.xml
similarity index 62%
rename from repo/src/main/amp/config/alfresco/module/uploader-plus-repo/context/webscript-context.xml
rename to uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/context/webscript-context.xml
index 1b52cec..c91f75e 100644
--- a/repo/src/main/amp/config/alfresco/module/uploader-plus-repo/context/webscript-context.xml
+++ b/uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/context/webscript-context.xml
@@ -1,5 +1,4 @@
-
-
-
-
-
+
+
+
+
diff --git a/uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/log4j2.properties b/uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/log4j2.properties
new file mode 100644
index 0000000..5bb2a36
--- /dev/null
+++ b/uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/log4j2.properties
@@ -0,0 +1 @@
+# Add here module-specific custom log4j2.properties configuration
\ No newline at end of file
diff --git a/repo/src/main/amp/config/alfresco/module/uploader-plus-repo/messages/uploader-plus.properties b/uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/messages/uploader-plus.properties
similarity index 100%
rename from repo/src/main/amp/config/alfresco/module/uploader-plus-repo/messages/uploader-plus.properties
rename to uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/messages/uploader-plus.properties
diff --git a/repo/src/main/amp/config/alfresco/module/uploader-plus-repo/messages/uploader-plus_de.properties b/uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/messages/uploader-plus_de.properties
similarity index 100%
rename from repo/src/main/amp/config/alfresco/module/uploader-plus-repo/messages/uploader-plus_de.properties
rename to uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/messages/uploader-plus_de.properties
diff --git a/repo/src/main/amp/config/alfresco/module/uploader-plus-repo/messages/uploader-plus_es.properties b/uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/messages/uploader-plus_es.properties
similarity index 100%
rename from repo/src/main/amp/config/alfresco/module/uploader-plus-repo/messages/uploader-plus_es.properties
rename to uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/messages/uploader-plus_es.properties
diff --git a/repo/src/main/amp/config/alfresco/module/uploader-plus-repo/messages/uploader-plus_it.properties b/uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/messages/uploader-plus_it.properties
similarity index 100%
rename from repo/src/main/amp/config/alfresco/module/uploader-plus-repo/messages/uploader-plus_it.properties
rename to uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/messages/uploader-plus_it.properties
diff --git a/repo/src/main/amp/config/alfresco/module/uploader-plus-repo/messages/uploader-plus_nl.properties b/uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/messages/uploader-plus_nl.properties
similarity index 100%
rename from repo/src/main/amp/config/alfresco/module/uploader-plus-repo/messages/uploader-plus_nl.properties
rename to uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/messages/uploader-plus_nl.properties
diff --git a/repo/src/main/amp/config/alfresco/module/uploader-plus-repo/messages/uploader-plus_pt_BR.properties b/uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/messages/uploader-plus_pt_BR.properties
similarity index 100%
rename from repo/src/main/amp/config/alfresco/module/uploader-plus-repo/messages/uploader-plus_pt_BR.properties
rename to uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/messages/uploader-plus_pt_BR.properties
diff --git a/repo/src/main/amp/config/alfresco/module/uploader-plus-repo/messages/uploader-plus_ru.properties b/uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/messages/uploader-plus_ru.properties
similarity index 100%
rename from repo/src/main/amp/config/alfresco/module/uploader-plus-repo/messages/uploader-plus_ru.properties
rename to uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/messages/uploader-plus_ru.properties
diff --git a/repo/src/main/amp/config/alfresco/module/uploader-plus-repo/model/uploader-plus-model.xml b/uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/model/uploader-plus-model.xml
similarity index 100%
rename from repo/src/main/amp/config/alfresco/module/uploader-plus-repo/model/uploader-plus-model.xml
rename to uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/model/uploader-plus-model.xml
diff --git a/repo/src/main/amp/config/alfresco/module/uploader-plus-repo/module-context.xml b/uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/module-context.xml
similarity index 57%
rename from repo/src/main/amp/config/alfresco/module/uploader-plus-repo/module-context.xml
rename to uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/module-context.xml
index 7fb56e5..ef2fa26 100644
--- a/repo/src/main/amp/config/alfresco/module/uploader-plus-repo/module-context.xml
+++ b/uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/module-context.xml
@@ -15,11 +15,18 @@
limitations under the License.
-->
-
-
+
+
+
+
diff --git a/repo/src/main/amp/module.properties b/uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/module.properties
similarity index 95%
rename from repo/src/main/amp/module.properties
rename to uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/module.properties
index 0e5c045..1027062 100644
--- a/repo/src/main/amp/module.properties
+++ b/uploader-plus-platform/src/main/resources/alfresco/module/uploader-plus-platform/module.properties
@@ -1,48 +1,48 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-
-# SDK Sample module
-
-# ==== Beginning of Alfresco required/optional properties ====== #
-# NB: These properties are filtered at build time by Maven, single
-# sourcing from POM properties
-module.id=${project.artifactId}
-#module.aliases=myModule-123, my-module
-module.title=${project.name}
-module.description=${project.description}
-module.version=${noSnapshotVersion}
-
-# The following optional properties can be used to prevent the module from being added
-# to inappropriate versions of the WAR file.
-# module.repo.version.min=2.0
-# module.repo.version.max=2.1
-
-# FIXME: This dependencies should come out of mvn dependencies on amp
-
-# The following describe dependencies on other modules
-# Depends on net.sf.myproject.module.SupportModuleA version ${version} or later
-# module.depends.net.sf.myproject.module.SupportModuleA=${version}-*
-# Depends on net.sf.myproject.module.SupportModuleA version ${version} to 2.0
-# module.depends.net.sf.myproject.module.SupportModuleB=${version}-2.0
-# Depends on net.sf.myproject.module.SupportModuleC - any version
-# module.depends.net.sf.myproject.module.SupportModuleB=*
-
-
-# ==== End of Alfresco required/optional properties ======= #
-
-
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+
+# SDK Sample module
+
+# ==== Beginning of Alfresco required/optional properties ====== #
+# NB: These properties are filtered at build time by Maven, single
+# sourcing from POM properties
+module.id=${project.artifactId}
+#module.aliases=myModule-123, my-module
+module.title=${project.name}
+module.description=${project.description}
+module.version=${project.version}
+
+# The following optional properties can be used to prevent the module from being added
+# to inappropriate versions of the WAR file.
+# module.repo.version.min=2.0
+# module.repo.version.max=2.1
+
+# FIXME: This dependencies should come out of mvn dependencies on amp
+
+# The following describe dependencies on other modules
+# Depends on net.sf.myproject.module.SupportModuleA version ${version} or later
+# module.depends.net.sf.myproject.module.SupportModuleA=${version}-*
+# Depends on net.sf.myproject.module.SupportModuleA version ${version} to 2.0
+# module.depends.net.sf.myproject.module.SupportModuleB=${version}-2.0
+# Depends on net.sf.myproject.module.SupportModuleC - any version
+# module.depends.net.sf.myproject.module.SupportModuleB=*
+
+
+# ==== End of Alfresco required/optional properties ======= #
+
+
# ==== Beginning of module required properties/optional ====== #
\ No newline at end of file
diff --git a/uploader-plus-share-docker/pom.xml b/uploader-plus-share-docker/pom.xml
new file mode 100644
index 0000000..c206729
--- /dev/null
+++ b/uploader-plus-share-docker/pom.xml
@@ -0,0 +1,73 @@
+
+
+ 4.0.0
+ uploader-plus-share-docker
+ Alfresco Share Docker Module
+ Share Docker Module to generate the final Docker image
+ jar
+
+
+ com.softwareloop
+ uploader-plus
+ 2.0
+
+
+
+
+
+
+
+ com.softwareloop
+ uploader-plus-share
+ 2.0
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+
+
+
+ collect-extensions
+ package
+
+ copy-dependencies
+
+
+ ${project.build.directory}/extensions
+ runtime
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-resources-plugin
+
+
+ copy-and-filter-docker-resources
+ validate
+
+ copy-resources
+
+
+ ${project.build.directory}
+
+
+ src/main/docker
+ true
+
+
+
+
+
+
+
+
+
diff --git a/uploader-plus-share-docker/src/main/docker/Dockerfile b/uploader-plus-share-docker/src/main/docker/Dockerfile
new file mode 100644
index 0000000..0865b17
--- /dev/null
+++ b/uploader-plus-share-docker/src/main/docker/Dockerfile
@@ -0,0 +1,16 @@
+FROM ${docker.share.image}:${alfresco.share.docker.version}
+
+ARG TOMCAT_DIR=/usr/local/tomcat
+
+# Copy Dockerfile to avoid an error if no JARs exist
+COPY Dockerfile extensions/*.jar $TOMCAT_DIR/webapps/share/WEB-INF/lib/
+
+# Copy Dockerfile to avoid an error if no AMPs exist
+COPY Dockerfile extensions/*.amp $TOMCAT_DIR/amps_share/
+RUN java -jar $TOMCAT_DIR/alfresco-mmt/alfresco-mmt*.jar install \
+ $TOMCAT_DIR/amps_share $TOMCAT_DIR/webapps/share -directory -nobackup -force
+
+COPY share-config-custom.xml $TOMCAT_DIR/shared/classes/alfresco/web-extension
+
+COPY log4j2.properties $TOMCAT_DIR/webapps/share/WEB-INF/classes
+COPY hotswap-agent.properties $TOMCAT_DIR/webapps/share/WEB-INF/classes
diff --git a/uploader-plus-share-docker/src/main/docker/hotswap-agent.properties b/uploader-plus-share-docker/src/main/docker/hotswap-agent.properties
new file mode 100644
index 0000000..4af2aa0
--- /dev/null
+++ b/uploader-plus-share-docker/src/main/docker/hotswap-agent.properties
@@ -0,0 +1,49 @@
+# Enable hotswap so that changes in this module will be automatically reloaded
+# Watch for changed class files on watchResources path and reload class definition in the running application.
+autoHotswap=true
+#autoHotswap.port=8000
+
+# Add a directory prior to application classpath (load classes and resources).
+#
+# This may be useful for example in multi module maven project to load class changes from upstream project
+# classes. Set extraClasspath to upstream project compiler output and .class file will have precedence to
+# classes from built JAR file.
+# i.e. monitor /target/classes
+# should work with extraClasspath=${project.build.outputDirectory}
+# If not try
+extraClasspath=/usr/local/tomcat/hotswap-agent
+
+
+# Comma separated list of disabled plugins
+# Use plugin name - e.g.
+# Hotswapper, AnonymousClassPatch, WatchResources, Hibernate, Spring, Jersey2, Jetty, Tomcat,
+# ZK, Logback, JSF, Seam, ELResolver, OsgiEquinox, Proxy, WebObjects, Weld, JBossModules, Resteasy, Gae
+disabledPlugins=Hibernate,Spring
+
+# Add a directory prior to webapp path (load webapp resources).
+#
+# Load web application resources (such as HTML, JSP, CSS, ...) from this directory prior to default processing.
+# Use this setting to set to serve resources from source directory directly (e.g. src/main/webapp).
+extraWebappContext=/usr/local/tomcat/hotswap-agent/uploader-plus-share/target/classes/META-INF/resources;
+
+# Load static web resources from different directory.
+#
+# This setting is dependent on application server plugin(Jetty, Tomcat, JBoss, ...)
+webappDir=/usr/local/tomcat/hotswap-agent/uploader-plus-share/target/classes/META-INF/resources;
+
+# Watch for changes in a directory (resources only).
+#
+# Similar to extraClasspath this property adds classpath when searching for resources (not classes).
+# While extra classpath just modifies the classloader, this setting does nothing until the resource
+# is really changed.
+#
+# Sometimes it is not possible to point extraClasspath to your i.e. src/main/resources, because there are multiple
+# replacements of resources in a building step (maven filtering resource option).
+# This setting will leave i.e. src/target/classes as default source for resources, but after the resource is modified
+# in src/main/resources, the new changed resource is served instead.
+# watchResources=
+
+LOGGER.org.hotswap.agent=DEBUG
+#LOGGER.org.hotswap.agent.plugin=TRACE
+#LOGGER.org.hotswap.agent.watch=TRACE
+#LOGGER.org.hotswap.agent.command=TRACE
\ No newline at end of file
diff --git a/uploader-plus-share-docker/src/main/docker/log4j2.properties b/uploader-plus-share-docker/src/main/docker/log4j2.properties
new file mode 100644
index 0000000..21142f5
--- /dev/null
+++ b/uploader-plus-share-docker/src/main/docker/log4j2.properties
@@ -0,0 +1,86 @@
+# Set root logger level to error
+#log4j.rootLogger=error, Console, File
+rootLogger.level=error
+rootLogger.appenderRef.stdout.ref=ConsoleAppender
+rootLogger.appenderRef.rolling.ref=RollingAppender
+
+# Console appender definition #
+
+# All outputs currently set to be a ConsoleAppender.
+appender.console.type=Console
+appender.console.name=ConsoleAppender
+appender.console.layout.type=PatternLayout
+appender.console.layout.pattern=%d{ISO8601} %x %-5p [%c{3}] [%t] %replace{%m}{[\r\n]+}{}%n
+
+# use log4j NDC to replace %x with tenant domain / username
+appender.console.layout.pattern=%d{ISO8601} %x %-5p [%c{3}] [%t] %replace{%m}{[\r\n]+}{}%n
+
+# File appender definition #
+appender.rolling.type=RollingFile
+appender.rolling.name=RollingAppender
+appender.rolling.fileName=alfresco.log
+appender.rolling.filePattern=alfresco.log.%d{yyyy-MM-dd}
+appender.rolling.layout.type=PatternLayout
+appender.rolling.layout.pattern=%d{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t] %replace{%m}{[\r\n]+}{}%n
+appender.rolling.policies.type = Policies
+appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
+appender.rolling.policies.time.interval = 1
+
+# Spring
+logger.springframework.name=org.springframework
+logger.springframework.level=warn
+
+# Turn off Spring remoting warnings that should really be info or debug.
+logger.springframework-remoting-support.name=org.springframework.remoting.support
+logger.springframework-remoting-support.level=error
+
+logger.springframework-util.name=org.springframework.util
+logger.springframework-util.level=error
+
+# MyFaces
+logger.apache-myfaces-util-DebugUtils.name=org.apache.myfaces.util.DebugUtils
+logger.apache-myfaces-util-DebugUtils.level=info
+
+logger.apache-myfaces-el-VariableResolverImpl.name=org.apache.myfaces.el.VariableResolverImpl
+logger.apache-myfaces-el-VariableResolverImpl.level=error
+
+logger.apache-myfaces-application-jsp-JspViewHandlerImpl.name=org.apache.myfaces.application.jsp.JspViewHandlerImpl
+logger.apache-myfaces-application-jsp-JspViewHandlerImpl.level=error
+
+logger.apache-myfaces-taglib.name=org.apache.myfaces.taglib
+logger.apache-myfaces-taglib.level=error
+
+# Alfresco
+logger.alfresco.name=org.alfresco
+logger.alfresco.level=error
+
+logger.alfresco-config.name=org.alfresco.config
+logger.alfresco-config.level=warn
+
+logger.alfresco-config-JndiObjectFactoryBean.name=org.alfresco.config.JndiObjectFactoryBean
+logger.alfresco-config-JndiObjectFactoryBean.level=warn
+
+logger.alfresco-web.name=org.alfresco.web
+logger.alfresco-web.level=info
+
+# Web Framework
+logger.springframework-extensions-webscripts.name=org.springframework.extensions.webscripts
+logger.springframework-extensions-webscripts.level=info
+
+logger.springframework-extensions-webscripts-ScriptLogger.name=org.springframework.extensions.webscripts.ScriptLogger
+logger.springframework-extensions-webscripts-ScriptLogger.level=warn
+
+logger.springframework-extensions-webscripts-ScriptDebugger.name=org.springframework.extensions.webscripts.ScriptDebugger
+logger.springframework-extensions-webscripts-ScriptDebugger.level=off
+
+# Freemarker
+# Note the freemarker.runtime logger is used to log non-fatal errors that are handled by Alfresco's retrying transaction handler
+logger.freemarker-runtime.name=freemarker.runtime
+logger.freemarker-runtime.level=
+
+#-----------------------------------------------------------------------
+# Custom Share module logging goes here...
+#-----------------------------------------------------------------------
+
+
+
diff --git a/surf/src/test/resources/alfresco/web-extension/share-config-custom.xml b/uploader-plus-share-docker/src/main/docker/share-config-custom.xml
similarity index 77%
rename from surf/src/test/resources/alfresco/web-extension/share-config-custom.xml
rename to uploader-plus-share-docker/src/main/docker/share-config-custom.xml
index 203f37a..dafd792 100644
--- a/surf/src/test/resources/alfresco/web-extension/share-config-custom.xml
+++ b/uploader-plus-share-docker/src/main/docker/share-config-custom.xml
@@ -21,6 +21,7 @@
+
@@ -38,12 +39,13 @@
-
+
+
+
+
+ ${alfresco.groupId}
+ share
+ classes
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+
+
+
diff --git a/uploader-plus-share/src/main/assembly/amp.xml b/uploader-plus-share/src/main/assembly/amp.xml
new file mode 100644
index 0000000..eaa8613
--- /dev/null
+++ b/uploader-plus-share/src/main/assembly/amp.xml
@@ -0,0 +1,66 @@
+
+
+
+
+ build-amp-file
+
+
+ amp
+
+
+ false
+
+
+
+
+ src/main/resources/alfresco/module/${project.artifactId}/module.properties
+ true
+
+
+
+ src/main/assembly/file-mapping.properties
+ false
+
+
+
+ src/main/resources/alfresco/module/${project.artifactId}/log4j2.properties
+ false
+
+
+
+
+
+
+ src/main/assembly/web
+ web
+ true
+
+ README.md
+
+
+
+
+
+
+
+ lib
+
+
+
+
\ No newline at end of file
diff --git a/uploader-plus-share/src/main/assembly/file-mapping.properties b/uploader-plus-share/src/main/assembly/file-mapping.properties
new file mode 100644
index 0000000..501b3d6
--- /dev/null
+++ b/uploader-plus-share/src/main/assembly/file-mapping.properties
@@ -0,0 +1,27 @@
+# Custom AMP to WAR location mappings
+
+#
+# The following property can be used to include the standard set of mappings.
+# The contents of this file will override any defaults. The default is
+# 'true', i.e. the default mappings will be augmented or modified by values in
+# this file.
+#
+# Default mappings are:
+#
+# /config=/WEB-INF/classes
+# /lib=/WEB-INF/lib
+# /licenses=/WEB-INF/licenses
+# /web/jsp=/jsp
+# /web/css=/css
+# /web/images=/images
+# /web/scripts=/scripts
+# /web/php=/php
+#
+include.default=true
+
+#
+# Custom mappings. If 'include.default' is false, then this is the complete set.
+# Map /web to / in AMP so we can override things like favicon.ico
+#
+/web=/
+
diff --git a/uploader-plus-share/src/main/assembly/web/README.md b/uploader-plus-share/src/main/assembly/web/README.md
new file mode 100644
index 0000000..0901911
--- /dev/null
+++ b/uploader-plus-share/src/main/assembly/web/README.md
@@ -0,0 +1,22 @@
+# Web resources that should override out-of-the-box files
+
+Put here any web resources that should override out-of-the-box
+web resources, such as favicon.ico. They will then end up in the
+*/web* directory in the AMP, and applied to the WAR, and override
+any existing web resources in the Share.WAR.
+
+**Note**. Module dependency needs to be set to amp for the web resources to be applied by MMT:
+
+`
+
+ ${project.groupId}
+ some-share
+ ${project.version}
+ amp
+
+`
+
+**Important**. New web resources should not be located here, but instead
+ in the usual place in the *src/main/resources/META-INF/resources//* directory.
+
+
diff --git a/surf/src/main/amp/web/components/uploader-plus/css/uploader-plus-admin.css b/uploader-plus-share/src/main/resources/META-INF/components/uploader-plus/css/uploader-plus-admin.css
similarity index 100%
rename from surf/src/main/amp/web/components/uploader-plus/css/uploader-plus-admin.css
rename to uploader-plus-share/src/main/resources/META-INF/components/uploader-plus/css/uploader-plus-admin.css
diff --git a/surf/src/main/amp/web/components/uploader-plus/css/uploader-plus.css b/uploader-plus-share/src/main/resources/META-INF/components/uploader-plus/css/uploader-plus.css
similarity index 100%
rename from surf/src/main/amp/web/components/uploader-plus/css/uploader-plus.css
rename to uploader-plus-share/src/main/resources/META-INF/components/uploader-plus/css/uploader-plus.css
diff --git a/surf/src/main/amp/web/components/uploader-plus/js/common.js b/uploader-plus-share/src/main/resources/META-INF/components/uploader-plus/js/common.js
similarity index 100%
rename from surf/src/main/amp/web/components/uploader-plus/js/common.js
rename to uploader-plus-share/src/main/resources/META-INF/components/uploader-plus/js/common.js
diff --git a/uploader-plus-share/src/main/resources/META-INF/components/uploader-plus/js/common.min.js b/uploader-plus-share/src/main/resources/META-INF/components/uploader-plus/js/common.min.js
new file mode 100644
index 0000000..1281e7d
--- /dev/null
+++ b/uploader-plus-share/src/main/resources/META-INF/components/uploader-plus/js/common.min.js
@@ -0,0 +1,3 @@
+'use strict';var SoftwareLoop=SoftwareLoop||{hitch:function(b,a){return function(){a.apply(b,arguments)}},printStackTrace:function(b){Alfresco.logger.debug("printStackTrace",arguments);var a;b.stack&&(a=b.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.\s*\(/gm,"{anonymous}()@").split("\n"));console.log(b.message,a)},fireEvent:function(b,a,c,e){Alfresco.logger.debug("fireEvent",arguments);"undefined"===typeof c&&(Alfresco.logger.debug("Setting canBubble to default"),
+c=!0);"undefined"===typeof e&&(Alfresco.logger.debug("Setting cancelable to default"),e=!0);if(document.createEvent){Alfresco.logger.debug("document.createEvent available");var d=document.createEvent("HTMLEvents");d.initEvent(a,c,e);return b.dispatchEvent(d)}Alfresco.logger.debug("document.createEvent not available");d=document.createEventObject();return b.fireEvent("on"+a,d)}};
+Array.prototype.indexOf||(Array.prototype.indexOf=function(b,a){a=a||0;for(var c=this.length;a 0)
- )) {
-
+ (current != "prop_mimetype" ||
+ (current == "prop_mimetype" && YAHOO.lang.isString(fileInfo.propertyData[current]) && fileInfo.propertyData[current].length > 0)
+ )) {
+
Alfresco.logger.debug("Appending", current);
formData.append(current, fileInfo.propertyData[current]);
}
@@ -228,27 +226,10 @@
Alfresco.logger.debug("formData:", formData);
// END: uploader-plus customisations
- fileInfo.request.open("POST", url, true);
+ fileInfo.request.open("POST", url, true);
fileInfo.request.send(formData);
- fileInfo.request.onreadystatechange = function() {
- if (this.status === 401)
- {
- var redirect = this.getResponseHeader["Location"];
- if (redirect)
- {
- window.location.href = window.location.protocol + "//" + window.location.host + redirect;
- return;
- }
- else
- {
- window.location.reload(true);
- return;
- }
- }
- };
}
- else if (this.uploadMethod === this.INMEMORY_UPLOAD)
- {
+ else if (this.uploadMethod === this.INMEMORY_UPLOAD) {
Alfresco.logger.debug("Using custom multipart upload");
// PLEASE NOTE: Be *VERY* careful modifying the following code, this carefully constructs a multipart formatted request...
@@ -265,12 +246,10 @@
customFormData += rn + "Content-Disposition: form-data; name=\"filename\"";
customFormData += rn + rn + unescape(encodeURIComponent(fileInfo.uploadData.filename)) + rn + "--" + multipartBoundary;
customFormData += rn + "Content-Disposition: form-data; name=\"destination\"";
- if (fileInfo.uploadData.destination !== null)
- {
+ if (fileInfo.uploadData.destination !== null) {
customFormData += rn + rn + unescape(encodeURIComponent(fileInfo.uploadData.destination)) + rn + "--" + multipartBoundary;
}
- else
- {
+ else {
customFormData += rn + rn + rn + "--" + multipartBoundary;
}
customFormData += rn + "Content-Disposition: form-data; name=\"siteId\"";
@@ -281,28 +260,23 @@
customFormData += rn + rn + unescape(encodeURIComponent(fileInfo.uploadData.uploaddirectory)) + rn + "--" + multipartBoundary + "--";
customFormData += rn + "Content-Disposition: form-data; name=\"majorVersion\"";
customFormData += rn + rn + unescape(encodeURIComponent(fileInfo.uploadData.majorVersion)) + rn + "--" + multipartBoundary + "--";
- if (fileInfo.uploadData.updateNodeRef)
- {
+ if (fileInfo.uploadData.updateNodeRef) {
customFormData += rn + "Content-Disposition: form-data; name=\"updateNodeRef\"";
customFormData += rn + rn + unescape(encodeURIComponent(fileInfo.uploadData.updateNodeRef)) + rn + "--" + multipartBoundary + "--";
}
- if (fileInfo.uploadData.description)
- {
+ if (fileInfo.uploadData.description) {
customFormData += rn + "Content-Disposition: form-data; name=\"description\"";
customFormData += rn + rn + unescape(encodeURIComponent(fileInfo.uploadData.description)) + rn + "--" + multipartBoundary + "--";
}
- if (fileInfo.uploadData.username)
- {
+ if (fileInfo.uploadData.username) {
customFormData += rn + "Content-Disposition: form-data; name=\"username\"";
customFormData += rn + rn + unescape(encodeURIComponent(fileInfo.uploadData.username)) + rn + "--" + multipartBoundary + "--";
}
- if (fileInfo.uploadData.overwrite)
- {
+ if (fileInfo.uploadData.overwrite) {
customFormData += rn + "Content-Disposition: form-data; name=\"overwrite\"";
customFormData += rn + rn + unescape(encodeURIComponent(fileInfo.uploadData.overwrite)) + rn + "--" + multipartBoundary + "--";
}
- if (fileInfo.uploadData.thumbnails)
- {
+ if (fileInfo.uploadData.thumbnails) {
customFormData += rn + "Content-Disposition: form-data; name=\"thumbnails\"";
customFormData += rn + rn + unescape(encodeURIComponent(fileInfo.uploadData.thumbnails)) + rn + "--" + multipartBoundary + "--";
}
@@ -315,10 +289,10 @@
if (fileInfo.propertyData) {
for (var current in fileInfo.propertyData) {
if (fileInfo.propertyData.hasOwnProperty(current) &&
- (current != "prop_mimetype" ||
- (current == "prop_mimetype" && YAHOO.lang.isString(fileInfo.propertyData[current]) && fileInfo.propertyData[current].length > 0)
- )) {
-
+ (current != "prop_mimetype" ||
+ (current == "prop_mimetype" && YAHOO.lang.isString(fileInfo.propertyData[current]) && fileInfo.propertyData[current].length > 0)
+ )) {
+
customFormData += rn + "Content-Disposition: form-data; name=\"" + current + "\"";
customFormData += rn + rn + unescape(encodeURIComponent(fileInfo.propertyData[current])) + rn + "--" + multipartBoundary + "--";
}
@@ -326,12 +300,10 @@
}
// END: uploader-plus customisations
-
- fileInfo.request.open("POST", url, true);
+ fileInfo.request.open("POST", url, true);
fileInfo.request.setRequestHeader("Content-Type", "multipart/form-data; boundary=" + multipartBoundary);
fileInfo.request.sendAsBinary(customFormData);
}
}
-
}));
})();
diff --git a/uploader-plus-share/src/main/resources/META-INF/components/uploader-plus/js/dnd-upload-plus.min.js b/uploader-plus-share/src/main/resources/META-INF/components/uploader-plus/js/dnd-upload-plus.min.js
new file mode 100644
index 0000000..10ea12a
--- /dev/null
+++ b/uploader-plus-share/src/main/resources/META-INF/components/uploader-plus/js/dnd-upload-plus.min.js
@@ -0,0 +1,17 @@
+'use strict';(function(){Alfresco.logger.debug("dnd-upload-plus.js");SoftwareLoop.DNDUpload=function(a){SoftwareLoop.DNDUpload.superclass.constructor.call(this,"null");Alfresco.util.ComponentManager.unregister(this);this.id="undefined"==typeof a||null===a?Alfresco.util.generateDomId():a;this.name="SoftwareLoop.DNDUpload";Alfresco.util.ComponentManager.register(this);return this};YAHOO.lang.extend(SoftwareLoop.DNDUpload,Alfresco.DNDUpload,YAHOO.lang.merge(SoftwareLoop.UploaderPlusMixin,{spawnUploadsBooked:!1,
+savedDialogTitle:null,records:null,currentRecordIndex:-1,show:function(a){Alfresco.logger.debug("show",arguments);this.typesLoaded=!1;SoftwareLoop.DNDUpload.superclass.show.call(this,a);this.loadTypes(function(){Alfresco.logger.debug("loadTypes callback");this.populateSelect();this.spawnUploadsBooked&&(Alfresco.logger.debug("this.spawnUploadsBooked is true"),this.spawnUploadsBooked=!1,this._spawnUploads())},this);Alfresco.logger.debug("END show")},_spawnUploads:function(){Alfresco.logger.debug("_spawnUploads",
+arguments);if(this.typesLoaded){this.shouldUseSameMetadataSet||this.cleanupOldFormForNextUpload();if(this.showConfig.mode===this.MODE_SINGLE_UPDATE)return Alfresco.logger.debug("Single update"),SoftwareLoop.DNDUpload.superclass._spawnUploads.call(this);if(null==this.types)return Alfresco.logger.debug("Types is null"),SoftwareLoop.DNDUpload.superclass._spawnUploads.call(this);this.savedDialogTitle=YAHOO.util.Dom.get(this.id+"-title-span").innerText;this.records=this.dataTable.getRecordSet().getRecords();
+Alfresco.logger.debug("records",this.records);this.currentRecordIndex=0;this.showMetadataDialog();Alfresco.logger.debug("END _spawnUploads")}else Alfresco.logger.debug("Types not loaded yet. Postponing"),this.spawnUploadsBooked=!0},showMetadataDialog:function(){Alfresco.logger.debug("showMetadataDialog",arguments);if(this.currentRecordIndex==this.records.length)return Alfresco.logger.debug("At the end of the records array"),this.showMainDialog(),SoftwareLoop.DNDUpload.superclass._spawnUploads.apply(this);
+var a=this.records[this.currentRecordIndex].getData();if(this.fileStore[a.id].state!==this.STATE_ADDED)return Alfresco.logger.debug("State != STATE_ADDED"),SoftwareLoop.DNDUpload.superclass._spawnUploads.apply(this);YAHOO.util.Dom.get(this.id+"-title-span").innerText=Alfresco.util.encodeHTML(a.name);YAHOO.util.Dom.addClass(this.id+"-main-dialog","fake-hidden");YAHOO.util.Dom.removeClass(this.id+"-metadata-dialog","hidden");this.contentTypeSelectNode.selectedIndex=0;SoftwareLoop.fireEvent(this.contentTypeSelectNode,
+"change");Alfresco.logger.debug("END showMetadataDialog")},showMainDialog:function(){Alfresco.logger.debug("showMainDialog",arguments);null!=this.savedDialogTitle&&(Alfresco.logger.debug("Restore saved dialog title"),YAHOO.util.Dom.get(this.id+"-title-span").innerText=this.savedDialogTitle,this.savedDialogTitle=null);this.records=null;this.currentRecordIndex=-1;YAHOO.util.Dom.removeClass(this.id+"-main-dialog","fake-hidden");YAHOO.util.Dom.addClass(this.id+"-metadata-dialog","hidden");this.centerPanel();
+Alfresco.logger.debug("END showMainDialog")},_resetGUI:function(){Alfresco.logger.debug("_resetGUI",arguments);this.showMainDialog();SoftwareLoop.DNDUpload.superclass._resetGUI.apply(this,arguments);Alfresco.logger.debug("END _resetGUI")},onMetadataCancel:function(a){Alfresco.logger.debug("onMetadataCancel",arguments);this.showMainDialog();this.onCancelOkButtonClick(a);Alfresco.logger.debug("END onMetadataCancel")},_startUpload:function(a){Alfresco.logger.debug("_startUpload",arguments);a.state=this.STATE_UPLOADING;
+var e=null===this.showConfig.uploadURL?Alfresco.constants.PROXY_URI+"uploader-plus/upload":Alfresco.constants.PROXY_URI+this.showConfig.uploadURL;Alfresco.util.CSRFPolicy.isFilterEnabled()&&(e+="?"+Alfresco.util.CSRFPolicy.getParameter()+"="+encodeURIComponent(Alfresco.util.CSRFPolicy.getToken()));if(this.uploadMethod===this.FORMDATA_UPLOAD){Alfresco.logger.debug("Using FormData for file upload");var b=new FormData;b.append("filedata",a.uploadData.filedata);b.append("filename",a.uploadData.filename);
+b.append("destination",a.uploadData.destination);b.append("uploaddirectory",a.uploadData.uploaddirectory);b.append("createdirectory",a.uploadData.createdirectory?"true":"false");b.append("majorVersion",a.uploadData.majorVersion?"true":"false");b.append("username",a.uploadData.username);b.append("overwrite",a.uploadData.overwrite);b.append("thumbnails",a.uploadData.thumbnails);b.append("updatenameandmimetype",a.uploadData.updateNameAndMimetype);a.uploadData.updateNodeRef?b.append("updateNodeRef",a.uploadData.updateNodeRef):
+(b.append("siteId",a.uploadData.siteId),b.append("containerId",a.uploadData.containerId));a.uploadData.description&&b.append("description",a.uploadData.description);Alfresco.logger.debug("fileInfo",a);if(a.propertyData){a.propertyData.contentType&&(Alfresco.logger.debug("Appending content type",a.propertyData.contentType),b.append("contentType",a.propertyData.contentType));Alfresco.logger.debug("Processing propertyData");for(var d in a.propertyData)Alfresco.logger.debug("Current:",d),a.propertyData.hasOwnProperty(d)&&
+("prop_mimetype"!=d||"prop_mimetype"==d&&YAHOO.lang.isString(a.propertyData[d])&&0{text}",{href:Alfresco.util.encodeHTML(f),title:this.msg("open.in.repository"),
+text:Alfresco.util.encodeHTML(c)});Alfresco.logger.debug("END pathFormatter")},allowedTypesFormatter:function(b,a,d,e){Alfresco.logger.debug("allowedTypesFormatter",arguments);for(var c="",f=0;f"+this.msg("button.edit")+" | "+this.msg("button.delete")+"";Alfresco.logger.debug("END actionFormatter")},setupDataTable:function(){Alfresco.logger.debug("setupDataTable",arguments);var b=[{key:"path",label:this.msg("title.path"),sortable:!1,formatter:SoftwareLoop.hitch(this,this.pathFormatter)},{key:"allowedTypes",label:this.msg("title.allowed.types"),
+sortable:!1,formatter:SoftwareLoop.hitch(this,this.allowedTypesFormatter)},{key:"actions",label:this.msg("title.actions"),sortable:!1,formatter:SoftwareLoop.hitch(this,this.actionFormatter)}],a=this.widgets.dataSource=new YAHOO.util.DataSource(this.uploadFoldersListUrl,{responseType:YAHOO.util.DataSource.TYPE_JSON,connXhrMode:"queueRequests",responseSchema:{resultsList:"results",fields:["path","nodeRef","allowedTypes"]}});b=this.widgets.dataTable=new YAHOO.widget.DataTable(this.id+"-folders",b,a,
+{initialLoad:{},MSG_LOADING:this.msg("loading.folders"),MSG_EMPTY:this.msg("no.folders.found")});b.subscribe("rowMouseoverEvent",b.onEventHighlightRow);b.subscribe("rowMouseoutEvent",b.onEventUnhighlightRow);YAHOO.util.Event.delegate(this.id,"click",SoftwareLoop.hitch(this,this.editUploadFolderHandler),"a.edit-upload-folder");YAHOO.util.Event.delegate(this.id,"click",SoftwareLoop.hitch(this,this.deleteUploadFolderHandler),"a.delete-upload-folder");Alfresco.logger.debug("END setupDataTable")},setupNewUploadFolderButton:function(){Alfresco.logger.debug("setupNewUploadFolderButton",
+arguments);this.widgets.newUploadFolderButton=new YAHOO.widget.Button(this.id+"-new-upload-folder");this.widgets.newUploadFolderButton.on("click",function(){this.promptForFolder()},null,this);Alfresco.logger.debug("END setupNewUploadFolderButton")},promptForFolder:function(){Alfresco.logger.debug("promptForFolder",arguments);var b=new Alfresco.module.DoclibGlobalFolder(this.id+"-new-form"),a=Alfresco.module.DoclibGlobalFolder;b.setOptions({viewMode:a.VIEW_MODE_SITE,defaultViewMode:a.VIEW_MODE_SITE,
+allowedViewModes:[a.VIEW_MODE_SITE,a.VIEW_MODE_REPOSITORY,a.VIEW_MODE_SHARED,a.VIEW_MODE_USERHOME],title:this.msg("select.the.upload.folder")});var d=this;b.onOK=function(){Alfresco.logger.debug("onOK callback");Alfresco.module.DoclibGlobalFolder.prototype.onOK.apply(this,arguments);this.selectedNode&&(Alfresco.logger.debug("A node was selected",this.selectedNode),d.createUploadFolder(this.selectedNode.data.nodeRef))};b.showDialog();Alfresco.logger.debug("END promptForFolder")},createUploadFolder:function(b){Alfresco.logger.debug("createUploadFolder",
+arguments);var a=Alfresco.util.NodeRef(b);a=YAHOO.lang.substitute(Alfresco.constants.PROXY_URI+"uploader-plus/upload-folders-new/{storeType}/{storeId}/{id}",a);Alfresco.util.Ajax.jsonPost({url:a,responseContentType:Alfresco.util.Ajax.JSON,successCallback:{fn:function(d){Alfresco.logger.debug("successCallback",arguments);var e=d.json.status,c=d.json.node;0==e?(Alfresco.logger.debug("status == 0"),e=this.findUploadFolderPosition(c),this.widgets.dataTable.addRow(c,e),c=this.widgets.dataTable.getRecord(e),
+this.editUploadFolderRecord(c)):1==e&&(Alfresco.logger.debug("status == 1"),Alfresco.util.PopupManager.displayMessage({text:YAHOO.lang.substitute(this.msg("_.is.already.an.upload.folder"),c)}))},scope:this},failureMessage:this.msg("operation.failed")});Alfresco.logger.debug("END createUploadFolder")},findUploadFolderPosition:function(b){Alfresco.logger.debug("findUploadFolderPosition",arguments);for(var a=this.widgets.dataTable.getRecordSet().getRecords(),d=0;db.path)return Alfresco.logger.debug("Found position"),d;Alfresco.logger.debug("END findUploadFolderPosition",d);return d},editUploadFolderHandler:function(b,a,d){Alfresco.logger.debug("editUploadFolderHandler",arguments);var e=this.widgets.dataTable.getRecord(a.parentNode.parentNode.parentNode);this.editUploadFolderRecord(e);Alfresco.logger.debug("END editUploadFolderHandler")},editUploadFolderRecord:function(b){Alfresco.logger.debug("editUploadFolderRecord",arguments);var a=
+b.getData(),d=this.id+"-edit-form",e=YAHOO.lang.substitute("{serviceContext}components/form?itemKind=node&itemId={itemId}&mode=edit&submitType=json&formId={formId}&showCancelButton=true&htmlid={htmlid}",{serviceContext:Alfresco.constants.URL_SERVICECONTEXT,itemId:a.nodeRef,formId:"upload-folder",htmlid:d}),c=Alfresco.util.NodeRef(a.nodeRef);c=YAHOO.lang.substitute(Alfresco.constants.PROXY_URI+"api/node/{storeType}/{storeId}/{id}/formprocessor",c);(new Alfresco.module.SimpleDialog(d)).setOptions({width:"40em",
+templateUrl:e,actionUrl:c,destroyOnHide:!0,doBeforeDialogShow:{fn:function(){Alfresco.logger.debug("doBeforeDialogShow callback",arguments);var f=YAHOO.util.Dom.get(d+"-dialogTitle");f&&(f.innerHTML=Alfresco.util.encodeHTML(this.prettyPath(a.path)));f=YAHOO.util.Dom.getElementsByClassName("supported-types-select","select")[0];this.populateAllowedTypesSelect(f);return!0},scope:this},onSuccess:{fn:function(f){Alfresco.logger.debug("onSuccess callback",arguments);a.allowedTypes=f.config.dataObj.prop_up_allowedTypes.split(",");
+this.widgets.dataTable.updateRow(b,a);Alfresco.util.PopupManager.displayMessage({text:this.msg("operation.completed.successfully")})},scope:this},onFailure:{fn:function(f){Alfresco.logger.debug("onFailure callback",arguments);Alfresco.util.PopupManager.displayMessage({text:this.msg("operation.failed")})},scope:this}}).show();Alfresco.logger.debug("END editUploadFolderRecord")},deleteUploadFolderHandler:function(b,a,d){Alfresco.logger.debug("deleteUploadFolderHandler",arguments);var e=this.widgets.dataTable.getRecord(a.parentNode.parentNode.parentNode),
+c=e.getData();c=Alfresco.util.NodeRef(c.nodeRef);Alfresco.util.Ajax.jsonPost({url:YAHOO.lang.substitute(Alfresco.constants.PROXY_URI+"slingshot/doclib/action/aspects/node/{storeType}/{storeId}/{id}",c),dataObj:{added:[],removed:["up:UploadFolder"]},requestContentType:Alfresco.util.Ajax.JSON,responseContentType:Alfresco.util.Ajax.JSON,successCallback:{fn:function(f){Alfresco.logger.debug("deleteUploadFolderHandler successCallback",arguments);Alfresco.util.PopupManager.displayMessage({text:this.msg(f.json.overallSuccess?
+"operation.completed.successfully":"operation.failed")});this.widgets.dataTable.deleteRow(e)},scope:this},failureMessage:this.msg("operation.failed")});Alfresco.logger.debug("END deleteUploadFolderHandler")},populateAllowedTypesSelect:function(b){Alfresco.logger.debug("populateAllowedTypesSelect",arguments);var a=b.getAttribute("data-selectedValues"),d=[];a&&(d=a.split(","));Alfresco.util.Ajax.jsonGet({url:this.listContentTypesUrl,responseContentType:Alfresco.util.Ajax.JSON,successCallback:{fn:function(e){Alfresco.logger.debug("populateAllowedTypesSelect successCallback",
+arguments);for(var c=e.json.types,f=0;f
-
+ It should only be used through the admin interface
+
+
+
+
+
+
+
+-->