<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2013 The Android Open Source Project

Licensed 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.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.googlesource.gerrit.plugins</groupId>
  <artifactId>examples-all</artifactId>
  <packaging>pom</packaging>
  <version>3.0.13</version>

  <modules>
    <module>example-adminSshCommand</module>
    <module>example-changeHasOperator</module>
    <module>example-changeOperator</module>
    <module>example-changeQueryAttributes</module>
    <module>example-commitValidator</module>
    <module>example-consoleMetricReporter</module>
    <module>example-deployedOnIncludedInExtension</module>
    <module>example-restApiCommandOption</module>
    <module>example-restApiGetRevision</module>
    <module>example-restApiPostProject</module>
    <module>example-restApiPostRevision</module>
    <module>example-servlet</module>
    <module>example-simpleSshCommand</module>
    <module>example-sshAndRestCommandOptionBeanParseListener</module>
    <module>example-sshCommandAlias</module>
    <module>example-sshCommandDelegateDynamicBean</module>
    <module>example-sshCommandOption</module>
    <module>example-topMenu</module>
    <module>example-usageDataLogger</module>
    <module>example-validationListenerAssignee</module>
    <module>example-validationListenerCommit</module>
    <module>example-validationListenerHashtag</module>
    <module>example-validationListenerMerge</module>
    <module>example-validationListenerNewProjectCreated</module>
    <module>example-validationListenerRefOperation</module>
    <module>example-validationListenerUpload</module>
    <module>example-webLinkBranch</module>
    <module>example-webLinkFileHistory</module>
    <module>example-webLinkPatchSet</module>
    <module>example-webLinkProject</module>
  </modules>
</project>

