# 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.

branding.token=nbcode
cluster.path=\
    ${nbplatform.active.dir}/extide:\
    ${nbplatform.active.dir}/ide:\
    ${nbplatform.active.dir}/java:\
    ${nbplatform.active.dir}/nb:\
    ${nbplatform.active.dir}/platform:\
    ${nbplatform.active.dir}/harness:\
    ${nbplatform.active.dir}/webcommon
disabled.modules=\
    bcpg,\
    bcprov,\
    com.google.guava,\
    com.googlecode.javaewah.JavaEWAH,\
    com.jcraft.jsch,\
    com.jcraft.jzlib,\
    libs.c.kohlschutter.junixsocket,\
    org.apache.commons.httpclient,\
    org.apache.commons.lang,\
    org.apache.ws.commons.util,\
    org.apache.xmlrpc,\
    org.eclipse.core.contenttype,\
    org.eclipse.core.jobs,\
    org.eclipse.core.net,\
    org.eclipse.core.runtime,\
    org.eclipse.core.runtime.compatibility.auth,\
    org.eclipse.equinox.app,\
    org.eclipse.equinox.common,\
    org.eclipse.equinox.preferences,\
    org.eclipse.equinox.registry,\
    org.eclipse.equinox.security,\
    org.eclipse.jgit,\
    org.eclipse.mylyn.bugzilla.core,\
    org.eclipse.mylyn.commons.core,\
    org.eclipse.mylyn.commons.net,\
    org.eclipse.mylyn.commons.repositories.core,\
    org.eclipse.mylyn.commons.xmlrpc,\
    org.eclipse.mylyn.tasks.core,\
    org.eclipse.mylyn.wikitext.confluence.core,\
    org.eclipse.mylyn.wikitext.core,\
    org.eclipse.mylyn.wikitext.markdown.core,\
    org.eclipse.mylyn.wikitext.textile.core,\
    org.netbeans.api.knockout,\
    org.netbeans.api.maven,\
    org.netbeans.api.visual,\
    org.netbeans.core.browser,\
    org.netbeans.core.browser.webview,\
    org.netbeans.core.multitabs,\
    org.netbeans.core.multitabs.project,\
    org.netbeans.core.nativeaccess,\
    org.netbeans.core.output2,\
    org.netbeans.core.windows,\
    org.netbeans.lib.jshell.agent,\
    org.netbeans.lib.nbjshell,\
    org.netbeans.lib.nbjshell9,\
    org.netbeans.lib.terminalemulator,\
    org.netbeans.libs.bytelist,\
    org.netbeans.libs.cglib,\
    org.netbeans.libs.commons_net,\
    org.netbeans.libs.git,\
    org.netbeans.libs.graaljs,\
    org.netbeans.libs.ini4j,\
    org.netbeans.libs.jaxb,\
    org.netbeans.libs.jsch.agentproxy,\
    org.netbeans.libs.jshell.compile,\
    org.netbeans.libs.jsr223,\
    org.netbeans.libs.jstestdriver,\
    org.netbeans.libs.jvyamlb,\
    org.netbeans.libs.nbi.ant,\
    org.netbeans.libs.nbi.engine,\
    org.netbeans.libs.plist,\
    org.netbeans.libs.smack,\
    org.netbeans.libs.springframework,\
    org.netbeans.libs.svnClientAdapter,\
    org.netbeans.libs.svnClientAdapter.javahl,\
    org.netbeans.libs.xerces,\
    org.netbeans.modules.ant.browsetask,\
    org.netbeans.modules.ant.debugger,\
    org.netbeans.modules.ant.freeform,\
    org.netbeans.modules.ant.grammar,\
    org.netbeans.modules.ant.hints,\
    org.netbeans.modules.ant.kit,\
    org.netbeans.modules.apisupport.harness,\
    org.netbeans.modules.applemenu,\
    org.netbeans.modules.autoupdate.pluginimporter,\
    org.netbeans.modules.beans,\
    org.netbeans.modules.bugtracking,\
    org.netbeans.modules.bugtracking.bridge,\
    org.netbeans.modules.bugtracking.commons,\
    org.netbeans.modules.bugzilla,\
    org.netbeans.modules.bugzilla.exceptionreporter,\
    org.netbeans.modules.cordova,\
    org.netbeans.modules.cordova.platforms,\
    org.netbeans.modules.cordova.platforms.android,\
    org.netbeans.modules.core.kit,\
    org.netbeans.modules.css.editor,\
    org.netbeans.modules.css.model,\
    org.netbeans.modules.css.prep,\
    org.netbeans.modules.css.visual,\
    org.netbeans.modules.db,\
    org.netbeans.modules.db.core,\
    org.netbeans.modules.db.dataview,\
    org.netbeans.modules.db.drivers,\
    org.netbeans.modules.db.kit,\
    org.netbeans.modules.db.metadata.model,\
    org.netbeans.modules.db.mysql,\
    org.netbeans.modules.db.sql.editor,\
    org.netbeans.modules.db.sql.visualeditor,\
    org.netbeans.modules.dbapi,\
    org.netbeans.modules.dbschema,\
    org.netbeans.modules.deadlock.detector,\
    org.netbeans.modules.debugger.jpda.ant,\
    org.netbeans.modules.debugger.jpda.js,\
    org.netbeans.modules.debugger.jpda.jsui,\
    org.netbeans.modules.debugger.jpda.kit,\
    org.netbeans.modules.debugger.jpda.visual,\
    org.netbeans.modules.derby,\
    org.netbeans.modules.dlight.nativeexecution,\
    org.netbeans.modules.dlight.nativeexecution.nb,\
    org.netbeans.modules.dlight.terminal,\
    org.netbeans.modules.docker.api,\
    org.netbeans.modules.docker.editor,\
    org.netbeans.modules.docker.ui,\
    org.netbeans.modules.editor.autosave,\
    org.netbeans.modules.editor.bookmarks,\
    org.netbeans.modules.editor.global.format,\
    org.netbeans.modules.editor.htmlui,\
    org.netbeans.modules.editor.kit,\
    org.netbeans.modules.editor.macros,\
    org.netbeans.modules.editor.plain,\
    org.netbeans.modules.editor.plain.lib,\
    org.netbeans.modules.editor.search,\
    org.netbeans.modules.editor.structure,\
    org.netbeans.modules.editor.tools.storage,\
    org.netbeans.modules.extbrowser.chrome,\
    org.netbeans.modules.extexecution.impl,\
    org.netbeans.modules.extexecution.process,\
    org.netbeans.modules.extexecution.process.jdk9,\
    org.netbeans.modules.findbugs.installer,\
    org.netbeans.modules.form,\
    org.netbeans.modules.form.kit,\
    org.netbeans.modules.form.nb,\
    org.netbeans.modules.form.refactoring,\
    org.netbeans.modules.git,\
    org.netbeans.modules.gradle.htmlui,\
    org.netbeans.modules.gradle.java.coverage,\
    org.netbeans.modules.gradle.kit,\
    org.netbeans.modules.gradle.persistence,\
    org.netbeans.modules.gradle.spring,\
    org.netbeans.modules.gradle.test,\
    org.netbeans.modules.html.angular,\
    org.netbeans.modules.html.custom,\
    org.netbeans.modules.html.editor,\
    org.netbeans.modules.html.knockout,\
    org.netbeans.modules.html.parser,\
    org.netbeans.modules.html.validation,\
    org.netbeans.modules.httpserver,\
    org.netbeans.modules.hudson,\
    org.netbeans.modules.hudson.ant,\
    org.netbeans.modules.hudson.git,\
    org.netbeans.modules.hudson.maven,\
    org.netbeans.modules.hudson.mercurial,\
    org.netbeans.modules.hudson.subversion,\
    org.netbeans.modules.hudson.tasklist,\
    org.netbeans.modules.hudson.ui,\
    org.netbeans.modules.i18n,\
    org.netbeans.modules.i18n.form,\
    org.netbeans.modules.ide.branding,\
    org.netbeans.modules.ide.branding.kit,\
    org.netbeans.modules.ide.kit,\
    org.netbeans.modules.image,\
    org.netbeans.modules.j2ee.core.utilities,\
    org.netbeans.modules.j2ee.eclipselink,\
    org.netbeans.modules.j2ee.eclipselinkmodelgen,\
    org.netbeans.modules.j2ee.jpa.refactoring,\
    org.netbeans.modules.j2ee.jpa.verification,\
    org.netbeans.modules.j2ee.metadata,\
    org.netbeans.modules.j2ee.metadata.model.support,\
    org.netbeans.modules.j2ee.persistence,\
    org.netbeans.modules.j2ee.persistence.kit,\
    org.netbeans.modules.j2ee.persistenceapi,\
    org.netbeans.modules.java.editor.lib,\
    org.netbeans.modules.java.examples,\
    org.netbeans.modules.java.freeform,\
    org.netbeans.modules.java.graph,\
    org.netbeans.modules.java.hints.declarative.test,\
    org.netbeans.modules.java.hints.test,\
    org.netbeans.modules.java.j2sedeploy,\
    org.netbeans.modules.java.j2seembedded,\
    org.netbeans.modules.java.j2semodule,\
    org.netbeans.modules.java.j2seprofiles,\
    org.netbeans.modules.java.j2seproject,\
    org.netbeans.modules.java.kit,\
    org.netbeans.modules.java.metrics,\
    org.netbeans.modules.java.module.graph,\
    org.netbeans.modules.java.navigation,\
    org.netbeans.modules.java.source.compat8,\
    org.netbeans.modules.java.testrunner,\
    org.netbeans.modules.java.testrunner.ant,\
    org.netbeans.modules.java.testrunner.ui,\
    org.netbeans.modules.javadoc,\
    org.netbeans.modules.javaee.injection,\
    org.netbeans.modules.javascript.bower,\
    org.netbeans.modules.javascript.cdnjs,\
    org.netbeans.modules.javascript.grunt,\
    org.netbeans.modules.javascript.gulp,\
    org.netbeans.modules.javascript.jstestdriver,\
    org.netbeans.modules.javascript.karma,\
    org.netbeans.modules.javascript.v8debug.ui,\
    org.netbeans.modules.javascript2.debug.ui,\
    org.netbeans.modules.javascript2.extdoc,\
    org.netbeans.modules.javascript2.extjs,\
    org.netbeans.modules.javascript2.html,\
    org.netbeans.modules.javascript2.jade,\
    org.netbeans.modules.javascript2.jquery,\
    org.netbeans.modules.javascript2.jsdoc,\
    org.netbeans.modules.javascript2.kit,\
    org.netbeans.modules.javascript2.knockout,\
    org.netbeans.modules.javascript2.prototypejs,\
    org.netbeans.modules.javascript2.react,\
    org.netbeans.modules.javascript2.requirejs,\
    org.netbeans.modules.javascript2.sdoc,\
    org.netbeans.modules.javascript2.source.query,\
    org.netbeans.modules.javawebstart,\
    org.netbeans.modules.jellytools.ide,\
    org.netbeans.modules.jellytools.java,\
    org.netbeans.modules.jellytools.platform,\
    org.netbeans.modules.jemmy,\
    org.netbeans.modules.jshell.support,\
    org.netbeans.modules.junit,\
    org.netbeans.modules.junit.ant,\
    org.netbeans.modules.junit.ant.ui,\
    org.netbeans.modules.junit.ui,\
    org.netbeans.modules.ko4j.debugging,\
    org.netbeans.modules.kotlin.editor,\
    org.netbeans.modules.languages,\
    org.netbeans.modules.languages.apacheconf,\
    org.netbeans.modules.languages.diff,\
    org.netbeans.modules.languages.ini,\
    org.netbeans.modules.languages.manifest,\
    org.netbeans.modules.languages.yaml,\
    org.netbeans.modules.localhistory,\
    org.netbeans.modules.localtasks,\
    org.netbeans.modules.lsp.client,\
    org.netbeans.modules.maven.checkstyle,\
    org.netbeans.modules.maven.coverage,\
    org.netbeans.modules.maven.grammar,\
    org.netbeans.modules.maven.graph,\
    org.netbeans.modules.maven.hints,\
    org.netbeans.modules.maven.junit,\
    org.netbeans.modules.maven.junit.ui,\
    org.netbeans.modules.maven.kit,\
    org.netbeans.modules.maven.osgi,\
    org.netbeans.modules.maven.persistence,\
    org.netbeans.modules.maven.refactoring,\
    org.netbeans.modules.maven.repository,\
    org.netbeans.modules.maven.search,\
    org.netbeans.modules.maven.spring,\
    org.netbeans.modules.mercurial,\
    org.netbeans.modules.mylyn.util,\
    org.netbeans.modules.nashorn.execution,\
    org.netbeans.modules.netserver,\
    org.netbeans.modules.notifications,\
    org.netbeans.modules.parsing.ui,\
    org.netbeans.modules.print.editor,\
    org.netbeans.modules.project.ant.compat8,\
    org.netbeans.modules.project.spi.intern.impl,\
    org.netbeans.modules.projectimport.eclipse.core,\
    org.netbeans.modules.projectimport.eclipse.j2se,\
    org.netbeans.modules.projectui.buildmenu,\
    org.netbeans.modules.properties,\
    org.netbeans.modules.properties.syntax,\
    org.netbeans.modules.schema2beans,\
    org.netbeans.modules.selenium2.java,\
    org.netbeans.modules.selenium2.maven,\
    org.netbeans.modules.selenium2.webclient.mocha,\
    org.netbeans.modules.selenium2.webclient.protractor,\
    org.netbeans.modules.servletapi,\
    org.netbeans.modules.spellchecker,\
    org.netbeans.modules.spellchecker.apimodule,\
    org.netbeans.modules.spellchecker.bindings.htmlxml,\
    org.netbeans.modules.spellchecker.bindings.java,\
    org.netbeans.modules.spellchecker.bindings.properties,\
    org.netbeans.modules.spellchecker.dictionary_en,\
    org.netbeans.modules.spellchecker.kit,\
    org.netbeans.modules.spring.beans,\
    org.netbeans.modules.subversion,\
    org.netbeans.modules.target.iterator,\
    org.netbeans.modules.tasklist.kit,\
    org.netbeans.modules.tasklist.projectint,\
    org.netbeans.modules.tasklist.todo,\
    org.netbeans.modules.tasklist.ui,\
    org.netbeans.modules.team.commons,\
    org.netbeans.modules.team.ide,\
    org.netbeans.modules.templates,\
    org.netbeans.modules.terminal,\
    org.netbeans.modules.terminal.nb,\
    org.netbeans.modules.testng,\
    org.netbeans.modules.testng.ant,\
    org.netbeans.modules.testng.maven,\
    org.netbeans.modules.testng.ui,\
    org.netbeans.modules.textmate.lexer,\
    org.netbeans.modules.typescript.editor,\
    org.netbeans.modules.uihandler.exceptionreporter,\
    org.netbeans.modules.usersguide,\
    org.netbeans.modules.utilities,\
    org.netbeans.modules.utilities.project,\
    org.netbeans.modules.versioning,\
    org.netbeans.modules.versioning.core,\
    org.netbeans.modules.versioning.indexingbridge,\
    org.netbeans.modules.versioning.masterfs,\
    org.netbeans.modules.versioning.system.cvss.installer,\
    org.netbeans.modules.versioning.ui,\
    org.netbeans.modules.versioning.util,\
    org.netbeans.modules.web.client.kit,\
    org.netbeans.modules.web.client.samples,\
    org.netbeans.modules.web.inspect,\
    org.netbeans.modules.web.javascript.debugger,\
    org.netbeans.modules.web.webkit.debugging,\
    org.netbeans.modules.web.webkit.tooling,\
    org.netbeans.modules.websvc.jaxws21,\
    org.netbeans.modules.websvc.jaxws21api,\
    org.netbeans.modules.websvc.saas.codegen.java,\
    org.netbeans.modules.welcome,\
    org.netbeans.modules.xml,\
    org.netbeans.modules.xml.axi,\
    org.netbeans.modules.xml.catalog.ui,\
    org.netbeans.modules.xml.jaxb,\
    org.netbeans.modules.xml.jaxb.api,\
    org.netbeans.modules.xml.multiview,\
    org.netbeans.modules.xml.retriever,\
    org.netbeans.modules.xml.schema.completion,\
    org.netbeans.modules.xml.schema.model,\
    org.netbeans.modules.xml.tax,\
    org.netbeans.modules.xml.text,\
    org.netbeans.modules.xml.text.obsolete90,\
    org.netbeans.modules.xml.tools,\
    org.netbeans.modules.xml.tools.java,\
    org.netbeans.modules.xml.wsdl.model,\
    org.netbeans.modules.xsl,\
    org.netbeans.spi.editor.hints.projects,\
    org.netbeans.swing.dirchooser,\
    org.netbeans.upgrader,\
    org.openide.compat,\
    org.openide.execution.compat8,\
    org.openide.options,\
    org.openide.util.enumerations,\
    org.openidex.util
nbplatform.active=nball
suite.dir=${basedir}
nbplatform.nball.netbeans.dest.dir=${suite.dir}/../../../nbbuild/netbeans
nbplatform.nball.harness.dir=${nbplatform.nball.netbeans.dest.dir}/harness
