#
#  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.
#
# NoSQL Launchpad

[feature name=nosql-mongodb]

[artifacts runModes=nosql-mongodb]
  org.mongodb/mongo-java-driver
  org.apache.sling/org.apache.sling.nosql.mongodb-resourceprovider

[configurations runModes=nosql-mongodb]
  
  # Mount NoSQL MongoDB as root resource provider factory
  org.apache.sling.nosql.mongodb.resourceprovider.MongoDBNoSqlResourceProviderFactory.factory.config-default
    provider.roots=["/"]
    connectionString="localhost:27017"
    database="sling"
    collection="resources"

  # Remove JCR resource provider factory as required default providers
  org.apache.sling.jcr.resource.internal.JcrResourceResolverFactoryImpl
    resource.resolver.required.providers=[]
