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

# Apache Felix Configuration Admin Service
# Bundle permissions
# see FELIX-4039
#

# Imported/Exported packages
# -> MANIFEST.MF
(org.osgi.framework.PackagePermission "org.osgi.service.log" "import")
(org.osgi.framework.PackagePermission "org.osgi.framework" "import")
(org.osgi.framework.PackagePermission "org.osgi.util.tracker" "import")
(org.osgi.framework.PackagePermission "org.osgi.service.cm" "import,exportonly")
(org.osgi.framework.PackagePermission "org.apache.felix.cm" "import,exportonly")
(org.osgi.framework.PackagePermission "org.apache.felix.cm.file" "import,exportonly")

# General bundle permissions
(java.util.PropertyPermission "felix.cm.*" "read")
(org.osgi.framework.ServicePermission "org.apache.felix.cm.*" "get,register")
(org.osgi.framework.ServicePermission "org.osgi.service.cm.*" "get,register")
(org.osgi.framework.ServicePermission "org.osgi.service.log.LogService" "get")

# Manage configurations
# -> ConfigurationAdminImpl
(org.osgi.framework.AdminPermission "*" "metadata")
(org.osgi.service.cm.ConfigurationPermission "*" "configure,target")

# Handle persistent configuration files
# -> FilePersistenceManager
(java.util.PropertyPermission "os.name" "read")
(java.util.PropertyPermission "user.dir" "read")
(java.io.FilePermission "-" "read,write,execute,delete")

# -> ConfigurationManager
(org.osgi.framework.ServicePermission "org.apache.felix.cm.PersistenceManager" "register")

# -> BaseTracker.getAccessControlContext
(java.security.SecurityPermission "createAccessControlContext")

# Coordinator Support
(org.osgi.framework.PackagePermission "org.osgi.service.coordinator" "import")
(org.osgi.framework.ServicePermission "org.osgi.service.coordinator.*" "get")
(org.osgi.service.coordinator.CoordinationPermission "*" "initiate,participate")

# Capability Support
(org.osgi.framework.CapabilityPermission "osgi.implementation" "provide")