# 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 - ownerless so everyone "owns" it
#-----------------------------------------------------------------
#CODEOWNERS
#.asf.yaml

#-----------------------------------------------------------------
# Serialization
#-----------------------------------------------------------------
geode-serialization/**                                            @echobravopapa @Bill @kirklund @kamilla1201
geode-core/**/org/apache/geode/pdx/**                             @upthewaterspout @dschneider-pivotal @agingade
geode-core/**/org/apache/geode/codeAnalysis/**                    @upthewaterspout @dschneider-pivotal @agingade @kirklund
geode-core/**/org/apache/geode/internal/*                         @echobravopapa @Bill @kirklund @kamilla1201

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

#-----------------------------------------------------------------
# P2P Messaging
#-----------------------------------------------------------------
geode-core/**/org/apache/geode/internal/tcp/**                    @echobravopapa @Bill @kirklund @kamilla1201
geode-core/**/org/apache/geode/distributed/internal/direct/**     @echobravopapa @Bill @kirklund @kamilla1201
geode-core/**/org/apache/geode/internal/net/**                    @echobravopapa @Bill @kirklund @kamilla1201
geode-core/**/org/apache/geode/net/**                             @Bill @mivanac @kirklund
geode-core/**/org/apache/geode/distributed/*                      @echobravopapa @Bill @kirklund @kamilla1201
geode-core/**/org/apache/geode/distributed/internal/*             @echobravopapa @Bill @kirklund @kamilla1201

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

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

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

#-----------------------------------------------------------------
# Distributed Locks
#-----------------------------------------------------------------
geode-core/**/org/apache/geode/distributed/internal/locks/**      @dschneider-pivotal @pivotal-eshu @kirklund
geode-core/**/org/apache/geode/distributed/internal/deadlock/**   @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 @upthewaterspout @kirklund @mhansonp
geode-core/**/org/apache/geode/internal/cache/region/entry/**     @dschneider-pivotal @upthewaterspout @kirklund @mhansonp
geode-core/**/org/apache/geode/internal/cache/map/**              @dschneider-pivotal @upthewaterspout @kirklund @mhansonp
geode-core/**/org/apache/geode/compression/**                     @dschneider-pivotal @kirklund
geode-core/**/org/apache/geode/internal/cache/compression/**      @dschneider-pivotal @kirklund

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

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

#-----------------------------------------------------------------
# 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 @kirklund @nabarunnag
geode-core/**/org/apache/geode/cache/execute/**                   @boglesby @kirklund @nabarunnag

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

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

#-----------------------------------------------------------------
# DEV rest API
#-----------------------------------------------------------------
geode-web-api/**                                                  @jdeppe-pivotal @jinmeiliao @kirklund
geode-assembly/**/org/apache/geode/rest/**                        @jdeppe-pivotal @jinmeiliao @kirklund

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

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

#-----------------------------------------------------------------
# Misc Utilities
#-----------------------------------------------------------------
geode-core/**/org/apache/geode/internal/util/**                   @nabarunnag @boglesby @kirklund
geode-core/**/org/apache/geode/internal/util/concurrent/**        @nabarunnag @boglesby @kirklund
geode-core/**/org/apache/geode/internal/shared/**                 @nabarunnag @boglesby @kirklund
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 @kirklund
geode-core/**/org/apache/geode/internal/lang/**                   @nabarunnag @boglesby @kirklund
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/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
geode-assembly/**/org/apache/geode/cache/persistence/**           @dschneider-pivotal @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

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

#-----------------------------------------------------------------
# Management
#-----------------------------------------------------------------
geode-management/**                                               @jdeppe-pivotal @jinmeiliao @kirklund
geode-assembly/**/org/apache/geode/management/**                  @jdeppe-pivotal @jinmeiliao
geode-assembly/**/org/apache/geode/tools/pulse/**                 @jdeppe-pivotal @jinmeiliao
geode-web-management/**                                           @jdeppe-pivotal @jinmeiliao
geode-gfsh/**                                                     @jdeppe-pivotal @jinmeiliao @mhansonp @kirklund
geode-assembly/**/bin/**                                          @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 @kirklund
geode-core/**/org/apache/geode/internal/admin/**                  @jdeppe-pivotal @jinmeiliao @kirklund
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 @kirklund
geode-core/**/org/apache/geode/internal/process/**                @jdeppe-pivotal @jinmeiliao @kirklund
geode-core/**/org/apache/geode/cache/internal/*                   @jdeppe-pivotal @jinmeiliao @kirklund

#-----------------------------------------------------------------
# Security
#-----------------------------------------------------------------
geode-core/**/org/apache/geode/examples/**                        @jdeppe-pivotal @jinmeiliao @mhansonp
geode-core/**/org/apache/geode/examples/security/**               @jdeppe-pivotal @jinmeiliao
geode-core/**/org/apache/geode/security/**                        @jdeppe-pivotal @jinmeiliao @kirklund
geode-core/**/org/apache/geode/internal/security/**               @jdeppe-pivotal @jinmeiliao @kirklund
geode-core/**/org/apache/geode/cache/operations/**                @jdeppe-pivotal @jinmeiliao
geode-core/**/org/apache/geode/internal/cache/operations/**       @jdeppe-pivotal @jinmeiliao
geode-assembly/**/apache/geode/ssl/**                             @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
geode-assembly/**/org/apache/geode/logging/**                     @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
geode-assembly/**/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 @kirklund
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 @kirklund
geode-assembly/**/org/apache/geode/test/junit/**                  @jdeppe-pivotal @jinmeiliao @kirklund
geode-assembly/**/org/apache/geode/rules/**                       @jdeppe-pivotal @jinmeiliao @kirklund
geode-assembly/**/org/apache/geode/launchers/**                   @dschneider-pivotal @boglesby @kirklund @nabarunnag
geode-assembly/**/resources/**                                    @boglesby @kirklund @nabarunnag @jdeppe-pivotal @jinmeiliao

#-----------------------------------------------------------------
# Redis API
#-----------------------------------------------------------------
geode-for-redis/**                                                @jdeppe-pivotal @nonbinaryprogrammer @ringles @upthewaterspout @DonalEvans @dschneider-pivotal @kirklund

#-----------------------------------------------------------------
# Build and tooling
#-----------------------------------------------------------------
#etc/**
*gradle*                                                          @rhoughton-pivot @onichols-pivotal
buildSrc/**                                                       @rhoughton-pivot @jdeppe-pivotal
buildSrc/**/DependencyConstraints.groovy                          @onichols-pivotal @dickcav @rhoughton-pivot
ci/**                                                             @onichols-pivotal @dickcav @rhoughton-pivot @smgoller
ci/scripts/**                                                     @onichols-pivotal @dickcav @rhoughton-pivot @smgoller
ci/scripts/repeat-new-tests.sh                                    @onichols-pivotal @dickcav @rhoughton-pivot @smgoller @upthewaterspout @jdeppe-pivotal
dev-tools/dependencies/**                                         @onichols-pivotal @dickcav
dev-tools/release/**                                              @onichols-pivotal @dickcav
docker/**                                                         @onichols-pivotal @dickcav @smgoller
geode-management/src/test/script/update-management-wiki.sh        @onichols-pivotal @dickcav
#boms/**
static-analysis/**                                                @rhoughton-pivot @onichols-pivotal
geode-old-versions/**                                             @onichols-pivotal @dickcav
KEYS                                                              @onichols-pivotal @dickcav
assembly_content.txt                                              @rhoughton-pivot @onichols-pivotal
dependency_classpath.txt                                          @rhoughton-pivot @onichols-pivotal
expected-pom.xml                                                  @rhoughton-pivot @onichols-pivotal

#-----------------------------------------------------------------
# Documentation
#-----------------------------------------------------------------
apache-copyright-notice.txt                                       @upthewaterspout @pivotal-amurmann
BUILDING.md                                                       @rhoughton-pivot @upthewaterspout
CODE_OF_CONDUCT.md                                                @upthewaterspout @pivotal-amurmann @nonbinaryprogrammer @kirklund
LICENSE                                                           @onichols-pivotal @dickcav
NOTICE                                                            @onichols-pivotal @dickcav
/README.md                                                        @upthewaterspout @pivotal-amurmann @kirklund
#TESTING.md
