# 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 @agingade
geode-core/**/org/apache/geode/internal/*                         @bschuchardt @Bill @kirklund

#-----------------------------------------------------------------
# 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 @kirklund
geode-core/**/org/apache/geode/distributed/internal/*             @bschuchardt @Bill @kirklund

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

#-----------------------------------------------------------------
# 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 @kirklund
geode-core/**/org/apache/geode/cache/*                            @dschneider-pivotal @boglesby @kirklund
geode-core/**/org/apache/geode/cache/util/**                      @dschneider-pivotal @boglesby

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

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

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

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

#-----------------------------------------------------------------
# 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 @mhansonp @kirklund
geode-core/**/org/apache/geode/internal/size/**                   @agingade @dschneider-pivotal @kirklund

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

#-----------------------------------------------------------------
# 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 @kirklund

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

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

#-----------------------------------------------------------------
# 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 @kirklund
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 @kirklund
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 @kirklund
geode-core/**/org/apache/geode/internal/exception/**              @nabarunnag @boglesby @kirklund
geode-core/**/org/apache/geode/lang/**                            @nabarunnag @boglesby @kirklund
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 @kirklund
geode-unsafe/**                                                   @nabarunnag @boglesby @kirklund

#-----------------------------------------------------------------
# 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 @mhansonp @kirklund
geode-pulse/**                                                    @jdeppe-pivotal @jinmeiliao @mhansonp
geode-http-service/**                                             @jdeppe-pivotal @jinmeiliao
geode-web/**                                                      @jdeppe-pivotal @jinmeiliao
geode-core/**/org/apache/geode/admin/**                           @jdeppe-pivotal @jinmeiliao @kirklund
geode-core/**/org/apache/geode/alerting/**                        @jdeppe-pivotal @jinmeiliao @kirklund
geode-core/**/org/apache/geode/management/**                      @jdeppe-pivotal @jinmeiliao @kirklund
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 @kirklund
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 @mhansonp
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/**							  @mhansonp @kirklund
geode-logging/**						  @mhansonp @kirklund
geode-core/**/org/apache/geode/logging/**			  @mhansonp @kirklund
geode-core/**/org/apache/geode/internal/logging/**		  @mhansonp @kirklund
geode-core/**/org/apache/geode/i18n/**                            @agingade @kirklund
geode-core/**/org/apache/geode/internal/i18n/**                   @agingade @kirklund
geode-core/**/org/apache/geode/internal/io/**                     @agingade @kirklund

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

#-----------------------------------------------------------------
# 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/**                   @kirklund @DonalEvans
geode-core/**/org/apache/geode/internal/cache/control/**          @kirklund @DonalEvans

#-----------------------------------------------------------------
# Testing utilities
#-----------------------------------------------------------------
#geode-concurrency-test/**
geode-dunit/**							  @mhansonp @kirklund
geode-junit/**							  @mhansonp @kirklund
#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
