<?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.edgent.java7</groupId>
    <artifactId>edgent-platforms-java7</artifactId>
    <version>1.2.0-SNAPSHOT</version>
  </parent>

  <artifactId>edgent-connectors</artifactId>
  <packaging>pom</packaging>

  <name>Apache Edgent ${edgent.projname.platform}: Connectors</name>

  <modules>
    <module>command</module>
    <module>common</module>
    <module>csv</module>
    <!-- This makes use of Stream in the tests, excluding some tests. -->
    <module>file</module>
    <module>http</module>
    <module>iot</module>
    <module>iotp</module>
    <!-- This makes use of Predicates in the tests, excluding tests. -->
    <module>jdbc</module>
    <module>kafka</module>
    <!-- This makes use of List.stream in the tests, excluding tests. -->
    <module>mqtt</module>
    <module>pubsub</module>
    <module>serial</module>
    <module>websocket</module>
    <module>websocket-base</module>
    <!-- Downgraded the jetty version to 9.2.21.v20170120 to support Java7 -->
    <module>websocket-jetty</module>
    <module>websocket-misc</module>
    <module>websocket-server</module>
  </modules>

</project>
