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

###############################################################################
# LMF core configuration
###############################################################################

# KiWi home directory (for configuration files etc)
marmotta.home = /tmp/marmotta

# directory where KiWi stores the search index for SOLR search
solr.home = /tmp/lmf/solr

# base URI of this KiWi installation; used for constructing resource URIs
kiwi.context = http://localhost:8080/

# base URL of the KiWi installation; used for accessing additional web services like SOLR and H2
kiwi.host = http://localhost:8080/

#the path of the KiWi installation, e.g. /, /marmotta, /LMF or /KiWi
kiwi.path = /

# true if the LMF system host configuration has been set up, do not change
kiwi.setup.host = false

# true if the LMF system database configuration has been set up, do not change
kiwi.setup.database = false

# kiwi startup page
kiwi.pages.startup = core/admin/about.html

# lmf default style
kiwi.pages.project = marmotta

# marmotta logo
kiwi.pages.project.marmotta.logo = core/public/img/logo/marmotta-logo.png

# marmotta footer
kiwi.pages.project.marmotta.footer = Copyright &copy; 2013 The Apache Software Foundation, Licensed under the <a href\="\#">Apache License, Version 2.0.</a><br>Apache, Marmotta, the Apache feather and Marmotta logos are trademarks of The Apache Software Foundation.

# lmf logo
kiwi.pages.project.custom.logo = core/public/img/logo/custom-logo.png

# lmf footer
kiwi.pages.project.custom.footer = Your Footer powered by <a href="http://marmotta.apache.org/">Apache Marmotta</a>.

# supported styles
kiwi.pages.style_path = core/public/style/blue/

# enable or disable the logging of debugging messages for the whole system
debug.enabled = false

# the status code to use for redirects; 303 is used in the Linked Data guidelines, but 300 is more correct
# according to HTTP
linkeddata.redirect.status = 303


# determines whether to issue a redirect for PUT requests; if set to true, the resource service will return
# a redirect to the actual content or metadata location for the resource, resulting in a second request to be issued
# by the browser; if set to false, the resource service directly processes the content/metadata upload
linkeddata.redirect.put = false


# default rel value for resource interaction with HTTP (MUST be 'meta' or 'content')
linkeddata.mime.rel.default = meta


# sort menu entries by weight instead of alphabet
templating.sort_by_weight = true

# recache templating file every time
templating.cache.enabled = true


###############################################################################
# Logging configuration
###############################################################################

# configure logging for the core system; valid values: DEBUG, INFO, WARN, ERROR
logging.kiwi.core = INFO

# configure logging for the security system; valid values: DEBUG, INFO, WARN, ERROR
logging.kiwi.core.services.security = DEBUG


# configure logging for the reasoner; valid values: DEBUG, INFO, WARN, ERROR
logging.kiwi.reasoner = INFO


###############################################################################
# Content Readers and Writers (in case a resource is requested with ;rel=content
###############################################################################


# a reader/writer for content stored in the file system; by default, this is applied to all resources that have
# a file:/ URI. It is disabled by default, because it potentially allows reading/writing all files in the file system
# to only enable reading but disable writing, remove the content.filesystem.writer property
content.filesystem.reader=org.apache.marmotta.platform.core.services.content.FileSystemContentReader
content.filesystem.writer=org.apache.marmotta.platform.core.services.content.FileSystemContentWriter
content.filesystem.pattern=(${marmotta.home}/resources|${kiwi.context}resource/|urn:).*
#content.filesystem.pattern=file:/tmp/.*
content.filesystem.enabled=true
# if enabled allow only access to resources stored in the LMF work directory
content.filesystem.secure=true


# a reader for content stored on a remote HTTP server; by default, this is applied to all resources that are not in
# the context of the LMF web application; enabled by default, because it is a safe operation
content.http.reader=org.apache.marmotta.platform.core.services.content.HTTPContentReader
content.http.pattern=(?!${kiwi.context}resource)http://.*
content.http.enabled=false

###############################################################################
# Resource Filter configuration
###############################################################################

# enable/disable browser caching of static resources; if enabled, the KiWiResourceFilter will set appropriate
# Expires: headers in the response
resources.browsercache.enabled = true

# how many seconds should the Expires-header set for expiration of static resources?
resources.browsercache.seconds = 3600

# enable/disable server-side caching of static resources
resources.servercache.enabled = false

###############################################################################
# LMF database configuration
###############################################################################

# the database type (h2, postgres or mysql)
database.type = h2

# the URL to access the database
database.url =

# the database user
database.user =

# the database password
database.password =

# the database mode (create, update or validate)
database.mode =

# Hibernate-specific configuration for H2
database.h2.driver = org.h2.Driver
database.h2.url = jdbc:h2:/tmp/kiwi/db/kiwi;MVCC=true;DB_CLOSE_ON_EXIT=FALSE;DB_CLOSE_DELAY=10

# Hibernate-specific configuration for PostgreSQL
database.postgres.driver = org.postgresql.Driver
database.postgres.url = jdbc:postgresql://localhost:5432/lmf?prepareThreshold=3

# Hibernate-specific configuration for MySQL
database.mysql.driver = com.mysql.jdbc.Driver
database.mysql.url = jdbc:mysql://localhost:3306/lmf?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true

# Hibernate-specific configuration for Oracle
database.oracle.url = jdbc:oracle:thin:@//localhost:1521/XE
database.oracle.driver = oracle.jdbc.OracleDriver


###############################################################################
# LMF importer configuration
###############################################################################

# generate KiWi title and text content for each imported resource in the RDF importer
importer.generate_descriptions = false

# commit import-transaction X items.
importer.batchsize = 50

###############################################################################
# LMF Statistics Module
###############################################################################

# whether collecting statistics about the execution should be enabled on start or not
statistics.enabled = true

###############################################################################
# LMF Default Prefixes
###############################################################################

# prefixes mappings
prefix.dc = http://purl.org/dc/elements/1.1/
prefix.dct = http://purl.org/dc/terms/
prefix.foaf = http://xmlns.com/foaf/0.1/
prefix.lmftypes = http://www.newmedialab.at/lmf/types/1.0/
prefix.sioc = http://rdfs.org/sioc/ns#
prefix.rdfs = http://www.w3.org/2000/01/rdf-schema#
prefix.dcat = http://www.w3.org/ns/dcat#
prefix.yt = http://gdata.youtube.com/schemas/2007#
prefix.xsd = http://www.w3.org/2001/XMLSchema#
prefix.owl = http://www.w3.org/2002/07/owl#
prefix.rdf = http://www.w3.org/1999/02/22-rdf-syntax-ns#
prefix.skos = http://www.w3.org/2004/02/skos/core#
prefix.ldp = http://www.w3.org/ns/ldp#
prefix.mao = http://www.w3.org/ns/ma-ont#
