diff --git a/pom.xml b/pom.xml index 5620947738..44ea26ebbd 100644 --- a/pom.xml +++ b/pom.xml @@ -204,6 +204,13 @@ build + + build-image-verify + verify + + build + + @@ -235,7 +242,7 @@ build-push-image - install + deploy build push @@ -279,7 +286,7 @@ build-push-image - install + deploy build push diff --git a/rm-community/rm-community-repo/.maven-dockerignore b/rm-community/rm-community-repo/.maven-dockerignore new file mode 100644 index 0000000000..18bb2a12d0 --- /dev/null +++ b/rm-community/rm-community-repo/.maven-dockerignore @@ -0,0 +1 @@ +target/docker/** \ No newline at end of file diff --git a/rm-community/rm-community-repo/Dockerfile b/rm-community/rm-community-repo/Dockerfile new file mode 100644 index 0000000000..1ffc5a1ecb --- /dev/null +++ b/rm-community/rm-community-repo/Dockerfile @@ -0,0 +1,6 @@ +FROM alfresco/alfresco-content-repository-community:6.0.7-ga + +COPY target/alfresco-rm-community-repo-*.amp /usr/local/tomcat/amps/ + +RUN java -jar /usr/local/tomcat/alfresco-mmt/alfresco-mmt*.jar install \ + /usr/local/tomcat/amps/alfresco-rm-community-repo-*.amp /usr/local/tomcat/webapps/alfresco -nobackup diff --git a/rm-community/rm-community-repo/docker-compose.yml b/rm-community/rm-community-repo/docker-compose.yml new file mode 100644 index 0000000000..05ab6bd24a --- /dev/null +++ b/rm-community/rm-community-repo/docker-compose.yml @@ -0,0 +1,59 @@ +version: "3" + +# For remote debug we need the CATALINA_OPTS and to expose port 8000. + +services: + alfresco: + # acs repo community image with ags repo community amp applied + image: alfresco/ags-repo-community:latest + environment: + CATALINA_OPTS : " + -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n + " + JAVA_OPTS : " + -Ddb.driver=org.postgresql.Driver + -Ddb.username=alfresco + -Ddb.password=alfresco + -Ddb.url=jdbc:postgresql://postgres:5432/alfresco + -Dsolr.host=solr6 + -Dsolr.port=8983 + -Dsolr.secureComms=none + -Dsolr.base.url=/solr + -Dindex.subsystem.name=solr6 + -Dalfresco.restApi.basicAuthScheme=true + -Dimap.server.enabled=true + -Dftp.enabled=true + -Dftp.dataPortFrom=30000 + -Dftp.dataPortTo=30099 + -Dcifs.enabled=true + " + ports: + - 8080:8080 + - 8000:8000 + - 445:445 + - 143:143 + - "21:21" + - "30000-30099:30000-30099" + + postgres: + image: library/postgres:10.1 + environment: + - POSTGRES_PASSWORD=alfresco + - POSTGRES_USER=alfresco + - POSTGRES_DB=alfresco + ports: + - 5432:5432 + + solr6: + image: alfresco/alfresco-search-services:1.1.1 + environment: + #Solr needs to know how to register itself with Alfresco + - SOLR_ALFRESCO_HOST=alfresco + - SOLR_ALFRESCO_PORT=8080 + #Alfresco needs to know how to call solr + - SOLR_SOLR_HOST=solr6 + - SOLR_SOLR_PORT=8983 + #Create the default alfresco and archive cores + - SOLR_CREATE_ALFRESCO_DEFAULTS=alfresco,archive + ports: + - 8083:8983 #Browser port diff --git a/rm-community/rm-community-repo/pom.xml b/rm-community/rm-community-repo/pom.xml index 7ac23a239f..6cfcc3391c 100644 --- a/rm-community/rm-community-repo/pom.xml +++ b/rm-community/rm-community-repo/pom.xml @@ -32,6 +32,8 @@ 6.51 6.35 6.0.0-rc5 + alfresco/ags-repo-community + @@ -755,7 +757,6 @@ - wipeDB @@ -808,5 +809,50 @@ + + + buildDockerImage + + + + io.fabric8 + fabric8-maven-plugin + + + + + + internal + + + + io.fabric8 + fabric8-maven-plugin + + + + + + master + + + + io.fabric8 + fabric8-maven-plugin + + + + + + release + + + + io.fabric8 + fabric8-maven-plugin + + + + \ No newline at end of file diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/util/CustomDateTimeSerializer.java b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/util/CustomDateTimeSerializer.java index 2d75f5ec5d..631ccee679 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/util/CustomDateTimeSerializer.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/util/CustomDateTimeSerializer.java @@ -33,8 +33,8 @@ import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.ser.std.StdSerializer; import org.joda.time.DateTime; -import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormatter; +import org.joda.time.format.ISODateTimeFormat; /** * Custom Date Time serializer for formatting org.joda.time.DateTime @@ -45,7 +45,7 @@ import org.joda.time.format.DateTimeFormatter; public class CustomDateTimeSerializer extends StdSerializer { /** Date time format */ - private final static DateTimeFormatter DATE_TIME_FORMAT = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); + private final static DateTimeFormatter DATE_TIME_FORMAT = ISODateTimeFormat.dateTime(); public CustomDateTimeSerializer() { diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/util/CustomLocalDateDeserializer.java b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/util/CustomLocalDateDeserializer.java new file mode 100644 index 0000000000..ef8133a114 --- /dev/null +++ b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/util/CustomLocalDateDeserializer.java @@ -0,0 +1,74 @@ +/* + * #%L + * Alfresco Records Management Module + * %% + * Copyright (C) 2005 - 2018 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * - + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * - + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * - + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * - + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ +package org.alfresco.rm.rest.api.util; + +import java.io.IOException; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.deser.std.StdDeserializer; + +import org.joda.time.LocalDate; +import org.joda.time.format.DateTimeFormatter; +import org.joda.time.format.ISODateTimeFormat; + + +/** + * Custom Local Date deserializer converting a string to org.joda.time.LocalDate when the time is optional; + * + * @author Rodica Sutu + * @since 3.0 + */ +public class CustomLocalDateDeserializer extends StdDeserializer +{ + /** Date time format with time optional */ + private final static DateTimeFormatter LOCAL_DATE_OPTIONAL_TIME_PARSER = ISODateTimeFormat.localDateOptionalTimeParser(); + + public CustomLocalDateDeserializer() + { + super(LocalDate.class); + } + + /** + * Custom deserialize method to convert string to the org.joda.time.LocalDate type with LOCAL_DATE_OPTIONAL_TIME_PARSER + * + * @param jp local date value + * @param ctxt + * @throws IOException + */ + @Override + public LocalDate deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException + { + String str = jp.getText().trim(); + if (str.length() == 0) + { + return null; + } + return LOCAL_DATE_OPTIONAL_TIME_PARSER.parseLocalDate(str); + } +} + diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/util/CustomLocalDateSerializer.java b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/util/CustomLocalDateSerializer.java index f10fd69cd4..b3aa93c66a 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/util/CustomLocalDateSerializer.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/rm/rest/api/util/CustomLocalDateSerializer.java @@ -33,8 +33,8 @@ import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.ser.std.StdSerializer; import org.joda.time.LocalDate; -import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormatter; +import org.joda.time.format.ISODateTimeFormat; /** * Custom Local Date serializer for formatting org.joda.time.LocalDate @@ -44,8 +44,8 @@ import org.joda.time.format.DateTimeFormatter; */ public class CustomLocalDateSerializer extends StdSerializer { - /** Local date format */ - private final static DateTimeFormatter DATE_FORMAT = DateTimeFormat.forPattern("yyyy-MM-dd"); + /** Local date format yyyy-MM-dd*/ + private final static DateTimeFormatter DATE_FORMAT = ISODateTimeFormat.date(); public CustomLocalDateSerializer() {