<?xml version="1.0" encoding="UTF-8"?>
<!--
  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.
-->
<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.apache.nifi</groupId>
        <artifactId>nifi-nar-bundles</artifactId>
        <version>1.9.0</version>
    </parent>
    <artifactId>nifi-standard-services</artifactId>
    <packaging>pom</packaging>
    <modules>
        <module>nifi-distributed-cache-client-service-api</module>
        <module>nifi-distributed-cache-services-bundle</module>
        <module>nifi-load-distribution-service-api</module>
        <module>nifi-http-context-map-api</module>
        <module>nifi-lookup-service-api</module>
        <module>nifi-lookup-services-bundle</module>
        <module>nifi-ssl-context-bundle</module>
        <module>nifi-ssl-context-service-api</module>
        <module>nifi-http-context-map-bundle</module>
        <module>nifi-standard-services-api-nar</module>
        <module>nifi-dbcp-service-api</module>
        <module>nifi-dbcp-service-bundle</module>
        <module>nifi-hbase-client-service-api</module>
        <module>nifi-hbase_1_1_2-client-service-bundle</module>
	<module>nifi-hbase_2-client-service-bundle</module>
        <module>nifi-schema-registry-service-api</module>
        <module>nifi-record-serialization-service-api</module>
        <module>nifi-record-serialization-services-bundle</module>
        <module>nifi-hwx-schema-registry-bundle</module>
        <module>nifi-kerberos-credentials-service-api</module>
        <module>nifi-kerberos-credentials-service-bundle</module>
        <module>nifi-proxy-configuration-api</module>
        <module>nifi-proxy-configuration-bundle</module>
    </modules>
</project>
