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

#-----------------------------------------------------------------
# CODEOWNERS and .asf.yml - owned by everyone
#-----------------------------------------------------------------
CODEOWNERS @apache/geode-committers
.asf.yml @apache/geode-committers

#-----------------------------------------------------------------
# Serialization
#-----------------------------------------------------------------
geode-serialization/**                                            @bschuchardt @Bill
geode-core/**/org/apache/geode/pdx/**                             @upthewaterspout @dschneider-pivotal
geode-core/**/org/apache/geode/internal/*                         @bschuchardt @Bill

#-----------------------------------------------------------------
# Membership
#-----------------------------------------------------------------
geode-membership/**                                               @bschuchardt @Bill
geode-old-client-support/**                                       @bschuchardt @Bill
geode-tcp-server/**                                               @bschuchardt @Bill
geode-core/**/org/apache/geode/distributed/internal/membership/** @bschuchardt @Bill

#-----------------------------------------------------------------
# P2P Messaging
#-----------------------------------------------------------------
geode-core/**/org/apache/geode/internal/tcp/**                    @bschuchardt @Bill
geode-core/**/org/apache/geode/distributed/internal/direct/**     @bschuchardt @Bill
geode-core/**/org/apache/geode/internal/net/**                    @bschuchardt @Bill
geode-core/**/org/apache/geode/net/**                             @bschuchardt @Bill
geode-core/**/org/apache/geode/distributed/*                      @bschuchardt @Bill
geode-core/**/org/apache/geode/distributed/internal/*             @bschuchardt @Bill

#-----------------------------------------------------------------
# Client/server messaging and cache operations
#-----------------------------------------------------------------
geode-core/**/org/apache/geode/cache/client/**                    @bschuchardt @Bill
geode-core/**/org/apache/geode/cache/server/**                    @bschuchardt @Bill
geode-core/**/org/apache/geode/internal/cache/client/**           @bschuchardt @echobravopapa
geode-core/**/org/apache/geode/internal/cache/tier/**             @bschuchardt @echobravopapa

#-----------------------------------------------------------------
# Client Queues
#-----------------------------------------------------------------
geode-core/**/org/apache/geode/internal/cache/ha/**               @agingade @boglesby
geode-core/**/org/apache/geode/internal/cache/tier/CacheClient*   @agingade @boglesby

#-----------------------------------------------------------------
# Experimental Protobuf based Client/Server
#-----------------------------------------------------------------
#geode-experimental-driver/**
#geode-protobuf/**
#geode-protobuf-messages/**

#-----------------------------------------------------------------
# Core Public API packages - Cache, Region, etc.
#-----------------------------------------------------------------
geode-core/**/org/apache/geode/*                                  @dschneider-pivotal @boglesby
geode-core/**/org/apache/geode/cache/*                            @dschneider-pivotal @boglesby
geode-core/**/org/apache/geode/cache/util/**                      @dschneider-pivotal @boglesby

#-----------------------------------------------------------------
# Distributed Locks
#-----------------------------------------------------------------
geode-core/**/org/apache/geode/distributed/internal/locks/**      @dschneider-pivotal @pivotal-eshu

#-----------------------------------------------------------------
# Core region implementations and plumbing
#-----------------------------------------------------------------
geode-core/**/org/apache/geode/internal/cache/*                   @nabarunnag @DonalEvans @jchen21

#-----------------------------------------------------------------
# Region entry management
#-----------------------------------------------------------------
geode-core/**/org/apache/geode/internal/cache/entries/**          @dschneider-pivotal @sabbey37 @bschuchardt @upthewaterspout
geode-core/**/org/apache/geode/internal/cache/region/entry/**     @dschneider-pivotal @sabbey37 @bschuchardt @upthewaterspout
geode-core/**/org/apache/geode/internal/cache/map/**              @dschneider-pivotal @sabbey37 @bschuchardt @upthewaterspout
geode-core/**/org/apache/geode/compression/**                     @dschneider-pivotal @sabbey37
geode-core/**/org/apache/geode/internal/cache/compression/**      @dschneider-pivotal @sabbey37

#-----------------------------------------------------------------
# Partitioned Regions
#-----------------------------------------------------------------
geode-rebalancer/**                                               @boglesby @BenjaminPerryRoss
geode-core/**/org/apache/geode/internal/cache/partitioned/**      @boglesby @BenjaminPerryRoss
geode-core/**/org/apache/geode/cache/partition/**                 @boglesby @BenjaminPerryRoss

#-----------------------------------------------------------------
# Event tracking
#-----------------------------------------------------------------
geode-core/**/org/apache/geode/internal/cache/event/**            @agingade @nabarunnag @gesterzhou

#-----------------------------------------------------------------
# Eviction
#-----------------------------------------------------------------
geode-core/**/org/apache/geode/internal/cache/eviction/**         @agingade @dschneider-pivotal
geode-core/**/org/apache/geode/internal/size/**                   @agingade @dschneider-pivotal

#-----------------------------------------------------------------
# Offheap
#-----------------------------------------------------------------
geode-core/**/org/apache/geode/internal/offheap/**                @pivotal-eshu @dschneider-pivotal

#-----------------------------------------------------------------
# Transactions
#-----------------------------------------------------------------
geode-core/**/org/apache/geode/internal/cache/tx/**               @pivotal-eshu @gesterzhou
geode-core/**/org/apache/geode/internal/jta/**                    @pivotal-eshu @gesterzhou
geode-core/**/org/apache/geode/internal/cache/locks/**            @pivotal-eshu @gesterzhou

#-----------------------------------------------------------------
# Function Execution
#-----------------------------------------------------------------
geode-core/**/org/apache/geode/internal/cache/execute/**          @boglesby @sabbey37
geode-core/**/org/apache/geode/cache/execute/**                   @boglesby @sabbey37

#-----------------------------------------------------------------
# Querying
#-----------------------------------------------------------------
geode-cq/**                                                       @nabarunnag @DonalEvans
geode-core/**/org/apache/geode/cache/query/**                     @nabarunnag @DonalEvans

#-----------------------------------------------------------------
# Session State:
#-----------------------------------------------------------------
extensions/**                                                     @sabbey37 @jdeppe-pivotal @BenjaminPerryRoss
geode-core/**/org/apache/geode/internal/modules/util/**           @sabbey37 @jdeppe-pivotal @BenjaminPerryRoss

#-----------------------------------------------------------------
# DEV rest API
#-----------------------------------------------------------------
geode-web-api/**                                                  @jdeppe-pivotal @jinmeiliao

#-----------------------------------------------------------------
# Lucene integration
#-----------------------------------------------------------------
geode-lucene/**                                                   @nabarunnag @DonalEvans

#-----------------------------------------------------------------
# Memcached integration
#-----------------------------------------------------------------
geode-memcached/**                                                @nabarunnag @DonalEvans

#-----------------------------------------------------------------
# Misc Utilities
#-----------------------------------------------------------------
geode-core/**/org/apache/geode/internal/util/concurrent/**        @nabarunnag @boglesby
geode-core/**/org/apache/geode/internal/shared/**                 @nabarunnag @boglesby
geode-core/**/org/apache/geode/internal/sequencelog/**            @nabarunnag @boglesby
geode-core/**/org/apache/geode/internal/concurrent/**             @nabarunnag @boglesby
geode-core/**/org/apache/geode/distributed/internal/unsafe/**     @nabarunnag @boglesby
geode-core/**/org/apache/geode/internal/lang/**                   @nabarunnag @boglesby
geode-core/**/org/apache/geode/internal/monitoring/**             @nabarunnag @boglesby
geode-core/**/org/apache/geode/internal/exception/**              @nabarunnag @boglesby
geode-core/**/org/apache/geode/lang/**                            @nabarunnag @boglesby
geode-core/**/org/apache/geode/ra/**                              @nabarunnag @boglesby
geode-core/**/org/apache/geode/internal/util/**                   @nabarunnag @boglesby
geode-core/**/org/apache/geode/internal/cache/vmotion/**          @nabarunnag @boglesby
geode-core/**/org/apache/geode/internal/jndi/**                   @nabarunnag @boglesby
geode-common/**                                                   @nabarunnag @boglesby
geode-unsafe/**                                                   @nabarunnag @boglesby

#-----------------------------------------------------------------
# Persistence
#-----------------------------------------------------------------
geode-core/**/org/apache/geode/cache/persistence/**               @dschneider-pivotal @jchen21 @upthewaterspout @gesterzhou
geode-core/**/org/apache/geode/internal/cache/persistence/**      @dschneider-pivotal @jchen21 @upthewaterspout @gesterzhou
geode-core/**/org/apache/geode/internal/cache/backup/**           @dschneider-pivotal @agingade @jchen21 @upthewaterspout @gesterzhou

#-----------------------------------------------------------------
# Region Version Vectors - used for sychronization on
# member failures and persistent recovery
#-----------------------------------------------------------------
geode-core/**/org/apache/geode/internal/cache/versions/**         @dschneider-pivotal @gesterzhou @bschuchardt


#-----------------------------------------------------------------
# WAN messaging and queues
#-----------------------------------------------------------------
geode-wan/**                                                      @gesterzhou @boglesby
geode-core/**/org/apache/geode/cache/asyncqueue/**                @gesterzhou @boglesby
geode-core/**/org/apache/geode/cache/wan/**                       @gesterzhou @boglesby
geode-core/**/org/apache/geode/internal/cache/wan/**              @gesterzhou @boglesby

#-----------------------------------------------------------------
# Management
#-----------------------------------------------------------------
geode-management/**                                               @jdeppe-pivotal @jinmeiliao
geode-web-management/**                                           @jdeppe-pivotal @jinmeiliao
geode-gfsh/**                                                     @jdeppe-pivotal @jinmeiliao
geode-pulse/**                                                    @jdeppe-pivotal @jinmeiliao
geode-http-service/**                                             @jdeppe-pivotal @jinmeiliao
geode-web/**                                                      @jdeppe-pivotal @jinmeiliao
geode-core/**/org/apache/geode/admin/**                           @jdeppe-pivotal @jinmeiliao
geode-core/**/org/apache/geode/alerting/**                        @jdeppe-pivotal @jinmeiliao
geode-core/**/org/apache/geode/management/**                      @jdeppe-pivotal @jinmeiliao
geode-core/**/org/apache/geode/cache/configuration/**             @jdeppe-pivotal @jinmeiliao
geode-core/**/org/apache/geode/internal/admin/**                  @jdeppe-pivotal @jinmeiliao
geode-core/**/org/apache/geode/internal/cache/xmlcache/**         @jdeppe-pivotal @jinmeiliao
geode-core/**/org/apache/geode/internal/cache/extension/**        @jdeppe-pivotal @jinmeiliao
geode-core/**/org/apache/geode/internal/config/**                 @jdeppe-pivotal @jinmeiliao
geode-core/**/org/apache/geode/internal/process/**                @jdeppe-pivotal @jinmeiliao
geode-core/**/org/apache/geode/cache/internal/*                   @jdeppe-pivotal @jinmeiliao

#-----------------------------------------------------------------
# Security
#-----------------------------------------------------------------
geode-core/**/org/apache/geode/examples/security/**               @jdeppe-pivotal @jinmeiliao
geode-core/**/org/apache/geode/examples/**                        @jdeppe-pivotal @jinmeiliao
geode-core/**/org/apache/geode/security/**                        @jdeppe-pivotal @jinmeiliao
geode-core/**/org/apache/geode/internal/security/**               @jdeppe-pivotal @jinmeiliao
geode-core/**/org/apache/geode/cache/operations/**                @jdeppe-pivotal @jinmeiliao
geode-core/**/org/apache/geode/internal/cache/operations/**       @jdeppe-pivotal @jinmeiliao

#-----------------------------------------------------------------
# Logging
#-----------------------------------------------------------------
#geode-log4j/**
#geode-logging/**
#geode-core/**/org/apache/geode/logging/**
#geode-core/**/org/apache/geode/internal/logging/**
#geode-core/**/org/apache/geode/i18n/**
#geode-core/**/org/apache/geode/internal/i18n/**
#geode-core/**/org/apache/geode/internal/io/**

#-----------------------------------------------------------------
# Metrics & Statistics
#-----------------------------------------------------------------
#geode-core/**/org/apache/geode/internal/statistics/**
#geode-core/**/org/apache/geode/internal/stats50/**
#geode-core/**/org/apache/geode/metrics/**

#-----------------------------------------------------------------
# Region Snapshots
#-----------------------------------------------------------------
geode-core/**/org/apache/geode/cache/snapshot/**                  @agingade @jchen21
geode-core/**/org/apache/geode/internal/cache/snapshot/**         @agingade @jchen21

#-----------------------------------------------------------------
# JDBC connector
#-----------------------------------------------------------------
geode-connectors/**                                               @agingade @jchen21
geode-core/**/org/apache/geode/datasource/**                      @agingade @BenjaminPerryRoss @jchen21
geode-core/**/org/apache/geode/internal/datasource/**             @agingade @BenjaminPerryRoss @jchen21


#-----------------------------------------------------------------
# Resource manager
#-----------------------------------------------------------------
#geode-core/**/org/apache/geode/cache/control/**
#geode-core/**/org/apache/geode/internal/cache/control/**

#-----------------------------------------------------------------
# Testing utilities
#-----------------------------------------------------------------
#geode-concurrency-test/**
#geode-dunit/**
#geode-junit/**
#geode-jmh/**
geode-junit/**/org/apache/geode/test/util                         @jdeppe-pivotal @onichols-pivotal

#-----------------------------------------------------------------
# Redis API
#-----------------------------------------------------------------
geode-redis/**                                                    @sabbey37 @jdeppe-pivotal @nonbinaryprogrammer

#-----------------------------------------------------------------
# Build and tooling
#-----------------------------------------------------------------
*.gradle                                                          @rhoughton-pivot
#etc/**
build.gradle                                                      @rhoughton-pivot
buildSrc/**                                                       @rhoughton-pivot @jdeppe-pivotal
buildSrc/**/DependencyConstraints.groovy                          @onichols-pivotal @dickcav
ci/**                                                             @onichols-pivotal @dickcav
ci/scripts/**                                                     @onichols-pivotal @dickcav @rhoughton-pivot
ci/scripts/repeat-new-tests.sh                                    @onichols-pivotal @dickcav @rhoughton-pivot @upthewaterspout @jdeppe-pivotal
dev-tools/**                                                      @onichols-pivotal @dickcav
docker/**                                                         @onichols-pivotal @dickcav
geode-management/src/test/script/update-management-wiki.sh        @onichols-pivotal @dickcav
#boms/**
*gradle*                                                          @rhoughton-pivot
static-analysis/**                                                @rhoughton-pivot
geode-old-versions/**                                             @onichols-pivotal @dickcav
KEYS                                                              @onichols-pivotal @dickcav
geode-assembly/**                                                 @rhoughton-pivot

#-----------------------------------------------------------------
# Documentation
#-----------------------------------------------------------------
geode-book/**                                                     @karensmolermiller @davebarnes97
geode-docs/**                                                     @karensmolermiller @davebarnes97
BUILDING.md                                                       @rhoughton-pivot @upthewaterspout
CODE_OF_CONDUCT.md                                                @upthewaterspout @pivotal-amurmann @nonbinaryprogrammer
LICENSE                                                           @onichols-pivotal @dickcav @metatype
NOTICE                                                            @onichols-pivotal @dickcav @metatype
README.md                                                         @upthewaterspout @pivotal-amurmann
#TESTING.md
