Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 28 additions & 3 deletions exist-core/src/main/java/org/exist/util/Configuration.java
Original file line number Diff line number Diff line change
Expand Up @@ -591,6 +591,12 @@ private void loadModuleClasses(final Element xquery,
throw (new DatabaseConfigurationException("element 'module' requires an attribute 'uri'"));
}

// enabled="no" disables the module without removing it from conf.xml
if ("no".equalsIgnoreCase(elem.getAttribute("enabled"))) {
LOG.debug("Module '{}' is disabled via enabled=\"no\", skipping", uri);
continue;
}

final String clazz = elem.getAttribute(BUILT_IN_MODULE_CLASS_ATTRIBUTE);
final String source = elem.getAttribute(BUILT_IN_MODULE_SOURCE_ATTRIBUTE);
// either class or source attribute must be present
Expand Down Expand Up @@ -836,6 +842,12 @@ private void configureScheduler(final Element scheduler) {
}

private void addJobToList(final List<JobConfig> jobList, final Element job) {
// enabled="no" disables the job without removing it from conf.xml
if ("no".equalsIgnoreCase(getConfigAttributeValue(job, "enabled"))) {
LOG.debug("Job '{}' is disabled via enabled=\"no\", skipping", getConfigAttributeValue(job, JOB_NAME_ATTRIBUTE));
return;
}

//get the job type
final String strJobType = getConfigAttributeValue(job, JOB_TYPE_ATTRIBUTE);

Expand Down Expand Up @@ -1107,6 +1119,12 @@ private void configureStartup(final Element startup) throws DatabaseConfiguratio
// Get <trigger> element
final Element trigger = (Element) nlTrigger.item(i);

// enabled="no" disables the trigger without removing it from conf.xml
if ("no".equalsIgnoreCase(trigger.getAttribute("enabled"))) {
LOG.debug("Startup trigger '{}' is disabled via enabled=\"no\", skipping", trigger.getAttribute("class"));
continue;
}

// Get @class
final String startupTriggerClass = trigger.getAttribute("class");

Expand Down Expand Up @@ -1191,10 +1209,17 @@ private void configureIndexer(final Document doc, final Element indexer) throws
return;
}
final NodeList module = ((Element) modules.item(0)).getElementsByTagName(IndexManager.CONFIGURATION_MODULE_ELEMENT_NAME);
final IndexModuleConfig[] modConfig = new IndexModuleConfig[module.getLength()];
final List<IndexModuleConfig> modConfigList = new ArrayList<>();

for (int i = 0; i < module.getLength(); i++) {
final Element elem = (Element) module.item(i);

// enabled="no" disables the index module without removing it from conf.xml
if ("no".equalsIgnoreCase(elem.getAttribute("enabled"))) {
LOG.debug("Index module '{}' is disabled via enabled=\"no\", skipping", elem.getAttribute(IndexManager.INDEXER_MODULES_ID_ATTRIBUTE));
continue;
}

final String className = elem.getAttribute(IndexManager.INDEXER_MODULES_CLASS_ATTRIBUTE);
final String id = elem.getAttribute(IndexManager.INDEXER_MODULES_ID_ATTRIBUTE);

Expand All @@ -1206,9 +1231,9 @@ private void configureIndexer(final Document doc, final Element indexer) throws
throw (new DatabaseConfigurationException("Required attribute id is missing for module"));
}

modConfig[i] = new IndexModuleConfig(id, className, elem);
modConfigList.add(new IndexModuleConfig(id, className, elem));
}
setProperty(IndexManager.PROPERTY_INDEXER_MODULES, modConfig);
setProperty(IndexManager.PROPERTY_INDEXER_MODULES, modConfigList.toArray(new IndexModuleConfig[0]));
}

private void configureValidation(final Optional<Path> dbHome, final Element validation) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,10 @@ private static Properties parseProperties(final Node container, final String ele
for (int i = 0; i < params.getLength(); i++) {
final Element param = ((Element) params.item(i));

if ("no".equalsIgnoreCase(param.getAttribute("enabled"))) {
continue;
}

final String name = param.getAttribute("name");
final String value = param.getAttribute("value");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -924,7 +924,6 @@
xmldb:xcollection() should return an empty sequence when an
XML resource can not be retrieved.
-->
<!-- TODO: add attribute 'enabled="yes/no"' -->
<xquery enable-java-binding="no" disable-deprecated-functions="no"
enable-query-rewriting="yes" backwardCompatible="no"
enforce-index-use="strict"
Expand Down
70 changes: 28 additions & 42 deletions exist-distribution/src/main/config/conf.xml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
- http://exist-db.org/exist/apps/doc/documentation.xml

-->
<exist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../schema/conf.xsd" schemaVersion="2.1.1">
<exist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../schema/conf.xsd" schemaVersion="2.6.0">

<!--
Configures the database backend.
Expand Down Expand Up @@ -199,25 +199,25 @@
<!--
Trigger for registering the GNU Crypto JCE Provider with Java
-->
<trigger class="org.exist.security.BouncyCastleJceProviderStartupTrigger"/>
<trigger enabled="yes" class="org.exist.security.BouncyCastleJceProviderStartupTrigger"/>

<!--
Trigger for registering eXists XML:DB URL handler with Java
-->
<trigger class="org.exist.protocolhandler.URLStreamHandlerStartupTrigger">
<trigger enabled="yes" class="org.exist.protocolhandler.URLStreamHandlerStartupTrigger">
<!-- Keeps stream data on disk (temporary files are used for XML documents) -->
<parameter name="mode" value="disk"/>

<!-- Keep's stream data in memory -->
<parameter name="mode" value="memory"/>
</trigger>

<!--
EXQuery RESTXQ trigger to load the RESTXQ Registry at startup time
<!--
EXQuery RESTXQ trigger to load the RESTXQ Registry at startup time
-->
<trigger class="org.exist.extensions.exquery.restxq.impl.RestXqStartupTrigger"/>
<!--
<trigger enabled="yes" class="org.exist.extensions.exquery.restxq.impl.RestXqStartupTrigger"/>

<!--
AutoDeploymentTrigger will install any .xar application package it finds
in the autodeploy directory unless the application has already been installed
in the db.
Expand All @@ -233,8 +233,8 @@

* dir
An absolute path to the directory which contains the XARs to autodeploy.
-->
<trigger class="org.exist.repo.AutoDeploymentTrigger">
-->
<trigger enabled="yes" class="org.exist.repo.AutoDeploymentTrigger">

<!-- parameter name="ignore-autodeploy-system-property" value="true"/ -->

Expand All @@ -252,7 +252,7 @@
mode "rwxrwx___" (0770) with mime-type "application/xquery".
The names of the scripts must end with ".xq", ".xqy" or ".xquery".
-->
<!--<trigger class="org.exist.collections.triggers.XQueryStartupTrigger"/>-->
<trigger class="org.exist.collections.triggers.XQueryStartupTrigger" enabled="no"/>

</triggers>
</startup>
Expand Down Expand Up @@ -547,9 +547,7 @@
<modules>
<module id="ngram-index" file="ngram.dbx" n="3" class="org.exist.indexing.ngram.NGramIndex"/>

<!--
<module id="spatial-index" connectionTimeout="10000" flushAfter="300" class="org.exist.indexing.spatial.GMLHSQLIndex"/>
-->
<module id="spatial-index" connectionTimeout="10000" flushAfter="300" class="org.exist.indexing.spatial.GMLHSQLIndex" enabled="no"/>

<module id="lucene-index" buffer="32" class="org.exist.indexing.lucene.LuceneIndex" />

Expand All @@ -571,9 +569,7 @@
distribution of elements in the database, which can be used
by the query optimizer for additional optimizations.
-->
<!--
<module id="index-stats" file="stats.dbx" class="org.exist.storage.statistics.IndexStatistics" />
-->
<module id="index-stats" file="stats.dbx" class="org.exist.storage.statistics.IndexStatistics" enabled="no"/>
</modules>

<!--
Expand Down Expand Up @@ -666,8 +662,7 @@
backup Set to "yes" to create a backup whenever the job runs, not just
when it detects errors.
-->
<!--
<job type="system" name="check1"
<job type="system" enabled="no" name="check1"
class="org.exist.storage.ConsistencyCheckTask"
cron-trigger="0 0 * * * ?">
<parameter name="output" value="export"/>
Expand All @@ -676,21 +671,17 @@
<parameter name="incremental-check" value="no"/>
<parameter name="max" value="2"/>
</job>
-->

<!--
Automatically creates a copy of the database .dbx files every 2 minutes


<!--
Automatically creates a copy of the database .dbx files every 2 minutes.

Parameters:
output-dir:
The directory into which the copy will be written
output-dir The directory into which the copy will be written.
-->
<!--
<job type="system" name="databackup"
<job type="system" enabled="no" name="databackup"
class="org.exist.storage.DataBackup" period="120000">
<parameter name="output-dir" value="backup" />
<parameter name="output-dir" value="backup"/>
</job>
-->

</scheduler>

Expand Down Expand Up @@ -954,8 +945,7 @@
xmldb:xcollection() should return an empty sequence when an
XML resource can not be retrieved.
-->
<!-- TODO: add attribute 'enabled="yes/no"' -->
<xquery enable-java-binding="no" disable-deprecated-functions="no"
<xquery enable-java-binding="no" disable-deprecated-functions="no"
enable-query-rewriting="yes" backwardCompatible="no"
enforce-index-use="strict"
raise-error-on-failed-retrieval="no">
Expand Down Expand Up @@ -998,22 +988,18 @@
<module uri="http://exist-db.org/xquery/ngram" class="org.exist.xquery.modules.ngram.NGramModule"/>
<module uri="http://exist-db.org/xquery/range" class="org.exist.xquery.modules.range.RangeIndexModule"/>
<module uri="http://exist-db.org/xquery/sort" class="org.exist.xquery.modules.sort.SortModule"/>
<!--
<module uri="http://exist-db.org/xquery/vector" class="org.exist.xquery.modules.vector.VectorModule"/>
-->
<!--
<module uri="http://exist-db.org/xquery/spatial" class="org.exist.xquery.modules.spatial.SpatialModule"/>
-->
<module uri="http://exist-db.org/xquery/vector" class="org.exist.xquery.modules.vector.VectorModule" enabled="no"/>
<module uri="http://exist-db.org/xquery/spatial" class="org.exist.xquery.modules.spatial.SpatialModule" enabled="no"/>


<!--
Extensions
-->
<module uri="http://exist-db.org/xquery/contentextraction" class="org.exist.contentextraction.xquery.ContentExtractionModule"/>
<!-- module uri="http://exist-db.org/xquery/exiftool" class="org.exist.exiftool.xquery.ExiftoolModule">
<module uri="http://exist-db.org/xquery/exiftool" class="org.exist.exiftool.xquery.ExiftoolModule" enabled="no">
<parameter name="perl-path" value="/usr/bin/perl" description="file system path to the perl executable"/>
<parameter name="exiftool-path" value="/usr/bin/exiftool" description="file system path to the exiftool perl script"/>
</module -->
</module>
<module uri="http://expath.org/ns/http-client" class="org.exist.xquery.modules.httpclient.HttpClientModule"/>
<module uri="http://expath.org/ns/zip" class="org.expath.exist.ZipModule"/>
<module uri="http://exquery.org/ns/request" class="org.exist.extensions.exquery.modules.request.RequestModule"/>
Expand Down Expand Up @@ -1053,13 +1039,13 @@
<module uri="http://exist-db.org/xquery/compression" class="org.exist.xquery.modules.compression.CompressionModule"/>
<module uri="http://exist-db.org/xquery/counter" class="org.exist.xquery.modules.counter.CounterModule"/>
<module uri="http://exist-db.org/xquery/cqlparser" class="org.exist.xquery.modules.cqlparser.CQLParserModule"/>
<!-- module uri="http://exist-db.org/xquery/exi" class="org.exist.xquery.modules.exi.ExiModule"/ -->
<module uri="http://exist-db.org/xquery/exi" class="org.exist.xquery.modules.exi.ExiModule" enabled="no"/>
<module uri="http://exist-db.org/xquery/repo" class="org.exist.xquery.modules.expathrepo.ExpathPackageModule"/>
<module uri="http://exist-db.org/xquery/file" class="org.exist.xquery.modules.file.FileModule"/>
<module uri="http://exist-db.org/xquery/image" class="org.exist.xquery.modules.image.ImageModule"/>
<module uri="http://exist-db.org/xquery/jndi" class="org.exist.xquery.modules.jndi.JNDIModule"/>
<module uri="http://exist-db.org/xquery/mail" class="org.exist.xquery.modules.mail.MailModule"/>
<!-- module uri="http://exist-db.org/xquery/oracle" class="org.exist.xquery.modules.oracle.OracleModule"/ -->
<module uri="http://exist-db.org/xquery/oracle" class="org.exist.xquery.modules.oracle.OracleModule" enabled="no"/>
<module uri="http://exist-db.org/xquery/persistentlogin" class="org.exist.xquery.modules.persistentlogin.PersistentLoginModule"/>
<module uri="http://exist-db.org/xquery/process" class="org.exist.xquery.modules.process.ProcessModule"/>
<module uri="http://exist-db.org/xquery/scheduler" class="org.exist.xquery.modules.scheduler.SchedulerModule"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -735,7 +735,6 @@
xmldb:xcollection() should return an empty sequence when an
XML resource can not be retrieved.
-->
<!-- TODO: add attribute 'enabled="yes/no"' -->
<xquery enable-java-binding="no" disable-deprecated-functions="no"
enable-query-rewriting="yes" backwardCompatible="no"
enforce-index-use="strict"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -735,7 +735,6 @@
xmldb:xcollection() should return an empty sequence when an
XML resource can not be retrieved.
-->
<!-- TODO: add attribute 'enabled="yes/no"' -->
<xquery enable-java-binding="no" disable-deprecated-functions="no"
enable-query-rewriting="yes" backwardCompatible="no"
enforce-index-use="strict"
Expand Down
Loading
Loading