Skip to end of metadata
Go to start of metadata

Bold, italicized properties are very important and most likely must be changed from their defaults during installation.
Bold properties are likely to need modification during implementation.

All property files listed below are in build/properties within the KFS project.

Category

Property

Default

Notes

Module Configuration Properties
(build.properties)

 

 

 

 

module.labor.distribution.enabled

true

Whether to include the configuration for the Labor Distribution, Budget Construction, and Effort Commitment Modules.  (ld,bc,ec)

 

module.contracts.and.grants.enabled

true

Whether to include the configuration for the Contracts and Grants module. (cg)

 

module.accounts.receivable.enabled

true

Whether to include the configuration for the Accounts Receivable module. (ar)

 

module.purchasing.enabled

true

Whether to include the configuration for the Purchasing/Accounts Payable module. (purap)

 

module.capital.asset.enabled

true

Whether to include the configuration for the Capital Asset and Capital Asset Builder Modules. (cam,cab)

 

module.endowment.enabled

true

Whether to include the configuration for the Endowment module. (endow)

 

module.access.security.enabled

false

Whether to include the configuration for the Access Security module. (sec)  This module overrides pieces of the coa, gl, ld, and purap modules.

URLs
(url.properties)

 

 

 

 

appserver.url

http://localhost:8080/

tells the build what the base URL is for the application server in which the application will be deployed

 

application.url

${appserver.url}${ant.project.name}-${build.environment}

the base url of the application

 

http.url

localhost:8080/{ant.project.name}-${build.environment}

the base url of the application for use by the KSB service publishing

 

rice.url

${application.url}/${rice.application}

the base url for the rice struts module. If you are using a standalone Rice server, this must be changed.

 

cas.url

${appserver.url}/cas

the base url for your CAS 3 server

 

externalizable.static.content.url

${application.url}/static

the base url for static content like images and help that could reside within the application or be maintained by other group(s) on other server(s)

 

externalizable.help.url

${externalizable.static.content.url}/help/

the base url for help content

 

externalizable.images.url

${externalizable.static.content.url}/images/

the base url for images that can reside outside the application

 

rice.externalizable.images.url

${application.url}/${rice.application}/static/images/

the base url for rice images that can reside outside the application

 

externalizable.xml.url

${externalizable.static.content.url}/xml/

the base url for xml (xsd, xsl, etc.) related files that can reside outside the application

Database
(database.properties)

 

 

 

 

datasource.ojb.platform

Oracle9i

used by the build to configure OJB and determine the appropriate driver and KualiDBPlatform implementations to use

 

oracle.datasource.url

 jdbc:oracle:thin:@localhost:1521:XE

JDBC URL that will be used by the application, if the datasource.ojb.platform is set to Oracle9i

 

mysql.datasource.url

 jdbc:mysql://localhost:3306/${datasource.username}

JDBC URL that will be used by the application, if the datasource.ojb.platform is set to MySQL

 

datasource.username

 

account that the application should use to access the database

 

datasource.password

 

password for the application database account

 

datasource.pool.size

50

number of connections the server can keep open with the database at once

 

ojb.persistencebroker.pool.maxactive

${datasource.pool.size}

The maximum number of connections the persistence broker pool will handle.
When running with Embedded Rice, this can be the same as the datasource.pool.size property.
When running with a standalone Rice server (to which this server will have direct database connections), this property must be the sum of the datasource.pool.size and rice.server.datasource.pool.size

 

datasource.maximum.cached.preparedstatements

25

specify the number of prepared statements cached per connection

 

datasource.connection.timeout

100000

used in datasource connections to close once they have been inactive for a period of time

 

transaction.timeout

${datasource.connection.timeout}

used in datasource configuration to force transactions to timeout after they've run too long

 

datasource.validating.query

select 1 from dual

Query used to test the connection to the database.

Directories
(directory.properties)

 

 

 

 

base.directory

/java

base directory during the build process to locate supporting files not in the KFS project (see below)

 

tomcat.version

5

Changes the defaults for the appserver lib directory location, since there is a structural change between the versions.

 

appserver.home

${basedir}/build/tomcat

determines where the build will look for your application server

 

external.config.directory

${base.directory}/opt

the base directory for external configuration files and work directories

 

drivers.directory

${build.directory}/drivers

determines where the build will look for your database drivers

 

appserver.lib.dir

${appserver.home}/common/lib

 

 

appserver.classes.dir

${appserver.home}/common/classes

 

 

appserver.deploy.dir

${appserver.home}/webapps

 

 

appserver.config.dir

${appserver.home}/conf

 

 

appserver.localhost.dir

${appserver.config.dir}/Catalina/localhost

 

 

appserver.work.dir

${appserver.home}/work/Catalina/localhost

 

 

base.security.directory

${external.config.directory}/sa_forms/java

the directory where secure application property files are located (application server user must have read access)

 

base.settings.directory

${external.config.directory}/j2ee

the directory that contains the non-secure property files that are nonetheless external to the deployed application (application server user must have read access)

 

base.logs.directory

${external.config.directory}/logs

the directory for the log files output by the application (application server user must have write access)

 

security.directory

${base.security.directory}/${build.environment}/${ant.project.name}

the directory where secure application property files for a specific environment are located (application server user must have read access)

 

settings.directory

${base.settings.directory}/${build.environment}/${ant.project.name}

the directory that contains the non-secure property files for a specific environment that are nonetheless external to the deployed application (application server user must have read access)

 

logs.directory

${base.logs.directory}/${build.environment}/${ant.project.name}

the directory for the log files output by the application (application server user must have write access)

 

external.work.directory

${external.config.directory}/work/${build.environment}/${ant.project.name}

the base working directory that is external to the application (used for storage of attachments, batch input files, and generated reports - application server user must have read/write access to all subdirectories)

 

attachments.directory

${external.work.directory}/attachments

the base working directory for storage of note-associated attachments that are uploaded by users

 

rice.workflow.attachment.directory

${attachments.directory}

the directory where attachments uploaded through the workflow ui are stored

 

staging.directory

${external.work.directory}/staging

the base working directory for storage of batch input files

 

reports.directory

${external.work.directory}/reports

the base working directory for oltp and batch report generation

 

security.property.file

${security.directory}/${security.file}

the single secure property file currently used by the application

 

log4j.settings.file

${settings.directory}/${log4j.file}

the property file that contains the log4j configuration for the application

 

encrypt.attributes.properties.file

fieldsToEncrypt.properties

the file that lists the tables and columns that should be processed by the PostDataLoadEncryptionStep

Rice Configuration
(rice.properties)

 

 

 

 

rice.standalone

false

Whether to configure KFS during the build process to run with an external Rice server instead of an embedded one (the default for development.)

 

rice.url

(dynamic)
rice.standalone=false : ${application.url}
rice.standalone=true : ${appserver.url}/${rice.application}-${build.environment}

The base URL (http://host:port/context) for the standalone rice server.

 

deploy.local.rice.server

false

Whether to configure the local tomcat server with a Rice standalone instance. Used in conjunction with the rice.standalone property above.

 

rice.config.property.file

${appserver.home}/conf/rice-config.xml

Where the Rice server will pull it's configuration information (URLs/DB connections/etc...). This is used to create the file during the build process. The default is a location that Rice naturally searches for configuration information.

 

rice.server.datasource.url

${datasource.url}

jdbc url for the Rice server components (KEW/KIM/KSB). It will also be used when configuring a local Rice standalone server.

 

rice.ksb.url

${application.url}/${ksb.application}

the base url for the service bus struts module

 

rice.ksb.http.url.expression

(blank)

  1. In a production or clustered environment, this should be the private IP address, port and base context name for the location of the KSB services
    See the spring-rice-configurer.xml file for how this is used.
    This odd syntax here is to allow it to be removed completely
    To use, make the value of the property "http.url=host:port/context-name"

 

rice.server.datasource.driver.class

${datasource.driver.class}

see notes for rice.server.datasource.url

 

rice.server.datasource.username

${datasource.username}

see notes for rice.server.datasource.url

 

rice.server.datasource.password

${datasource.password}

see notes for rice.server.datasource.url

 

rice.server.datasource.pool.size

${datasource.pool.size}

see notes for rice.server.datasource.url

 

rice.server.datasource.connection.timeout

${datasource.connection.timeout}

see notes for rice.server.datasource.url

 

rice.server.datasource.validating.query

${datasource.validating.query}

see notes for rice.server.datasource.url

 

rice.kew.xml.directory

${staging.directory}/workflow

the directory where the xml files that define your workflow data should be stored when they are uploaded

 

rice.kew.xml.poll.interval.secs

30

the frequency with which workflow checks for new files in the xml directory

 

rice.kew.xml.initial.delay.secs

60

the length of time workflow waits to do the first check of the xml directory when the application starts up

 

rice.kew.daily.email

false

turn on/off daily workflow notifications

 

rice.kew.weekly.email

false

turn on/off weekly workflow notifications

 

rice.kew.daily.email.cron.expression

0 0 1 * * ?

the cron expression defining when daily emails will be sent (default to 1AM every day)

 

rice.kew.weekly.email.cron.expression

0 0 2 ? * 2

the cron expression defining when daily emails will be sent (default to 2AM every Monday)

 

rice.ksb.message.delivery

async

determines whether the workflow processes that would normally be performed asynchronously are asynchronous (async) or are synchronous instead (sync)

 

rice.ksb.route.queue.max.retry.attempts

3

how many times the service bus will try to send a message when it is encountering an exception that may be due to a resource outage, for example

 

rice.ksb.route.queue.time.increment

1000

the length of time the service bus will wait before retrying after each failed attempt to send a message

 

rice.ksb.thread.pool.size

20

the number of threads available to process service bus messages, i.e. deal with queued workflow documents

 

rice.ksb.batch.mode

false

Set to true to prevent the application from publishing the services to a master service bus. For use on application configurations that should not receive service calls from other applications. (batch jobs and unit tests)

 

rice.struts.config.files

/kr/WEB-INF/struts-config.xml

the files that define the struts context for the rice struts module

 

rice.kew.struts.config.files

/kew/WEB-INF/struts-config.xml

the files that define the struts context for the workflow struts module

 

rice.ksb.struts.config.files

/ksb/WEB-INF/struts-config.xml

the files that define the struts context for the ksb struts module

 

rice.enable.nonproduction.data.unmasking

false

Specifies whether data can be unmasked in non-production environments. Can be used to prevent access to sensitive data if loaded into a test environment.

 

encryption.key

7IC64w6ksLU

used by the DemostrationGradeEncryptionService to encrypt / decrypt data in the database

 

keystore.alias

rice

 

 

keystore.password

r1c3pw

Password used to open the keystore.

 

rice.kim.cache.*.max.size

3000

The maximum number of items which can be in one of the KIM memory caches.

 

rice.kim.cache.*.max.age.seconds

(varies)

How long after adding that an item in the cache will be considered invalid.

 

rice.kns.cache.parameter.max.size

1000

The maximum number of items in the System parameter cache.

 

rice.kns.cache.parameter.max.age.seconds

3600

How long after adding that an item in the cache will be considered invalid.

 

rice.kns.cache.nonDatabaseComponent.max.size

2000

The maximum number of items in the cache of non-database components used by the parameter service.

 

rice.kns.cache.nonDatabaseComponent.max.age.seconds

3600

How long after adding that an item in the cache will be considered invalid.

 

rice.kns.cache.methodresult.max.size

1000

The maximum number of items in the method result cache used for some service calls.

 

rice.kns.cache.methodresult.max.age.seconds

60

How long after adding that an item in the cache will be considered invalid.

 

rice.kns.cache.methodresult.nocopy.max.size

1000

The maximum number of items in the method result cache used for some service calls.

 

rice.kns.cache.methodresult.nocopy.max.age.seconds

600

How long after adding that an item in the cache will be considered invalid.

 

rice.kns.session.document.cache.size

1000

Number of session documents which will be kept in memory at one time. Above this, they are purged and reloaded from a persistent database store as needed.

Logging
(logging.properties)

 

 

 

 

log4j.file

log4j.properties

the name of the log4j settings file

 

log4j.settings.file

${settings.directory}/${log4j.file}

The file the server will look for to configure log4j

 

appenders

INFO, LogFile, StdOut

this property determines what log statements will be printed by default and whether the logs go to the log file or standard out (By default, this one is set dynamically in build.xml)

 

use.p6spy

false

this property can be used to turn on logging of the SQL generated and executed by the application by intercepting the JDBC driver

 

memory.monitor.threshold

.85

determines when the MemoryMonitor considers the appplication to have exceeded reasonable memory usage (decimal represents percentage of tenured allocation)

 

log4j.reload.minutes

5

determines how frequently the logging framework (Log4jConfigurer) will check for changes to log4j.properties

 

periodic.thread.dump

true

turns on a background process which logs the current thread state of the application to disk

 

periodic.thread.dump.seconds

300

the number of seconds between dumps

Batch
(batch.properties)

 

 

 

 

use.quartz.scheduling

true

determines whether quartz (SchedulerService and scheduleJob) should be used for batch job scheduling and execution - impacts whether the batch scheduling ui works

 

use.quartz.jdbc.jobstore

(dynamic)

This property will be set dynamically by the build script, but you can force it by setting it in your kfs-build.properties file.

 

batch.schedule.cron.expression

00 00 23 ? * *

the Quartz cron expression for the scheduleJobTrigger (in KualiSpringBeansKfs.xml), i.e. when should the standard batch schedule run

 

batch.mailing.list

(unset)

from email address for mail sent by the batch framework (JobListener and other)
and to email address for job failure messages

Spring Configuration
(spring.properties)

 

 

 

 

core.spring.source.files

org/kuali/kfs/sys/spring-sys.xml,
org/kuali/kfs/coa/spring-coa.xml,
org/kuali/kfs/fp/spring-fp.xml,
org/kuali/kfs/gl/spring-gl.xml,
org/kuali/kfs/pdp/spring-pdp.xml,
org/kuali/kfs/vnd/spring-vnd.xml

the files that define the spring context for the application - note that further configuration files may be specified in the module definitions

 

integration.spring.files

,org/kuali/kfs/integration/spring-integration.xml

Core spring file containing the empty module definitions for the optional modules.  These definitions are overridden if the module implementation definitions are included.  (via the files below)

 

contracts.and.grants.spring.files

,org/kuali/kfs/module/cg/spring-cg.xml

 

 

accounts.receivable.spring.files

,org/kuali/kfs/module/ar/spring-ar.xml

 

 

purchasing.spring.files

,org/kuali/kfs/module/purap/spring-purap.xml

 

 

capital.asset.spring.files

,org/kuali/kfs/module/cam/spring-cam.xml,
org/kuali/kfs/module/cab/spring-cab.xml

 

 

endowment.spring.files

,org/kuali/kfs/module/endow/spring-endow.xml

 

 

labor.distribution.spring.files

,org/kuali/kfs/module/ld/spring-ld.xml\
,org/kuali/kfs/module/bc/spring-bc.xml\
,org/kuali/kfs/module/ec/spring-ec.xml
,org/kuali/kfs/module/ld/spring-ld.xml,
org/kuali/kfs/module/bc/spring-bc.xml,
org/kuali/kfs/module/ec/spring-ec.xml

 

 

access.security.core.spring.files

,org/kuali/kfs/sec/spring-sec.xml,
org/kuali/kfs/sec/spring-sec-gl-overrides.xml

 

 

access.security.ld.spring.files

,org/kuali/kfs/module/ld/spring-sec-ld-overrides.xml

 

 

access.security.purap.spring.files

,org/kuali/kfs/module/purap/spring-sec-purap-overrides.xml

 

 

access.security.rice.spring.files

,org/kuali/kfs/sec/spring-sec-rice-overrides.xml

 

 

batch.spring.files

,spring-kfs-batch.xml

 

 

institution.spring.source.files

(blank)

the institution specific files that define the spring context for the application

 

spring.source.files

(dynamic)

This is dynamically built from the above properties based on the enabled module flags.  (See top of this chart.)

 

core.spring.test.files

org/kuali/kfs/sys/spring-sys-test.xml,
org/kuali/kfs/gl/spring-gl-test.xml

the core files that are included in the application spring context for unit testing

 

endowment.spring.test.files

,org/kuali/kfs/module/endow/spring-endow-test.xml

 

 

capital.asset.spring.test.files

,org/kuali/kfs/module/cam/spring-cam-test.xml

 

 

accounts.receivable.spring.test.files

,org/kuali/kfs/module/ar/spring-ar-test.xml

 

 

purchasing.spring.test.files

,org/kuali/kfs/module/purap/spring-purap-test.xml

 

 

contracts.and.grants.spring.test.files

(blank)

 

 

labor.distribution.spring.test.files

(blank)

 

 

institution.spring.test.files

(blank)

the institution specific files that are included in the application spring context for unit testing

 

spring.test.files

(dynamic)

This is dynamically built from the above properties based on the enabled module flags.  (See top of this chart.)

Web Configuration
(web.properties)

 

 

 

 

http.session.timeout.minutes

15

Value for the <session-timeout> parameter in web.xml.

 

core.struts.config.files

/WEB-INF/struts-config.xml

the core files that define the struts context for the application

 

institution.struts.config.files

 

the institution specific files that define the struts context for the application

 

struts.config.files

${core.struts.config.files}
${institution.struts.config.files}

all the files that define the struts context for the application

 

core.struts.message.resources

KR-ApplicationResources,\\\\\\\
ApplicationResources

the core files containing user messages that will be displayed via struts tags in jsps

 

institution.struts.message.resources

(blank)

the institution specific files containing user messages that will be displayed via struts tags in jsps

 

struts.message.resources

${core.struts.message.resources}${institution.struts.message.resources}

all the files containing user messages that will be displayed via struts tags in jsps

 

core.rice.struts.message.resources

KR-ApplicationResources,\\\\\\\
org.kuali.rice.kew.ApplicationResources,\\\\\\\
org.kuali.rice.ksb.messaging.ApplicationResources,\\\\\\\
KIM-ApplicationResources

Resources used by the Rice server portion of the framework

 

institution.rice.struts.message.resources

(blank)

the institution specific files containing user messages that will be displayed via struts tags in jsps

 

rice.struts.message.resources

${core.rice.struts.message.resources}
${institution.rice.struts.message.resources}

all the files containing user messages that will be displayed via struts tags in jsps

 

core.jstl.constants.classnames

org.kuali.kfs.sys.KFSConstants,\\\\\\\
org.kuali.kfs.sys.KfsAuthorizationConstants,\\\\\\\
org.kuali.kfs.gl.GeneralLedgerConstants,\\\\\\\
org.kuali.kfs.module.cg.CGConstants,\\\\\\\
org.kuali.kfs.module.purap.PurapConstants,\\\\\\\
org.kuali.kfs.module.bc.BCConstants,\\\\\\\
org.kuali.kfs.module.ec.EffortConstants,\\\\\\\
org.kuali.kfs.module.cam.CamsConstants,\\\\\\\
org.kuali.kfs.module.endow.EndowConstants

the core classes that wrap java constants for jsps and tags (see WebApplicationInitListener)

 

institution.jstl.constants.classnames

(blank)

the institution specific classes that wrap java constants for jsps and tags (see WebApplicationInitListener)

 

jstl.constants.classnames

${core.jstl.constants.classnames}
${institution.jstl.constants.classnames}

all the classes that wrap java constants for jsps and tags (see WebApplicationInitListener)

 

jstl.constants.main.class

org.kuali.kfs.sys.KFSConstants

used to determine what class from the above (jstl.constants.classnames) list is bound to the "Constants" name in JSTL

 

core.javascript.files

kr/scripts/core.js,\\\\\\\
kr/scripts/dhtml.js,\\\\\\\
kr/scripts/my_common.js,\\\\\\\
kr/scripts/jscalendar-1.0/calendar.js,\\\\\\\
kr/scripts/jscalendar-1.0/lang/calendar-en.js,\\\\\\\
kr/scripts/jscalendar-1.0/calendar-setup.js,\\\\\\\
dwr/engine.js,dwr/util.js,\\\\\\\
dwr/interface/PersonService.js,\\\\\\\
kr/scripts/objectInfo.js,scripts/rice-overrides.js

the core javascript files that should be available to every page in the application

 

institution.javascript.files

(blank)

the institution specific javascript files that should be available to every page in the application

 

javascript.files

${core.javascript.files}
${institution.javascript.files}

all the javascript files that should be available to every page in the application

 

core.css.files

kr/css/kuali.css,kr/scripts/jscalendar-1.0/calendar-win2k-1.css

the core css files that should be available to every page in the application

 

institution.css.files

 

the institution specific css files that should be available to every page in the application

 

css.files

${core.css.files}${institution.css.files}

all the css files that should be available to every page in the application

 

core.portal.javascript.files

kr/scripts/my_common.js

the javascript files that should be available to the portal

 

institution.portal.javascript.files

(blank)

 

 

portal.javascript.files

${core.portal.javascript.files}
${institution.portal.javascript.files}

the javascript files that should be available to the portal

 

core.portal.css.files

css/portal.css

the css files that should be available to the portal

 

institution.portal.css.files

(blank)

the css files that should be available to the portal

 

portal.css.files

${core.portal.css.files}${institution.portal.css.files}

the css files that should be available to the portal

CAS Authentication
(cas.properties)

 

 

 

 

authentication.filter.definition

(see file)

Segment of web.xml that will be injected by the ant dist-local process for your authentication. It assumes that it uses a filter-based mechanism, but there is no dependency in KFS or Rice on CAS.

 

authentication.filter.mappings

(see file)

(see above)

 

deploy.local.cas.server

true

Should the local build process deploy a local CAS server which uses the KIM database for authentication?

 

cas.datasource.username

${datasource.username}

Database connection information for the KIM database. Needs access to the KRIM_PRNCPL_T table.

 

cas.datasource.password

${datasource.password}

 

 

cas.datasource.url

${datasource.url}

Derived in build.xml depending on the status of the rice.standalone property.

 

cas.datasource.driver.class

${datasource.driver.class}

(see above)

 

cas.require.https

false

determines whether cas requires that the application be secured via ssl

 

cas.validate.password

false

determines whether the password field appears on the cas login screen and is validated and controls the appearance of the password field on the user document when maintain.users.locally is true

Mail
(email.properties)

 

 

 

 

mail.relay.server

 

determines the SMTP server used by MailService

 

mail.transport.protocol

smtp

If your mail server only accepts SSL connections, change this to "smtps"

 

batch.mailing.list

 

from email address for mail sent by the batch framework (JobListener and other) and to email address for job failure messages

 

incident.mailing.list

 

to/from email address for mail sent by the incident reporting framework (KualiExceptionIncident, etc.)

Miscellaneous Configuration
(build.properties)

 

 

 

 

is.local.build

(unset)

this property determines whether the build will do a local deployment or package for a deployment on the test node (value does not matter - only tested for existence)

 

is.clustered

false

When true, adds the <distributable /> tag to web.xml.

 

build.environment

dev

this is the kuali and workflow environment

 

production.environment.code

prd

determines what build.environment the KualiConfigurationService considers your production environment

 

tests.includes

**/*Test.java

this property determines what tests are included when the test target is executed

 

core.property.files

classpath:KR-ApplicationResources.properties,\\\\\\\
classpath:ApplicationResources.properties

the core configuration property files that should be available in the KualiConfigurationService context

 

institution.property.files

(blank)

the institution specific configuration property files that should be available in the KualiConfigurationService context

 

property.files

${core.property.files}
${institution.property.files}

all the configuration property files that should be available in the KualiConfigurationService context, along with configuration.properties

 

core.property.test.files

classpath:test-configuration.properties

the core configuration property files that should be added to the KualiConfigurationService context for unit testing

 

institution.property.test.files

(blank)

the institution specific configuration property files that should be added to the KualiConfigurationService context for unit testing

 

property.test.files

${core.property.test.files}${institution.property.test.files}

all the configuration property files that should be added to the KualiConfigurationService context for unit testing

 

institutional.configuration.file

(blank)

to add additional properties to the configuration.properties file that is deployed with the application. It will be tokenized using the same properties available to build/project/configuration.properties

 

custom.context.content

(blank)

allows insertion of custom content into the tomcat context file

 

institution.source.directory

(unset)

If this variable is set, code from that path will be compiled into the main war.classes.directory

 

institution.lib.directory

(unset)

if this property is set, the build will copy files from this location into the project lib directory and to the server war

 

institution.test.source.directory

(unset)

 

 

institution.test.lib.directory

(unset)

 

 

institution.web.content.directory

(unset)

Location of another source of web content. If set, it will be overlaid on top of the baseline files in the work/web-root directory.

 

 Kuali documentation is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License. 

Kuali software is licensed for use pursuant to the Educational Community License v.2.0.

 Copyright © 2005-2013 The Kuali Foundation. All rights reserved. 

Portions of Kuali are copyrighted by other parties as described in the Acknowledgments screen. 

Kuali ® is a registered trademark of the Trustees of Indiana University.