This is an automated email from the ASF dual-hosted git repository. dklco pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git
commit 72f0417a0c81c92fd68e2c1a49a03f8b4775ed49 Author: Dan Klco <[email protected]> AuthorDate: Mon Sep 21 16:08:08 2020 -0400 Replacing the builder with the feature model --- builder/pom.xml | 165 --------------- builder/src/main/provisioning/boot.txt | 68 ------ builder/src/main/provisioning/cms.txt | 231 --------------------- builder/src/main/provisioning/composum.txt | 37 ---- builder/src/main/provisioning/healthcheck.txt | 90 -------- builder/src/main/provisioning/launchpad.txt | 30 --- builder/src/main/provisioning/oak.txt | 102 --------- builder/src/main/provisioning/repoinit.txt | 83 -------- builder/src/main/provisioning/scripting.txt | 62 ------ builder/src/main/provisioning/sling-caconfig.txt | 34 --- builder/src/main/provisioning/sling-discovery.txt | 46 ---- .../src/main/provisioning/sling-distribution.txt | 24 --- builder/src/main/provisioning/sling-event.txt | 42 ---- .../provisioning/sling-models-jacksonexporter.txt | 27 --- builder/src/main/provisioning/sling-validation.txt | 42 ---- builder/src/main/provisioning/sling.txt | 220 -------------------- builder/src/main/provisioning/standalone.txt | 26 --- builder/src/main/provisioning/webapp.txt | 25 --- builder/src/main/scripts/fix_package_namespace.sh | 41 ---- builder/src/main/scripts/start.sh | 64 ------ builder/src/main/scripts/stop.sh | 50 ----- .../apache/sling/launchpad/LaunchpadReadyRule.java | 121 ----------- .../java/org/apache/sling/launchpad/SmokeIT.java | 195 ----------------- pom.xml | 20 +- 24 files changed, 13 insertions(+), 1832 deletions(-) diff --git a/builder/pom.xml b/builder/pom.xml deleted file mode 100644 index a2277ba..0000000 --- a/builder/pom.xml +++ /dev/null @@ -1,165 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> - <!-- - 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. - --> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - - <modelVersion>4.0.0</modelVersion> - <parent> - <artifactId>org.apache.sling.cms</artifactId> - <groupId>org.apache.sling</groupId> - <version>0.16.3-SNAPSHOT</version> - </parent> - - <artifactId>org.apache.sling.cms.builder</artifactId> - <packaging>slingstart</packaging> - - <name>Apache Sling - CMS Application Builder</name> - - <properties> - <sling.java.version>8</sling.java.version> - <IT.expected.bundles.count>208</IT.expected.bundles.count> - <cms.version>${project.parent.version}</cms.version> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>ianal-maven-plugin</artifactId> - <executions> - <execution> - <goals> - <goal>verify-legal-files</goal> - </goals> - </execution> - </executions> - </plugin> - <plugin> - <artifactId>maven-clean-plugin</artifactId> - <configuration> - <filesets> - <fileset> - <directory>${basedir}</directory> - <includes> - <include>derby.log</include> - <include>cachedir/**</include> - <include>sling/**</include> - <include>jackrabbit/**</include> - <include>coverage.ec</include> - </includes> - </fileset> - </filesets> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.sling</groupId> - <artifactId>slingstart-maven-plugin</artifactId> - <extensions>true</extensions> - <executions> - <execution> - <id>start-container</id> - <goals> - <goal>start</goal> - <goal>stop</goal> - </goals> - </execution> - </executions> - <configuration> - <verbose>true</verbose> - <createWebapp>false</createWebapp> - <servers> - <server> - <port>${http.port}</port> - <controlPort>${sling.control.port}</controlPort> - </server> - </servers> - <usePomVariables>true</usePomVariables> - </configuration> - </plugin> - - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>build-helper-maven-plugin</artifactId> - <executions> - <execution> - <id>reserve-network-port</id> - <goals> - <!-- pre-integration-test is too late --> - <goal>reserve-network-port</goal> - </goals> - <phase>process-resources</phase> - <configuration> - <portNames> - <portName>http.port</portName> - <portName>sling.control.port</portName> - </portNames> - </configuration> - </execution> - </executions> - </plugin> - - <plugin> - <artifactId>maven-failsafe-plugin</artifactId> - <executions> - <execution> - <goals> - <goal>integration-test</goal> - <goal>verify</goal> - </goals> - </execution> - </executions> - <configuration> - <systemPropertyVariables> - <launchpad.http.port>${http.port}</launchpad.http.port> - <IT.expected.bundles.count>${IT.expected.bundles.count}</IT.expected.bundles.count> - </systemPropertyVariables> - </configuration> - </plugin> - </plugins> - - <pluginManagement> - <plugins> - <plugin> - <!-- Extend RAT configuration from parent pom --> - <groupId>org.apache.rat</groupId> - <artifactId>apache-rat-plugin</artifactId> - <configuration> - <excludes combine.children="append"> - <!-- Exclude sling instance --> - <exclude>sling/**</exclude> - </excludes> - </configuration> - </plugin> - </plugins> - </pluginManagement> - - </build> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.httpcomponents</groupId> - <artifactId>httpclient</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.felix</groupId> - <artifactId>org.apache.felix.utils</artifactId> - <version>1.9.0</version> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/builder/src/main/provisioning/boot.txt b/builder/src/main/provisioning/boot.txt deleted file mode 100644 index fccfa6f..0000000 --- a/builder/src/main/provisioning/boot.txt +++ /dev/null @@ -1,68 +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. -# -# The :boot feature contains all things to bootstrap the installation. -# -[feature name=:boot] - -# additional entries for sling.properties -# --------------------------------------- -# oak_tar and oak_mongo run modes are mutually exclusive, -# and cannot be changed after the first startup -[settings] - sling.run.mode.install.options=oak_tar,oak_mongo - repository.home=${sling.home}/repository - localIndexDir=${sling.home}/repository/index - -[variables] - slf4j.version=1.7.25 - -[artifacts] - org.osgi/org.osgi.util.function/1.1.0 - org.osgi/org.osgi.util.promise/1.1.1 - org.osgi/org.osgi.util.pushstream/1.0.1 - org.osgi/org.osgi.service.log/1.4.0 - org.apache.felix/org.apache.felix.converter/1.0.14 - org.apache.sling/org.apache.sling.javax.activation/0.1.0 - org.apache.geronimo.specs/geronimo-annotation_1.3_spec/1.1 - org.apache.servicemix.specs/org.apache.servicemix.specs.jaxws-api-2.2/2.9.0 - org.apache.servicemix.specs/org.apache.servicemix.specs.saaj-api-1.3/2.8.0 - org.apache.servicemix.bundles/org.apache.servicemix.bundles.saaj-impl/1.3.23_2 - org.jvnet.staxex/stax-ex/1.7.6 - org.apache.geronimo.specs/geronimo-ws-metadata_2.0_spec/1.1.3 - org.apache.servicemix.specs/org.apache.servicemix.specs.jaxb-api-2.2/2.9.0 - org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-impl/2.2.11_1 - org.slf4j/slf4j-api/${slf4j.version} - org.apache.sling/org.apache.sling.commons.log/5.1.12 - org.apache.sling/org.apache.sling.commons.logservice/1.1.0 - org.apache.sling/org.apache.sling.commons.johnzon/1.2.2 - org.slf4j/jcl-over-slf4j/${slf4j.version} - org.slf4j/log4j-over-slf4j/${slf4j.version} - org.apache.sling/org.apache.sling.settings/1.3.10 - org.apache.sling/org.apache.sling.launchpad.installer/1.2.2 - org.apache.sling/org.apache.sling.commons.osgi/2.4.0 - org.apache.sling/org.apache.sling.installer.core/3.11.2 - org.apache.sling/org.apache.sling.installer.provider.file/1.2.2 - org.apache.sling/org.apache.sling.installer.factory.configuration/1.3.2 - org.apache.felix/org.apache.felix.configadmin/1.9.16 - org.apache.felix/org.apache.felix.eventadmin/1.5.0 - org.apache.aries/org.apache.aries.util/1.1.3 - # dependency with javax.inject - required for Sling Models (SLING-4710) - org.apache.geronimo.specs/geronimo-atinject_1.0_spec/1.1 - org.apache.commons/commons-lang3/3.9 - diff --git a/builder/src/main/provisioning/cms.txt b/builder/src/main/provisioning/cms.txt deleted file mode 100644 index f928e47..0000000 --- a/builder/src/main/provisioning/cms.txt +++ /dev/null @@ -1,231 +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. -[feature name=cms] - -[variables] - oak.version=1.26.0 - -[artifacts startLevel=5] - org.apache.sling/org.apache.sling.cms.api/${cms.version} - org.apache.sling/org.apache.sling.cms.ui/${cms.version} - com.github.livesense/org.liveSense.fragment.sun.misc/1.0.5 - -[artifacts startLevel=15] - com.vladsch.flexmark/flexmark-osgi/0.61.24 - org.apache.cocoon/cocoon-serializers-charsets/1.0.2 - org.apache.commons/commons-compress/1.20 - org.apache.commons/commons-csv/1.8 - org.apache.commons/commons-email/1.5 - org.apache.commons/commons-math3/3.6.1 - org.apache.jackrabbit/oak-auth-external/${oak.version} - org.apache.jackrabbit/oak-auth-ldap/${oak.version} - org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlbeans/3.0.2_1 - org.apache.sling/org.apache.sling.fileoptim/0.9.4 - org.apache.sling/org.apache.sling.resourcemerger/1.3.10 - org.jsoup/jsoup/1.13.1 - -[artifacts startLevel=20] - com.sun.mail/javax.mail/1.6.2 - org.apache.commons/commons-text/1.8 - org.apache.servicemix.bundles/org.apache.servicemix.bundles.jasypt/1.9.3_1 - org.apache.servicemix.bundles/org.apache.servicemix.bundles.poi/4.1.1_1 - org.apache.sling/org.apache.sling.cms.core/${cms.version} - org.apache.sling/org.apache.sling.cms.reference/${cms.version} - org.apache.sling/org.apache.sling.cms.transformer/${cms.version} - org.apache.sling/org.apache.sling.commons.crypto/1.0.0 - org.apache.sling/org.apache.sling.commons.html/1.1.0 - org.apache.sling/org.apache.sling.commons.messaging.mail/1.0.0 - org.apache.sling/org.apache.sling.commons.messaging/1.0.0 - org.apache.sling/org.apache.sling.rewriter/1.2.2 - org.apache.tika/tika-bundle/1.22 - org.codehaus.groovy/groovy-all/2.4.19 - -[:repoinit] - - # CMS root paths - create path (sling:OrderedFolder) /etc/i18n - set ACL for everyone - allow jcr:read on /etc/i18n - end - create path (sling:OrderedFolder) /etc/taxonomy - set ACL for everyone - allow jcr:read on /etc/taxonomy - end - create path (sling:OrderedFolder) /static - set ACL for everyone - allow jcr:read on /static - end - create path (sling:OrderedFolder) /conf - set ACL for everyone - allow jcr:read on /conf - end - create path (sling:OrderedFolder) /content - create path (sling:OrderedFolder) /etc/usergenerated - set ACL for everyone - allow jcr:read on /etc/usergenerated - end - - # Groups - create path (rep:AuthorizableFolder) /home/groups - create path (rep:AuthorizableFolder) /home/groups/sling-cms - create group administrators with path sling-cms - set ACL for administrators - allow jcr:all on / - end - create group authors with path sling-cms - set ACL for authors - allow jcr:write,jcr:nodeTypeManagement,jcr:versionManagement on /content - allow jcr:write,jcr:nodeTypeManagement,jcr:versionManagement on /static - allow jcr:read on / - end - create group job-users with path sling-cms - create group taxonomy-users with path sling-cms - set ACL for taxonomy-users - allow jcr:write,jcr:nodeTypeManagement,jcr:versionManagement on /etc/taxonomy - end - create group ugc-users with path sling-cms - set ACL for ugc-users - allow jcr:write,jcr:nodeTypeManagement,jcr:versionManagement on /etc/usergenerated - end - - # Service users - create service user sling-cms-error - set ACL for sling-cms-error - allow jcr:read on / - end - create service user sling-cms-metadata - set ACL for sling-cms-metadata - allow jcr:write,jcr:nodeTypeManagement,jcr:versionManagement on /content - allow jcr:write,jcr:nodeTypeManagement,jcr:versionManagement on /static - allow jcr:read on / - end - create service user sling-cms-transformer - set ACL for sling-cms-transformer - allow jcr:write,jcr:nodeTypeManagement,jcr:versionManagement on /content - allow jcr:write,jcr:nodeTypeManagement,jcr:versionManagement on /static - allow jcr:read on / - end - create service user sling-rewriter - set ACL for sling-rewriter - allow jcr:read on / - end - create service user sling-cms-ugc - set ACL for sling-cms-ugc - allow jcr:write,jcr:nodeTypeManagement,jcr:versionManagement on /etc/usergenerated - end - create service user sling-cms-versionmgr - set ACL for sling-cms-versionmgr - allow jcr:write,jcr:nodeTypeManagement,jcr:versionManagement on /content - end - - -[configurations] - org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-sling-cms-error - user.mapping=[ - "org.apache.sling.cms.core:sling-cms-error\=sling-cms-error", - "org.apache.sling.models.impl:sling-cms-error\=sling-cms-error" - ] - - org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-sling-cms-metadata - user.mapping=[ - "org.apache.sling.cms.core:sling-cms-metadata\=sling-cms-metadata" - ] - - org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-sling-cms-transformer - user.mapping=[ - "org.apache.sling.cms.transformer:sling-cms-transformer\=sling-cms-transformer" - ] - - org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-sling-cms-versionmgr - user.mapping=[ - "org.apache.sling.cms.core:sling-cms-versionmgr\=sling-cms-versionmgr" - ] - - org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-sling-cms-ugc - user.mapping=[ - "org.apache.sling.cms.core:sling-cms-ugc\=sling-cms-ugc" - ] - - org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-sling.rewriter - user.mapping=[ - "org.apache.sling.rewriter\=sling-rewriter" - ] - - org.apache.sling.hc.support.DefaultLoginsHealthCheck-slingcms - logins=["admin:admin"] - hc.name="Sling CMS - Default Logins Check" - hc.tags=["configuration"] - - org.apache.felix.hc.generalchecks.JmxAttributeCheck-jobqueue - mbean.name="org.apache.sling:type\=queues,name\=AllQueues" - hc.name="Sling - Job Queue" - hc.tags=["sling","system-resources"] - attribute.value.constraint="< 1000" - attribute.name="NumberOfQueuedJobs" - statusForFailedContraint="WARN" - - org.apache.felix.hc.generalchecks.JmxAttributeCheck-requestdurationwarn - mbean.name="org.apache.sling:type\=engine,service\=RequestProcessor" - hc.name="Sling - StdDev Request Duration (WARN)" - hc.tags=["sling","system-resources"] - attribute.value.constraint="matches (1)?\\d?\\d\\..*" - attribute.name="StandardDeviationDurationMsec" - statusForFailedContraint="WARN" - - org.apache.felix.hc.generalchecks.JmxAttributeCheck-requestdurationcritical - mbean.name="org.apache.sling:type\=engine,service\=RequestProcessor" - hc.name="Sling - StdDev Request Duration (CRITICAL)" - hc.tags=["sling","system-resources"] - attribute.value.constraint="matches (1|2|3|4)?\\d?\\d\\..*" - attribute.name="StandardDeviationDurationMsec" - statusForFailedContraint="CRITICAL" - - org.apache.felix.hc.generalchecks.JmxAttributeCheck-index - mbean.name="org.apache.jackrabbit.oak:name\=async,type\=IndexStats" - hc.name="Jackrabbit Oak - Index" - hc.tags=["oak","system-resources"] - attribute.value.constraint="false" - attribute.name="Failing" - statusForFailedContraint="CRITICAL" - - org.apache.felix.hc.generalchecks.JmxAttributeCheck-luceneindex - mbean.name="org.apache.jackrabbit.oak:name\=Lucene Index statistics,type\=LuceneIndex" - hc.name="Jackrabbit Oak - Lucene Index" - hc.tags=["oak","system-resources"] - attribute.value.constraint="false" - attribute.name="Failing" - statusForFailedContraint="CRITICAL" - - org.apache.felix.hc.generalchecks.JmxAttributeCheck-slowqueries - mbean.name="org.apache.jackrabbit.oak:name\=Oak Query Statistics,type\=QueryStats" - hc.name="Jackrabbit Oak - Slow Queries" - hc.tags=["oak","system-resources"] - attribute.value.constraint="0" - attribute.name="SlowQueriesQueueSize" - statusForFailedContraint="WARN" - - org.apache.sling.servlets.get.DefaultGetServlet - index.files=["index","index.html"] - aliases=[""] - enable.html=B"false" - json.maximumresults=I"200" - enable.txt=B"false" - enable.xml=B"false" - index=B"false" - enable.json=B"true" - ecmaSuport=B"true" diff --git a/builder/src/main/provisioning/composum.txt b/builder/src/main/provisioning/composum.txt deleted file mode 100644 index e33d9f5..0000000 --- a/builder/src/main/provisioning/composum.txt +++ /dev/null @@ -1,37 +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. -[feature name=composum-nodes] -[variables] - composum.nodes.version=1.12.0 - -[artifacts startLevel=20] - com.composum.sling.core/composum-sling-core-commons/${composum.nodes.version} - com.composum.sling.core/composum-sling-core-console/${composum.nodes.version} - com.composum.sling.core/composum-sling-core-jslibs/${composum.nodes.version} - com.composum.sling.core/composum-sling-package-manager/${composum.nodes.version} - -[configurations] - - # the whitelisting of administrative login (to replace by service users in Nodes 2.0) - org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment-composum - whitelist.name="composum" - whitelist.bundles=[ - "com.composum.core.commons",\ - "com.composum.core.pckgmgr",\ - "com.composum.core.pckginstall" - ] diff --git a/builder/src/main/provisioning/healthcheck.txt b/builder/src/main/provisioning/healthcheck.txt deleted file mode 100644 index faecc88..0000000 --- a/builder/src/main/provisioning/healthcheck.txt +++ /dev/null @@ -1,90 +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. -## -[feature name=healthcheck] - -# startlevel 5 together with jetty (to allow use during startup) -[artifacts startLevel=5] - org.apache.felix/org.apache.felix.healthcheck.api/2.0.4 - org.apache.felix/org.apache.felix.healthcheck.core/2.0.8 - org.apache.felix/org.apache.felix.healthcheck.generalchecks/2.0.6 - org.apache.felix/org.apache.felix.healthcheck.webconsoleplugin/2.0.2 - -# sling health check bundles at startlevel 20 -[artifacts startLevel=20] - org.apache.sling/org.apache.sling.hc.api/1.0.4 - org.apache.sling/org.apache.sling.hc.support/1.0.6 - -[configurations] - - ## systemalive checks - - org.apache.felix.hc.generalchecks.FrameworkStartCheck - hc.tags=["systemalive"] - targetStartLevel=I"30" - - org.apache.felix.hc.generalchecks.ServicesCheck - hc.tags=["systemalive"] - services.list=[ - "org.apache.sling.jcr.api.SlingRepository", - "org.apache.sling.engine.auth.Authenticator", - "org.apache.sling.api.resource.ResourceResolverFactory", - "org.apache.sling.api.servlets.ServletResolver", - "javax.script.ScriptEngineManager", - ] - - - ## bundles - - org.apache.felix.hc.generalchecks.BundlesStartedCheck - hc.tags=["bundles"] - - ## system resources - - org.apache.felix.hc.generalchecks.ThreadUsageCheck - hc.tags=["threads", "cpu", "system-resources"] - - org.apache.felix.hc.generalchecks.CpuCheck - hc.tags=["cpu", "system-resources"] - cpuPercentageThresholdWarn=L"95" - - org.apache.felix.hc.generalchecks.DiskSpaceCheck - hc.tags=["diskspace", "system-resources"] - diskPaths=["."] - - org.apache.felix.hc.generalchecks.MemoryCheck - hc.tags=["memory", "system-resources"] - heapUsedPercentageThresholdWarn=L"95" - heapUsedPercentageThresholdCritical=L"100" - - ## service user for scripted health check (to make it easy to use jcr:/path/to/script urls) - org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-hc-support - user.mapping=[ - "org.apache.sling.hc.support\=sling-readall" - ] - - ## Service Unavailable Filter for startup-shutdown - org.apache.felix.hc.core.impl.filter.ServiceUnavailableFilter-startupandshutdown - tags=["systemalive"] - service.ranking=I"2147483647" - osgi.http.whiteboard.context.select="(osgi.http.whiteboard.context.name\=*)" - osgi.http.whiteboard.filter.regex="(?!/system/).*" - responseTextFor503="classpath:org.apache.sling.cms.ui:/content/startup/index.html" - includeExecutionResult=B"false" - autoDisableFilter=B"true" - avoid404DuringStartup=B"true" diff --git a/builder/src/main/provisioning/launchpad.txt b/builder/src/main/provisioning/launchpad.txt deleted file mode 100644 index 3cdef89..0000000 --- a/builder/src/main/provisioning/launchpad.txt +++ /dev/null @@ -1,30 +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. -# -# The :launchpad feature defines Sling's launchpad version -# Only a single artifact is allowed within this feature. -# -[feature name=:launchpad] - org.apache.sling/org.apache.sling.launchpad.base/6.0.2-2.6.36 - -[settings] - org.osgi.framework.system.packages=org.osgi.framework;version="1.9",org.osgi.framework.dto;version="1.8";uses:="org.osgi.dto",org.osgi.framework.hooks.bundle;version="1.1";uses:="org.osgi.framework",org.osgi.framework.hooks.resolver;version="1.0";uses:="org.osgi.framework.wiring",org.osgi.framework.hooks.service;version="1.1";uses:="org.osgi.framework",org.osgi.framework.hooks.weaving;version="1.1";uses:="org.osgi.framework.wiring",org.osgi.framework.launch;version="1.2";uses:="org.osg [...] - sling.jre-1.8=,java.applet;version="{dollar}{felix.detect.java.version}",java.awt;version="{dollar}{felix.detect.java.version}",java.awt.color;version="{dollar}{felix.detect.java.version}",java.awt.datatransfer;version="{dollar}{felix.detect.java.version}",java.awt.dnd;version="{dollar}{felix.detect.java.version}",java.awt.event;version="{dollar}{felix.detect.java.version}",java.awt.font;version="{dollar}{felix.detect.java.version}",java.awt.geom;version="{dollar}{felix.detect.java.ver [...] - sling.jre-jpms={dollar}{felix.jpms.java.base}{dollar}{felix.jpms.java.compiler}{dollar}{felix.jpms.java.datatransfer}{dollar}{felix.jpms.java.desktop}{dollar}{felix.jpms.java.instrument}{dollar}{felix.jpms.java.logging}{dollar}{felix.jpms.java.management}{dollar}{felix.jpms.java.management.rmi}{dollar}{felix.jpms.java.naming}{dollar}{felix.jpms.java.net.http}{dollar}{felix.jpms.java.prefs}{dollar}{felix.jpms.java.rmi}{dollar}{felix.jpms.java.scripting}{dollar}{felix.jpms.java.se}{dolla [...] - sling.jre.java.xml=,javax.xml;version="2.1.0",javax.xml.datatype;uses:="javax.xml.namespace";version="2.1.0",javax.xml.namespace;version="2.1.0",javax.xml.parsers;uses:="javax.xml.validation,org.w3c.dom,org.xml.sax,org.xml.sax.helpers";version="2.1.0",javax.xml.stream;uses:="javax.xml.namespace,javax.xml.stream.events,javax.xml.stream.util,javax.xml.transform";version="1.0.0",javax.xml.stream.events;uses:="javax.xml.namespace,javax.xml.stream";version="1.0.0",javax.xml.stream.util;uses [...] - sling.jpms.java.xml={dollar}{sling.jre.java.xml},javax.xml.catalog;uses:="javax.xml.namespace";version="1.0.0" diff --git a/builder/src/main/provisioning/oak.txt b/builder/src/main/provisioning/oak.txt deleted file mode 100644 index d3532f3..0000000 --- a/builder/src/main/provisioning/oak.txt +++ /dev/null @@ -1,102 +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. -# -# This is the OAK feature. -[feature name=oak] - -[variables] - oak.version=1.26.0 - -# The segment node store is used via a configuration -[artifacts startLevel=10] - org.apache.felix/org.apache.felix.jaas/1.0.2 - -[artifacts startLevel=15] - org.apache.jackrabbit/oak-api/${oak.version} - org.apache.jackrabbit/oak-jackrabbit-api/${oak.version} - org.apache.jackrabbit/oak-blob/${oak.version} - org.apache.jackrabbit/oak-blob-plugins/${oak.version} - org.apache.jackrabbit/oak-commons/${oak.version} - org.apache.jackrabbit/oak-core/${oak.version} - org.apache.jackrabbit/oak-core-spi/${oak.version} - org.apache.jackrabbit/oak-lucene/${oak.version} - org.apache.jackrabbit/oak-jcr/${oak.version} - org.apache.jackrabbit/oak-query-spi/${oak.version} - org.apache.jackrabbit/oak-security-spi/${oak.version} - # TODO - Sling does not come up without oak-store-composite - org.apache.jackrabbit/oak-store-composite/${oak.version} - # OAK-7263 - oak-store-document should be in oak_mongo runmode - org.apache.jackrabbit/oak-store-document/${oak.version} - org.apache.jackrabbit/oak-store-spi/${oak.version} - -[artifacts startLevel=15 runModes=oak_tar] - org.apache.jackrabbit/oak-segment-tar/${oak.version} - -[artifacts startLevel=15 runModes=oak_mongo] - org.mongodb/mongo-java-driver/3.8.2 - com.h2database/h2-mvstore/1.4.194 - -# start the Oak server instance after all components have been configured -# and started to avoid restarting that component ( see SLING-4556 ) -[artifacts startLevel=16] - org.apache.sling/org.apache.sling.jcr.oak.server/1.2.4 - -[configurations] - org.apache.felix.jaas.Configuration.factory-GuestLoginModule - jaas.controlFlag="optional" - jaas.classname="org.apache.jackrabbit.oak.spi.security.authentication.GuestLoginModule" - jaas.ranking=I"300" - - org.apache.felix.jaas.Configuration.factory-LoginModuleImpl - jaas.controlFlag="required" - jaas.classname="org.apache.jackrabbit.oak.security.authentication.user.LoginModuleImpl" - - org.apache.felix.jaas.Configuration.factory-TokenLoginModule - jaas.controlFlag="sufficient" - jaas.classname="org.apache.jackrabbit.oak.security.authentication.token.TokenLoginModule" - jaas.ranking=I"200" - - org.apache.felix.jaas.ConfigurationSpi - jaas.defaultRealmName="jackrabbit.oak" - jaas.configProviderName="FelixJaasProvider" - - org.apache.jackrabbit.oak.security.authentication.AuthenticationConfigurationImpl - org.apache.jackrabbit.oak.authentication.configSpiName="FelixJaasProvider" - - org.apache.jackrabbit.oak.security.user.UserConfigurationImpl - groupsPath="/home/groups" - usersPath="/home/users" - defaultDepth="1" - importBehavior="besteffort" - - org.apache.jackrabbit.oak.security.user.RandomAuthorizableNodeName - length=I"21" - - org.apache.jackrabbit.oak.spi.security.user.action.DefaultAuthorizableActionProvider - enabledActions=["org.apache.jackrabbit.oak.spi.security.user.action.AccessControlAction"] - userPrivilegeNames=["jcr:all"] - groupPrivilegeNames=["jcr:read"] - -[configurations runModes=oak_tar] - org.apache.jackrabbit.oak.segment.SegmentNodeStoreService - name="Default\ NodeStore" - -[configurations runModes=oak_mongo] - org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService - mongouri="mongodb://localhost:27017" - db="sling" diff --git a/builder/src/main/provisioning/repoinit.txt b/builder/src/main/provisioning/repoinit.txt deleted file mode 100644 index 2730768..0000000 --- a/builder/src/main/provisioning/repoinit.txt +++ /dev/null @@ -1,83 +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. -# -[feature name=repoinit] - -[artifacts] - org.apache.sling/org.apache.sling.repoinit.parser/1.6.2 - org.apache.sling/org.apache.sling.jcr.repoinit/1.1.24 - org.apache.sling/org.apache.sling.provisioning.model/1.8.6 - -[:repoinit] - # general - create path (sling:OrderedFolder) /content - set ACL for everyone - allow jcr:read on /content - end - - # sling-mapping - create service user sling-mapping - - set ACL for sling-mapping - allow jcr:read on / - end - - # sling-readall - create service user sling-readall - - set ACL for sling-readall - allow jcr:read on / - end - - # sling-xss - create service user sling-xss - - create path (sling:Folder) /apps/sling/xss - - set ACL for sling-xss - allow jcr:read on /apps/sling/xss - end - - # sling-i18n - create service user sling-i18n - - set ACL for sling-i18n - allow jcr:read on / - end - - # sling-jcr-install - create service user sling-jcr-install - - # used for config OSGi writeback - create path (sling:Folder) /apps/sling/install - - set ACL for sling-jcr-install - allow jcr:read on / - allow rep:write on /apps/sling/install - end - - # content-package installer - create service user sling-package-install - - set ACL for sling-package-install - allow jcr:all on / - allow jcr:namespaceManagement,jcr:nodeTypeDefinitionManagement on :repository - end -[configurations] - org.apache.sling.jcr.repoinit.impl.RepositoryInitializer - references="model@repoinit:context:/resources/provisioning/model.txt" diff --git a/builder/src/main/provisioning/scripting.txt b/builder/src/main/provisioning/scripting.txt deleted file mode 100644 index ce66e92..0000000 --- a/builder/src/main/provisioning/scripting.txt +++ /dev/null @@ -1,62 +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. -# -# -[feature name=sling] - -[artifacts] - org.apache.sling/org.apache.sling.scripting.api/2.2.0 - org.apache.sling/org.apache.sling.scripting.core/2.3.0 - org.apache.sling/org.apache.sling.scripting.javascript/3.1.2 - org.apache.sling/org.apache.sling.scripting.jsp/2.5.0 - org.apache.sling/org.apache.sling.scripting.jsp-api/1.0.2 - org.apache.sling/org.apache.sling.scripting.el-api/1.0.2 - org.apache.sling/org.apache.sling.scripting.jsp.taglib/2.4.0 - org.antlr/antlr4-runtime/4.7.2 - org.apache.sling/org.apache.sling.scripting.sightly.runtime/1.2.2-1.4.0 - org.apache.sling/org.apache.sling.scripting.sightly.compiler/1.2.6-1.4.0 - org.apache.sling/org.apache.sling.scripting.sightly.compiler.java/1.2.0-1.4.0 - org.apache.sling/org.apache.sling.scripting.sightly/1.4.0-1.4.0 - org.apache.sling/org.apache.sling.scripting.sightly.js.provider/1.2.0 - org.apache.sling/org.apache.sling.scripting.sightly.repl/1.0.6 - org.apache.servicemix.bundles/org.apache.servicemix.bundles.rhino/1.7.10_1 - -[:repoinit] - #<<< SLING-5848 - Define service user and ACLs for Scripting - create service user sling-scripting - - create path (sling:Folder) /libs - create path (sling:Folder) /apps - - set ACL for sling-scripting - deny jcr:all on / - allow jcr:read on /libs,/apps - end - # SLING-5848 - Define service user and ACLs for Scripting >>> - - -[configurations] - # configure the ScriptCache for scripts used by org.apache.sling.scripting.sightly.js.provider - org.apache.sling.scripting.core.impl.ScriptCacheImpl - org.apache.sling.scripting.cache.additional_extensions=["js"] - - org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-scripting - user.mapping=[ - "org.apache.sling.scripting.core\=sling-scripting", - "org.apache.sling.scripting.sightly.js.provider\=sling-scripting", - ] diff --git a/builder/src/main/provisioning/sling-caconfig.txt b/builder/src/main/provisioning/sling-caconfig.txt deleted file mode 100644 index aa36b0c..0000000 --- a/builder/src/main/provisioning/sling-caconfig.txt +++ /dev/null @@ -1,34 +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. -# -# -[feature name=sling-caconfig] - -[artifacts] - org.apache.sling/org.apache.sling.caconfig.api/1.2.0 - org.apache.sling/org.apache.sling.caconfig.spi/1.3.4 - org.apache.sling/org.apache.sling.caconfig.impl/1.5.0 - -[:repoinit] - create path (sling:Folder) /conf - -[configurations] - org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-sling-caconfig - user.mapping=[ - "org.apache.sling.caconfig.impl\=sling-readall" - ] diff --git a/builder/src/main/provisioning/sling-discovery.txt b/builder/src/main/provisioning/sling-discovery.txt deleted file mode 100644 index 5dd0566..0000000 --- a/builder/src/main/provisioning/sling-discovery.txt +++ /dev/null @@ -1,46 +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. -# -# -[feature name=sling-discovery] - -[artifacts] - org.apache.sling/org.apache.sling.discovery.api/1.0.4 - org.apache.sling/org.apache.sling.discovery.support/1.0.4 - org.apache.sling/org.apache.sling.discovery.commons/1.0.20 - org.apache.sling/org.apache.sling.discovery.base/2.0.8 - org.apache.sling/org.apache.sling.discovery.oak/1.2.28 - -[:repoinit] - create service user sling-discovery - - create path (sling:Folder) /var/discovery - create path (sling:Folder) /var/discovery/oak - - set ACL for sling-discovery - allow jcr:read,rep:write on /var/discovery - end - - -[configurations] - org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-sling.discovery - user.mapping=[ - "org.apache.sling.discovery.commons\=sling-discovery", - "org.apache.sling.discovery.base\=sling-discovery", - "org.apache.sling.discovery.oak\=sling-discovery" - ] diff --git a/builder/src/main/provisioning/sling-distribution.txt b/builder/src/main/provisioning/sling-distribution.txt deleted file mode 100644 index 53924c2..0000000 --- a/builder/src/main/provisioning/sling-distribution.txt +++ /dev/null @@ -1,24 +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. -# -# -[feature name=sling-distribution] - -[artifacts] - org.apache.sling/org.apache.sling.distribution.api/0.4.0 - org.apache.sling/org.apache.sling.distribution.core/0.4.2 \ No newline at end of file diff --git a/builder/src/main/provisioning/sling-event.txt b/builder/src/main/provisioning/sling-event.txt deleted file mode 100644 index 3db2a7a..0000000 --- a/builder/src/main/provisioning/sling-event.txt +++ /dev/null @@ -1,42 +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. -# -# -[feature name=sling-event] - -[artifacts] - org.apache.sling/org.apache.sling.event/4.2.12 - org.apache.sling/org.apache.sling.event.dea/1.1.4 - -[:repoinit] - create service user sling-event - - create path (sling:Folder) /var - create path (sling:Folder) /var/eventing - - set ACL for sling-event - allow jcr:read,rep:write on /var/eventing - end - - -[configurations] - org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-sling.event - user.mapping=[ - "org.apache.sling.event\=sling-event", - "org.apache.sling.event.dea\=sling-event" - ] diff --git a/builder/src/main/provisioning/sling-models-jacksonexporter.txt b/builder/src/main/provisioning/sling-models-jacksonexporter.txt deleted file mode 100644 index a827271..0000000 --- a/builder/src/main/provisioning/sling-models-jacksonexporter.txt +++ /dev/null @@ -1,27 +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. -# -[feature name=models-jacksonexporter] -[variables] - jackson.version=2.11.1 - -[artifacts] - org.apache.sling/org.apache.sling.models.jacksonexporter/1.0.8 - com.fasterxml.jackson.core/jackson-annotations/${jackson.version} - com.fasterxml.jackson.core/jackson-core/${jackson.version} - com.fasterxml.jackson.core/jackson-databind/${jackson.version} diff --git a/builder/src/main/provisioning/sling-validation.txt b/builder/src/main/provisioning/sling-validation.txt deleted file mode 100644 index 9201a7c..0000000 --- a/builder/src/main/provisioning/sling-validation.txt +++ /dev/null @@ -1,42 +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. -# -# -[feature name=sling-validation] - -[artifacts] - org.apache.sling/org.apache.sling.validation.api/1.0.0 - org.apache.sling/org.apache.sling.validation.core/1.0.4 - org.apache.sling/org.apache.sling.models.validation-impl/1.0.0 - -[:repoinit] - create service user sling-validation - - create path (sling:Folder) /apps - create path (sling:Folder) /libs - - set ACL for sling-validation - allow jcr:read on /apps - allow jcr:read on /libs - end - -[configurations] - org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-validation - user.mapping=[ - "org.apache.sling.validation.core\=sling-validation" - ] diff --git a/builder/src/main/provisioning/sling.txt b/builder/src/main/provisioning/sling.txt deleted file mode 100644 index e5962d8..0000000 --- a/builder/src/main/provisioning/sling.txt +++ /dev/null @@ -1,220 +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. -# -# The feature for Apache Sling -[feature name=sling] - -[variables] - jackrabbit.version=2.20.0 - -[artifacts startLevel=4] - org.apache.felix/org.apache.felix.scr/2.1.20 - org.apache.felix/org.apache.felix.metatype/1.2.2 - -[artifacts startLevel=5] - org.apache.felix/org.apache.felix.http.whiteboard/4.0.0 - org.apache.sling/org.apache.sling.extensions.webconsolebranding/1.0.2 - org.apache.sling/org.apache.sling.extensions.webconsolesecurityprovider/1.2.4 - org.apache.felix/org.apache.felix.inventory/1.0.6 - org.apache.felix/org.apache.felix.prefs/1.1.0 - org.apache.felix/org.apache.felix.webconsole/4.5.0 - org.apache.felix/org.apache.felix.webconsole.plugins.ds/2.1.0 - org.apache.felix/org.apache.felix.webconsole.plugins.obr/1.0.4 - org.apache.felix/org.apache.felix.webconsole.plugins.packageadmin/1.0.4 - org.apache.felix/org.apache.felix.webconsole.plugins.event/1.1.8 - org.apache.felix/org.apache.felix.webconsole.plugins.memoryusage/1.0.10 - org.apache.felix/org.apache.felix.bundlerepository/2.0.10 - org.apache.sling/org.apache.sling.extensions.threaddump/0.2.2 - org.apache.aries.jmx/org.apache.aries.jmx.api/1.1.5 - org.apache.aries.jmx/org.apache.aries.jmx.core/1.1.8 - org.apache.aries.jmx/org.apache.aries.jmx.whiteboard/1.2.0 - commons-io/commons-io/2.6 - commons-fileupload/commons-fileupload/1.4 - org.apache.sling/org.apache.sling.commons.log.webconsole/1.0.0 - org.apache.sling/org.apache.sling.api/2.22.0 - org.apache.sling/org.apache.sling.auth.core/1.4.8 - -[artifacts startLevel=10] - org.apache.felix/org.apache.felix.http.sslfilter/1.2.6 - org.apache.pdfbox/pdfbox/2.0.17 - org.apache.pdfbox/fontbox/2.0.17 - org.apache.pdfbox/jempbox/1.8.16 - org.apache.tika/tika-core/1.24 - -[artifacts startLevel=15] - org.apache.sling/org.apache.sling.jcr.jcr-wrapper/2.0.0 - org.apache.sling/org.apache.sling.jcr.api/2.4.0 - org.apache.sling/org.apache.sling.jcr.base/3.1.0 - org.apache.sling/org.apache.sling.jcr.registration/1.0.6 - org.apache.jackrabbit/jackrabbit-jcr-commons/${jackrabbit.version} - org.apache.jackrabbit/jackrabbit-spi/${jackrabbit.version} - org.apache.jackrabbit/jackrabbit-spi-commons/${jackrabbit.version} - org.apache.jackrabbit/jackrabbit-webdav/${jackrabbit.version} - org.apache.jackrabbit/jackrabbit-jcr-rmi/${jackrabbit.version} - org.apache.jackrabbit/jackrabbit-data/${jackrabbit.version} - org.apache.sling/org.apache.sling.jcr.webdav/2.3.8 - org.apache.sling/org.apache.sling.jcr.davex/1.3.10 - org.apache.sling/org.apache.sling.jcr.jackrabbit.usermanager/2.2.8 - org.apache.sling/org.apache.sling.jcr.jackrabbit.accessmanager/3.0.4 - org.apache.sling/org.apache.sling.jcr.webconsole/1.0.2 - io.dropwizard.metrics/metrics-core/3.2.6 - org.apache.sling/org.apache.sling.commons.metrics/1.2.8 - com.google.guava/guava/15.0 - org.apache.sling/org.apache.sling.resource.filter/1.0.0 - -[artifacts] - commons-collections/commons-collections/3.2.2 - org.apache.commons/commons-collections4/4.4 - commons-codec/commons-codec/1.14 - org.apache.commons/commons-math/2.2 - org.apache.httpcomponents/httpcore-osgi/4.4.12 - org.apache.httpcomponents/httpclient-osgi/4.5.10 - org.apache.sling/org.apache.sling.adapter/2.1.10 - org.apache.sling/org.apache.sling.auth.form/1.0.20 - org.apache.sling/org.apache.sling.bundleresource.impl/2.3.2 - org.apache.sling/org.apache.sling.commons.classloader/1.4.4 - org.apache.sling/org.apache.sling.commons.compiler/2.4.0 - org.apache.sling/org.apache.sling.commons.fsclassloader/1.0.12 - org.apache.sling/org.apache.sling.commons.mime/2.2.2 - org.apache.sling/org.apache.sling.commons.scheduler/2.7.6 - org.apache.sling/org.apache.sling.commons.threads/3.2.20 - org.apache.sling/org.apache.sling.engine/2.7.2 - org.apache.sling/org.apache.sling.fsresource/2.1.16 - org.apache.sling/org.apache.sling.i18n/2.5.14 - org.apache.sling/org.apache.sling.installer.console/1.1.0 - org.apache.sling/org.apache.sling.installer.provider.jcr/3.2.2 - org.apache.sling/org.apache.sling.installer.hc/2.0.2 - org.apache.jackrabbit.vault/org.apache.jackrabbit.vault/3.4.4 - org.apache.sling/org.apache.sling.installer.factory.packages/1.0.4 - org.apache.sling/org.apache.sling.jcr.contentloader/2.3.0 - org.apache.sling/org.apache.sling.jcr.resource/3.0.22 - org.apache.sling/org.apache.sling.models.api/1.3.8 - org.apache.sling/org.apache.sling.models.impl/1.4.12 - org.apache.sling/org.apache.sling.resourceresolver/1.6.16 - org.apache.sling/org.apache.sling.serviceusermapper/1.4.4 - org.apache.sling/org.apache.sling.serviceuser.webconsole/1.0.2 - org.apache.sling/org.apache.sling.servlets.get/2.1.40 - org.apache.sling/org.apache.sling.servlets.post/2.3.36 - org.apache.sling/org.apache.sling.servlets.resolver/2.7.2 - org.apache.sling/org.apache.sling.xss/2.2.2 - javax.mail/mail/1.5.0-b01 - org.apache.geronimo.bundles/jstl/1.2_1 - -[configurations] - org.apache.sling.engine.impl.log.RequestLogger - access.log.enabled=B"true" - request.log.outputtype=I"0" - access.log.output="log.access" - request.log.output="log.request" - request.log.enabled=B"true" - access.log.outputtype=I"0" - - org.apache.sling.commons.log.LogManager - org.apache.sling.commons.log.pattern="%d{dd.MM.yyyy HH:mm:ss.SSS}\ *%level*\ [%thread]\ %logger\ %msg%n" - org.apache.sling.commons.log.file="logs/error.log" - org.apache.sling.commons.log.level="info" - org.apache.sling.commons.log.file.size="'.'yyyy-MM-dd" - org.apache.sling.commons.log.file.number=I"7" - org.apache.sling.commons.log.packagingDataEnabled=B"true" - - org.apache.sling.commons.log.LogManager.factory.config-access.log - org.apache.sling.commons.log.pattern="%msg%n" - org.apache.sling.commons.log.names=["log.access"] - org.apache.sling.commons.log.file="logs/access.log" - org.apache.sling.commons.log.level="info" - - org.apache.sling.commons.log.LogManager.factory.config-request.log - org.apache.sling.commons.log.pattern="%msg%n" - org.apache.sling.commons.log.names=["log.request"] - org.apache.sling.commons.log.file="logs/request.log" - org.apache.sling.commons.log.level="info" - - # TODO: remove bundles as their dependency on admin login is fixed, see SLING-5355 for linked issues - # For these bundles, admin login is considered "ok": - # org.apache.sling.jcr.contentloader - org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment-sling - whitelist.name="sling" - whitelist.bundles=[ - "org.apache.sling.discovery.commons",\ - "org.apache.sling.discovery.base",\ - "org.apache.sling.discovery.oak",\ - "org.apache.sling.extensions.webconsolesecurityprovider",\ - "org.apache.sling.i18n",\ - "org.apache.sling.jcr.base",\ - "org.apache.sling.jcr.contentloader",\ - "org.apache.sling.jcr.jackrabbit.usermanager",\ - "org.apache.sling.jcr.oak.server",\ - "org.apache.sling.jcr.repoinit",\ - "org.apache.sling.jcr.webconsole",\ - "org.apache.sling.servlets.post",\ - "org.apache.sling.serviceuser.webconsole" - ] - - # WebDAV servlet requires config now - org.apache.sling.jcr.webdav.impl.servlets.SimpleWebDavServlet - dav.root="/dav" - - # DavEx servlet requires config now - org.apache.sling.jcr.davex.impl.servlets.SlingDavExServlet - alias="/server" - - org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-resourceresolver - user.mapping=[ - "org.apache.sling.resourceresolver:mapping\=sling-mapping", - "org.apache.sling.resourceresolver:hierarchy\=sling-readall", - "org.apache.sling.resourceresolver:observation\=sling-readall", - "org.apache.sling.resourceresolver:console\=sling-readall" - ] - - # the user mapping for the servlet resolver, subservice "console" namely the user sling-scripting is created in scripting.txt - org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-servletsresolver - user.mapping=[ - "org.apache.sling.servlets.resolver:console\=sling-readall", - "org.apache.sling.servlets.resolver:scripts\=sling-scripting" - ] - - org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-observation - user.mapping=[ - "org.apache.sling.jcr.resource:observation\=sling-readall" - ] - - org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-xss - user.mapping=[ - "org.apache.sling.xss\=sling-xss" - ] - - org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-i18n - user.mapping=[ - "org.apache.sling.i18n\=sling-i18n" - ] - - org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-jcr-install - user.mapping=[ - "org.apache.sling.installer.provider.jcr\=sling-jcr-install" - ] - - org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-jcr-resource - user.mapping=[ - "org.apache.sling.jcr.resource:validation\=sling-readall" - ] - - org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-installer-factories - user.mapping=[ - "org.apache.sling.installer.factory.packages\=sling-package-install" - ] - diff --git a/builder/src/main/provisioning/standalone.txt b/builder/src/main/provisioning/standalone.txt deleted file mode 100644 index 2bac8c2..0000000 --- a/builder/src/main/provisioning/standalone.txt +++ /dev/null @@ -1,26 +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. -# -# The :standalone feature contains artifacts for the standalone jar -# -[feature name=standalone] - -# Add a servlet implementation for the standalone case -[artifacts startLevel=5 runModes=:standalone] - org.apache.felix/org.apache.felix.http.servlet-api/1.1.2 - org.apache.felix/org.apache.felix.http.jetty/4.0.18 diff --git a/builder/src/main/provisioning/webapp.txt b/builder/src/main/provisioning/webapp.txt deleted file mode 100644 index 0a1c7b6..0000000 --- a/builder/src/main/provisioning/webapp.txt +++ /dev/null @@ -1,25 +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. -# -# The :standalone feature contains artifacts for the standalone jar -# -[feature name=webapp] - -# Add the felix servlet bridge for the webapp case -[artifacts runModes=:webapp] - org.apache.felix/org.apache.felix.http.bridge/4.0.12 diff --git a/builder/src/main/scripts/fix_package_namespace.sh b/builder/src/main/scripts/fix_package_namespace.sh deleted file mode 100644 index 1e5d5fc..0000000 --- a/builder/src/main/scripts/fix_package_namespace.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash -# -# 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. -# -# -# This script fixes Jackrabbit content packages created on Sling CMS < 0.16.2 -# which have an incorrect URL for the Sling namespace -# - -PACKAGE=$1 -unzip $PACKAGE -d out -IFS=$'\n' -for CONTENT_XML in $(find out -name .content.xml) -do - echo "Replacing Sling Namespace in ${CONTENT_XML}" - sed -i "" "s|http\://www.sling.apache.org/sling/1.0|http://sling.apache.org/jcr/sling/1.0|g" "$CONTENT_XML" -done -for CND in $(find . -name *.cnd) -do - echo "Replacing Sling Namespace in ${CND}" - sed -i "" "s|http\://www.sling.apache.org/sling/1.0|http://sling.apache.org/jcr/sling/1.0|g" "$CND" -done - -cd out -zip -r "../replaced-$PACKAGE" * -cd .. -rm -rf out -echo "Sling Namespace replaced successfully in replaced-$PACKAGE" \ No newline at end of file diff --git a/builder/src/main/scripts/start.sh b/builder/src/main/scripts/start.sh deleted file mode 100755 index 493d84e..0000000 --- a/builder/src/main/scripts/start.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/bash -# -# 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. -# -# -# This script configures the start information for this server. -# -# The following variables may be used to override the defaults. -# - -script="$0" -basename="$(dirname $script)" -cd $basename - -# port used for accessing the app -if [ -z "$APP_PORT" ]; then - APP_PORT=8080 -fi - -# default JVM options -if [ -z "$APP_JVM_OPTS" ]; then - APP_JVM_OPTS='-server -Xmx1024m -XX:MaxPermSize=256M -Djava.awt.headless=true' -fi - -# debugging support -if [ -n "${APP_DEBUG_PORT}" ]; then - APP_JVM_OPTS="${APP_JVM_OPTS} -agentlib:jdwp=transport=dt_socket,server=y,address=${APP_DEBUG_PORT},suspend=n" -fi - -# ------------------------------------------------------------------------------ -# do not configure below this point -# ------------------------------------------------------------------------------ - -if [ $APP_PORT ]; then - START_OPTS="${START_OPTS} -p ${APP_PORT}" -fi -START_OPTS="${START_OPTS}" - -JARFILE=`ls *cms*.jar | head -1` -if [ -z "$JARFILE" ]; then - echo "No CMS JAR file found." - exit 1 -fi -mkdir -p sling/logs -( - ( - java $APP_JVM_OPTS -jar $JARFILE $START_OPTS & - echo $! > app.pid - ) >> sling/logs/stdout.log 2>&1 -) & -echo "Application started on port ${APP_PORT}!" diff --git a/builder/src/main/scripts/stop.sh b/builder/src/main/scripts/stop.sh deleted file mode 100755 index 24f0bfa..0000000 --- a/builder/src/main/scripts/stop.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash -# -# 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. -# -# This script stops the (running) application -# - -START_OPTS='stop -c .' -JARFILE=`ls *cms*.jar | head -1` -if [ -z "$JARFILE" ]; then - echo "No CMS JAR file found." - exit 1 -fi - -java -jar $JARFILE $START_OPTS -STOP_CODE=$? -if [ "${STOP_CODE}" == "0" ]; then - echo "Application not running" -else - echo "Stop command returned ${STOP_CODE}. Trying to kill the process..." - PID=$(cat app.pid 2>/dev/null) - rm -f app.pid - if [ "$PID" ]; then - if ps -p $PID > /dev/null 2>&1; then - kill $PID - STOP_CODE=$? - echo "process ${PID} was killed" - else - echo "process ${PID} not running" - STOP_CODE=4 - fi - else - echo "app.pid not found" - STOP_CODE=4 - fi -fi -exit ${STOP_CODE} diff --git a/builder/src/test/java/org/apache/sling/launchpad/LaunchpadReadyRule.java b/builder/src/test/java/org/apache/sling/launchpad/LaunchpadReadyRule.java deleted file mode 100644 index 5b7815d..0000000 --- a/builder/src/test/java/org/apache/sling/launchpad/LaunchpadReadyRule.java +++ /dev/null @@ -1,121 +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. - */ -package org.apache.sling.launchpad; - -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.net.ConnectException; -import java.util.ArrayList; -import java.util.List; - -import org.apache.http.HttpResponse; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; -import org.junit.rules.ExternalResource; - -public class LaunchpadReadyRule extends ExternalResource { - - private static final int TRIES = 60; - private static final int WAIT_BETWEEN_TRIES_MILLIS = 1000; - - private final List<Check> checks = new ArrayList<>(); - - public LaunchpadReadyRule(int launchpadPort) { - - checks.add(new Check("http://localhost:" + launchpadPort + "/server/default/jcr:root/content")); - checks.add(new Check("http://localhost:" + launchpadPort + "/content/apache/sling-apache-org/index.html") { - @Override - public String runCheck(HttpResponse response) throws Exception { - try (InputStreamReader isr = new InputStreamReader(response.getEntity().getContent()); - BufferedReader reader = new BufferedReader(isr)) { - - String line; - while ((line = reader.readLine()) != null) { - if (line.contains("Apache Sling - Bringing Back the Fun!")) { - return null; - } - } - } - - return "Did not find 'ready' marker in the response body"; - } - }); - } - - @Override - protected void before() throws Throwable { - - try (CloseableHttpClient client = HttpClients.createDefault()) { - for (Check check : checks) { - runCheck(client, check); - } - } - } - - private void runCheck(CloseableHttpClient client, Check check) throws Exception { - - String lastFailure = null; - HttpGet get = new HttpGet(check.getUrl()); - - for (int i = 0; i < TRIES; i++) { - try (CloseableHttpResponse response = client.execute(get)) { - - if (response.getStatusLine().getStatusCode() != 200) { - lastFailure = "Status code is " + response.getStatusLine(); - Thread.sleep(WAIT_BETWEEN_TRIES_MILLIS); - continue; - } - - lastFailure = check.runCheck(response); - if (lastFailure == null) { - return; - } - } catch ( ConnectException e ) { - lastFailure = e.getClass().getName() + " : " + e.getMessage(); - } - - Thread.sleep(WAIT_BETWEEN_TRIES_MILLIS); - } - - throw new RuntimeException(String.format("Launchpad not ready. Failed check for URL %s with message '%s'", - check.getUrl(), lastFailure)); - } - - static class Check { - private String url; - - public Check(String url) { - this.url = url; - } - - public String getUrl() { - return url; - } - - /** - * @param response the HttpResponse - * @return null if check check was successful, an error description otherwise - * @throws Exception - */ - public String runCheck(HttpResponse response) throws Exception { - return null; - } - } - -} diff --git a/builder/src/test/java/org/apache/sling/launchpad/SmokeIT.java b/builder/src/test/java/org/apache/sling/launchpad/SmokeIT.java deleted file mode 100644 index 71676dc..0000000 --- a/builder/src/test/java/org/apache/sling/launchpad/SmokeIT.java +++ /dev/null @@ -1,195 +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. - */ -package org.apache.sling.launchpad; - -import static org.hamcrest.CoreMatchers.equalTo; -import static org.hamcrest.CoreMatchers.notNullValue; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.fail; - -import java.util.List; -import java.util.Map; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; - -import org.apache.felix.utils.json.JSONParser; -import org.apache.http.Header; -import org.apache.http.HttpHost; -import org.apache.http.auth.AuthScope; -import org.apache.http.auth.UsernamePasswordCredentials; -import org.apache.http.client.CredentialsProvider; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.protocol.HttpClientContext; -import org.apache.http.impl.auth.BasicScheme; -import org.apache.http.impl.client.BasicAuthCache; -import org.apache.http.impl.client.BasicCredentialsProvider; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClientBuilder; -import org.hamcrest.CoreMatchers; -import org.junit.Before; -import org.junit.ClassRule; -import org.junit.Test; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; - -public class SmokeIT { - - private static final int LAUNCHPAD_PORT = Integer.getInteger("launchpad.http.port", 8080); - private static final int EXPECTED_BUNDLES_COUNT = Integer.getInteger("IT.expected.bundles.count", Integer.MAX_VALUE); - - @ClassRule - public static LaunchpadReadyRule LAUNCHPAD = new LaunchpadReadyRule(LAUNCHPAD_PORT); - private HttpClientContext httpClientContext; - - @Before - public void prepareHttpContext() { - - CredentialsProvider credsProvider = new BasicCredentialsProvider(); - UsernamePasswordCredentials creds = new UsernamePasswordCredentials("admin", "admin"); - credsProvider.setCredentials(new AuthScope("localhost", LAUNCHPAD_PORT), creds); - - BasicAuthCache authCache = new BasicAuthCache(); - BasicScheme basicAuth = new BasicScheme(); - authCache.put(new HttpHost("localhost", LAUNCHPAD_PORT, "http"), basicAuth); - - httpClientContext = HttpClientContext.create(); - httpClientContext.setCredentialsProvider(credsProvider); - httpClientContext.setAuthCache(authCache); - } - - private CloseableHttpClient newClient() { - - return HttpClientBuilder.create() - .setDefaultCredentialsProvider(httpClientContext.getCredentialsProvider()) - .build(); - } - - @Test - public void verifyAllBundlesStarted() throws Exception { - - try ( CloseableHttpClient client = newClient() ) { - - HttpGet get = new HttpGet("http://localhost:" + LAUNCHPAD_PORT + "/system/console/bundles.json"); - - // pass the context to ensure preemptive basic auth is used - // https://hc.apache.org/httpcomponents-client-ga/tutorial/html/authentication.html - try ( CloseableHttpResponse response = client.execute(get, httpClientContext) ) { - - if ( response.getStatusLine().getStatusCode() != 200 ) { - fail("Unexpected status line " + response.getStatusLine()); - } - - Header contentType = response.getFirstHeader("Content-Type"); - assertThat("Content-Type header", contentType.getValue(), CoreMatchers.startsWith("application/json")); - - Map<String, Object> obj = new JSONParser(response.getEntity().getContent()).getParsed(); - - @SuppressWarnings("unchecked") - List<Object> status = (List<Object>) obj.get("s"); - - @SuppressWarnings("unchecked") - List<Object> bundles = (List<Object>) obj.get("data"); - if(bundles.size() < EXPECTED_BUNDLES_COUNT) { - fail("Expected at least " + EXPECTED_BUNDLES_COUNT + " bundles, got " + bundles.size()); - } - - BundleStatus bs = new BundleStatus(status); - - if ( bs.resolvedBundles != 0 || bs.installedBundles != 0 ) { - - StringBuilder out = new StringBuilder(); - out.append("Expected all bundles to be active, but instead got ") - .append(bs.resolvedBundles).append(" resolved bundles, ") - .append(bs.installedBundles).append(" installed bundlles: "); - - for ( int i = 0 ; i < bundles.size(); i++ ) { - @SuppressWarnings("unchecked") - Map<String, Object> bundle = (Map<String, Object>) bundles.get(i); - - String bundleState = (String) bundle.get("state"); - String bundleSymbolicName = (String) bundle.get("symbolicName"); - String bundleVersion = (String) bundle.get("version"); - - switch ( bundleState ) { - case "Active": - case "Fragment": - continue; - - default: - out.append("\n- ").append(bundleSymbolicName).append(" ").append(bundleVersion).append(" is in state " ).append(bundleState); - } - } - - fail(out.toString()); - } - } - } - } - - @Test - public void ensureRepositoryIsStarted() throws Exception { - try ( CloseableHttpClient client = newClient() ) { - - HttpGet get = new HttpGet("http://localhost:" + LAUNCHPAD_PORT + "/server/default/jcr:root/content"); - - try ( CloseableHttpResponse response = client.execute(get) ) { - - if ( response.getStatusLine().getStatusCode() != 200 ) { - fail("Unexpected status line " + response.getStatusLine()); - } - - Header contentType = response.getFirstHeader("Content-Type"); - assertThat("Content-Type header", contentType.getValue(), equalTo("text/xml")); - - DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); - dbf.setNamespaceAware(true); - DocumentBuilder db = dbf.newDocumentBuilder(); - Document document = db.parse(response.getEntity().getContent()); - - Element docElement = document.getDocumentElement(); - NamedNodeMap attrs = docElement.getAttributes(); - - Node nameAttr = attrs.getNamedItemNS("http://www.jcp.org/jcr/sv/1.0", "name"); - assertThat("no 'name' attribute found", nameAttr, notNullValue()); - assertThat("Invalid name attribute value", nameAttr.getNodeValue(), equalTo("content")); - } - } - } - - static class BundleStatus { - - long totalBundles; - long activeBundles; - long activeFragments; - long resolvedBundles; - long installedBundles; - - public BundleStatus(List<Object> array) { - - totalBundles = (Long)array.get(0); - activeBundles = (Long)array.get(1); - activeFragments = (Long)array.get(2); - resolvedBundles = (Long)array.get(3); - installedBundles = (Long)array.get(4); - - } - } -} diff --git a/pom.xml b/pom.xml index 76a96ed..6e9fc8f 100644 --- a/pom.xml +++ b/pom.xml @@ -38,7 +38,7 @@ <module>transformer</module> <module>ui</module> <module>reference</module> - <module>builder</module> + <module>feature</module> <module>archetype</module> </modules> @@ -129,12 +129,6 @@ </dependency> <dependency> <groupId>org.apache.sling</groupId> - <artifactId>org.apache.sling.distribution.api</artifactId> - <version>0.4.0</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.commons.messaging</artifactId> <version>1.0.0</version> <scope>provided</scope> @@ -152,6 +146,18 @@ <scope>provided</scope> </dependency> <dependency> + <artifactId>org.apache.sling.discovery.api</artifactId> + <version>1.0.4</version> + <groupId>org.apache.sling</groupId> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.apache.sling</groupId> + <artifactId>org.apache.sling.distribution.api</artifactId> + <version>0.4.0</version> + <scope>provided</scope> + </dependency> + <dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.engine</artifactId> <version>2.6.18</version>
