/*
 *  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.
 */

apply plugin: 'polygene-settings'

rootProject.name = 'polygene-java'

include 'core:api',
        'core:spi',
        'core:testsupport',
        'core:bootstrap',
        'core:runtime',
        'libraries:alarm',
        'libraries:circuitbreaker',
        'libraries:constraints',
        'libraries:execution',
        'libraries:fileconfig',
        'libraries:http',
        'libraries:invocation-cache',
        'libraries:jmx',
        'libraries:locking',
        'libraries:logging',
        'libraries:osgi',
        'libraries:rdf',
        'libraries:rest',
        'libraries:rest-client',
        'libraries:rest-common',
        'libraries:rest-server',
        'libraries:scripting',
        'libraries:servlet',
        'libraries:shiro-core',
        'libraries:shiro-web',
        'libraries:spring',
        'libraries:sql',
        'libraries:sql-bonecp',
        'libraries:sql-dbcp',
        'libraries:sql-generator',
        'libraries:sql-liquibase',
        'libraries:uid',
        'libraries:uowfile',
        'extensions:cache-ehcache',
        'extensions:cache-memcache',
        'extensions:entitystore-berkeleydb',
        'extensions:entitystore-cassandra',
        'extensions:entitystore-file',
        'extensions:entitystore-geode',
        'extensions:entitystore-hazelcast',
        'extensions:entitystore-jclouds',
        'extensions:entitystore-jdbm',
        'extensions:entitystore-leveldb',
        'extensions:entitystore-memory',
        'extensions:entitystore-mongodb',
        'extensions:entitystore-preferences',
        'extensions:entitystore-redis',
        'extensions:entitystore-riak',
        'extensions:entitystore-sql',
        'extensions:entitystore-sqlkv',
        'extensions:entitystore-zookeeper',
        'extensions:indexing-elasticsearch',
        'extensions:indexing-rdf',
        'extensions:indexing-solr',
        'extensions:indexing-sql',
        'extensions:metrics-codahale',
        'extensions:migration',
        'extensions:reindexer',
        'extensions:serialization-javaxjson',
        'extensions:serialization-javaxxml',
        'extensions:serialization-messagepack',
        'tools:model-detail',
        'tools:envisage',
        'tools:generator-polygene',
//        'tools:qidea',
        'tests:regression',
        'tests:performance',
        'tutorials:cargo',
        'tutorials:composites',
        'tutorials:hello',
        'tutorials:introduction',
        'tutorials:introduction:twominutes',
        'tutorials:introduction:tenminutes',
        'tutorials:introduction:thirtyminutes',
//        'tutorials:introduction:twohours',
        'tutorials:services',
        'samples:dci',
        'samples:forum',
        'samples:rental',
        'samples:sql-support',
        'samples:swing'

include 'internals:testsupport-internal'

include 'manual', 'reports', 'distributions', 'release'
