diff --git a/app-openbis-installer/build.gradle b/app-openbis-installer/build.gradle index deda8e6b4b234c2c93614cf8da9fcaa07a978ffd..dcab856c8f2e70ea123f7fe0991ff902ae062b1d 100644 --- a/app-openbis-installer/build.gradle +++ b/app-openbis-installer/build.gradle @@ -54,7 +54,7 @@ println "installerDir:${installerDistDir}" println "buildDir:${buildDir}" println "installer:${project.projectDir}/resource/installer" -task copyResources(type: Copy, dependsOn: [compileJava, ':core-plugin-openbis:zip', ':core-plugin-openbis:zipDss', ':core-plugin-openbis:zipBdlServer']) { +task copyResources(type: Copy, dependsOn: [compileJava, ':core-plugin-openbis:zip', ':core-plugin-openbis:zipDss', ':core-plugin-openbis:zipBdlServer', ':core-plugin-openbis:zipAfsServer']) { duplicatesStrategy 'include' from "${project.projectDir}/resource/installer" from "${project.projectDir}/../core-plugin-openbis/dist/tarball/installer" @@ -62,6 +62,8 @@ task copyResources(type: Copy, dependsOn: [compileJava, ':core-plugin-openbis:zi into installerDistDir from zipTree(project(':core-plugin-openbis').zipBdlServer.archivePath) into installerDistDir + from zipTree(project(':core-plugin-openbis').zipAfsServer.archivePath) + into installerDistDir from("${installerDistDir}/../BUILD-app-openbis-installer.INFO") { into 'bin' } diff --git a/app-openbis-installer/resource/installer/install.xml b/app-openbis-installer/resource/installer/install.xml index a738863b80426444bb6d7226ef999ba3652c4975..2facd281ca3dcbbb32b1bc3cfe0841f830701f8e 100644 --- a/app-openbis-installer/resource/installer/install.xml +++ b/app-openbis-installer/resource/installer/install.xml @@ -224,6 +224,11 @@ targetdir="$INSTALL_PATH/servers"/> </pack> + <pack name="AFS Server" required="yes" loose="yes"> + <description>The atomic filesystem server managing raw data</description> + <file src="@{installer.dist.dir}/afs-server" + targetdir="$INSTALL_PATH/servers"/> + </pack> <pack name="Administration Scripts" required="yes" loose="yes"> <description>Scripts to facilitate openBIS administration</description> diff --git a/app-openbis-installer/settings.gradle b/app-openbis-installer/settings.gradle index 810d325adaffc4311d16034353b3552f0d45a491..6a25368bcfb61b1f05060610eb57e75dde0e5bd7 100644 --- a/app-openbis-installer/settings.gradle +++ b/app-openbis-installer/settings.gradle @@ -1,4 +1,4 @@ -includeFlat 'lib-commonbase', 'lib-common', 'lib-json', +includeFlat 'lib-commonbase', 'lib-common', 'lib-json', 'lib-transactional-file-system', 'api-openbis-java', 'lib-openbis-common', 'lib-authentication', 'lib-dbmigration', 'server-application-server', - 'server-original-data-store', 'server-screening', 'core-plugin-openbis', 'server-external-data-store', + 'server-original-data-store', 'server-screening', 'core-plugin-openbis', 'server-external-data-store', 'server-data-store', 'ui-admin', 'lib-microservice-server', 'ui-eln-lims', 'api-openbis-javascript', 'api-openbis-typescript', 'api-data-store-server-java', 'api-data-store-server-javascript' diff --git a/core-plugin-openbis/build.gradle b/core-plugin-openbis/build.gradle index 112d7972f94412680706b429c0b2f9b1d70f3775..529b4c4024917fddcedee416b786c3bd4afcf41f 100644 --- a/core-plugin-openbis/build.gradle +++ b/core-plugin-openbis/build.gradle @@ -38,6 +38,7 @@ evaluationDependsOn(':server-application-server') evaluationDependsOn(':server-original-data-store') evaluationDependsOn(':server-screening') evaluationDependsOn(':server-external-data-store') +evaluationDependsOn(':server-data-store') evaluationDependsOn(':ui-admin') evaluationDependsOn(':ui-eln-lims') @@ -467,6 +468,11 @@ task zipBdlServer(type: Zip, dependsOn: project(':server-external-data-store').t from zipTree('../server-external-data-store/build/distributions/server-external-data-store.zip') } +task zipAfsServer(type: Zip, dependsOn: project(':server-data-store').tasks.distZip) { + baseName 'afs_server' + from zipTree('../server-data-store/build/distributions/afs-server.zip') +} + task pybisZip(type: Zip) { baseName 'pybis' from '../api-openbis-python3-pybis/' diff --git a/core-plugin-openbis/settings.gradle b/core-plugin-openbis/settings.gradle index 0b4417685af9c916fc3392219a7abd529eca2831..049b6410dabeca8979a83b57413bcff8ad70df5b 100644 --- a/core-plugin-openbis/settings.gradle +++ b/core-plugin-openbis/settings.gradle @@ -1,3 +1,3 @@ -includeFlat 'lib-commonbase', 'lib-common', 'api-openbis-java', 'lib-openbis-common', 'lib-authentication', 'lib-dbmigration', 'lib-json', - 'server-application-server', 'server-original-data-store', 'server-screening', 'server-external-data-store', +includeFlat 'lib-commonbase', 'lib-common', 'api-openbis-java', 'lib-openbis-common', 'lib-authentication', 'lib-dbmigration', 'lib-json', 'lib-transactional-file-system', + 'server-application-server', 'server-original-data-store', 'server-screening', 'server-external-data-store', 'server-data-store', 'ui-admin', 'lib-microservice-server', 'ui-eln-lims', 'api-openbis-javascript', 'api-openbis-typescript', 'api-data-store-server-java', 'api-data-store-server-javascript' diff --git a/server-data-store/build.gradle b/server-data-store/build.gradle index 47b932d13dd4f7d2537853c21dd5dda931b1185a..bdf4d9a642ea38c57d69dc42cd3b5f4dce7fdfa7 100644 --- a/server-data-store/build.gradle +++ b/server-data-store/build.gradle @@ -40,4 +40,8 @@ task AFSServerDevelopmentEnvironmentStart(type: JavaExec) { '--add-opens=java.base/java.nio=ALL-UNNAMED', '-Dio.netty.tryReflectionSetAccessible=true', '-Xmx256M', '-ea']) +} + +distZip { + baseName 'afs-server' } \ No newline at end of file diff --git a/server-data-store/src/main/dist/etc/log4j2.xml b/server-data-store/src/main/dist/etc/log4j2.xml new file mode 100644 index 0000000000000000000000000000000000000000..f8d0b493e95d9ce4e48ddc373e7d216223ad9b7e --- /dev/null +++ b/server-data-store/src/main/dist/etc/log4j2.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Configuration status="INFO"> + <Appenders> + <File name="File" fileName="logs/afs-server.log" immediateFlush="false" append="false"> + <PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> + </File> + </Appenders> + <Loggers> + <Root level="ALL"> + <AppenderRef ref="File"/> + </Root> + </Loggers> +</Configuration> \ No newline at end of file diff --git a/server-data-store/src/main/dist/etc/service.properties b/server-data-store/src/main/dist/etc/service.properties new file mode 100755 index 0000000000000000000000000000000000000000..42655d82f66379c3f40fd341b3dc1494004a3a49 --- /dev/null +++ b/server-data-store/src/main/dist/etc/service.properties @@ -0,0 +1,29 @@ +logFactoryClass=ch.ethz.sis.shared.log.log4j2.Log4J2LogFactory +logConfigFile=./etc/log4j2.xml + +jsonObjectMapperClass=ch.ethz.sis.afsjson.jackson.JacksonObjectMapper +# Where all the transactions information is written until the prepare step +# For performance reasons should be on the save volume as the configured storage +writeAheadLogRoot=./transactions +storageRoot=./store +storageUuid= + +httpServerClass=ch.ethz.sis.afsserver.http.impl.NettyHttpServer +httpServerUri=/afs-server +httpServerPort=8085 + +// 1 MiB of Base64 URL encoded data, 1 kiB of other data and 10% safety margin +httpMaxContentLength=1540165 + +maxReadSizeInBytes=1048576 +authenticationInfoProviderClass=ch.ethz.sis.afsserver.worker.providers.impl.OpenBISAuthenticationInfoProvider +authorizationInfoProviderClass=ch.ethz.sis.afsserver.worker.providers.impl.OpenBISAuthorizationInfoProvider +poolSize=50 +connectionFactoryClass=ch.ethz.sis.afsserver.worker.ConnectionFactory +workerFactoryClass=ch.ethz.sis.afsserver.worker.WorkerFactory +publicApiInterface=ch.ethz.sis.afsapi.api.PublicAPI +apiServerInteractiveSessionKey= +apiServerTransactionManagerKey= +apiServerWorkerTimeout=3600000 +openBISUrl=https://localhost:8443/ +openBISTimeout=30000 \ No newline at end of file