TIBCO JasperReports® Community Edition 7.1.0

This commit is contained in:
Marc Benstein 2018-05-09 15:04:45 -07:00
commit bd0f0af6ce
No known key found for this signature in database
GPG Key ID: 156CC9052F34C768
6685 changed files with 994705 additions and 0 deletions

Binary file not shown.

57957
LICENSE Normal file

File diff suppressed because it is too large Load Diff

4
README Normal file
View File

@ -0,0 +1,4 @@
TIBCO JasperReports® Server Community Edition
=============================================
TIBCO JasperReports® Server builds on TIBCO JasperReports® Library as a comprehensive family of Business Intelligence (BI) products, providing robust static and interactive reporting, report server, and data analysis capabilities. These capabilities are available as either stand-alone products, or as part of an integrated end-to-end BI suite utilizing common metadata and provide shared services, such as security, a repository, and scheduling. The server exposes comprehensive public interfaces enabling seamless integration with other applications and the capability to easily add custom functionality.

362
build-config.xml Executable file
View File

@ -0,0 +1,362 @@
<?xml version="1.0"?>
<!--
~ Copyright © 2005 - 2018 TIBCO Software Inc.
~ http://www.jaspersoft.com.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<!-- =============================================================== -->
<!-- Ant convention to copy config files to some target -->
<!-- Properties expected: -->
<!-- js-path: path to CE source dir -->
<!-- js-pro-path: path to Pro source dir (here) -->
<!-- target: where to copy the files -->
<!-- =============================================================== -->
<project name="ce-config" default="copy-config" basedir=".">
<description>Copy config file sets</description>
<taskdef resource="net/sf/antcontrib/antlib.xml"/>
<!-- define dependencies -->
<property name="ce.webapp.deps" value="ce.webapp, ce.common, ce.ftp"/>
<property name="ce.unit-test.deps" value="ce.unit-test, ce.common, ce.export-shared"/>
<property name="ce.esapi.deps" value="ce.common.esapi"/>
<property name="ce.api-impl.deps" value="ce.common.esapi"/>
<property name="ce.production-tests.deps" value="ce.production-tests, ce.common, ce.export-shared, ce.sso"/>
<property name="ce.export.deps" value="ce.export, ce.export-shared, ce.common"/>
<!-- define paths -->
<property name="ce.common.path" value="${js-path}/common/shared-config"/>
<property name="ce.common.esapi.path" value="${js-path}/common/shared-config/classes/esapi"/>
<property name="ce.webapp.path" value="${js-path}/jasperserver-war/shared-config"/>
<property name="ce.unit-test.path" value="${js-path}/jasperserver-unit-test/shared-config"/>
<property name="ce.production-tests.path" value="${js-path}/production-tests/shared-config"/>
<!-- 1/30/2013 - New functionality to copy single application context files from <module>'s to a classpath:
example - copy applicationContext-security-web.xml from jasperserver-war/shared-config to production-tests/target/target-classes-->
<property name="ce.production-tests.files" value="${js-path}/jasperserver-war/shared-config/applicationContext-security-web.xml"/>
<property name="ce.export.path" value="${js-path}/jasperserver-export-package/config"/>
<property name="ce.export-shared.path" value="${js-path}/jasperserver-export-package/shared-config"/>
<property name="ce.sso.path" value="${js-path}/samples/externalAuth-sample-config"/>
<property name="ce.ftp.path" value="${js-path}/jasperserver-ftp/shared-config"/>
<!--
Comma-separated list of files with platform-specific values;
in buildomatic these are created in the build_conf/<cfg-name>/templates directory.
You have to set the platform-path property to point to them
-->
<property name="platform.files" value="js.jdbc.properties, js.quartz.properties, js.diagnostic.properties, js.aws.datasource.properties, js.externalAuth.properties, js.config.properties, relativedate.properties"/>
<target name="copy-config" description="copy config files for a specific module (requires target property to be set)">
<!-- lookup pathlist of deps for specified module -->
<propertycopy property="path-list" from="${module}.deps"/>
<process-config path-list="${path-list}"/>
<!-- after copy-deps, copy over the list of platform-specific files -->
<if>
<and>
<isset property="platform-path"/>
<or>
<not>
<isset property="exclude.platform.files"/>
</not>
<equals arg1="exclude.platform.files" arg2="false"/>
</or>
</and>
<then>
<copy toDir="${target}" overwrite="true" verbose="true">
<fileset dir="${platform-path}" includes="${platform.files}"/>
</copy>
</then>
</if>
</target>
<target name="list-config">
<!-- lookup pathlist of deps for specified module -->
<propertycopy property="path-list" from="${module}.deps"/>
<process-config path-list="${path-list}" do-what="listfiles-relative"/>
</target>
<!-- list the modules available -->
<target name="list-modules">
<!-- get all "deps" properties -->
<propertyselector property="mod-list"
match="(.*)\.deps"
select="\1"/>
<!-- sort them, then list paths for each module -->
<sortlist property="sorted-mod-list" override="true" value="${mod-list}"/>
<for list="${sorted-mod-list}" param="mod">
<sequential>
<propertycopy property="deps" override="true" from="@{mod}.deps"/>
<echo message="Module @{mod} has these paths:"/>
<process-config path-list="${deps}" do-what="list"/>
</sequential>
</for>
</target>
<target name="list-files">
<!-- grep? -->
<if>
<isset property="grep"/>
<then>
<property name="do" value="grep"/>
</then>
<else>
<property name="do" value="listfiles-full"/>
</else>
</if>
<!-- get all "path" properties -->
<propertyselector property="path-list"
match="(.*)\.path$"
select="\1"/>
<!-- sort them, then list paths for each module -->
<sortlist property="sorted-path-list" override="true" value="${path-list}"/>
<for list="${sorted-path-list}" param="pathname">
<sequential>
<if>
<and>
<available file="${@{pathname}.path}"/>
<not>
<equals arg1="@{pathname}.path" arg2="sun.boot.library.path"/>
</not>
</and>
<then>
<echo level="debug" message="ok path @{pathname}.path: ${@{pathname}.path}"/>
<process-config path-list="@{pathname}" do-what="${do}"/>
</then>
<else>
<echo level="debug" message="weird path @{pathname}.path: ${@{pathname}.path}"/>
</else>
</if>
</sequential>
</for>
</target>
<!-- this macro recurses over a path list (which can contain other path lists) and takes an action for each path.
"do-what" can take these values:
copy: copy files under the paths to ${target}
listfiles-relative: echo the file names relative to each path
listfiles-full: echo the full file names for each path
list: just echo the paths
-->
<macrodef name="process-config">
<attribute name="path-list"/>
<attribute name="do-what" default="copy"/>
<sequential>
<for list="@{path-list}" delimiter=", " param="path-name">
<sequential>
<if>
<isset property="@{path-name}.pathlist"/>
<then>
<!-- echo message="path list is ${@{path-name}.pathlist}"/ -->
<process-config path-list="${@{path-name}.pathlist}" do-what="@{do-what}"/>
</then>
<elseif>
<isset property="@{path-name}.path"/>
<then>
<var name="path" value="${@{path-name}.path}"/>
<if>
<equals arg1="@{do-what}" arg2="copy"/>
<then>
<!-- set copy-overwrite to default (can be set to false to just update new files) -->
<property name="copy-overwrite" value="true"/>
<copy toDir="${target}" overwrite="${copy-overwrite}">
<fileset dir="${path}"/>
</copy>
</then>
<elseif>
<equals arg1="@{do-what}" arg2="listfiles-relative"/>
<then>
<echo level="info" message=" ${path}"/>
<for param="file">
<fileset dir="${path}"/>
<sequential>
<var name="relpath" unset="true"/>
<pathconvert dirsep="/" property="relpath">
<file file="@{file}"/>
<filtermapper>
<replacestring from="\" to="/"/>
<replacestring from="${path}/" to=""/>
</filtermapper>
</pathconvert>
<echo message=" ${relpath}"/>
</sequential>
</for>
</then>
</elseif>
<elseif>
<equals arg1="@{do-what}" arg2="listfiles-full"/>
<then>
<echo level="info" message=" ${path}"/>
<for param="file">
<fileset dir="${path}"/>
<sequential>
<var name="fullpath" unset="true"/>
<pathconvert dirsep="/" property="fullpath">
<file file="@{file}"/>
<filtermapper>
<replacestring from="\" to="/"/>
</filtermapper>
</pathconvert>
<echo message=" ${fullpath}"/>
</sequential>
</for>
</then>
</elseif>
<elseif>
<equals arg1="@{do-what}" arg2="grep"/>
<then>
<for param="file">
<fileset dir="${path}"/>
<sequential>
<var name="matches" unset="true"/>
<loadresource property="matches">
<concat>
<path path="@{file}"/>
<filterchain>
<containsregex pattern="${grep}" flags="i"/>
<prefixlines prefix=" "/>
</filterchain>
</concat>
</loadresource>
<if>
<isset property="matches"/>
<then>
<echo message="@{file}:"/>
<echo message="${matches}"/>
<echo/>
</then>
</if>
</sequential>
</for>
</then>
</elseif>
<elseif>
<equals arg1="@{do-what}" arg2="list"/>
<then>
<echo message=" ${path}"/>
</then>
</elseif>
</if>
</then>
</elseif>
<else>
<fail message="Couldn't find path or pathlist for '@{path-name}'" />
</else>
</if>
<!-- 1/30/2013 - New functionality to copy single application context files from <module>'s to a classpath:
example - copy applicationContext-security-web.xml from jasperserver-war/shared-config to production-tests/target/target-classes-->
<if>
<isset property="@{path-name}.files"/>
<then>
<var name="file-list" value="${@{path-name}.files}"/>
<if>
<equals arg1="@{do-what}" arg2="copy"/>
<then>
<for list="${file-list}" delimiter=", " param="file">
<sequential>
<copy file="@{file}" toDir="${target}" overwrite="true"/>
</sequential>
</for>
</then>
<elseif>
<equals arg1="@{do-what}" arg2="listfiles-relative"/>
<then>
<echo level="info" message=" ${file-list}"/>
<for list="${file-list}" delimiter=", " param="file">
<sequential>
<var name="relpath" unset="true"/>
<pathconvert dirsep="/" property="relpath">
<file file="@{file}"/>
<filtermapper>
<replacestring from="\" to="/"/>
<replaceregex pattern=".*/" replace=""/>
</filtermapper>
</pathconvert>
<echo message=" ${relpath}"/>
</sequential>
</for>
</then>
</elseif>
<elseif>
<equals arg1="@{do-what}" arg2="listfiles-full"/>
<then>
<echo level="info" message=" ${file-list}"/>
<for list="${file-list}" delimiter=", " param="file">
<sequential>
<var name="fullpath" unset="true"/>
<pathconvert dirsep="/" property="fullpath">
<file file="@{file}"/>
<filtermapper>
<replacestring from="\" to="/"/>
</filtermapper>
</pathconvert>
<echo message=" ${fullpath}"/>
</sequential>
</for>
</then>
</elseif>
<elseif>
<equals arg1="@{do-what}" arg2="grep"/>
<then>
<for list="${file-list}" delimiter=", " param="file">
<sequential>
<var name="matches" unset="true"/>
<loadresource property="matches">
<concat>
<path path="@{file}"/>
<filterchain>
<containsregex pattern="${grep}" flags="i"/>
<prefixlines prefix=" "/>
</filterchain>
</concat>
</loadresource>
<if>
<isset property="matches"/>
<then>
<echo message="@{file}:"/>
<echo message="${matches}"/>
<echo/>
</then>
</if>
</sequential>
</for>
</then>
</elseif>
<elseif>
<equals arg1="@{do-what}" arg2="list"/>
<then>
<echo message=" ${path}"/>
</then>
</elseif>
</if>
</then>
</if>
<!-- 1/30/2013 -->
</sequential>
</for>
</sequential>
</macrodef>
</project>

1049
buildomatic/bin/app-server.xml Executable file

File diff suppressed because it is too large Load Diff

814
buildomatic/bin/code-coverage.xml Executable file
View File

@ -0,0 +1,814 @@
<!--
~ Copyright © 2005 - 2018 TIBCO Software Inc.
~ http://www.jaspersoft.com.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<project xmlns:jacoco="antlib:org.jacoco.ant" name="code-coverage">
<taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
<classpath path="${js-path}/buildomatic/install_resources/extra-jars/jacocoant.jar"/>
</taskdef>
<property name="cc.result.dir" location="${js-pro-path}/code-coverage/cc-report"/>
<property name="cc.result.file" location="${cc.result.dir}/jacoco-merged.exec"/>
<target name="__cc-info">
<echo level="info">Collecting jacoco*.exec files and building a coverage report</echo>
<echo level="info">Destination : ${cc.result.file}</echo>
<echo level="info">js-path : ${js-path}</echo>
<echo level="info">js-pro-path : ${js-pro-path}</echo>
</target>
<target name="__cc-clean">
<delete dir="${cc.result.dir}"/>
</target>
<target name="__cc-collect-and-build-report" depends="__cc-info, __cc-clean, __cc-merge, __cc-report-by-module">
</target>
<target name="__cc-merge">
<!-- Merge collects all jacoco*.exec files, including ones generated by integration and production tests -->
<!-- Keep in mind, the default build-all does NOT trigger CE production-tests, i.e. coverage report will not include it -->
<jacoco:merge destfile="${cc.result.file}">
<fileset dir="${js-path}" includes="**/jacoco*.exec"/>
<fileset dir="${js-pro-path}" includes="**/jacoco*.exec"/>
</jacoco:merge>
</target>
<target name="__cc-report">
<!-- This report will be structured by java packages across all the source code -->
<jacoco:report>
<executiondata>
<file file="${cc.result.file}"/>
</executiondata>
<!-- the class files and optional source files ... -->
<structure name="JasperReports Server Pro">
<classfiles>
<fileset dir="${js-path}">
<include name="**/target/classes/com/jaspersoft/**/*.class"/>
</fileset>
<fileset dir="${js-pro-path}">
<include name="**/target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-path}">
<include name="**/src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
<fileset dir="${js-pro-path}">
<include name="**/src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</structure>
<!-- to produce reports in different formats. -->
<html destdir="${cc.result.dir}"/>
<csv destfile="${cc.result.dir}/report.csv"/>
<xml destfile="${cc.result.dir}/report.xml"/>
</jacoco:report>
<echo level="info">Coverage Report is at folder : ${cc.result.dir}</echo>
</target>
<target name="__cc-report-by-module">
<!-- This report will be structured by maven packages for CE and Pro. The grouping is manually specified -->
<!-- WARNING : If module structure changes, the grouping has to be updated!! -->
<!-- Module which don't have code are commented out below -->
<jacoco:report>
<executiondata>
<file file="${cc.result.file}"/>
</executiondata>
<!-- the class files and optional source files ... -->
<structure name="JasperReports Server Pro">
<!-- CE -->
<group name="ce:jasperserver-api/common">
<classfiles>
<fileset dir="${js-path}/jasperserver-api/common">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-path}/jasperserver-api/common">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="ce:jasperserver-api/engine">
<classfiles>
<fileset dir="${js-path}/jasperserver-api/engine">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-path}/jasperserver-api/engine">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="ce:jasperserver-api/externalAuth">
<classfiles>
<fileset dir="${js-path}/jasperserver-api/externalAuth">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-path}/jasperserver-api/externalAuth">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="ce:jasperserver-api/metadata">
<classfiles>
<fileset dir="${js-path}/jasperserver-api/metadata">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-path}/jasperserver-api/metadata">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="ce:jasperserver-api-impl/common">
<classfiles>
<fileset dir="${js-path}/jasperserver-api-impl/common">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-path}/jasperserver-api-impl/common">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="ce:jasperserver-api-impl/engine">
<classfiles>
<fileset dir="${js-path}/jasperserver-api-impl/engine">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-path}/jasperserver-api-impl/engine">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="ce:jasperserver-api-impl/externalAuth">
<classfiles>
<fileset dir="${js-path}/jasperserver-api-impl/externalAuth">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-path}/jasperserver-api-impl/externalAuth">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="ce:jasperserver-api-impl/metadata">
<classfiles>
<fileset dir="${js-path}/jasperserver-api-impl/metadata">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-path}/jasperserver-api-impl/metadata">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="ce:jasperserver-core-util">
<classfiles>
<fileset dir="${js-path}/jasperserver-core-util">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-path}/jasperserver-core-util">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<!--group name="ce:jasperserver-repository-hibernate">
<classfiles>
<fileset dir="${js-path}/jasperserver-repository-hibernate">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-path}/jasperserver-repository-hibernate">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group-->
<group name="ce:jasperserver-export-tool">
<classfiles>
<fileset dir="${js-path}/jasperserver-export-tool">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-path}/jasperserver-export-tool">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="ce:jasperserver-common-ws">
<classfiles>
<fileset dir="${js-path}/jasperserver-common-ws">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-path}/jasperserver-common-ws">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="ce:jasperserver-custom-datasources">
<classfiles>
<fileset dir="${js-path}/jasperserver-custom-datasources">
<include name="target/classes/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-path}/jasperserver-custom-datasources">
<include name="src/main/java/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="ce:jasperserver-war-jar">
<classfiles>
<fileset dir="${js-path}/jasperserver-war-jar">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-path}/jasperserver-war-jar">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<!--group name="ce:jasperserver-war">
<classfiles>
<fileset dir="${js-path}/jasperserver-war">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-path}/jasperserver-war">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group-->
<!--group name="ce:jasperserver-export-package">
<classfiles>
<fileset dir="${js-path}/jasperserver-export-package">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-path}/jasperserver-export-package">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group-->
<group name="ce:jasperserver-search">
<classfiles>
<fileset dir="${js-path}/jasperserver-search">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-path}/jasperserver-search">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="ce:jasperserver-remote">
<classfiles>
<fileset dir="${js-path}/jasperserver-remote">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-path}/jasperserver-remote">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<!-- Coverage for production tests will be included to respective modules results -->
<!--group name="ce:production-tests">
<classfiles>
<fileset dir="${js-path}/production-tests">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-path}/production-tests">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group-->
<group name="ce:jasperserver-jax-rs-rest">
<classfiles>
<fileset dir="${js-path}/jasperserver-jax-rs-rest">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-path}/jasperserver-jax-rs-rest">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="ce:jasperserver-dto">
<classfiles>
<fileset dir="${js-path}/jasperserver-dto">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-path}/jasperserver-dto">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="ce:jasperserver-util">
<classfiles>
<fileset dir="${js-path}/jasperserver-util">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-path}/jasperserver-util">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="ce:jasperserver-connectors/mongodb-connector">
<classfiles>
<fileset dir="${js-path}/jasperserver-connectors/mongodb-connector">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-path}/jasperserver-connectors/mongodb-connector">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="ce:jasperserver-ftp">
<classfiles>
<fileset dir="${js-path}/jasperserver-ftp">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-path}/jasperserver-ftp">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<!-- Pro -->
<group name="pro:common">
<classfiles>
<fileset dir="${js-pro-path}/common">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/common">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="pro:common-export">
<classfiles>
<fileset dir="${js-pro-path}/common-export">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/common-export">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="pro:mondrian-aop-woven">
<classfiles>
<fileset dir="${js-pro-path}/mondrian-aop-woven">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/mondrian-aop-woven">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="pro:jpivot-aop-woven">
<classfiles>
<fileset dir="${js-pro-path}/jpivot-aop-woven">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/jpivot-aop-woven">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="pro:license">
<classfiles>
<fileset dir="${js-pro-path}/license">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/license">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="pro:datarator">
<classfiles>
<fileset dir="${js-pro-path}/datarator">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/datarator">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="pro:datarator-el">
<classfiles>
<fileset dir="${js-pro-path}/datarator-el">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/datarator-el">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="pro:semantic-layer">
<classfiles>
<fileset dir="${js-pro-path}/semantic-layer">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/semantic-layer">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="pro:multi-tenancy">
<classfiles>
<fileset dir="${js-pro-path}/multi-tenancy">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/multi-tenancy">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="pro:analysis">
<classfiles>
<fileset dir="${js-pro-path}/analysis">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/analysis">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="pro:analysis-export">
<classfiles>
<fileset dir="${js-pro-path}/analysis-export">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/analysis-export">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="pro:adhoc-engine/adhoc-mocks">
<classfiles>
<fileset dir="${js-pro-path}/adhoc-engine/adhoc-mocks">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/adhoc-engine/adhoc-mocks">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="pro:adhoc-engine/adhoc-model">
<classfiles>
<fileset dir="${js-pro-path}/adhoc-engine/adhoc-model">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/adhoc-engine/adhoc-model">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="pro:adhoc-engine/adhoc-persistence">
<classfiles>
<fileset dir="${js-pro-path}/adhoc-engine/adhoc-persistence">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/adhoc-engine/adhoc-persistence">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="pro:gyroscope">
<classfiles>
<fileset dir="${js-pro-path}/gyroscope">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/gyroscope">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="pro:gyroscope-export">
<classfiles>
<fileset dir="${js-pro-path}/gyroscope-export">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/gyroscope-export">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="pro:report-options/api">
<classfiles>
<fileset dir="${js-pro-path}/report-options/api">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/report-options/api">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="pro:report-options/export">
<classfiles>
<fileset dir="${js-pro-path}/report-options/export">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/report-options/export">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="pro:report-options/web">
<classfiles>
<fileset dir="${js-pro-path}/report-options/web">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/report-options/web">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="pro:jasperserver-war-jar">
<classfiles>
<fileset dir="${js-pro-path}/jasperserver-war-jar">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/jasperserver-war-jar">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="pro:gyroscope-ireport-plugin">
<classfiles>
<fileset dir="${js-pro-path}/gyroscope-ireport-plugin">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/gyroscope-ireport-plugin">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<group name="pro:repository-hibernate">
<classfiles>
<fileset dir="${js-pro-path}/repository-hibernate">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/repository-hibernate">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<!--group name="pro:jasperserver-common-ws">
<classfiles>
<fileset dir="${js-pro-path}/jasperserver-common-ws">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/jasperserver-common-ws">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group-->
<group name="pro:search">
<classfiles>
<fileset dir="${js-pro-path}/search">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/search">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<!--group name="pro:jasperserver-war">
<classfiles>
<fileset dir="${js-pro-path}/jasperserver-war">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/jasperserver-war">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group-->
<!--group name="pro:export-tool">
<classfiles>
<fileset dir="${js-pro-path}/export-tool">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/export-tool">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group-->
<!-- Coverage for integration tests will be included to respective modules results -->
<!--group name="pro:integration-tests">
<classfiles>
<fileset dir="${js-pro-path}/integration-tests">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/integration-tests">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group-->
<group name="pro:jasperserver-remote">
<classfiles>
<fileset dir="${js-pro-path}/jasperserver-remote">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/jasperserver-remote">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
<!-- Coverage for production tests will be included to respective modules results -->
<!--group name="pro:production-tests">
<classfiles>
<fileset dir="${js-pro-path}/production-tests">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/production-tests">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group-->
<group name="pro:jasperserver-jax-rs-rest">
<classfiles>
<fileset dir="${js-pro-path}/jasperserver-jax-rs-rest">
<include name="target/classes/com/jaspersoft/**/*.class"/>
</fileset>
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${js-pro-path}/jasperserver-jax-rs-rest">
<include name="src/main/java/com/jaspersoft/**/*.java"/>
</fileset>
</sourcefiles>
</group>
</structure>
<!-- to produce reports in different formats. -->
<html destdir="${cc.result.dir}"/>
<csv destfile="${cc.result.dir}/report.csv"/>
<xml destfile="${cc.result.dir}/report.xml"/>
</jacoco:report>
<echo level="info">Coverage Report is at folder : ${cc.result.dir}</echo>
</target>
</project>

1
buildomatic/bin/cpappend.bat Executable file
View File

@ -0,0 +1 @@
set EXP_CLASSPATH=%EXP_CLASSPATH%;%1

75
buildomatic/bin/date.bat Executable file
View File

@ -0,0 +1,75 @@
@ECHO OFF
:: Windows NT 4 or later only
IF NOT "%OS%"=="Windows_NT" GOTO Syntax
:: No command line arguments required
IF NOT [%1]==[] GOTO Syntax
:: Keep variables local
SETLOCAL
:: Store current date in a variable in default Locale format
FOR /F "TOKENS=1* DELIMS= " %%A IN ('DATE/T') DO SET DATE=%%B
:: Store current date in a variable in YYYYMMDD format
:: Export registry settings to a temporary file
START /W REGEDIT /E %TEMP%.\_TEMP.REG "HKEY_CURRENT_USER\Control Panel\International"
:: Read the exported data
FOR /F "tokens=1* delims==" %%A IN ('TYPE %TEMP%.\_TEMP.REG ^| FIND /I "iDate"') DO SET iDate=%%B
FOR /F "tokens=1* delims==" %%A IN ('TYPE %TEMP%.\_TEMP.REG ^| FIND /I "sDate"') DO SET sDate=%%B
DEL %TEMP%.\_TEMP.REG
:: Remove quotes
SET iDate=%iDate:"=%
SET sDate=%sDate:"=%
:: Parse today's date depending on registry's date format settings
IF %iDate%==0 FOR /F "TOKENS=1-4* DELIMS=%sDate%" %%A IN ('DATE/T') DO (
SET Year=%%C
SET Month=%%A
SET Day=%%B
)
IF %iDate%==1 FOR /F "TOKENS=1-4* DELIMS=%sDate%" %%A IN ('DATE/T') DO (
SET Year=%%C
SET Month=%%B
SET Day=%%A
)
IF %iDate%==2 FOR /F "TOKENS=1-4* DELIMS=%sDate%" %%A IN ('DATE/T') DO (
SET Year=%%A
SET Month=%%B
SET Day=%%C
)
:: Remove the day of week if applicable
FOR %%A IN (%Year%) DO SET Year=%%A
FOR %%A IN (%Month%) DO SET Month=%%A
FOR %%A IN (%Day%) DO SET Day=%%A
:: Today's date in yyyy-MM-dd format
SET SortDate=%Year%-%Month%-%Day%
:: Done
ENDLOCAL & SET NOW_YYYY_MM_DD=%SortDate%
GOTO:EOF
:Syntax
ECHO.
ECHO Date utility for Windows NT 4 / 2000 / XP
ECHO Saves current date in yyyy-MM-dd format
ECHO to NOW_YYYY_MM_DD environment variable.
ECHO.
ECHO Prepared by Vladimir Tsukur on the basis of
ECHO SortDate batch script.
ECHO.
ECHO See below for original disclaimer notes:
ECHO.
ECHO -----------------------------------------------------------
ECHO SortDate, Version 3.10 for Windows NT 4 / 2000 / XP
ECHO Save date and "sorted" date in environment variables.
ECHO.
ECHO Usage: %0
ECHO.
ECHO This batch file will always display the same results,
ECHO independent of "International" settings.
ECHO.
ECHO Written by Rob van der Woude
ECHO http://www.robvanderwoude.com
ECHO Adapted for Windows XP with help from Kailash Chanduka

1412
buildomatic/bin/db-common.xml Executable file

File diff suppressed because it is too large Load Diff

1139
buildomatic/bin/dev.xml Executable file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,85 @@
@ECHO OFF
rem ///
rem /// JasperReports Server common installation script.
rem ///
rem /// Usage: do-js-install.bat {edition:(ce|pro)} {option:(<EMPTY>|minimal|drop-db|regen-config|test)}
rem ///
rem -----------------------------------------------------------------------------
rem
rem Determining argument count.
rem
SET ARGUMENT_COUNT=0
FOR %%X IN (%*) DO SET /A ARGUMENT_COUNT+=1
rem
rem Validating and setting edition.
rem
SET JS_EDITION=%1
IF NOT "%JS_EDITION%"=="ce" IF NOT "%JS_EDITION%"=="pro" ( CALL :fail "JasperReports Server edition expected as input" )
rem
rem Validating argument count.
rem
IF %ARGUMENT_COUNT% GTR 2 ( CALL :fail "Too many arguments" )
rem
rem Choosing setup parameters depending on the given arguments.
rem
SET JS_OPTION=%2
IF "%JS_OPTION%" == "" ( GOTO :default )
IF %JS_OPTION% == minimal ( GOTO :minimal )
IF %JS_OPTION% == regen-config ( GOTO :regenConfig )
IF %JS_OPTION% == drop-db ( GOTO :dropDb )
IF %JS_OPTION% == test ( GOTO :test )
IF %JS_OPTION% == help ( GOTO :help )
CALL :fail "Invalid option specified"
EXIT /b 1
:default
SET JS_ANT_TARGET=install-normal-%JS_EDITION%
SET JS_OPTION=default
GOTO :proceedToSetup
:minimal
SET JS_ANT_TARGET=install-minimal-%JS_EDITION%
GOTO :proceedToSetup
:regenConfig
SET JS_ANT_TARGET=refresh-config
GOTO :proceedToSetup
:dropDb
SET JS_ANT_TARGET=drop-js-db
GOTO :proceedToSetup
:test
SET JS_ANT_TARGET=pre-install-test-%JS_EDITION%
GOTO :proceedToSetup
:help
TYPE bin\install.help
GOTO :end
rem
rem Calling core setup script with determined parameters.
rem
:proceedToSetup
CALL "%~dp0"do-js-setup.bat install %JS_EDITION% %JS_OPTION% %JS_ANT_TARGET%
GOTO :end
rem -----------------------------------------------------------------------------
:showUsage
ECHO Please enter one of the following options: 'EMPTY', minimal, regen-config, drop-db, test
GOTO:EOF
:fail
IF NOT "%~1" == "" ( ECHO %~1 )
CALL :showUsage
EXIT /b 1
:end
EXIT /b 0

View File

@ -0,0 +1,77 @@
#!/bin/bash
#
# JasperReports Server common installation script.
#
# Usage: do-js-install.sh {edition:(ce|pro)} {option:(<EMPTY>|minimal|drop-db|regen-config|test)}
#
# -----------------------------------------------------------------------------
fail() {
if [[ -n $1 ]]; then
echo $1
fi
showUsage
exit 1;
}
showUsage() {
echo "Please enter one of the following options: <EMPTY>, minimal, regen-config, drop-db, test"
}
# -----------------------------------------------------------------------------
#
# Validating and setting edition.
#
if [[ $# -lt 1 || "$1" != "ce" && "$1" != "pro" ]]; then
fail "JasperReports Server edition (ce|pro) expected as input"
fi
JS_EDITION=$1
#
# Choosing setup parameters depending on the given arguments.
#
if [ $# -gt 2 ]; then
fail "Too many arguments!"
else
JS_OPTION=$2
if [ "$JS_OPTION" == "" ]; then
JS_ANT_TARGET=install-normal-$JS_EDITION
JS_OPTION=default
else
case "$JS_OPTION" in
minimal)
JS_ANT_TARGET=install-minimal-$JS_EDITION
;;
regen-config)
JS_ANT_TARGET=refresh-config
;;
drop-db)
JS_ANT_TARGET=drop-js-db
;;
test)
JS_ANT_TARGET=pre-install-test-$JS_EDITION
;;
help)
cat ./bin/install.help
exit 0
;;
*)
fail "Invalid option specified"
;;
esac
fi
fi
#
# Calling core setup script with determined parameters.
#
./bin/do-js-setup.sh install $JS_EDITION $JS_OPTION $JS_ANT_TARGET

151
buildomatic/bin/do-js-setup.bat Executable file
View File

@ -0,0 +1,151 @@
@ECHO OFF
rem
rem JasperReports Server common installation and upgrade script.
rem
rem Usage: do-js-setup.bat (install|upgrade){setup mode} (ce|pro){edition} {script option} {Ant target} [Ant options]
rem
rem -----------------------------------------------------------------------------
rem
rem Determining argument count.
rem
SET ARGUMENT_COUNT=0
FOR %%X IN (%*) DO SET /A ARGUMENT_COUNT+=1
rem
rem Validating arguments and setting internal variables.
rem
IF %ARGUMENT_COUNT% LSS 4 (
CALL :fail "Invalid argument count"
EXIT /b 1
)
IF %ARGUMENT_COUNT% GTR 8 (
CALL :fail "Invalid argument count"
EXIT /b 1
)
SET JS_SETUP_MODE=%1
IF NOT "%JS_SETUP_MODE%"=="install" IF NOT "%JS_SETUP_MODE%"=="upgrade" (
CALL :fail "Setup mode expected as input"
EXIT /b 1
)
SET JS_EDITION=%2
IF NOT "%JS_EDITION%"=="ce" IF NOT "%JS_EDITION%"=="pro" (
CALL :fail "JasperReports Server edition expected as input"
EXIT /b 1
)
SET JS_OPTION=%3
SET JS_ANT_TARGET=%4
SETLOCAL ENABLEDELAYEDEXPANSION
IF "%JS_SETUP_MODE%"=="upgrade" (
SET _JS_ANT_OPTIONS=-Dstrategy=%5
IF "%5"=="standard" IF NOT ""%6""=="""" (
SET _JS_ANT_OPTIONS=!_JS_ANT_OPTIONS! -DimportFile=%6
FOR %%X IN (%*) DO (
IF "%%X"=="include-access-events" ( SET _IMPORT_ARGS=--%%X !_IMPORT_ARGS!)
IF "%%X"=="include-server-settings" ( SET _IMPORT_ARGS=--%%X !_IMPORT_ARGS!)
)
IF NOT "!_IMPORT_ARGS!"=="" (
SET _JS_ANT_OPTIONS=!_JS_ANT_OPTIONS! -DimportArgs="!_IMPORT_ARGS!"
)
)
)
ENDLOCAL & SET JS_ANT_OPTIONS=%_JS_ANT_OPTIONS% -Djs.setup.mode=%JS_SETUP_MODE%
rem
rem Initializing time variable.
rem
CALL "%~dp0/date.bat"
CALL "%~dp0/time.bat"
SET JS_CURRENT_TIME=%NOW_YYYY_MM_DD%_%NOW_HH_MM%
rem
rem Defining log file name, creating log directory if it doesn't exist.
rem
SET /a JS_LOG_FILE_PREFIX=%RANDOM%+10000
SET JS_LOG_FILE=logs/js-%JS_SETUP_MODE%-%JS_EDITION%_%JS_CURRENT_TIME%_%JS_LOG_FILE_PREFIX%.log
IF NOT EXIST logs (
md logs
)
ECHO Writing to log file: %JS_LOG_FILE%
rem
rem Printing entry information.
rem
CALL :log
CALL :log "Running JasperReports Server %JS_SETUP_MODE% script at %JS_CURRENT_TIME%"
CALL :log
rem
rem Checking JAVA_HOME.
rem
if "%JAVA_HOME%"=="" (
CALL :log "WARNING: JAVA_HOME environment variable not found"
)
rem
rem Setting up Ant.
rem
CALL :log "[%JS_OPTION%]"
:initializeAntEnvironment
IF EXIST "..\apache-ant" ( GOTO :useBundledAnt )
CALL :log "Bundled Ant not found. Using existing Ant."
SET ANT_RUN=ant
GOTO :endAntSetup
:useBundledAnt
SET ANT_HOME=..\apache-ant
SET ANT_RUN=%ANT_HOME%\bin\ant
SET PATH=%PATH%;%ANT_HOME%\bin
:endAntSetup
rem
rem Running Ant.
rem
:runAnt
IF "%JS_ANT_TARGET%" == "" ( GOTO :antTargetNotSpecified )
CALL :log "Running %JS_ANT_TARGET% Ant task"
CALL :log
CALL %ANT_RUN% -nouserlib -f build.xml %JS_ANT_TARGET% %JS_ANT_OPTIONS% 2>&1 | "%~dp0/wtee" -a %JS_LOG_FILE%
IF ERRORLEVEL 1 ( GOTO :runAntFailed )
CALL :log "Checking Ant return code: OK"
CALL :log
GOTO :end
rem -----------------------------------------------------------------------------
rem
rem Console + file logging subroutine.
rem
:log
SET JS_LOG_MESSAGE=
IF "%~1" == "" SET JS_LOG_MESSAGE=----------------------------------------------------------------------
IF NOT "%~1" == "" SET JS_LOG_MESSAGE=%~1
ECHO %JS_LOG_MESSAGE% | "%~dp0/wtee" -a %JS_LOG_FILE%
GOTO:EOF
:showUsage
ECHO Usage: ./do-js-setup.bat {setup mode} {edition} {script option} {Ant target} {Ant options}
GOTO:EOF
:fail
IF NOT "%~1" == "" ( ECHO %~1 )
CALL :showUsage
EXIT /b 1
:runAntFailed
CALL :log "Checking Ant return code: BAD (1)"
EXIT /b 1
:end
EXIT /b 0

150
buildomatic/bin/do-js-setup.sh Executable file
View File

@ -0,0 +1,150 @@
#!/bin/bash
#
# JasperReports Server common installation and upgrade script.
#
# Usage: do-js-setup.sh (install|upgrade){setup mode} (ce|pro){edition} {script option} {Ant target} [Ant options]
#
# -----------------------------------------------------------------------------
fail() {
if [[ -n $1 ]]; then
echo $1
fi
showUsage
exit 1;
}
showUsage() {
echo "Usage: ./do-js-setup.sh (install|upgrade){setup mode} (ce|pro){edition} {script option} {Ant target} [Ant options]"
}
#
# Selects bundled or existing Ant.
#
initializeAntEnvironment() {
if test -d ../apache-ant
then
ANT_HOME=../apache-ant
export ANT_HOME
ANT_RUN=$ANT_HOME/bin/ant
export ANT_RUN
PATH=$ANT_HOME/bin:$PATH
export PATH
else
log "Bundled Ant not found. Using existing Ant."
ANT_RUN=ant
fi
}
#
# Runs Ant.
#
runAnt() {
targetName=$1
shift
options=$@
if [ "$targetName" != "" ]; then
log "Running $targetName Ant task."
log
$ANT_RUN --noconfig -nouserlib -f build.xml $targetName $options 2>&1 | tee -a $JS_LOG_FILE
antReturnCode=$?
antReturnCodeMessage="Checking Ant return code:"
if [ $antReturnCode -ne 0 ]; then
log "$antReturnCodeMessage BAD ($antReturnCode)"
exit 1;
else
log "$antReturnCodeMessage OK"
fi
else
log "Name of Ant target not specified."
exit 1;
fi
}
#
# Console + file logging subroutine.
#
log() {
if [ "$1" == "" ]; then
JS_OUT_STR="----------------------------------------------------------------------"
else
JS_OUT_STR=$1
fi
echo $JS_OUT_STR | tee -a $JS_LOG_FILE
}
# -----------------------------------------------------------------------------
#
# Validating arguments and setting internal variables.
#
if [[ $# -lt 4 || $# -gt 8 ]]; then
fail "Invalid argument count"
fi
JS_SETUP_MODE=$1
if [[ "$JS_SETUP_MODE" != "install" && "$JS_SETUP_MODE" != "upgrade" ]]; then
fail "Setup mode (install|upgrade) expected as input"
fi
JS_EDITION=$2
if [[ "$JS_EDITION" != "ce" && "$JS_EDITION" != "pro" ]]; then
fail "JasperReports Server edition (ce|pro) expected as input"
fi
JS_OPTION=$3
JS_ANT_TARGET=$4
JS_ANT_OPTIONS="$5 $6 $7 $8 -Djs.setup.mode=$JS_SETUP_MODE -Djava.net.preferIPv4Stack=true"
#
# Initializing time variable.
#
JS_CURRENT_TIME=`date +%Y-%m-%d_%H-%M`
#
# Defining log file name, creating log directory if it doesn't exist.
#
JS_LOG_FILE_SUFFIX=$(($RANDOM + 10000))
JS_LOG_FILE=logs/js-$JS_SETUP_MODE-$JS_EDITION\_$JS_CURRENT_TIME-$JS_LOG_FILE_SUFFIX.log
if [ ! -d logs ]; then
mkdir -p logs
fi
echo "Writing to log file: $JS_LOG_FILE"
#
# Printing entry information.
#
log
log "Running JasperReports Server $JS_SETUP_MODE script at $JS_CURRENT_TIME"
log
export ANT_OPTS="$ANT_OPTS -Dnet.sf.ehcache.disabled=true -Xms512m -Xmx2048m"
log
log "Using ANT_OPTS: $ANT_OPTS"
log
#
# Checking JAVA_HOME.
#
if [ "$JAVA_HOME" == "" ]; then
log "WARNING: JAVA_HOME environment variable not found"
fi
#
# Running Ant.
#
log "[$JS_OPTION]"
initializeAntEnvironment
runAnt $JS_ANT_TARGET $JS_ANT_OPTIONS
log

185
buildomatic/bin/do-js-upgrade.bat Executable file
View File

@ -0,0 +1,185 @@
@ECHO OFF
rem ///
rem /// JasperReports Server common upgrade script.
rem ///
rem /// Usage: do-js-upgrade.bat {edition:(ce|pro)} {strategy:(standard|inDatabase)} {option:(<EMPTY>|with-samples|regen-config|test)} {option(for standard upgrade only):import file(<path-to-file-and-filename>)}
rem /// If <path-to-file-and-filename> contains spaces then need to enclose <path-to-file-and-filename> to double quotes.
rem ///
rem -----------------------------------------------------------------------------
rem
rem Determining argument count.
rem
SET ARGUMENT_COUNT=0
FOR %%X IN (%*) DO SET /A ARGUMENT_COUNT+=1
rem
rem Validating and setting edition.
rem
SET JS_EDITION=%1
IF NOT "%JS_EDITION%"=="ce" IF NOT "%JS_EDITION%"=="pro" (
CALL :fail "JasperReports Server edition expected as input"
EXIT /b 1
)
rem
rem Validating and setting upgrade strategy.
rem
SET JS_UPGRADE_STRATEGY=%2
IF NOT "%JS_UPGRADE_STRATEGY%"=="standard" IF NOT "%JS_UPGRADE_STRATEGY%"=="inDatabase" (
CALL :fail "JasperReports Server upgrade strategy expected as input"
EXIT /b 1
)
rem
rem Validating argument count.
rem
IF "%JS_UPGRADE_STRATEGY%"=="standard" (
IF %ARGUMENT_COUNT% GTR 5 (
CALL :fail "Too many arguments"
EXIT /b 1
)
IF %ARGUMENT_COUNT% LSS 3 (
CALL :fail "Invalid argument count"
EXIT /b 1
)
)
IF "%JS_UPGRADE_STRATEGY%"=="inDatabase" IF %ARGUMENT_COUNT% GTR 3 (
CALL :fail "Too many arguments"
EXIT /b 1
)
SET JS_OPTION=%~3
SET IMPORT_FILE=%~4
SET IS_INCLUDE_ACCESS_EVENTS=FALSE
SET IS_INCLUDE_SERVER_SETTINGS=FALSE
IF ""%JS_UPGRADE_STRATEGY%""==""standard"" (
SET IS_INCLUDE_SERVER_SETTINGS=TRUE
IF ""%3""==""include-access-events"" (
SET IS_INCLUDE_ACCESS_EVENTS=TRUE
SET JS_OPTION=%~4
SET IMPORT_FILE=%~5
)
IF ""%4""==""include-access-events"" (
SET IS_INCLUDE_ACCESS_EVENTS=TRUE
SET JS_OPTION=%~3
SET IMPORT_FILE=%~5
)
IF ""%5""==""include-access-events"" (
SET IS_INCLUDE_ACCESS_EVENTS=TRUE
SET JS_OPTION=%~3
SET IMPORT_FILE=%~4
)
)
SET IS_INVALID_JS_OPTION_VALUE=FALSE
IF NOT ""%JS_OPTION%""==""with-samples"" IF NOT ""%JS_OPTION%""==""regen-config"" IF NOT ""%JS_OPTION%""==""test"" IF NOT ""%JS_OPTION%""==""help"" (
SET IS_INVALID_JS_OPTION_VALUE=TRUE
)
SET IS_INVALID_PARAM_VALUE=FALSE
IF NOT ""%IMPORT_FILE%""==""with-samples"" IF NOT ""%IMPORT_FILE%""==""regen-config"" IF NOT ""%IMPORT_FILE%""==""test"" IF NOT ""%IMPORT_FILE%""==""help"" (
SET IS_INVALID_PARAM_VALUE=TRUE
)
SET IMPORT_FILE2=%IMPORT_FILE%
IF "%JS_UPGRADE_STRATEGY%"=="standard" (
IF ""%IMPORT_FILE%""=="""" (
IF "%IS_INVALID_JS_OPTION_VALUE%"=="TRUE" (
SET IMPORT_FILE=%JS_OPTION%
SET JS_OPTION=
) ELSE (
IF NOT ""%JS_OPTION%""==""regen-config"" IF NOT ""%JS_OPTION%""==""test"" IF NOT ""%JS_OPTION%""==""help"" (
CALL :fail "JasperReports Server import file[path-to-file-and-filename] expected as input"
EXIT /b 1
)
)
) ELSE (
IF "%IS_INVALID_JS_OPTION_VALUE%"=="TRUE" (
IF "%IS_INVALID_PARAM_VALUE%"=="TRUE" (
CALL :fail "Invalid option specified"
EXIT /b 1
) ELSE (
SET IMPORT_FILE=%JS_OPTION%
SET JS_OPTION=%IMPORT_FILE2%
)
)
)
)
IF ""%JS_UPGRADE_STRATEGY%""==""standard"" IF NOT ""%JS_OPTION%""==""regen-config"" IF NOT ""%JS_OPTION%""==""test"" IF NOT ""%JS_OPTION%""==""help"" IF "%IMPORT_FILE%"=="" (
CALL :fail "JasperReports Server import file[path-to-file-and-filename] expected as input"
EXIT /b 1
)
IF ""%JS_OPTION%""=="""" ( GOTO :default )
IF ""%JS_OPTION%""==""with-samples"" ( GOTO :withSamples )
IF ""%JS_OPTION%""==""regen-config"" ( GOTO :regenConfig )
IF ""%JS_OPTION%""==""test"" ( GOTO :test )
IF ""%JS_OPTION%""==""help"" ( GOTO :help )
CALL :fail "Invalid option specified"
EXIT /b 1
:default
SET JS_ANT_TARGET=upgrade-minimal-%JS_EDITION%
SET JS_OPTION=default
GOTO :proceedToSetup
:withSamples
SET JS_ANT_TARGET=upgrade-normal-%JS_EDITION%
GOTO :proceedToSetup
:regenConfig
SET JS_ANT_TARGET=refresh-config
GOTO :proceedToSetup
:test
SET JS_ANT_TARGET=pre-upgrade-test-%JS_EDITION%
GOTO :proceedToSetup
:help
IF "%JS_UPGRADE_STRATEGY%"=="standard" ( TYPE bin\upgrade-newdb.help )
IF "%JS_UPGRADE_STRATEGY%"=="inDatabase" ( TYPE bin\upgrade-samedb.help )
GOTO :end
rem
rem Calling core setup script with determined parameters.
rem
:proceedToSetup
SETLOCAL ENABLEDELAYEDEXPANSION
SET _JS_ANT_OPTIONS=
IF "%IMPORT_FILE%"=="" (
SET _JS_ANT_OPTIONS=!JS_UPGRADE_STRATEGY!
) ELSE (
SET _JS_ANT_OPTIONS=!JS_UPGRADE_STRATEGY! "!IMPORT_FILE!"
)
IF "%JS_UPGRADE_STRATEGY%"=="standard" (
IF "%IS_INCLUDE_ACCESS_EVENTS%"=="TRUE" (
SET _JS_ANT_OPTIONS=!_JS_ANT_OPTIONS! include-access-events
)
IF "%IS_INCLUDE_SERVER_SETTINGS%"=="TRUE" (
SET _JS_ANT_OPTIONS=!_JS_ANT_OPTIONS! include-server-settings
)
)
ENDLOCAL & SET JS_ANT_OPTIONS=%_JS_ANT_OPTIONS%
CALL "%~dp0"do-js-setup.bat upgrade %JS_EDITION% %JS_OPTION% %JS_ANT_TARGET% %JS_ANT_OPTIONS%
GOTO :end
rem -----------------------------------------------------------------------------
:showUsage
ECHO Please enter one of the following options: 'EMPTY', with-samples, regen-config, test
IF "%JS_UPGRADE_STRATEGY%"=="standard" (
ECHO "Also enter import file option(<path-to-file-and-filename>). If <path-to-file-and-filename> contains spaces then need to enclose <path-to-file-and-filename> to double quotes."
)
GOTO:EOF
:fail
IF NOT "%~1" == "" ( ECHO %~1 )
CALL :showUsage
EXIT /b 1
:end
EXIT /b 0

160
buildomatic/bin/do-js-upgrade.sh Executable file
View File

@ -0,0 +1,160 @@
#!/bin/bash
#
# JasperReports Server common upgrade script.
#
# Usage: do-js-upgrade.sh {edition:(ce|pro)} {strategy:(standard|inDatabase)} {option:(<EMPTY>|with-samples|regen-config|test)} {option(for standard upgrade only):import file(-DimportFile=<path-to-file-and-filename>)}
#
# -----------------------------------------------------------------------------
fail() {
if [[ -n $1 ]]; then
echo $1
fi
showUsage
exit 1;
}
showUsage() {
echo "Please enter one of the following options: <EMPTY>, with-samples, regen-config, test"
}
# -----------------------------------------------------------------------------
#
# Validating and setting edition.
#
if [[ $# -lt 1 || "$1" != "ce" && "$1" != "pro" ]]; then
fail "JasperReports Server edition (ce|pro) expected as input"
fi
JS_EDITION=$1
#
# Validating and setting upgrade strategy.
#
if [[ $# -lt 2 || "$2" != "standard" && "$2" != "inDatabase" ]]; then
fail "JasperReports Server upgrade strategy (standard|inDatabase) expected as input"
fi
JS_UPGRADE_STRATEGY=$2
#
# Choosing setup parameters depending on the given arguments.
#
if [[ "$JS_UPGRADE_STRATEGY" == "standard" && $# -gt 5 || "$JS_UPGRADE_STRATEGY" == "inDatabase" && $# -gt 3 ]]; then
fail "Too many arguments!"
else
JS_OPTION=$3
IMPORT_FILE=$4
IS_INCLUDE_SERVER_SETTINGS=false
if [[ "$JS_UPGRADE_STRATEGY" == "standard" ]]; then
IS_INCLUDE_ACCESS_EVENTS=false
IS_INCLUDE_SERVER_SETTINGS=true
if [[ "$3" == "include-access-events" ]]; then
IS_INCLUDE_ACCESS_EVENTS=true
JS_OPTION=$4
IMPORT_FILE=$5
elif [[ "$4" == "include-access-events" ]]; then
IS_INCLUDE_ACCESS_EVENTS=true
JS_OPTION=$3
IMPORT_FILE=$5
elif [[ "$5" == "include-access-events" ]]; then
IS_INCLUDE_ACCESS_EVENTS=true
JS_OPTION=$3
IMPORT_FILE=$4
fi
fi
IS_INVALID_JS_OPTION_VALUE=false
if [[ "$JS_OPTION" != "with-samples" && "$JS_OPTION" != "regen-config" && "$JS_OPTION" != "test" && "$JS_OPTION" != "help" ]]; then
IS_INVALID_JS_OPTION_VALUE=true
fi
IS_INVALID_PARAM_VALUE=false
if [[ "$IMPORT_FILE" != "with-samples" && "$IMPORT_FILE" != "regen-config" && "$IMPORT_FILE" != "test" && "$IMPORT_FILE" != "help" ]]; then
IS_INVALID_PARAM_VALUE=true
fi
if [[ "$JS_UPGRADE_STRATEGY" == "standard" ]]; then
if [[ "$IMPORT_FILE" == "" ]]; then
if [[ "$IS_INVALID_JS_OPTION_VALUE" == "true" ]]; then
IMPORT_FILE=$JS_OPTION
JS_OPTION=""
elif [[ "$JS_OPTION" != "regen-config" && "$JS_OPTION" != "test" && "$JS_OPTION" != "help" ]]; then
fail "JasperReports Server import file(<path-to-file-and-filename>) expected as input"
fi
else
if [[ "$IS_INVALID_JS_OPTION_VALUE" == "true" ]]; then
if [[ "$IS_INVALID_PARAM_VALUE" == "true" ]]; then
fail "Invalid option specified"
else
TEMP_IMPORT_FILE=$IMPORT_FILE
IMPORT_FILE=$JS_OPTION
JS_OPTION=$TEMP_IMPORT_FILE
fi
fi
fi
fi
if [[ "$JS_UPGRADE_STRATEGY" == "standard" && "$JS_OPTION" != "regen-config" && "$JS_OPTION" != "test" && "$JS_OPTION" != "help" && "$IMPORT_FILE" == "" ]]; then
fail "JasperReports Server import file(<path-to-file-and-filename>) expected as input"
fi
if [ "$JS_OPTION" == "" ]; then
JS_ANT_TARGET=upgrade-minimal-$JS_EDITION
JS_OPTION=default
else
case "$JS_OPTION" in
with-samples)
JS_ANT_TARGET=upgrade-normal-$JS_EDITION
;;
regen-config)
JS_ANT_TARGET=refresh-config
;;
test)
JS_ANT_TARGET=pre-upgrade-test-$JS_EDITION
;;
help)
if [[ "$JS_UPGRADE_STRATEGY" == "standard" ]]; then
cat ./bin/upgrade-newdb.help
elif [[ "$JS_UPGRADE_STRATEGY" == "inDatabase" ]]; then
cat ./bin/upgrade-samedb.help
fi
exit 0
;;
*)
fail "Invalid option specified"
;;
esac
fi
fi
JS_ANT_OPTIONS="-Djava.net.preferIPv4Stack=true"
if [ "$IMPORT_FILE" == "" ]; then
JS_ANT_OPTIONS="$JS_ANT_OPTIONS -Dstrategy=$JS_UPGRADE_STRATEGY"
else
JS_ANT_OPTIONS="$JS_ANT_OPTIONS -Dstrategy=$JS_UPGRADE_STRATEGY -DimportFile=$IMPORT_FILE"
fi
if [[ "$JS_UPGRADE_STRATEGY" == "standard" && "$IS_INCLUDE_ACCESS_EVENTS" == "true" ]]; then
JS_IMPORT_ARGS="--include-access-events"
fi
if [ "$IS_INCLUDE_SERVER_SETTINGS" == "true" ]; then
if [ "$JS_IMPORT_ARGS" != "" ]; then
JS_IMPORT_ARGS="--include-server-settings $JS_IMPORT_ARGS"
else
JS_IMPORT_ARGS="--include-server-settings"
fi
fi
#
# Calling core setup script with determined parameters.
#
if [ "$JS_IMPORT_ARGS" != "" ]; then
./bin/do-js-setup.sh upgrade $JS_EDITION $JS_OPTION $JS_ANT_TARGET $JS_ANT_OPTIONS "-DimportArgs=\"$JS_IMPORT_ARGS\""
else
./bin/do-js-setup.sh upgrade $JS_EDITION $JS_OPTION $JS_ANT_TARGET $JS_ANT_OPTIONS
fi

642
buildomatic/bin/import-export.xml Executable file
View File

@ -0,0 +1,642 @@
<!--
~ Copyright © 2005 - 2018 TIBCO Software Inc.
~ http://www.jaspersoft.com.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<project name="export-import">
<!-- ======================================================================= -->
<!-- -->
<!-- import-export helper macros -->
<!-- -->
<!-- ======================================================================= -->
<macrodef name="check-import-export-file-property"
description="check that importFile or exportFile is defined on import targets">
<attribute name="type"/> <!-- import or export -->
<attribute name="edition"/> <!-- ce or pro -->
<attribute name="example"/> <!-- example command used in error message -->
<sequential>
<var name="propName" value="@{type}File"/>
<if>
<not>
<isset property="${propName}"/>
</not>
<then>
<echo>
The property -D${propName} needs to be specified on the command line
For instance: @{example}
For options try: js-ant @{type}-help-@{edition}
</echo>
<fail message="Missing file argument for import/export"/>
</then>
</if>
</sequential>
</macrodef>
<macrodef name="run-import-export"
description="import or export of repository data">
<attribute name="type"/>
<attribute name="archive"/>
<attribute name="edition"/> <!-- ce or pro -->
<attribute name="checkDBMSConnection"/> <!-- true or false -->
<attribute name="useConsoleInput" default="false"/> <!-- true or false -->
<element name="args" implicit="yes" optional="true"/>
<sequential>
<!-- set config dir based on edition, then make sure it's there -->
<if>
<equals arg1="@{edition}" arg2="ce" />
<then>
<var name="importExportConfig" value="${importExportConfigCe}"/>
</then>
<elseif>
<equals arg1="@{edition}" arg2="pro" />
<then>
<var name="importExportConfig" value="${importExportConfigPro}"/>
</then>
</elseif>
<else>
<fail>Invalid value for edition: @{edition}</fail>
</else>
</if>
<if>
<not>
<available file="${importExportConfig}"/>
</not>
<then>
<echo>
Error: Directory ${importExportConfig} was not found
Try running "js-ant assemble-export-files-@{edition}"
Make sure you have compiled the jasperserver source code.
</echo>
<fail message="Missing import-export config directory"/>
</then>
</if>
<!-- determine whether we are using dir or zip -->
<if>
<matches string="@{archive}" pattern="zip$"/>
<then>
<var name="archiveType" value="zip"/>
</then>
<else>
<var name="archiveType" value="dir"/>
</else>
</if>
<!-- construct parts of command line -->
<if>
<equals arg1="@{type}" arg2="import" />
<then>
<var name="class" value="com.jaspersoft.jasperserver.export.ImportCommand"/>
<var name="archiveArg" value="--input-${archiveType}=@{archive}"/>
</then>
<else>
<var name="class" value="com.jaspersoft.jasperserver.export.ExportCommand"/>
<var name="archiveArg" value="--output-${archiveType}=@{archive}"/>
</else>
</if>
<echo> </echo>
<echo>Property values (in install.xml): </echo>
<echo> archiveArg = ${archiveArg}</echo>
<echo> dbType = ${dbType}</echo>
<echo> jdbcJar = ${jdbcJar}</echo>
<echo> currentConf = ${currentConf}</echo>
<echo> importExportConfig = ${importExportConfig}</echo>
<echo> </echo>
<!-- todo: fixed bug 15479 - postgresql fails on export on scheduled report -->
<!-- todo: better fix would be to pull in the js.quartz.properties file from the -->
<!-- buildomatic/build_conf dir in the run-import-export macrodef -->
<!-- tweaking conf_source/import_export_config*/js.quartz.properties for quartz delegate if postgresql -->
<if>
<equals arg1="${dbType}" arg2="postgresql" />
<then>
<replace file="${importExportConfig}/js.quartz.properties"
token="StdJDBCDelegate" value="PostgreSQLDelegate"/>
</then>
<else>
<replace file="${importExportConfig}/js.quartz.properties"
token="PostgreSQLDelegate" value="StdJDBCDelegate"/>
</else>
</if>
<set-import-export-lib-dir importExportConfig="${importExportConfig}"/>
<if>
<equals arg1="@{checkDBMSConnection}" arg2="true" />
<then>
<validateDB systemName="js" phase="import-export-test" failOnDBNotExists="true"/>
</then>
</if>
<if>
<equals arg1="@{useConsoleInput}" arg2="true" />
<then>
<java classname="${class}" fork="true" failonerror="true">
<arg value="--@{type}"/>
<arg value="${archiveArg}"/>
<args/>
<!-- add arg that tells oracle JDBC driver to use utf-8 types; won't hurt anyone else -->
<jvmarg value="-Doracle.jdbc.defaultNChar=true"/>
<!-- add this to handle properly import catalogs with utf-8 names -->
<jvmarg value="-Dfile.encoding=UTF-8"/>
<!-- disable ehcache -->
<jvmarg value="-Dnet.sf.ehcache.disabled=true"/>
<!-- set this var to avoid certain network exceptions in OS X -->
<jvmarg value="-Djava.net.preferIPv4Stack=true"/>
<jvmarg value="-Xms512m"/>
<jvmarg value="-Xmx2048m"/>
<!-- Uncomment to debug remotely -->
<!--<jvmarg value="-Xdebug"/>
<jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9009"/>-->
<classpath>
<!--
TODO
we should put currentConf first so it can pick up the files generated based on
db settings, etc., but if you do that, beans don't get recognized because
the Spring context loader uses a pattern of "applicationContext*.xml", which
is sensitive to the order of the classpath.
We should use one of the args such as -configResources to pass a pattern
that is more explicit for Spring, doing something like this:
-configResources=file:blah/import-export/dir/applicationContext*.xml
-->
<pathelement location="${importExportConfig}"/>
<fileset dir="${importExportLibDir}" includes="*.jar"/>
<fileset dir="${currentDbJDBCDir}" includes="${jdbcJar}"/>
<pathelement location="${currentConf}"/>
</classpath>
</java>
</then>
<else>
<!--
JVM forked by Ant tries to read from input stream by default.
If one of the <input>s with be executed after this call then
user will be prompted for input at least one more time
(pending input for forked JVM).
inputstring="" is added explicitly to ensure that input will not be captured
and <input>s will work as expected.
TODO This is a known bug https://issues.apache.org/bugzilla/show_bug.cgi?id=49119. Fixed in Ant 1.8.2
-->
<java classname="${class}" fork="true" failonerror="true" inputstring="">
<arg value="--@{type}"/>
<arg value="${archiveArg}"/>
<args/>
<!-- add arg that tells oracle JDBC driver to use utf-8 types; won't hurt anyone else -->
<jvmarg value="-Doracle.jdbc.defaultNChar=true"/>
<!-- add this to handle properly import catalogs with utf-8 names -->
<jvmarg value="-Dfile.encoding=UTF-8"/>
<!-- disable ehcache -->
<jvmarg value="-Dnet.sf.ehcache.disabled=true"/>
<!-- set this var to avoid certain network exceptions in OS X -->
<jvmarg value="-Djava.net.preferIPv4Stack=true"/>
<jvmarg value="-Xms512m"/>
<jvmarg value="-Xmx2048m"/>
<!-- Uncomment to debug remotely -->
<!--<jvmarg value="-Xdebug"/>
<jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9009"/>-->
<classpath>
<!--
TODO
we should put currentConf first so it can pick up the files generated based on
db settings, etc., but if you do that, beans don't get recognized because
the Spring context loader uses a pattern of "applicationContext*.xml", which
is sensitive to the order of the classpath.
We should use one of the args such as -configResources to pass a pattern
that is more explicit for Spring, doing something like this:
-configResources=file:blah/import-export/dir/applicationContext*.xml
-->
<pathelement location="${importExportConfig}"/>
<fileset dir="${importExportLibDir}" includes="*.jar"/>
<fileset dir="${currentDbJDBCDir}" includes="${jdbcJar}"/>
<pathelement location="${currentConf}"/>
</classpath>
</java>
</else>
</if>
</sequential>
</macrodef>
<!-- ======================================================================================= -->
<!-- set-import-export-lib-dir -->
<!-- For import-export operation set ${importExportLibDir} in order to find the required -->
<!-- jar files. -->
<!-- 1) if "../scripts/lib" exists then we are in an install context. Default to this -->
<!-- setting. (ie an end user installing from the WAR File Dist zip) -->
<!-- 2) if no scripts/lib then use the jars put in place by buildomatic -->
<!-- (buildomatia/conf_source/import_export_config_<ce/pro>) -->
<!-- ======================================================================================= -->
<macrodef name="set-import-export-lib-dir">
<attribute name="importExportConfig"/>
<sequential>
<if>
<available file="${basedir}/../scripts/lib"/>
<then>
<var name="importExportLibDir" value="${basedir}/../scripts/lib"/>
</then>
<else>
<var name="importExportLibDir" value="@{importExportConfig}/lib"/>
</else>
</if>
</sequential>
</macrodef>
<!-- ======================================================================= -->
<!-- -->
<!-- import-export targets -->
<!-- -->
<!-- ======================================================================= -->
<target name="import"
description="do repo import from archive. specify file with -DimportFile">
<check-import-export-file-property
type="import"
edition="pro"
example="js-ant import -DimportFile=js-catalog.zip"/>
<if>
<isset property="importArgs"/>
<then>
<run-import-export type="import" archive="${importFile}"
edition="pro" checkDBMSConnection="true" useConsoleInput="true">
<arg line="${importArgs}" />
</run-import-export>
</then>
<else>
<run-import-export type="import" archive="${importFile}" edition="pro" checkDBMSConnection="true"/>
</else>
</if>
</target>
<target name="import-ce"
description="do repo import from archive. specify file with -DimportFile">
<check-import-export-file-property
type="import"
edition="ce"
example="js-ant import-ce -DimportFile=js-catalog.zip"/>
<if>
<isset property="importArgs"/>
<then>
<run-import-export type="import" archive="${importFile}" edition="ce" checkDBMSConnection="true">
<arg line="${importArgs}" />
</run-import-export>
</then>
<else>
<run-import-export type="import" archive="${importFile}" edition="ce" checkDBMSConnection="true"/>
</else>
</if>
</target>
<!-- for pro there is a minimal file per db -->
<target name="import-minimal-pro"
description="do import of minimal resources">
<run-import-export type="import" archive="${exportDir}/js-catalog-${dbType}-minimal-pro.zip" edition="pro" checkDBMSConnection="true"/>
</target>
<target name="import-minimal-ce"
description="do import of minimal resources">
<run-import-export type="import" archive="${exportDir}/js-catalog-${dbType}-minimal-ce.zip" edition="ce" checkDBMSConnection="true"/>
</target>
<target name="import-minimal-for-upgrade-pro"
description="do import of minimal resources in upgrade context for Pro">
<run-import-export type="import" archive="${exportDir}/js-catalog-${dbType}-minimal-pro.zip" edition="pro" checkDBMSConnection="true">
<arg value="--update" />
<arg value="--skip-user-update" />
</run-import-export>
</target>
<target name="import-minimal-for-upgrade-ce"
description="do import of minimal resources in upgrade context for CE">
<run-import-export type="import" archive="${exportDir}/js-catalog-${dbType}-minimal-ce.zip" edition="ce" checkDBMSConnection="true">
<arg value="--update" />
<arg value="--skip-user-update" />
</run-import-export>
</target>
<!-- bug 25644: adding "update-core-users" option for ce and pro -->
<target name="import-upgrade"
description="do import from older jasperserver version. specify file with -DimportFile=path-and-filename">
<check-import-export-file-property
type="import"
edition="pro"
example="js-ant import-upgrade -DimportFile=my-upgrade.zip"/>
<if>
<isset property="importArgs" />
<then>
<run-import-export type="import" archive="${importFile}" edition="pro" checkDBMSConnection="true">
<arg line="${importArgs}" />
<arg value="--update-core-users"/>
</run-import-export>
</then>
<else>
<run-import-export type="import" archive="${importFile}" edition="pro" checkDBMSConnection="true">
<arg value="--update-core-users"/>
</run-import-export>
</else>
</if>
</target>
<target name="import-upgrade-ce"
description="do import from older jasperserver version. specify file with -DimportFile=">
<check-import-export-file-property
type="import"
edition="ce"
example="js-ant import-upgrade-ce -DimportFile=my-upgrade.zip"/>
<if>
<isset property="importArgs" />
<then>
<run-import-export type="import" archive="${importFile}" edition="ce" checkDBMSConnection="true">
<arg line="${importArgs}" />
<arg value="--update-core-users"/>
</run-import-export>
</then>
<else>
<run-import-export type="import" archive="${importFile}" edition="ce" checkDBMSConnection="true">
<arg value="--update-core-users"/>
</run-import-export>
</else>
</if>
</target>
<target name="import-sample-data-pro"
description="import sample data">
<run-import-export type="import" archive="${exportDir}/js-catalog-${dbType}-pro.zip" edition="pro" checkDBMSConnection="true">
<arg value="--update"/>
</run-import-export>
</target>
<target name="import-sample-data-ce"
description="import sample data">
<run-import-export type="import" archive="${exportDir}/js-catalog-${dbType}-ce.zip" edition="ce" checkDBMSConnection="true">
<arg value="--update"/>
</run-import-export>
</target>
<target name="import-sample-data-upgrade-pro"
description="import sample data">
<run-import-export type="import" archive="${exportDir}/js-catalog-${dbType}-pro.zip" edition="pro" checkDBMSConnection="true">
<arg value="--update"/>
<arg value="--skip-user-update"/>
</run-import-export>
</target>
<target name="import-sample-data-upgrade-ce"
description="import sample data">
<run-import-export type="import" archive="${exportDir}/js-catalog-${dbType}-ce.zip" edition="ce" checkDBMSConnection="true">
<arg value="--update"/>
<arg value="--skip-user-update"/>
</run-import-export>
</target>
<target name="export"
description="do repo export, specify -DexportFile=">
<check-import-export-file-property
type="export"
edition="pro"
example="js-ant export -DexportFile=js-export.zip"/>
<if>
<isset property="exportArgs"/>
<then>
<run-import-export type="export" archive="${exportFile}" edition="pro" checkDBMSConnection="true">
<arg line="${exportArgs}" />
</run-import-export>
</then>
<else>
<run-import-export type="export" archive="${exportFile}" edition="pro" checkDBMSConnection="true"/>
</else>
</if>
</target>
<target name="export-ce"
description="do repo export, specify -DexportFile=">
<check-import-export-file-property
type="export"
edition="ce"
example="js-ant export-ce -DexportFile=js-export.zip"/>
<if>
<isset property="exportArgs"/>
<then>
<run-import-export type="export" archive="${exportFile}" edition="ce" checkDBMSConnection="true">
<arg line="${exportArgs}" />
</run-import-export>
</then>
<else>
<run-import-export type="export" archive="${exportFile}" edition="ce" checkDBMSConnection="true"/>
</else>
</if>
</target>
<target name="export-everything"
description="export all resources, specify -DexportFile=">
<check-import-export-file-property
type="export"
edition="pro"
example="js-ant export-everything -DexportFile=js-export.zip"/>
<run-import-export type="export" archive="${exportFile}" edition="pro" checkDBMSConnection="true">
<arg value="--everything"/>
</run-import-export>
</target>
<target name="export-everything-ce"
description="export all resources, specify -DexportFile=">
<check-import-export-file-property
type="export"
edition="pro"
example="js-ant export-everything-ce -DexportFile=js-export.zip"/>
<run-import-export type="export" archive="${exportFile}" edition="ce" checkDBMSConnection="true">
<arg value="--everything"/>
<arg line="${exportArgs}"/>
</run-import-export>
</target>
<target name="validate-database"
description="tests if db is available">
<validateDB systemName="js" phase="import-export-test" failOnDBNotExists="true"/>
</target>
<target name="import-help"
description="Deprecated target">
<echo>
NOTE: try running target "import-help-pro" or "import-help-ce"
</echo>
</target>
<target name="export-help"
description="Deprecated target">
<echo>
NOTE: try running target "export-help-pro" or "export-help-ce"
</echo>
</target>
<target name="import-help-pro"
description="print import help Pro">
<run-import-export type="import" archive="${exportFile}" edition="pro" checkDBMSConnection="false">
<arg line="--help"/>
</run-import-export>
<echo>
Buildomatic Import-Export Usage:
To run using buildomatic, options must be specified as Java command line options:
General Example:
js-ant import -DimportFile=my-reports.zip
Windows Example:
js-ant import -DimportFile=my-reports-and-users.zip -DimportArgs="--update"
js-ant import -DimportFile=my-reports-and-users.zip -DimportArgs="--update --skip-user-update"
Linux Example:
./js-ant import -DimportFile=my-reports-and-users.zip -DimportArgs="--update"
./js-ant import -DimportFile=my-reports-and-users.zip -DimportArgs="--update --skip-user-update"
</echo>
</target>
<target name="import-help-ce"
description="print import help CE">
<run-import-export type="import" archive="${exportFile}" edition="ce" checkDBMSConnection="false">
<arg line="--help"/>
</run-import-export>
<echo>
Buildomatic Import-Export Usage:
To run using buildomatic, options must be specified as Java command line options:
General Example:
js-ant import-ce -DimportFile=my-reports.zip
Windows Example:
js-ant import-ce -DimportFile=my-reports-and-users.zip -DimportArgs="--update"
js-ant import-ce -DimportFile=my-reports-and-users.zip -DimportArgs="--update --skip-user-update"
Linux Example:
./js-ant import-ce -DimportFile=my-reports-and-users.zip -DimportArgs="--update"
./js-ant import-ce -DimportFile=my-reports-and-users.zip -DimportArgs="--update --skip-user-update"
</echo>
</target>
<target name="export-help-pro"
description="print export help Pro">
<run-import-export type="export" archive="" edition="pro" checkDBMSConnection="false">
<arg line="--help"/>
</run-import-export>
<echo>
Buildomatic Import-Export Usage:
To run using buildomatic, options must be specified as Java command line options:
General Example:
js-ant export-everything -DexportFile=js-export-all.zip
Windows Example:
js-ant export -DexportFile=my-reports-and-users.zip
-DexportArgs="--uris /organizations/organization_1/reports
--users jasperadmin|organization_1,joeuser|organization_1"
js-ant export -DexportFile=js-organization-1.zip -DexportArgs="--everything
--organization organization_1"
Linux Example:
./js-ant export -DexportFile=my-reports-and-users.zip
-DexportArgs="--uris /organizations/organization_1/reports
--users 'jasperadmin\|organization_1,joeuser\|organization_1'"
./js-ant export -DexportFile=my-reports-and-users.zip
-DexportArgs=\"--uris /organizations/organization_1/reports
--users 'jasperadmin\|organization_1,joeuser\|organization_1'\"
./js-ant export -DexportFile=js-organization-1.zip -DexportArgs=\"--everything
--organization organization_1\"
(linux: note escape backslash on | and " characters and use of ' character)
</echo>
</target>
<target name="export-help-ce"
description="print export help CE">
<run-import-export type="export" archive="" edition="ce" checkDBMSConnection="false">
<arg line="--help"/>
</run-import-export>
<echo>
Buildomatic Import-Export Usage:
To run using buildomatic, options must be specified as Java command line options:
General Example:
js-ant export-everything-ce -DexportFile=js-export-all.zip
Windows Example:
js-ant export-ce -DexportFile=my-reports-and-users.zip
-DexportArgs="--uris /reports
--users jasperadmin,joeuser"
Linux Example:
./js-ant export-ce -DexportFile=my-reports-and-users.zip
-DexportArgs="--uris /reports
--users 'jasperadmin,joeuser'"
(linux: note use of the ' character)
</echo>
</target>
</project>

6
buildomatic/bin/install.help Executable file
View File

@ -0,0 +1,6 @@
<empty> Do install with sample databases and full sample data
minimal Do minimal install (no sample data and sample databases)
regen-config If you edited your configuration, this will recreate your Buildomatic configuration
drop-db Only does a drop of the main JasperReports Server database
test Do any possible validation, report problems. Don't change anything
help Provide some information about what options mean, what will happen by default, etc.

88
buildomatic/bin/install.xml Executable file
View File

@ -0,0 +1,88 @@
<!--
~ Copyright © 2005 - 2018 TIBCO Software Inc.
~ http://www.jaspersoft.com.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<project name="install">
<!-- ======================================================================= -->
<!-- -->
<!-- This file holds installation related macros and targets -->
<!-- -->
<!-- ======================================================================= -->
<!-- ======================================================================= -->
<!-- Import a build file containing targets for db operations -->
<!-- If the db directory has a db.xml, use that, otherwise use default -->
<!-- ======================================================================= -->
<!-- echo for debugging:
<echo> overrideDatabaseInstallTargets = ${overrideDatabaseInstallTargets}"/>
-->
<if>
<available file="${currentDbDir}/db.xml"/>
<then>
<import file="${currentDbDir}/db.xml"/>
</then>
<else>
<!-- use the default DB related targets -->
<import file="db-common.xml"/>
</else>
</if>
<!-- Import the import-export targets. -->
<import file="import-export.xml" />
<!-- Import application server management and deployment targets. -->
<import file="app-server.xml" />
<!-- ======================================================================= -->
<!-- -->
<!-- Installation targets -->
<!-- -->
<!-- ======================================================================= -->
<target name="install-normal-ce"
description="Performs normal install of JasperServer CE (with sample databases and sample data)"
depends="gen-config, pre-install-test-ce, prepare-all-ce-dbs-normal, deploy-webapp-ce-if-needed">
<echo>Installation successfully completed!</echo>
</target>
<target name="install-normal-pro"
description="Performs normal install of JasperServer Pro (with sample databases and sample data)"
depends="gen-config, pre-install-test-pro, prepare-all-pro-dbs-normal, deploy-webapp-pro-if-needed">
<echo>Installation successfully completed!</echo>
</target>
<target name="install-minimal-ce"
description="Performs minimal install of JasperServer CE (no sample databases and sample data)"
depends="set-minimal-mode, gen-config, pre-install-test-ce, prepare-js-ce-db-minimal, deploy-webapp-ce-if-needed">
<echo>Installation successfully completed!</echo>
</target>
<target name="install-minimal-pro"
description="Performs minimal install of JasperServer Pro (no sample databases and sample data)"
depends="set-minimal-mode, gen-config, pre-install-test-pro, prepare-js-pro-db-minimal, deploy-webapp-pro-if-needed">
<echo>Installation successfully completed!</echo>
</target>
<target name="set-minimal-mode"
description="Sets property that flags that process of installation or upgrade is 'minimal'">
<property name="js.minimal.mode" value="true" />
</target>
</project>

View File

@ -0,0 +1,66 @@
#!/bin/bash
#
# script to run export-import command
#
# Collect the command line args
CMD_LINE_ARGS=$*
# Set the main config folder to use and collect all
# the jars onto the classpath
#
# If Pro config exists, then set to Pro config
# Otherwise, assume CE config
if test -d $BASEDIR/conf_source/iePro
then
echo "Using Pro setup"
export CONFIG_DIR=$BASEDIR/conf_source/iePro
for i in $CONFIG_DIR/lib/*.jar
do
EXP_CLASSPATH="$EXP_CLASSPATH:$i"
done
else
echo "Using CE setup"
export CONFIG_DIR=$BASEDIR/conf_source/ieCe
for i in $CONFIG_DIR/lib/*.jar
do
EXP_CLASSPATH="$EXP_CLASSPATH:$i"
done
fi
# Additional config folder. This will be used to
# get js.jdbc.properties from buildomatic setup
export ADDITIONAL_CONFIG_DIR=$BASEDIR/build_conf/default
# Locate the java binary bundled with installer
#
# If "../java/bin/java" exists, use it
JAVA_EXEC=java
if test -f $BASEDIR/../java/bin/java
then
echo "Using Bundled version of Java"
JAVA_HOME=$BASEDIR/../java
PATH=$JAVA_HOME/bin:$PATH
JAVA_EXEC=$JAVA_HOME/bin/java
fi
# Add the java memory options to JAVA_OPTS
export JAVA_OPTS="$JAVA_OPTS -Xms128m -Xmx512m -Djava.net.preferIPv4Stack=true"
# export JAVA_OPTS="$JAVA_OPTS -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"
# Add the config folders to EXP_CLASSPATH
export EXP_CLASSPATH="$CONFIG_DIR:$ADDITIONAL_CONFIG_DIR$EXP_CLASSPATH:."
# run java
$JAVA_EXEC -cp "$EXP_CLASSPATH" $JAVA_OPTS $JS_EXP_CMD_CLASS $JS_CMD_NAME $CMD_LINE_ARGS

View File

@ -0,0 +1,490 @@
<!--
~ Copyright © 2005 - 2018 TIBCO Software Inc.
~ http://www.jaspersoft.com.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<project name="module-manager">
<!-- start module source package layout. Update these if layout structure or naming changes -->
<property name="delete-list" value="delete-list"/>
<property name="docs" value="docs"/>
<property name="extra" value="extra"/>
<property name="module-metadata" value="module-metadata"/>
<property name="process-src" value="process-src"/>
<property name="war" value="war"/>
<!-- default module location and name -->
<!-- assumed location is basedir (ie buildomatic/js-module.zip) -->
<property name="defaultModuleName" value="js-module"/>
<!-- SAMPLE PROPERTIES -->
<!-- <property name="webAppContext" value="CE"/> -->
<!-- <property name="webAppContext" value="Pro"/> -->
<!-- you have to know whether file is of type file or dir before deleting -->
<macrodef name="delete-any">
<attribute name="file"/>
<sequential>
<echo message="macrodef: delete-any"/>
<if>
<available type="dir" file="@{file}"/>
<then>
<echo message="deleting @{file}"/>
<delete dir="@{file}"/>
</then>
<else>
<if>
<available type="file" file="@{file}"/>
<then>
<echo message="deleting @{file}"/>
<delete file="@{file}"/>
</then>
</if>
</else>
</if>
</sequential>
</macrodef>
<macrodef name="check-any">
<attribute name="file"/>
<attribute name="type"/>
<sequential>
<if>
<not>
<available type="@{type}" file="@{file}"/>
</not>
<then>
<fail message="@{type} @{file} not found"/>
</then>
</if>
</sequential>
</macrodef>
<macrodef name="check-dir">
<attribute name="dir"/>
<sequential>
<check-any type="dir" file="@{dir}"/>
</sequential>
</macrodef>
<macrodef name="check-file">
<attribute name="file"/>
<sequential>
<check-any type="file" file="@{file}"/>
</sequential>
</macrodef>
<macrodef name="copy-war"
description="copies a WAR -- arguments: warSource (WAR file or dir), warTarget">
<attribute name="warSource"/>
<attribute name="warTarget"/>
<sequential>
<echo message="macrodef: copy-war"/>
<!-- clobber old webapp -->
<delete-any file="@{warTarget}"/>
<!-- now copy war (file or dir) -->
<if>
<available type="dir" file="@{warSource}"/>
<then>
<echo message="copying WAR directory @{warSource} to @{warTarget}"/>
<copy toDir="@{warTarget}">
<fileset dir="@{warSource}"/>
</copy>
</then>
<elseif>
<available type="file" file="@{warSource}"/>
<then>
<echo message="unarchiving WAR file @{warSource} to @{warTarget}"/>
<copy toDir="@{warTarget}" preservelastmodified="true">
<zipfileset src="@{warSource}"/>
</copy>
</then>
</elseif>
<else>
<fail message="WAR file @{warSource} not found"/>
</else>
</if>
</sequential>
</macrodef>
<macrodef name="apply-module"
description="apply a module on top of a WAR -- arguments:
moduleBase, moduleName, moduleSource, warSource, warTarget">
<attribute name="moduleBase"/>
<attribute name="moduleName"/>
<attribute name="moduleSource"/>
<attribute name="warSource"/>
<attribute name="warTarget"/>
<sequential>
<echo message="apply-module macro: start"/>
<!-- validate moduleSource and warTarget -->
<check-dir dir="@{moduleBase}"/>
<check-dir dir="@{moduleSource}"/>
<check-dir dir="@{warSource}"/>
<check-dir dir="@{warTarget}"/>
<!-- check for presence of module.properties file and load it -->
<var name="moduleProps" value="@{moduleBase}/${moduleName}/${module-metadata}/module.properties"/>
<check-file file="${moduleProps}"/>
<var file="${moduleProps}"/>
<!-- delete files in files-to-delete.txt -->
<var name="filesToDelete" value="@{moduleBase}/${moduleName}/${delete-list}/files-to-delete.txt"/>
<if>
<available file="${filesToDelete}"/>
<then>
<echo message="apply-module macro: about to delete from files-to-delete.txt list"/>
<delete verbose="true">
<fileset dir="@{warTarget}" includesfile="${filesToDelete}"/>
</delete>
</then>
</if>
<!-- copy new files -->
<var name="newFileSourceDir" value="@{moduleSource}"/>
<if>
<available type="dir" file="${newFileSourceDir}"/>
<then>
<copy toDir="@{warTarget}" overwrite="true">
<fileset dir="${newFileSourceDir}"/>
</copy>
</then>
</if>
<!-- do various file mods -->
<echo message="apply-module macro: run tweekWar here"/>
<java classname="org.mozilla.javascript.tools.shell.Main">
<arg value="${basedir}/conf_source/standAloneJS/tweakWar.js"/>
<arg value="@{warTarget}"/>
<arg value="@{moduleBase}/@{moduleName}/${process-src}/warUpdates"/>
<classpath>
<fileset dir="${basedir}/conf_source/standAloneJS/lib">
<include name="**/*.jar"/>
</fileset>
</classpath>
</java>
</sequential>
</macrodef>
<!-- check-webapp-context: -->
<!-- The module manage needs to know whether the module to be applied is CE or Pro -->
<!-- This is because we need to know the war file name to copy from. In the future, -->
<!-- if we have more packages with more war names we can manage this with this -->
<!-- kind of check-webapp-context logic. -->
<!-- If no webAppContext is set, set default to: CE -->
<macrodef name="check-webapp-context">
<sequential>
<echo message="check-webapp-context: checking webapp context"/>
<if>
<not>
<isset property="webAppContext"/>
</not>
<then>
<echo message="check-webapp-context: webAppContext property is not set"/>
<echo message="check-webapp-context: setting to a default value: CE"/>
<var name="webAppContext" value="CE"/>
</then>
<else>
<echo message="check-webapp-context: webAppContext exists webAppContext=${webAppContext}"/>
</else>
</if>
</sequential>
</macrodef>
<!-- check-for-moduleBase: -->
<!-- To specify the location of a module, two properties should be set in -->
<!-- your default_master.properties file (moduleBase, moduleName). -->
<!-- If these properties are are not set, then we can try and look at -->
<!-- the "default" module location (buildomatic/js-module.zip). -->
<!-- If a module is found in the default location ask user if he -->
<!-- wants to use it. -->
<!-- If a valid module is found, unzip the module -->
<macrodef name="check-for-moduleBase">
<sequential>
<echo message="check-for-moduleBase: checking if moduleBase is defined"/>
<if>
<not>
<isset property="moduleBase"/>
</not>
<then>
<echo message="check-for-moduleBase: moduleBase property is not set"/>
<echo message="check-for-moduleBase: setting to a default value: basedir, basedir=${basedir}"/>
<var name="moduleBase" value="${basedir}"/>
<var name="moduleBaseNotSet" value="true"/>
</then>
<else>
<if>
<not>
<isset property="moduleName"/>
</not>
<then>
<echo message="check-for-moduleBase: ERROR: moduleName property is not set"/>
<fail message="check-for-moduleBase: moduleName property is not set"/>
</then>
<else>
<echo message="check-for-moduleBase: moduleName exists: moduleName=${moduleName}"/>
<var name="moduleBase" value="${moduleBase}"/>
<var name="moduleName" value="${moduleName}"/>
<var name="haveGoodModuleProps" value="true"/>
</else>
</if>
</else>
</if>
<if>
<!-- user can put a default module here: buildomatic/js-module.zip -->
<equals arg1="${moduleBaseNotSet}" arg2="true" />
<then>
<echo message="check-for-moduleBase: look for default module file"/>
<if>
<available file="${moduleBase}/${defaultModuleName}.zip"/>
<then>
<echo message="check-for-moduleBase: js-module.zip exists"/>
<echo message="check-for-moduleBase: set default moduleBase and moduleName properties"/>
<!-- check if user wants to use this default module -->
<echo message=" "/>
<input message="A default module has been found at buildomatic/js-module.zip. Use this?"
validargs="y,n"
addproperty="do.yes"/>
<if>
<equals arg1="${do.yes}" arg2="n" />
<then>
<echo message="check-for-moduleBase: don't use the default module js-module.zip"/>
<var name="haveGoodModuleProps" value="false"/>
</then>
<else>
<echo message="check-for-moduleBase: using default module buildomatic/js-module.zip"/>
<var name="moduleBase" value="${basedir}"/>
<var name="moduleName" value="${defaultModuleName}"/>
<var name="haveGoodModuleProps" value="true"/>
</else>
</if>
</then>
<else>
<echo message="check-for-moduleBase: ERROR: default module does not exist:"/>
<echo message="check-for-moduleBase: ${basedir}/${defaultModuleName}.zip "/>
<fail message="check-for-moduleBase: don't have valid module properties"/>
</else>
</if>
</then>
</if>
<if>
<equals arg1="${haveGoodModuleProps}" arg2="true" />
<then>
<echo message="check-for-moduleBase: have good module properties: unzip the module"/>
<unzip dest="${moduleBase}/${moduleName}"
src="${moduleBase}/${moduleName}.zip"
overwrite="true"/>
</then>
<else>
<echo message="check-for-moduleBase: ERROR: don't have good module properties"/>
<fail message="check-for-moduleBase: ERROR: don't have good module properties"/>
</else>
</if>
</sequential>
</macrodef>
<macrodef name="check-for-moduleBase-assemble">
<sequential>
<echo message="check-for-moduleBase-assemble: checking if moduleBase,moduleName are defined"/>
<if>
<not>
<isset property="moduleBase"/>
</not>
<then>
<echo message="check-for-moduleBase-assemble: ERROR: need valued moduleBase and moduleName properties"/>
<fail message="moduleBase property is not set"/>
</then>
<else>
<if>
<not>
<isset property="moduleName"/>
</not>
<then>
<echo
message="check-for-moduleBase-assemble: ERROR: need valid moduleBase and moduleName properties"/>
<fail message="moduleName property is not set"/>
</then>
<else>
<var name="moduleBase" value="${moduleBase}"/>
<var name="moduleName" value="${moduleName}"/>
</else>
</if>
</else>
</if>
</sequential>
</macrodef>
<!-- ================================================================================= -->
<!-- apply-module: -->
<!-- This target is used for applying a module to an already deployed -->
<!-- JasperServer instance. -->
<!-- -->
<!-- set a property in your default_master.properties to point to module -->
<!-- moduleBase = <path-to-folder-holding-module> -->
<!-- moduleName = <name-of-module> (don't include ".zip") -->
<!-- (module is assumed to be a .zip file) -->
<!-- (or logic will look for a default module here: buildomatic/js-module.zip) -->
<!-- ================================================================================= -->
<target name="apply-module"
depends="init-source-paths"
description="apply specified module to specified app server location">
<check-webapp-context/> <!-- macro to set the webapp context value: CE or Pro -->
<check-for-moduleBase/> <!-- macro to help find location of the module to use -->
<!-- in code below, we need to get the right names for the source and target webappnames -->
<!-- for instance, for ce we use the following: -->
<!-- webAppNameSrcCE (from conf_source/default.properties) -->
<!-- webAppNameCE (from user setting in default_master.properties - can be customized) -->
<if>
<equals arg1="${webAppContext}" arg2="CE" />
<then>
<property name="moduleSource" value="${moduleBase}/${moduleName}/${war}/${webAppNameSrcCE}"/>
<property name="warSource" value="${warDir}/${webAppNameSrcCE}"/>
<!-- call macro to set app server deployment location for tomcat, jboss, etc -->
<set-webapp-name webAppNameParam="${webAppNameCE}" webAppNameSrcParam="${webAppNameSrcCE}"
webAppNameDelParam="${webAppNameCE}"/>
</then>
<elseif>
<equals arg1="${webAppContext}" arg2="Pro" />
<then>
<property name="moduleSource" value="${moduleBase}/${moduleName}/${war}/${webAppNameSrcPro}"/>
<property name="warSource" value="${warDir}/${webAppNameSrcPro}"/>
<!-- call macro to set app server deployment location for tomcat, jboss, etc -->
<set-webapp-name webAppNameParam="${webAppNamePro}" webAppNameSrcParam="${webAppNameSrcPro}"
webAppNameDelParam="${webAppNamePro}"/>
</then>
</elseif>
<else>
<echo message="WARNING: unable to determine webAppContext, ${webAppContext}"/>
</else>
</if>
<property name="warTarget" value="${warTargetDir}"/> <!-- value set from <set-webapp-name> -->
<echo message="apply-module: Settings:"/>
<echo message="moduleBase=${moduleBase}"/>
<echo message="moduleName=${moduleName}"/>
<echo message="moduleSource=${moduleSource}"/>
<echo message="warSource=${warSource}"/>
<echo message="warTarget=${warTarget}"/>
<check-dir dir="${moduleSource}"/>
<check-dir dir="${warSource}"/>
<check-dir dir="${warTarget}"/>
<!-- <copy-war warSource="${warSource}" warTarget="${warTarget}" /> -->
<apply-module moduleBase="${moduleBase}"
moduleName="${moduleName}"
moduleSource="${moduleSource}"
warSource="${warSource}"
warTarget="${warTarget}"/>
</target>
<!-- ======================================================================================= -->
<!-- assemble-module-war: -->
<!-- This target is specific for building a war file that -->
<!-- will be used by the final packages such as installers -->
<!-- 1) moduleBase: need the module location path (from default_master.props) -->
<!-- 2) moduleName: need the module location name (from default_master.props) -->
<!-- 3) warSource and warTarget are the same location in buildomatic/install_resources/war -->
<!-- a) so, we apply the moduleSource on top of the warTarget -->
<!-- b) warSource is not really needed in this case -->
<!-- ======================================================================================= -->
<target name="assemble-module-war"
depends="init-source-paths"
description="apply specified module to buildomatic/install_resources/war location">
<!-- macro to set the webapp context value: CE or Pro -->
<check-webapp-context/>
<check-for-moduleBase-assemble/>
<!-- in code below, we need to get the right names for the source and target webappnames -->
<!-- for instance, for ce we use the following: -->
<!-- webAppNameSrcCE (from conf_source/default.properties) -->
<!-- webAppNameCE (from user setting in default_master.properties - can be customized) -->
<if>
<equals arg1="${webAppContext}" arg2="CE" />
<then>
<property name="moduleSource" value="${moduleBase}/${moduleName}/${war}/${webAppNameSrcCE}"/>
<property name="warSource" value="${warDir}/${webAppNameSrcCE}"/>
<property name="warTarget" value="${warDir}/${webAppNameCE}"/>
</then>
<elseif>
<equals arg1="${webAppContext}" arg2="Pro" />
<then>
<echo message="webAppContext is: Pro"/>
<property name="moduleSource" value="${moduleBase}/${moduleName}/${war}/${webAppNameSrcPro}"/>
<property name="warSource" value="${warDir}/${webAppNameSrcPro}"/>
<property name="warTarget" value="${warDir}/${webAppNamePro}"/>
</then>
</elseif>
<else>
<echo message="WARNING: unable to determine webAppContext, ${webAppContext}"/>
</else>
</if>
<!-- print out paths we are using -->
<echo message="assemble-module-war: Path settings used: "/>
<echo message="moduleBase=${moduleBase}"/>
<echo message="moduleName=${moduleName}"/>
<echo message="moduleSource=${moduleSource}"/>
<echo message="warSource=${warSource}"/>
<echo message="warTarget=${warTarget}"/>
<check-dir dir="${moduleSource}"/>
<check-dir dir="${warSource}"/>
<check-dir dir="${warTarget}"/>
<if>
<equals arg1="${warSource}" arg2="${warTarget}" />
<then>
<echo message="warSource, warTarget are the same. Do not need to copy from source"/>
</then>
<else>
<echo message="copying from source to target"/>
<copy-war warSource="${warSource}" warTarget="${warTarget}" />
</else>
</if>
<apply-module moduleBase="${moduleBase}"
moduleName="${moduleName}"
moduleSource="${moduleSource}"
warSource="${warSource}"
warTarget="${warTarget}"/>
</target>
</project>

1060
buildomatic/bin/setup.xml Executable file

File diff suppressed because it is too large Load Diff

117
buildomatic/bin/time.bat Executable file
View File

@ -0,0 +1,117 @@
@ECHO OFF
:: Windows 2000 and later only
IF NOT "%OS%"=="Windows_NT" GOTO OsErr
:: Remove the following line to use this batch file
:: in Windows NT 4 with the Resource Kit installed
VER | FIND "Windows NT" >NUL && GOTO OsErr
:: Help required?
IF NOT "%~1"=="" GOTO Syntax
:: Enable Command Extensions and use local variables
VERIFY OTHER 2>nul
SETLOCAL ENABLEEXTENSIONS
IF ERRORLEVEL 1 GOTO CmdExtErr
:: Export registry settings to a temporary file
START /W REGEDIT /E "%Temp%.\_TimeTemp.reg" "HKEY_CURRENT_USER\Control Panel\International"
:: Read the time format from the exported data
FOR /F "tokens=1* delims==" %%A IN ('TYPE "%Temp%.\_TimeTemp.reg" ^| FINDSTR /R /I /B /C:"\"iTime\"="') DO SET iTime=%%~B
:: Thanks for Daniel R. Foster for correcting a typo in the next line
FOR /F "tokens=1* delims==" %%A IN ('TYPE "%Temp%.\_TimeTemp.reg" ^| FINDSTR /R /I /B /C:"\"sTime\"="') DO SET sTime=%%~B
DEL "%Temp%.\_TimeTemp.reg"
:: Store current time in default Locale format
FOR /F "tokens=*" %%A IN ('TIME/T') DO SET Now=%%A
:: Format time depending on registry settings
FOR /F "tokens=1,2* delims=%sTime% " %%A IN ('ECHO %Now%') DO (
SET Hour=%%A
SET Mins=%%B
)
:: Translate AM/PM to 24 hours format;
:: A correction was required for Windows XP,
:: thanks for Harry Teufel for finding this bug
ECHO.%Mins%| FIND /I "AM" >NUL && SET AmPm=A
ECHO.%Mins%| FIND /I "PM" >NUL && SET AmPm=P
:: AM/PM can be all upper or mixed case, with or without leading space; we'll just erase all possible characters
SET Mins=%Mins: =%
SET Mins=%Mins:A=%
SET Mins=%Mins:a=%
SET Mins=%Mins:M=%
SET Mins=%Mins:m=%
SET Mins=%Mins:P=%
SET Mins=%Mins:p=%
IF 1%Hour% LSS 20 SET Hour=0%Hour%
IF 1%Mins% LSS 20 SET Mins=0%Mins%
IF %Hour% LSS 12 IF /I "%AmPm%"=="P" SET /A Hour=1%Hour%-88
IF %Hour% EQU 12 IF /I "%AmPm%"=="A" SET Hour=00
SET Now=%Hour%%sTime%%Mins%
:Sort
FOR /F "tokens=1,2* delims=%sTime% " %%A IN ('ECHO %Now%') DO SET SortTime=%%A-%%B
:: Thanks for Holger Stein who mailed me this correction (add leading zero):
IF %SortTime% LSS 1000 IF %SortTime% GEQ 100 SET SortTime=0%SortTime%
:: Purge local variables except SortTime
ENDLOCAL & SET NOW_HH_MM=%SortTime%
GOTO End
:CmdExtErr
ECHO.
ECHO Command extensions need to be enabled for this batch file to run correctly.
ECHO.
ECHO You can run this batch file using the command:
ECHO.
ECHO CMD /X %~n0
ECHO.
ECHO to enable command extensions, however, the results will not be saved in
ECHO environment variables that way.
GOTO Syntax
:OsErr
ECHO.
ECHO This batch file requires Windows 2000 or a later version!
ECHO.
ECHO To use this batch file with Windows NT 4 you need to install FINDSTR from
ECHO the Resource Kit, and to remove the NT 4 check from this batch file.
ECHO Read the comment lines in this batch file for details.
:Syntax
ECHO.
ECHO Date utility for Windows NT 4 / 2000 / XP
ECHO Saves current time in HH-mm format
ECHO to NOW_HH_MM environment variable.
ECHO.
ECHO Prepared by Vladimir Tsukur on the basis of
ECHO SortTime batch script.
ECHO.
ECHO See below for original disclaimer notes:
ECHO.
ECHO -----------------------------------------------------------
ECHO.
ECHO SortTime.bat, Version 3.40 for Windows 2000 / XP
ECHO Displays the time of execution in the system's default time format and in
ECHO hhmm format for sorting purposes.
ECHO.
ECHO Usage: SORTTIME
ECHO.
ECHO Notes: [1] The sorted value is stored in the environment variable SORTTIME.
ECHO The SORTTIME value is independent of "International", "Regional"
ECHO or "Locale" settings.
ECHO [2] This batch file uses native Windows 2000 commands only.
ECHO To allow the use in Windows NT 4, make sure FINDSTR from the
ECHO Resource Kit is installed, and remove the NT 4 check from this
ECHO batch file. Read the comment lines for details.
ECHO [3] KiXtart, Perl, JScript, Rexx and VBScript versions are available
ECHO at http://www.robvanderwoude.com/datetimenonbatch.html
ECHO.
ECHO Written by Rob van der Woude
ECHO http://www.robvanderwoude.com
ECHO ^(with corrections by Daniel R. Foster, Harry Teufel and Holger Stein^)
ECHO.
:End
:: Done

View File

@ -0,0 +1,52 @@
Usage: js-upgrade-newdb.(sh/bat) [option] <path>/js-<ver>-export.zip
Description:
This "newdb" upgrade shell script expects at least one argument which specifies
the path and file name of the export zip file created from the previous JasperServer
instance (ie the instance you are upgrading from). This argument should be the path
to the export file and the export file name. The path can be full qualified path
or a relative path. If the export file resides in the current folder then just
the file name can be specified.
This script will carry out the following general steps:
- Validate property settings
- Validate database connection
- Delete the existing, older jasperserver database
- Create and initialize the new jasperserver database
- Import new jasperserver resources into the database
- Import the export zip file specified on the command line
- Delete the existing, older jasperserver war file
- Deploy the new jasperserver war file
An additional, optional argument can be given as described below:
Options Description
<none> Do standard, default upgrade operations as described above.
with-samples Do standard, default upgrade operations. Also, import sample resources
from the new JasperServer version.
include-access-events Do standard, default upgrade operations. Also include any access event
resources (if present) from older JasperServer version.
regen-config If you edited your configuration, this will recreate your Buildomatic configuration
test Run all validation steps and report on any problems. Existing instances and
resources will not be modified.
help Display this help information.
Examples:
./js-upgrade-newdb.sh ../../prev-jasperserver/buildomatic/js-<ver>-export.zip
js-upgrade-newdb.bat ..\..\prev-jasperserver/buildomatic/js-<ver>-export.zip
./js-upgrade-newdb.sh with-samples js-<ver>-export.zip
js-upgrade-newdb.bat test

View File

@ -0,0 +1,44 @@
Usage: js-upgrade-samedb.(sh/bat) [option]
Description:
This "samedb" upgrade shell script will perform an upgrade by modifying the existing
jasperserver database.
This script will carry out the following general steps:
- Validate property settings
- Validate database connection
- Run SQL script to update the jasperserver database from old schema to new schema
- Import new jasperserver resources into the database
- Delete the existing, older jasperserver war file
- Deploy the new jasperserver war file
An additional, optional argument can be given as described below:
Options Description
<empty> Do standard, default upgrade operations as described above.
with-samples Do standard, default upgrade operations. Also, import sample resources
from the new JasperServer version.
regen-config If you edited your configuration, this will recreate your Buildomatic configuration
test Run all validation steps and report on any problems. Existing instances and
resources will not be modified.
help Display this help information.
Examples:
./js-upgrade-samedb.sh
js-upgrade-samedb.bat
./js-upgrade-samedb.sh with-samples
js-upgrade-samedb.bat test

651
buildomatic/bin/validation.xml Executable file
View File

@ -0,0 +1,651 @@
<!--
~ Copyright © 2005 - 2018 TIBCO Software Inc.
~ http://www.jaspersoft.com.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<project name="validation">
<!-- validateJdbcJar: -->
<!-- Has attribute: calling-target-context -->
<!-- values can be: runSQL, deploy-webapp -->
<!-- if runSQL context: fail execution, give info to user if no jdbc driver -->
<!-- if deploy-webapp context: continue execution, give user a warning -->
<!-- if no jdbc driver found -->
<!-- -->
<!-- The jdbcJar property can have two values: -->
<!-- 1) actual file name (utilizing the artifactId and version properties) -->
<!-- 2) a "*.jar" value -->
<!-- In the first case validate that the files pointed to exists. -->
<!-- In the second case validate that there is at least one file that ends -->
<!-- with .jar. (ie driver copied manually be the user) -->
<!-- -->
<macrodef name="validateJdbcJar">
<attribute name="calling-target-context"/>
<sequential>
<if>
<equals arg1="${jdbcJar}" arg2="*.jar" />
<then>
<echo>About to validate JDBC jar existence</echo>
<echo> Look in: ${currentDbJDBCDir}</echo>
<condition property="jdbcMoreThanOne">
<!-- chk num jars greater or equal one -->
<resourcecount when="ge" count="1">
<fileset id="jarNames" dir="${currentDbJDBCDir}" includes="*.jar"/>
</resourcecount>
</condition>
<if>
<isset property="jdbcMoreThanOne" />
<then>
<echo> Found jar file: assuming OK</echo>
<!-- print out the name(s) of the jar(s) found -->
<echo> Jar or Jars found: ${toString:jarNames} </echo>
</then>
<else>
<!-- chk if context is runSQL or deploy-webapp -->
<if>
<equals arg1="@{calling-target-context}" arg2="runSQL" />
<then>
<echo>context is runSQL</echo>
<echo> jar not found</echo>
<setJdbcDownloadURL />
<displayJdbcErrorMsg/>
<fail>WARNING: STOP EXECUTION: no JDBC driver jar found (see above)</fail>
</then>
<elseif>
<equals arg1="@{calling-target-context}" arg2="deploy-webapp" />
<then>
<echo> jar not found</echo>
<displayJdbcWarningMsg/>
</then>
</elseif>
<else>
<echo>validateJdbcJar: WARNING: invalid context,
calling-target-context=@{calling-target-context}</echo>
</else>
</if>
</else>
</if>
</then>
<elseif>
<!-- validate that fully qualified jar file path is good -->
<and>
<isset property="maven.jdbc.artifactId" />
<isset property="maven.jdbc.version" />
</and>
<then>
<echo>For JDBC driver the artifactId and version properties are set:</echo>
<echo> maven.jdbc.artifactId=${maven.jdbc.artifactId}</echo>
<echo> maven.jdbc.version=${maven.jdbc.version}</echo>
<if>
<available file="${currentDbJDBCDir}/${jdbcJar}"/>
<then>
<echo> Specified JDBC driver jar exists</echo>
</then>
<else>
<echo> Specified JDBC driver jar not found on this path: </echo>
<echo> ${currentDbJDBCDir}/${jdbcJar}</echo>
<!-- chk if context is runSQL or deploy-webapp -->
<if>
<equals arg1="@{calling-target-context}" arg2="runSQL" />
<then>
<setJdbcDownloadURL />
<displayJdbcErrorMsg/>
<fail>WARNING: STOP EXECUTION: no JDBC driver jar found (see above)</fail>
</then>
<elseif>
<equals arg1="@{calling-target-context}" arg2="deploy-webapp" />
<then>
<displayJdbcWarningMsg/>
</then>
</elseif>
<else>
<echo>validateJdbcJar: WARNING: invalid context,
calling-target-context=@{calling-target-context}</echo>
</else>
</if>
</else>
</if>
</then>
</elseif>
<else>
<echo>WARNING: something is wrong with jdbcJar property, jdbcJar=${jdbcJar}</echo>
<echo>WARNING: should not get to this else condition</echo>
</else>
</if>
</sequential>
</macrodef>
<macrodef name="displayJdbcErrorMsg">
<sequential>
<echo> </echo>
<echo> </echo>
<echo>=============== PLEASE READ THESE INSTRUCTIONS =============== </echo>
<echo> </echo>
<echo>WARNING: STOP EXECUTION: no JDBC driver jar found </echo>
<echo> </echo>
<echo>Instructions: </echo>
<echo> </echo>
<echo> 1) Please download a JDBC driver for the "${dbType}" database </echo>
<echo> A driver can be found at the following general location: </echo>
<echo> </echo>
<echo> ${jdbcDownloadURL} </echo>
<echo> </echo>
<echo> 2) Copy the JDBC driver to the following buildomatic location: </echo>
<echo> </echo>
<echo> ${currentDbJDBCDir} </echo>
<echo> </echo>
<echo> 3) Re-run this installation step </echo>
<echo> </echo>
<echo>=============== PLEASE READ THESE INSTRUCTIONS =============== </echo>
<echo> </echo>
<echo> </echo>
</sequential>
</macrodef>
<macrodef name="displayJdbcWarningMsg">
<sequential>
<echo> </echo>
<echo>========== WARNING: no JDBC driver jar found ================ </echo>
<echo> </echo>
<echo> No JDBC driver found in the following location: </echo>
<echo> ${currentDbJDBCDir} </echo>
<echo> Continuing execution. Make sure to add a JDBC driver to your </echo>
<echo> application server. </echo>
<echo> </echo>
<echo>============================================================== </echo>
</sequential>
</macrodef>
<macrodef name="setJdbcDownloadURL">
<sequential>
<if>
<equals arg1="${dbType}" arg2="postgresql" />
<then>
<property name="jdbcDownloadURL" value="http://jdbc.postgresql.org/download.html"/>
</then>
<elseif>
<equals arg1="${dbType}" arg2="mysql" />
<then>
<property name="jdbcDownloadURL" value="http://dev.mysql.com/downloads/connector/j/"/>
</then>
</elseif>
<elseif>
<equals arg1="${dbType}" arg2="oracle" />
<then>
<property name="jdbcDownloadURL" value="http://www.oracle.com/technetwork/indexes/downloads/index.html"/>
</then>
</elseif>
<elseif>
<equals arg1="${dbType}" arg2="sqlserver" />
<then>
<property name="jdbcDownloadURL" value="http://msdn.microsoft.com/en-us/sqlserver/aa937724"/>
</then>
</elseif>
<elseif>
<equals arg1="${dbType}" arg2="db2" />
<then>
<property name="jdbcDownloadURL" value="http://www-01.ibm.com/software/data/db2/linux-unix-windows/download.html"/>
</then>
</elseif>
<elseif>
<equals arg1="${dbType}" arg2="ingres" />
<then>
<property name="jdbcDownloadURL" value="http://community.ingres.com/wiki/Ingres_JDBC_Driver_Downloads"/>
</then>
</elseif>
<else>
<echo message="WARNING: unknown database type, dbType=${dbType}"/>
</else>
</if>
</sequential>
</macrodef>
<macrodef name="validateHostAndPort">
<attribute name="host" />
<attribute name="port" />
<attribute name="type" default="given" />
<attribute name="failOnError" default="true" />
<attribute name="errorProperty" default="host.or.port.invalid" />
<sequential>
<echo>Checking @{type} host and port:</echo>
<!--It`s not correct to fail when host don`t respond on ICMP packages -->
<!--<validateHost host="@{host}" failOnError="@{failOnError}" errorProperty="@{errorProperty}" />-->
<if>
<not>
<isset property="@{errorProperty}" />
</not>
<then>
<validatePort host="@{host}" port="@{port}" failOnError="@{failOnError}"
errorProperty="@{errorProperty}" />
</then>
</if>
</sequential>
</macrodef>
<macrodef name="validateHost">
<attribute name="host" />
<attribute name="failOnError" default="true" />
<attribute name="errorProperty" default="host.not.reachable" />
<sequential>
<echo>About to validate host: @{host}</echo>
<property name="validateHostTimeout" value="5" />
<if>
<isreachable host="@{host}" timeout="${validateHostTimeout}" />
<then>
<echo message=" Host @{host} is OK" />
</then>
<else>
<fail>
<condition>
<istrue value="@{failOnError}" />
</condition>
Error: host @{host} is not reachable
</fail>
<echo> Error: host @{host} is not reachable</echo>
<property name="@{errorProperty}" value="true" />
</else>
</if>
<echo>Done validating host: @{host}</echo>
</sequential>
</macrodef>
<macrodef name="validatePort">
<attribute name="host" />
<attribute name="port" />
<attribute name="failOnError" default="true" />
<attribute name="errorProperty" default="port.not.reachable" />
<sequential>
<echo>About to validate port: @{host}:@{port}</echo>
<if>
<socket server="@{host}" port="@{port}" />
<then>
<echo message=" Port @{port} is OK" />
</then>
<else>
<fail>
<condition>
<istrue value="@{failOnError}" />
</condition>
Error: port @{port} is not reachable at host @{host}
</fail>
<echo> Error: port @{port} is not reachable at host @{host}</echo>
<property name="@{errorProperty}" value="true" />
</else>
</if>
<echo>Done validating port: @{host}:@{port}</echo>
</sequential>
</macrodef>
<macrodef name="validatePropsNotBlank">
<attribute name="properties"/>
<sequential>
<propertyregex property="list"
override="true"
input="@{properties}"
regexp="\s+"
replace=""
casesensitive="false" />
<echo>Checking properties:</echo>
<for list="${list}" delimiter="," param="prop" parallel="false">
<sequential>
<if>
<or>
<equals arg1="@{prop}" arg2="dbPassword" />
<equals arg1="@{prop}" arg2="sysPassword" />
</or>
<then>
<echo> @{prop}=**********</echo>
</then>
<else>
<echo> @{prop}=${@{prop}}</echo>
</else>
</if>
<if>
<not>
<isset property="@{prop}" />
</not>
<then>
<fail> Error: @{prop} property is not set</fail>
</then>
</if>
</sequential>
</for>
</sequential>
</macrodef>
<!-- ==================================================================== -->
<!-- -->
<!-- JDBC connection validation and database existence check -->
<!-- -->
<!-- ==================================================================== -->
<property name="failOnDBMSConnectionError" value="false" />
<property name="failOnDBNotExists" value="false" />
<property name="failOnUnrecoverableDBMSConnectionError" value="true" />
<property name="databaseNotExistsMessage" value="Database doesn't exist" />
<macrodef name="validateDB"
description="Validates JDBC connection and checks existence of the database (written to 'dbExists' variable)">
<attribute name="systemName" />
<attribute name="phase" default="before" />
<attribute name="failOnDBNotExists" default="${failOnDBNotExists}" />
<attribute name="failOnUnrecoverableConnectionError" default="${failOnUnrecoverableDBMSConnectionError}" />
<sequential>
<var name="displayNameOfDBToValidate" value="${@{systemName}.db.displayName}" />
<var name="connectionURLOfDBToValidate" value="${@{systemName}.jdbcUrl}" />
<echo>Validating ${displayNameOfDBToValidate} database connection at ${connectionURLOfDBToValidate}. Phase: [@{phase}]</echo>
<validateDBMSConnection jdbcUrl="${connectionURLOfDBToValidate}" phase="@{systemName}DB@{phase}" systemName="@{systemName}"
failOnConnectionError="@{failOnConnectionError}"
failOnDBNotExists="@{failOnDBNotExists}"
failOnUnrecoverableConnectionError="@{failOnUnrecoverableConnectionError}">
</validateDBMSConnection>
</sequential>
</macrodef>
<macrodef name="connectionValidationFailureInfoListener"
description="Listens for connection validation failure and prints out information about the failure">
<attribute name="errorSqlStateCodeProperty" />
<attribute name="errorNativeCodeProperty" />
<attribute name="errorMessageProperty" />
<sequential>
<echo>Connection failed:</echo>
<echo> SQLState: ${@{errorSqlStateCodeProperty}}</echo>
<echo> Vendor specific error code: ${@{errorNativeCodeProperty}}</echo>
<echo> Message: [${@{errorMessageProperty}}]</echo>
</sequential>
</macrodef>
<macrodef name="hostPortValidationFailureListener"
description="Listens for host/port validation failure and prints out information about the failure">
<attribute name="failOnUnrecoverableConnectionError" />
<sequential>
<failIfUnrecoverable flag="@{failOnUnrecoverableConnectionError}"
message="Invalid host/port combination: [${dbHost}:${dbPort}]" />
</sequential>
</macrodef>
<macrodef name="usernamePasswordValidationFailureListener"
description="Listens for userName/password validation failure and prints out information about the failure">
<attribute name="failOnUnrecoverableConnectionError" />
<attribute name="userName" />
<attribute name="password" />
<sequential>
<failIfUnrecoverable flag="@{failOnUnrecoverableConnectionError}"
message="Invalid username/password combination: [@{userName}/@{password}]" />
</sequential>
</macrodef>
<macrodef name="dBExistsValidationFailureListener"
description="Listens for db exists validation failure and prints out information about the failure">
<attribute name="failOnDBNotExists" />
<sequential>
<var name="dbExists" value="false" />
<if>
<and>
<equals arg1="${strategy}" arg2="inDatabase" />
<equals arg1="${js.setup.mode}" arg2="upgrade" />
</and>
<then>
<failIfUnrecoverable flag="true"
message="${databaseNotExistsMessage}" />
</then>
<else>
<failIfUnrecoverable flag="@{failOnDBNotExists}"
message="${databaseNotExistsMessage}" />
</else>
</if>
</sequential>
</macrodef>
<macrodef name="genericConnectionValidationFailureListener"
description="Listens generic connection validation failure and prints out information about the failure">
<attribute name="failOnUnrecoverableConnectionError" />
<attribute name="errorMessageProperty" />
<sequential>
<failIfUnrecoverable flag="@{failOnUnrecoverableConnectionError}"
message="Generic connection failure: [${@{errorMessageProperty}}]" />
</sequential>
</macrodef>
<macrodef name="connectionOKValidationListener"
description="Listens for successfully connection and prints out information about the failure">
<sequential>
<var name="dbExists" value="true" />
<echo>Connection OK</echo>
</sequential>
</macrodef>
<macrodef name="failIfUnrecoverable"
description="Fails build with message about unrecoverable problem with JDBC connection if flag is set to 'true'.
Otherwise just prints the warning.">
<attribute name="flag" />
<attribute name="message" />
<sequential>
<if>
<istrue value="@{flag}" />
<then>
<fail>@{message}. Treating problem with JDBC connection as unrecoverable</fail>
</then>
<else>
<echo>@{message}. Treating problem with JDBC connection as noncritical. Proceeding to next step</echo>
</else>
</if>
</sequential>
</macrodef>
<!-- ==================================================================== -->
<!-- -->
<!-- Core install and upgrade check -->
<!-- -->
<!-- ==================================================================== -->
<target name="do-install-upgrade-test"
description="Tests system before installing or upgrading JasperServer">
<!-- comment out line below if there is a "hang" error on validateHost step -->
<validateHostAndPort host="${dbHost}" port="${dbPort}" type="DBMS" />
<if>
<not>
<equals arg1="${dbType}" arg2="db2" />
</not>
<then>
<validateDB systemName="admin" phase="test" failOnDBNotExists="true" />
</then>
</if>
<validateDB systemName="js" phase="test" />
</target>
<!-- ==================================================================== -->
<!-- -->
<!-- Pre-install check -->
<!-- -->
<!-- ==================================================================== -->
<target name="do-pre-install-test"
description="Tests system before installing JasperServer"
depends="do-install-upgrade-test">
<validateDB systemName="foodmart" phase="test" />
<validateDB systemName="sugarcrm" phase="test" />
</target>
<target name="pre-install-test-ce"
depends="test-ce-all-props, check-dbtype-ce, test-appServerType-ce, do-pre-install-test"
description="Tests system before installing JasperServer CE">
</target>
<target name="pre-install-test-pro"
depends="test-pro-all-props, check-dbtype-pro, test-appServerType-pro, do-pre-install-test"
description="Tests system before installing JasperServer Pro">
</target>
<target name="check-dbtype-ce"
description="Check DB type for JasperServer CE">
<if>
<not>
<or>
<equals arg1="${dbType}" arg2="mysql" />
<equals arg1="${dbType}" arg2="postgresql" />
</or>
</not>
<then>
<fail>JasperServer CE doesn't support ${dbType} DB type!</fail>
</then>
</if>
</target>
<target name="check-dbtype-pro"
description="Check DB type for JasperServer Pro">
<if>
<not>
<or>
<equals arg1="${dbType}" arg2="mysql" />
<equals arg1="${dbType}" arg2="postgresql" />
<equals arg1="${dbType}" arg2="oracle" />
<equals arg1="${dbType}" arg2="sqlserver" />
<equals arg1="${dbType}" arg2="db2" />
</or>
</not>
<then>
<fail>JasperServer Pro doesn't support ${dbType} DB type!</fail>
</then>
</if>
</target>
<target name="test-appServerType-ce"
description="Check application server type for JasperServer CE">
<if>
<not>
<or>
<equals arg1="${appServerType}" arg2="skipAppServerCheck" />
<equals arg1="${appServerType}" arg2="tomcat" />
<equals arg1="${appServerType}" arg2="jboss-eap-6" />
<equals arg1="${appServerType}" arg2="jboss-eap-7" />
<equals arg1="${appServerType}" arg2="wildfly" />
<equals arg1="${appServerType}" arg2="glassfish" />
</or>
</not>
<then>
<fail>JasperServer CE doesn't support ${appServerType} application server type!</fail>
</then>
</if>
</target>
<target name="test-appServerType-pro"
description="Check application server type for JasperServer Pro">
<if>
<not>
<or>
<equals arg1="${appServerType}" arg2="skipAppServerCheck" />
<equals arg1="${appServerType}" arg2="tomcat" />
<equals arg1="${appServerType}" arg2="jboss-eap-6" />
<equals arg1="${appServerType}" arg2="jboss-eap-7" />
<equals arg1="${appServerType}" arg2="wildfly" />
<equals arg1="${appServerType}" arg2="glassfish" />
</or>
</not>
<then>
<fail>JasperServer Pro doesn't support ${appServerType} application server type!</fail>
</then>
</if>
</target>
<!-- ==================================================================== -->
<!-- -->
<!-- Pre-upgrade check -->
<!-- -->
<!-- ==================================================================== -->
<target name="do-pre-upgrade-test"
description="Tests system before upgrading JasperServer"
depends="do-install-upgrade-test">
</target>
<target name="pre-upgrade-test-ce"
depends="test-ce-all-props, check-dbtype-for-upgrade-ce, do-pre-upgrade-test"
description="Tests system before upgrading JasperServer CE">
</target>
<target name="pre-upgrade-test-pro"
depends="test-pro-all-props, check-dbtype-for-upgrade-pro, do-pre-upgrade-test"
description="Tests system before upgrading JasperServer Pro">
</target>
<target name="check-dbtype-for-upgrade-ce"
description="Check DB type for JasperServer CE">
<if>
<and>
<not>
<or>
<equals arg1="${dbType}" arg2="mysql" />
<equals arg1="${dbType}" arg2="postgresql" />
</or>
</not>
<equals arg1="${strategy}" arg2="inDatabase" />
</and>
<then>
<fail>JasperServer CE doesn't support "in-database" upgrade strategy for ${dbType} DB type!</fail>
</then>
</if>
</target>
<target name="check-dbtype-for-upgrade-pro"
description="Check DB type for JasperServer Pro">
<if>
<and>
<not>
<or>
<equals arg1="${dbType}" arg2="mysql" />
<equals arg1="${dbType}" arg2="oracle" />
<equals arg1="${dbType}" arg2="sqlserver" />
<equals arg1="${dbType}" arg2="db2" />
<equals arg1="${dbType}" arg2="postgresql" />
</or>
</not>
<equals arg1="${strategy}" arg2="inDatabase" />
</and>
<then>
<fail>JasperServer Pro doesn't support "in-database" upgrade strategy for ${dbType} DB type!</fail>
</then>
</if>
</target>
</project>

BIN
buildomatic/bin/wtee.exe Executable file

Binary file not shown.

557
buildomatic/build.xml Executable file
View File

@ -0,0 +1,557 @@
<!--
~ Copyright © 2005 - 2018 TIBCO Software Inc.
~ http://www.jaspersoft.com.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<project name="buildomatic" default="help-build">
<!-- ======================================================================= -->
<!-- -->
<!-- This file is the starting point for buildomatic execution -->
<!-- -->
<!-- ======================================================================= -->
<!-- Checking Ant version. -->
<property name="js.buildomatic.ant.version.prerequisite" value="1.8.1" />
<condition property="js.buildomatic.ant.version.is-compatible">
<antversion atleast="${js.buildomatic.ant.version.prerequisite}" />
</condition>
<fail unless="js.buildomatic.ant.version.is-compatible">
Buildomatic requires Ant ${js.buildomatic.ant.version.prerequisite} or higher. You are using an older version of Ant. Upgrade required
</fail>
<!-- Checking presence of Ant Contrib. -->
<condition property="js.buildomatic.ant.contrib.available">
<available resource="net/sf/antcontrib/antlib.xml" />
</condition>
<fail unless="js.buildomatic.ant.contrib.available">
Buildomatic requires ant-contrib library but it was not found on the classpath
</fail>
<!-- ======================================================================= -->
<!-- -->
<!-- File Imports -->
<!-- -->
<!-- ======================================================================= -->
<import file="bin/setup.xml"/>
<!-- load install targets -->
<import file="bin/install.xml"/>
<!-- Validation/test mode targets and macros. -->
<import file="bin/validation.xml"/>
<!-- load dev targets, if available -->
<import file="bin/dev.xml" optional="true"/>
<!-- load module manager, if available -->
<import file="bin/module-manager.xml" optional="true"/>
<!-- load targets which build separate modules -->
<import file="bin/restart-build.xml" optional="true"/>
<!-- load FTP targets (OPTIONAL) -->
<import file="../jasperserver-ftp/build.xml" optional="true"/>
<!-- ======================================================================= -->
<!-- -->
<!-- Help Info on buildomatic targets -->
<!-- -->
<!-- ======================================================================= -->
<target name="help" depends="help-build">
</target>
<target name="help-build" depends="">
<echo message=" Handy Buildomatic Source Build Targets: "/>
<echo message=" "/>
<echo message=" "/>
<echo message=" Building Everything: "/>
<echo message=" -------------------- "/>
<echo message=" "/>
<echo message=" build-all (Builds ce and pro source base, builds the pro js database "/>
<echo message=" runs the integration tests and creates the production data) "/>
<echo message=" "/>
<echo message=" build-all-deploy (Does the above steps, then deploys the pro war file) "/>
<echo message=" "/>
<echo message=" "/>
<echo message=" build-all-svn-update (First updates ce, pro, and repo source code from svn, "/>
<echo message=" then does all of the build-all steps) "/>
<echo message=" "/>
<echo message=" build-all-ce (Builds ce source base, builds the ce js database, runs the "/>
<echo message=" ce integration tests and creates the ce production data) "/>
<echo message=" "/>
<echo message=" "/>
<echo message=" Run Integration Tests: "/>
<echo message=" ---------------------- "/>
<echo message=" "/>
<echo message=" re-init-js-db-pro (drop js db, create js db, initialize js db with schema) "/>
<echo message=" "/>
<echo message=" run-integration-tests-pro (run integration tests [will not leave resources in the js db. "/>
<echo message=" you can run this target repeatedly]) "/>
<echo message=" "/>
<echo message=" Run Your Own Integration Test: "/>
<echo message=" ------------------------------ "/>
<echo message=" "/>
<echo message=" run-integration-tests-pro -DuseXmlFile=testng-example-tests-pro.xml (use example xml file) "/>
<echo message=" "/>
<echo message=" "/>
<echo message=" Run Production Data: "/>
<echo message=" -------------------- "/>
<echo message=" "/>
<echo message=" re-init-js-db-pro (drop js db, create js db, initialize js db with schema) "/>
<echo message=" "/>
<echo message=" run-production-data-pro (run production data [this will load resources into the js db. "/>
<echo message=" you need this 'core' data in order to startup jasperserver]) "/>
<echo message=" "/>
<echo message=" Update and Build Source: "/>
<echo message=" ------------------------ "/>
<echo message=" "/>
<echo message=" cd jrs-ce-src "/>
<echo message=" svn update (update ce source) "/>
<echo message=" "/>
<echo message=" cd jrs-pro-src "/>
<echo message=" svn update (update pro source) "/>
<echo message=" "/>
<echo message=" build-src-all (builds ce and pro source) "/>
<echo message=" "/>
<echo message=" build-ce (builds just the ce source) "/>
<echo message=" "/>
<echo message=" build-pro (builds just the pro source) "/>
<echo message=" "/>
<echo message=" "/>
<echo message=" Deploy the WAR File: "/>
<echo message=" -------------------- "/>
<echo message=" "/>
<echo message=" deploy-webapp-pro (deploy the war to your specified App Server) "/>
<echo message=" "/>
<echo message=" "/>
<echo message=" Build a Single Folder: "/>
<echo message=" ---------------------- "/>
<echo message=" "/>
<echo message=" build-dir-pro -DdirName=folder-name (example: build-dir-pro -DdirName=datarator) "/>
<echo message=" "/>
<echo message=" build-dir-ce -DdirName=folder-name (example: build-dir-ce -DdirName=jasperserver-api "/>
<echo message=" "/>
<echo message=" "/>
<echo message=" Community Source Targets: "/>
<echo message=" ------------------------- "/>
<echo message=" "/>
<echo message=" Most of the targets ending with '-pro' have equivalent targets ending with '-ce' "/>
<echo message=" "/>
<echo message=" "/>
<echo message=" default_master.properties File: "/>
<echo message=" ------------------------------- "/>
<echo message=" "/>
<echo message=" All of these targets assume that you have a buildomatic/default_master.properties in place. "/>
<echo message=" For additional information see the comments in your default_master.properties file or the "/>
<echo message=" properties template file found at buildomatic/sample_conf/source/postgresql_master.properties. "/>
<echo message=" Also see Section 3.4 'Configuring the Buildomatic Properties' in the JasperReports Server "/>
<echo message=" Source Build Guide. "/>
<echo message=" "/>
<echo message=" "/>
<echo message=" Collect Pro Buildomatic Files: "/>
<echo message=" ------------------------------ "/>
<echo message=" "/>
<echo message=" If you are an internal Jaspersoft developer and you want to setup in order to work with a "/>
<echo message=" commercial database, you can run the following command to copy Pro buildomatic files to your "/>
<echo message=" standard buildomatic folder: "/>
<echo message=" "/>
<echo message=" assemble-pro-buildomatic-files "/>
<echo message=" "/>
<echo message=" (If you get an error about using an 'unsupported database', make a temporary change to your "/>
<echo message=" default_master.properties. Change, for instance, dbType=oracle to dbType=postgresql. Then "/>
<echo message=" change this property back after the command runs successfully.) "/>
<echo message=" "/>
<echo message=" "/>
<echo message=" Help Targets: "/>
<echo message=" ------------- "/>
<echo message=" "/>
<echo message=" ant help (display this current help page) "/>
<echo message=" "/>
<echo message=" ant help-install (display help on how to install JasperReports Server) "/>
<echo message=" "/>
<echo message=" ant help-install-manual (display help on manual buildomatic install steps) "/>
<echo message=" "/>
<echo message=" ant help-sample-data (display help on setup of sample databases) "/>
<echo message=" "/>
<echo message=" ant help-java-options (display help on settings for JasperServer Java runtime options) "/>
<echo message=" "/>
<echo message=" ant help-with-license (display help on setup of the JasperServer license file - pro only) "/>
<echo message=" "/>
<echo message=" Also, for more information, refer to the JasperReports Server Install Guide and the "/>
<echo message=" JasperReports Server Source Build Guide. Both are found in the js-src/docs folder. "/>
<echo message=" "/>
</target>
<target name="help-install" depends="">
<echo message=" "/>
<echo message=" JasperReports Server Installation Steps "/>
<echo message=" "/>
<echo message=" "/>
<echo message=" Install Using the js-install Script: "/>
<echo message=" ------------------------------------ "/>
<echo message=" "/>
<echo message=" First create a default_master.properties file which should be located in the "/>
<echo message=" js-install/buildomatic folder (this file will hold your local settings). "/>
<echo message=" "/>
<echo message=" For a default_master.properties template, copy from the buildomatic/sample_conf folder. "/>
<echo message=" Choose a template that matches your database type and rename to default_master.properties. "/>
<echo message=" "/>
<echo message=" Validate that you settings are correct for your Application Server and your Database. "/>
<echo message=" "/>
<echo message=" Stop your Application Server (except Glassfish) and leave your Database running. "/>
<echo message=" "/>
<echo message=" cd to folder: js-install/buildomatic "/>
<echo message=" "/>
<echo message=" execute: "/>
<echo message=" "/>
<echo message=" js-install.sh or "/>
<echo message=" "/>
<echo message=" js-install.bat "/>
<echo message=" "/>
<echo message=" "/>
<echo message=" Java Memory Settings: "/>
<echo message=" --------------------- "/>
<echo message=" "/>
<echo message=" To run JasperReports Server effectively, you will need to increase the memory settings for "/>
<echo message=" your JAVA_OPTS. This is done via an environment variable or in the Application Server "/>
<echo message=" startup script. See Section 6.2 'Setting JVM Options for Application Servers'. "/>
<echo message=" "/>
<echo message=" "/>
<echo message=" Complete Installation Information: "/>
<echo message=" ---------------------------------- "/>
<echo message=" "/>
<echo message=" For complete information on Installing JasperReports Server please see the "/>
<echo message=" js-install/docs/JasperReports-Server-Install-Guide.pdf. "/>
<echo message=" "/>
<echo message=" "/>
<echo message=" Help for Manual Buildomatic Targets: "/>
<echo message=" ------------------------------------ "/>
<echo message=" "/>
<echo message=" ant help-install-manual "/>
<echo message=" "/>
</target>
<target name="help-install-manual" depends="">
<echo message=" "/>
<echo message=" Help for Buildomatic Manual Installation Steps "/>
<echo message=" "/>
<echo message=" The recommended procedure for installing JasperReports Server is to use the 'binary' installer "/>
<echo message=" or the buildomatic js-install.sh/bat script. "/>
<echo message=" "/>
<echo message=" However, for many Production environments running automated installation scripts which make "/>
<echo message=" database updates is not permitted. In this type of Production environment, it would be more "/>
<echo message=" typical to hand the database creation and initialization scripts to the Database Administrator. "/>
<echo message=" "/>
<echo message=" The Database Administrator would create and initialize the database and the Application Server "/>
<echo message=" Administrator would complete the installation of the JasperReports Server WAR file and "/>
<echo message=" any additional configuration settings. "/>
<echo message=" "/>
<echo message=" "/>
<echo message=" Manual Buildomatic Steps: "/>
<echo message=" ------------------------- "/>
<echo message=" "/>
<echo message=" (First have Database Administrator create the jasperserver database) "/>
<echo message=" (add full details here) "/>
<echo message=" "/>
<echo message=" (Then setup buildomatic/default_master.properties) "/>
<echo message=" (add full details here) "/>
<echo message=" "/>
<echo message=" Next, run these commands: "/>
<echo message=" "/>
<echo message=" js-ant import-minimal-pro "/>
<echo message=" "/>
<echo message=" js-ant deploy-webapp-pro "/>
<echo message=" "/>
</target>
<target name="help-sample-data" depends="">
<echo message=" "/>
<echo message=" Help for Setup of Sample Databases "/>
<echo message=" "/>
<echo message=" In order to successfully run the JasperServer integration tests, you must have two sample "/>
<echo message=" databases in place. These databases are the following: "/>
<echo message=" "/>
<echo message=" sugarcrm "/>
<echo message=" "/>
<echo message=" foodmart "/>
<echo message=" "/>
<echo message=" We have scripts and functionality in place to be able to create these sample databases on "/>
<echo message=" all five of our supported database platforms: PostgreSQL, MySQL, Oracle, SQL Server, and DB2 "/>
<echo message=" "/>
<echo message=" "/>
<echo message=" Create and Load Sample Databases: "/>
<echo message=" --------------------------------- "/>
<echo message=" "/>
<echo message=" First setup your default_master.properties for your database type "/>
<echo message=" "/>
<echo message=" js-ant create-sugarcrm-db "/>
<echo message=" "/>
<echo message=" js-ant load-sugarcrm-db "/>
<echo message=" "/>
<echo message=" js-ant create-foodmart-db "/>
<echo message=" "/>
<echo message=" js-ant load-foodmart-db "/>
<echo message=" "/>
<echo message=" "/>
<echo message=" Load Sample Resources to jasperserver Database: "/>
<echo message=" ----------------------------------------------- "/>
<echo message=" "/>
<echo message=" js-ant re-init-js-db-pro "/>
<echo message=" "/>
<echo message=" js-ant import-sample-data-pro "/>
<echo message=" "/>
<echo message=" (or js-ant run-production-data-pro) "/>
<echo message=" "/>
<echo message=" "/>
<echo message=" Run All Targets in One Step: "/>
<echo message=" ---------------------------- "/>
<echo message=" "/>
<echo message=" To run all the above commands in one step, execute the following buildomatic command: "/>
<echo message=" "/>
<echo message=" js-ant create-load-all-dbs-pro "/>
<echo message=" "/>
<echo message=" "/>
<echo message=" Also, refer to the JasperReports Server Source Build Guide for more information. "/>
<echo message=" "/>
</target>
<target name="help-java-options" depends="">
<echo message=" "/>
<echo message=" Help for Setting JasperServer Runtime Java Options "/>
<echo message=" "/>
<echo message=" JasperServer is a relatively large Java Web Application. Because of this it is best to increase "/>
<echo message=" the memory settings for the Java JVM. The typical error encountered if you do not increase "/>
<echo message=" your default JVM settings will be an error regarding running out of PermGen space. "/>
<echo message=" "/>
<echo message=" "/>
<echo message=" In your Application Server startup script add the following: "/>
<echo message=" "/>
<echo message=" Windows: "/>
<echo message=" "/>
<echo message=" set JAVA_OPTS=%JAVA_OPTS% -Xms1024m -Xmx2048m -Xss2m -XX:+UseConcMarkSweepGC "/>
<echo message=" "/>
<echo message=" Linux: "/>
<echo message=" "/>
<echo message=" export JAVA_OPTS=&quot;$JAVA_OPTS -Xms1024m -Xmx2048m -Xss2m -XX:+UseConcMarkSweepGC&quot; "/>
<echo message=" "/>
<echo message=" Also, refer to the JasperReports Server Install Guide or Source Build Guide for "/>
<echo message=" more information. "/>
<echo message=" "/>
</target>
<target name="help-with-license" depends="">
<echo message=" "/>
<echo message=" Help for Setting Up the JasperServer Commercial License "/>
<echo message=" "/>
<echo message=" In order to run the Commercial version of JasperReports Server, you will need a "/>
<echo message=" jasperserver.license file in place. The license file is read by JasperReports Server "/>
<echo message=" at startup when the Application Server starts up. "/>
<echo message=" "/>
<echo message=" Setup JasperServer License File: "/>
<echo message=" -------------------------------- "/>
<echo message=" "/>
<echo message=" The simplest way to setup a licenase is to put your jasperserver.license file in the "/>
<echo message=" home folder of the User that executes your Application Server. In this case, JasperReports "/>
<echo message=" Server will automatically find the license file. "/>
<echo message=" "/>
<echo message=" (add more details here) "/>
<echo message=" "/>
<echo message=" Also, refer to Section 6.3 &quot;Setting Up the JasperReports Server License&quot; of the "/>
<echo message=" JasperReports Server Install Guide. "/>
<echo message=" "/>
</target>
<!-- ======================================================================= -->
<!-- -->
<!-- assemble files targets -->
<!-- -->
<!-- ======================================================================= -->
<target name="assemble-pro-buildomatic-files"
description="Copy the pro-only buildomatic files on top of the OS buildomatic files">
<!-- ========================================================================= -->
<!-- 1) Copy the Pro-Only buildomatic files on top of the OS buildomatic files -->
<!-- ========================================================================= -->
<copy toDir="${js-path}/buildomatic" overwrite="true">
<fileset dir="${js-pro-path}/buildomatic-additional">
<include name="**"/>
</fileset>
</copy>
</target>
<target name="assemble-export-files-ce"
depends="clean-export-files-ce, init-source-paths"
description="Delete, then copy os import-export files from os source location">
<!-- ========================================================================= -->
<!-- The import-export files are generated in the jasperserver source code. -->
<!-- In order to run import-export in buildomatic you must first get the most -->
<!-- current files from the jasperserver source code. -->
<!-- -->
<!-- This ensures that we always have the most current import-export files in -->
<!-- buildomatic. -->
<!-- -->
<!-- 1) Unpack the os import-export files in the os source -->
<!-- 2) Copy the import-export files to -->
<!-- buildomatic/conf_source/ieCe -->
<!-- ========================================================================= -->
<!-- unpack export zip in src location -->
<unzip dest="${js-path}/jasperserver-export-package/target"
src="${js-path}/jasperserver-export-package/target/js-export-import-tool.zip"
overwrite="true"/>
<copy todir="${buildBase}/conf_source/ieCe" overwrite="true">
<fileset dir="${js-path}/jasperserver-export-package/target/js-export-import/config">
<exclude name="**/js.jdbc.properties"/>
</fileset>
</copy>
<copy todir="${buildBase}/conf_source/ieCe/lib" overwrite="true">
<fileset dir="${js-path}/jasperserver-export-package/target/js-export-import/lib"/>
</copy>
<copy toDir="${buildBase}/conf_source/ieCe/lib">
<fileset dir="${dbDir}/app-srv-jdbc-drivers" includes="*.jar"/>
</copy>
</target>
<target name="assemble-export-files-pro"
depends="clean-export-files-pro, init-source-paths"
description="Delete, then copy pro import-export files from pro source location">
<!-- ========================================================================= -->
<!-- The import-export files are generated in the jasperserver source code. -->
<!-- In order to run import-export in buildomatic you must first get the most -->
<!-- current files from the jasperserver source code. -->
<!-- -->
<!-- This ensures that we always have the most current import-export files in -->
<!-- buildomatic. -->
<!-- -->
<!-- 1) Unpack the pro import-export files in the pro source -->
<!-- 2) Copy the import-export files to -->
<!-- buildomatic/conf_source/iePro -->
<!-- ========================================================================= -->
<!-- unpack export zip in src location -->
<unzip dest="${js-pro-path}/export-tool/target"
src="${js-pro-path}/export-tool/target/js-pro-export-import-tool.zip"
overwrite="true"/>
<copy todir="${buildBase}/conf_source/iePro" overwrite="true">
<fileset dir="${js-pro-path}/export-tool/target/js-pro-export-import/config">
<exclude name="**/js.jdbc.properties"/>
<exclude name="log4j-override.properties"/>
</fileset>
</copy>
<concat destfile="${buildBase}/conf_source/iePro/log4j.properties" append="true">
<file file="${js-pro-path}/export-tool/target/js-pro-export-import/config/log4j-override.properties"/>
</concat>
<copy todir="${buildBase}/conf_source/iePro/lib" overwrite="true">
<fileset dir="${js-pro-path}/export-tool/target/js-pro-export-import/lib"/>
</copy>
<copy todir="${buildBase}/conf_source/iePro/adhoc" overwrite="true">
<fileset dir="${js-pro-path}/jasperserver-war/target/jasperserver-pro/WEB-INF/adhoc"/>
</copy>
<copy todir="${buildBase}/conf_source/iePro/bundles" overwrite="true">
<fileset dir="${js-path}/jasperserver-war/target/jasperserver/WEB-INF/bundles"/>
</copy>
<copy todir="${buildBase}/conf_source/iePro/bundles" overwrite="true">
<fileset dir="${js-pro-path}/jasperserver-war/target/jasperserver-pro/WEB-INF/bundles"/>
</copy>
<!-- 2013-09-25 bug 29095 include all the main jdbc drivers into lib folder -->
<copy toDir="${buildBase}/conf_source/iePro/lib">
<fileset dir="${dbDir}/app-srv-jdbc-drivers" includes="*.jar"/>
</copy>
</target>
<target name="clean-export-files-ce"
description="Delete all files inside the conf_source/ieCe dir">
<delete includeEmptyDirs="true" failonerror="false">
<fileset dir="${buildBase}/conf_source/ieCe"/>
</delete>
</target>
<target name="clean-export-files-pro"
description="Delete all files inside the conf_source/iePro dir">
<delete includeEmptyDirs="true" failonerror="false">
<fileset dir="${buildBase}/conf_source/iePro"/>
</delete>
</target>
<target name="copy-dist-war"
description="Copy buildomatic to targetDir. Specify targetDir with -DtargetDir">
<!-- ========================================================================= -->
<!-- This target is a convenience for copying buildomatic files -->
<!-- to a specified location. -->
<!-- -->
<!-- 1) Be in the buildomatic dir when you execute this task. -->
<!-- 2) Specify the target directory with -DtargetDir=<path> -->
<!-- Ex: ant -DtargetDir=/home/devuser/js-installer/trunk/target/js-dir -->
<!-- ========================================================================= -->
<if>
<isset property="targetDir"/>
<then>
<property name="copydest" value="${targetDir}"/>
</then>
<else>
<echo message="-DtargetDir paramater IS *NOT* SET"/>
<fail>Error: The copy-dist-war target requires: -DtargetDir option</fail>
</else>
</if>
<copy toDir="${copydest}/buildomatic">
<fileset dir=".">
<include name="bin/**"/>
<include name="conf_source/**"/>
<include name="sample_conf/**"/>
<include name="install_resources/sql/**"/>
<include name="install_resources/export/**"/>
<include name="src/**"/>
<include name="target/*.jar"/>
<include name="*.xml"/>
<include name="*.sh"/>
<include name="*.bat"/>
</fileset>
</copy>
</target>
<target name="encrypt-diagnostics-data">
<encrypt-zip inFile="${inFile}"
encProps="${encProps}" />
</target>
<target name="decrypt-diagnostics-data">
<decrypt-zip inFile="${inFile}"
encProps="${encProps}" />
</target>
</project>

View File

@ -0,0 +1,18 @@
conf_source/db/app-srv-jdbc-drivers/readme.txt
----------------------------------------------
Date: 2014-04-21
----------------
This folder is meant to hold the JDBC drivers that are intended to be copied
to the lib folder of the application server.
Note that we do not distribute the mysql JDBC driver because it is licensed
under the GPL license and we don't re-distribute 3rd party GPL components.
Additionally, we are not distributing JDBC drivers from commercial database
applications.
The drivers in this folder will automatically be copied to the application server
as part of the buildomatic deploy-webapp-pro/ce target.

View File

@ -0,0 +1,59 @@
#
# Copyright © 2005 - 2018 TIBCO Software Inc.
# http://www.jaspersoft.com.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
# default properties template for a db
# some of these set defaults if the values aren't set already
# others act as templates to plug values in
# port that database listens on
dbPort=3306
# driver class
#jdbcDriverClass=com.mysql.jdbc.Driver
jdbcDriverClass=org.mariadb.jdbc.Driver
# datasource class
jdbcDataSourceClass=org.mariadb.jdbc.MySQLDataSource
#Sql query for testing jdbc connection pool
jdbcTestTableQuery=SELECT 1
# for maven: artifact info so unit tests can get to the correct jdbc driver
# 2011-07-07: driver now removed from src
#maven.jdbc.groupId=mysql
#maven.jdbc.artifactId=mysql-connector-java
#maven.jdbc.version=5.1.10
#
maven.jdbc.groupId=org.mariadb.jdbc
maven.jdbc.artifactId=mariadb-java-client
maven.jdbc.version=1.6.3
# hibernate dialect
hibernateDialect=org.hibernate.dialect.MySQL5InnoDBDialect
# quartz delegate class
quartz.delegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate
# prefix for quartz table names
quartz.tablePrefix=QRTZ_
# quartz ddl file (in jasperserver/scripts/quartz)
quartz.ddlScript=tables_mysql_innodb.sql
# datastore helper class for Websphere application server
ws.dataStore.helper.class=com.ibm.websphere.rsadapter.GenericDataStoreHelper

View File

@ -0,0 +1,50 @@
#
# Copyright © 2005 - 2018 TIBCO Software Inc.
# http://www.jaspersoft.com.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
# default properties template for a db
# these properties act as templates to plug values in
# default database names
js.dbName=jasperserver
sugarcrm.dbName=sugarcrm
foodmart.dbName=foodmart
# jdbc url templates...assume same host, port, db type
# newer mariadb drivers discard username/password if it is not provided in the url and the url is set after username/password on a javax.sql.DataSource
# glassfish sets username before url so this is why we put username/password in the url here
# this was introduced by this change https://github.com/MariaDB/mariadb-connector-j/commit/76372ae in version 1.2.0
admin.jdbcUrl=jdbc:mysql://${dbHost}:${dbPort}/mysql
js.jdbcUrl=jdbc:mysql://${dbHost}:${dbPort}/${js.dbName}?useUnicode=true&amp;characterEncoding=UTF-8&amp;autoReconnect=true&amp;autoReconnectForPools=true&amp;tinyInt1isBit=false
sugarcrm.jdbcUrl=jdbc:mysql://${dbHost}:${dbPort}/${sugarcrm.dbName}?useUnicode=true&amp;characterEncoding=UTF-8&amp;autoReconnect=true&amp;autoReconnectForPools=true&amp;tinyInt1isBit=false
foodmart.jdbcUrl=jdbc:mysql://${dbHost}:${dbPort}/${foodmart.dbName}?useUnicode=true&amp;characterEncoding=UTF-8&amp;autoReconnect=true&amp;autoReconnectForPools=true&amp;tinyInt1isBit=false
# Websphere specific properties
# jdbc driver properties for jasperserver datasource
ws.jdbc.js.properties={{url java.lang.String ${js.jdbcUrl}} \
{user java.lang.String ${js.dbUsername}} \
{password java.lang.String ${js.dbPassword}} }
# jdbc driver properties for foodmart datasource
ws.jdbc.foodmart.properties={{url java.lang.String ${foodmart.jdbcUrl}} \
{user java.lang.String ${foodmart.dbUsername}} \
{password java.lang.String ${foodmart.dbPassword}} }
# jdbc driver properties for sugarcrm datasource
ws.jdbc.sugarcrm.properties={{url java.lang.String ${sugarcrm.jdbcUrl}} \
{user java.lang.String ${sugarcrm.dbUsername}} \
{password java.lang.String ${sugarcrm.dbPassword}} }

View File

@ -0,0 +1,100 @@
<!--
~ Copyright © 2005 - 2018 TIBCO Software Inc.
~ http://www.jaspersoft.com.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<project name="db">
<import file="${buildBin}/db-common.xml"/>
<!-- database tasks -->
<macrodef name="validateDBMSConnection">
<attribute name="jdbcUrl" />
<attribute name="systemName" default="before" />
<attribute name="phase" default="before" />
<attribute name="failOnConnectionError" default="true" />
<attribute name="failOnDBNotExists" default="false" />
<attribute name="failOnUnrecoverableConnectionError" default="true" />
<attribute name="connectionErrorOccurredProperty" default="connectionErrorOccurredProperty@{phase}" />
<attribute name="errorSqlStateCodeProperty" default="errorSqlStateCodeProperty@{phase}" />
<attribute name="errorNativeCodeProperty" default="errorNativeCodeProperty@{phase}" />
<attribute name="errorMessageProperty" default="errorMessageProperty@{phase}" />
<sequential>
<var name="dbExists" value="" />
<runSQL jdbcUrl="@{jdbcUrl}"
print="false"
onerror="abort"
failOnConnectionError="@{failOnConnectionError}"
connectionErrorOccurredProperty="@{connectionErrorOccurredProperty}"
errorSqlStateCodeProperty="@{errorSqlStateCodeProperty}"
errorNativeCodeProperty="@{errorNativeCodeProperty}"
errorMessageProperty="@{errorMessageProperty}">
SELECT 0;
</runSQL>
<if>
<isset property="@{connectionErrorOccurredProperty}" />
<then>
<connectionValidationFailureInfoListener
errorSqlStateCodeProperty="@{errorSqlStateCodeProperty}"
errorNativeCodeProperty="@{errorNativeCodeProperty}"
errorMessageProperty="@{errorMessageProperty}" />
<if>
<equals arg1="${@{errorSqlStateCodeProperty}}" arg2="08S01" />
<then>
<hostPortValidationFailureListener
failOnUnrecoverableConnectionError="@{failOnUnrecoverableConnectionError}" />
</then>
<elseif>
<equals arg1="${@{errorSqlStateCodeProperty}}" arg2="28000" />
<then>
<usernamePasswordValidationFailureListener
failOnUnrecoverableConnectionError="@{failOnUnrecoverableConnectionError}"
userName="${dbUsername}"
password="${dbPassword}" />
</then>
</elseif>
<elseif>
<equals arg1="${@{errorSqlStateCodeProperty}}" arg2="42000" />
<then>
<dBExistsValidationFailureListener failOnDBNotExists="@{failOnDBNotExists}" />
</then>
</elseif>
<!-- bug 33000: check mariadb jdbc driver return code when database not found (HY0000) -->
<elseif>
<equals arg1="${@{errorSqlStateCodeProperty}}" arg2="HY0000" />
<then>
<dBExistsValidationFailureListener failOnDBNotExists="@{failOnDBNotExists}" />
</then>
</elseif>
<else>
<genericConnectionValidationFailureListener
failOnUnrecoverableConnectionError="@{failOnUnrecoverableConnectionError}"
errorMessageProperty="@{errorMessageProperty}" />
</else>
</if>
</then>
<else>
<connectionOKValidationListener />
</else>
</if>
</sequential>
</macrodef>
</project>

View File

@ -0,0 +1,474 @@
The MariaDB Project Team site is here:
http://mariadb.org
The MariaDB JDBC client code is under the LGPL 2.1 license:
https://downloads.mariadb.org/
Here is the text of the LGPL 2.1 License
----------------------------------------
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS

View File

@ -0,0 +1,60 @@
buildomatic/conf_source/db/mysql/jdbc/readme.txt
------------------------------------------------
2014-04-18
----------
If you would like to use the JDBC driver that is maintained and distributed
by the MySQL project, you can download the most current driver from this
location:
https://dev.mysql.com/downloads/connector/j/
A downloaded MySQL driver typically has a name like the following:
mysql-connector-java-5.1.30-bin.jar
To set your buildomatic properties so that it uses the driver above instead
of the JDBC driver maintained by the MariaDB project, you can do the following:
Copy the MySQL driver to the following location:
buildomatic/conf_source/db/mysql/jdbc
Next, edit your default_master.properties file. Comment out and edit to
set the following:
jdbcDriverClass=com.mysql.jdbc.Driver
maven.jdbc.groupId=mysql
maven.jdbc.artifactId=mysql-connector-java
maven.jdbc.version=5.1.30-bin
(note the "-bin" on this end of the file/version name)
2013-05-23
----------
Updated buildomatic default configurations to specify the MariaDB
JDBC driver. So, now, the MariaDB JDBC driver will be used by default
when installing JasperReports Server to a MySQL database. The MariaDB
JDBC driver is compatible with the MySQL database.
2013-03-29
----------
Adding the MariaDB JDBC client driver. This should be completely
compatible with MySQL (MariaDB is a fork of the MySQL src base).
2011-07-27
----------
MySQL JDBC drivers can be downloaded from the following location:
http://dev.mysql.com/downloads/connector/j/
A downloaded driver should be placed in this folder in order to
run with the buildomatic scripts.

View File

@ -0,0 +1,27 @@
#
# Copyright © 2005 - 2018 TIBCO Software Inc.
# http://www.jaspersoft.com.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
js.drop = drop database ${js.dbName}
sugarcrm.drop = drop database ${sugarcrm.dbName}
foodmart.drop = drop database ${foodmart.dbName}
js.create = create database ${js.dbName} character set utf8 collate utf8_bin
js.set-users-password-expire = update jiuser set previouspasswordchangetime = '1970-01-01'
js.disable-users = update jiuser set enabled = false where username <> 'superuser'
sugarcrm.create = create database ${sugarcrm.dbName} character set utf8
foodmart.create = create database ${foodmart.dbName}

View File

@ -0,0 +1,63 @@
#
# Copyright © 2005 - 2018 TIBCO Software Inc.
# http://www.jaspersoft.com.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
# default properties template for a db
# some of these set defaults if the values aren't set already
# others act as templates to plug values in
# default port that database listens on
dbPort=5432
# driver class
jdbcDriverClass=org.postgresql.Driver
# datasource class
jdbcDataSourceClass=org.postgresql.ds.PGConnectionPoolDataSource
#Sql query for testing jdbc connection pool
jdbcTestTableQuery=SELECT 1
# for maven: artifact info so unit tests can get to the correct jdbc driver
maven.jdbc.groupId=postgresql
maven.jdbc.artifactId=postgresql
maven.jdbc.version=9.4-1210.jdbc41
# hibernate dialect
hibernateDialect=com.jaspersoft.hibernate.dialect.PostgresqlNoBlobDialect
# tmp - old props before bobs fix
#hibernateDialect=org.hibernate.dialect.PostgreSQLDialect
# used by context.xml to set defaultAutoCommit (needed for blob support)
# js.extraParams = defaultAutoCommit="false"
# above: old props before bobs fix
# quartz delegate class
quartz.delegateClass=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
# prefix for quartz table names
quartz.tablePrefix=QRTZ_
# quartz ddl file (in jasperserver/scripts/quartz)
quartz.ddlScript=tables_postgres.sql
# property setting for unit-tests runtime
test.databaseFlavor=postgresql
# datastore helper class for Websphere application server
ws.dataStore.helper.class=com.ibm.websphere.rsadapter.GenericDataStoreHelper

View File

@ -0,0 +1,55 @@
#
# Copyright © 2005 - 2018 TIBCO Software Inc.
# http://www.jaspersoft.com.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
# default properties template for a db
# these properties act as templates to plug values in
# default database names
js.dbName=jasperserver
js.it.dbName=${js.dbName}_it
sugarcrm.dbName=sugarcrm
foodmart.dbName=foodmart
# jdbc url templates...assume same host, port, db type
admin.jdbcUrl=jdbc:postgresql://${dbHost}:${dbPort}/postgres
js.jdbcUrl=jdbc:postgresql://${dbHost}:${dbPort}/${js.dbName}
js.it.jdbcUrl=jdbc:postgresql://${dbHost}:${dbPort}/${js.it.dbName}
sugarcrm.jdbcUrl=jdbc:postgresql://${dbHost}:${dbPort}/${sugarcrm.dbName}
foodmart.jdbcUrl=jdbc:postgresql://${dbHost}:${dbPort}/${foodmart.dbName}
# Websphere specific properties
# jdbc driver properties for jasperserver datasource
ws.jdbc.js.properties={{serverName java.lang.String ${dbHost}} \
{portNumber java.lang.String ${dbPort}} \
{databaseName java.lang.String ${js.dbName}} \
{user java.lang.String ${js.dbUsername}} \
{password java.lang.String ${js.dbPassword}} }
# jdbc driver properties for foodmart datasource
ws.jdbc.foodmart.properties={{serverName java.lang.String ${dbHost}} \
{portNumber java.lang.String ${dbPort}} \
{databaseName java.lang.String ${foodmart.dbName}} \
{user java.lang.String ${foodmart.dbUsername}} \
{password java.lang.String ${foodmart.dbPassword}} }
# jdbc driver properties for sugarcrm datasource
ws.jdbc.sugarcrm.properties={{serverName java.lang.String ${dbHost}} \
{portNumber java.lang.String ${dbPort}} \
{databaseName java.lang.String ${sugarcrm.dbName}} \
{user java.lang.String ${sugarcrm.dbUsername}} \
{password java.lang.String ${sugarcrm.dbPassword}} }

View File

@ -0,0 +1,93 @@
<!--
~ Copyright © 2005 - 2018 TIBCO Software Inc.
~ http://www.jaspersoft.com.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<project name="db">
<import file="${buildBin}/db-common.xml"/>
<!-- database tasks -->
<macrodef name="validateDBMSConnection">
<attribute name="jdbcUrl"/>
<attribute name="systemName" default="before"/>
<attribute name="phase" default="before"/>
<attribute name="failOnConnectionError" default="true"/>
<attribute name="failOnDBNotExists" default="false"/>
<attribute name="failOnUnrecoverableConnectionError" default="true"/>
<attribute name="connectionErrorOccurredProperty" default="connectionErrorOccurredProperty@{phase}"/>
<attribute name="errorSqlStateCodeProperty" default="errorSqlStateCodeProperty@{phase}"/>
<attribute name="errorNativeCodeProperty" default="errorNativeCodeProperty@{phase}"/>
<attribute name="errorMessageProperty" default="errorMessageProperty@{phase}"/>
<sequential>
<var name="dbExists" value=""/>
<runSQL jdbcUrl="@{jdbcUrl}"
print="false"
onerror="abort"
failOnConnectionError="@{failOnConnectionError}"
connectionErrorOccurredProperty="@{connectionErrorOccurredProperty}"
errorSqlStateCodeProperty="@{errorSqlStateCodeProperty}"
errorNativeCodeProperty="@{errorNativeCodeProperty}"
errorMessageProperty="@{errorMessageProperty}">
SELECT 0;
</runSQL>
<if>
<isset property="@{connectionErrorOccurredProperty}"/>
<then>
<connectionValidationFailureInfoListener
errorSqlStateCodeProperty="@{errorSqlStateCodeProperty}"
errorNativeCodeProperty="@{errorNativeCodeProperty}"
errorMessageProperty="@{errorMessageProperty}"/>
<if>
<matches pattern="^08.*" string="${@{errorSqlStateCodeProperty}}"/>
<then>
<hostPortValidationFailureListener
failOnUnrecoverableConnectionError="@{failOnUnrecoverableConnectionError}"/>
</then>
<elseif>
<equals arg1="${@{errorSqlStateCodeProperty}}" arg2="28000"/>
<then>
<usernamePasswordValidationFailureListener
failOnUnrecoverableConnectionError="@{failOnUnrecoverableConnectionError}"
userName="${dbUsername}"
password="${dbPassword}"/>
</then>
</elseif>
<elseif>
<equals arg1="${@{errorSqlStateCodeProperty}}" arg2="3D000"/>
<then>
<dBExistsValidationFailureListener failOnDBNotExists="@{failOnDBNotExists}"/>
</then>
</elseif>
<else>
<genericConnectionValidationFailureListener
failOnUnrecoverableConnectionError="@{failOnUnrecoverableConnectionError}"
errorMessageProperty="@{errorMessageProperty}"/>
</else>
</if>
</then>
<else>
<connectionOKValidationListener/>
</else>
</if>
</sequential>
</macrodef>
</project>

View File

@ -0,0 +1,77 @@
buildomatic/conf_source/db/postgresql/jdbc/readme.txt
-----------------------------------------------------
2016-09-09
----------
Added most current JDBC41 driver from the postgresql website
postgresql-9.4-1210.jdbc41.jar
Added most current JDBC42 driver from the postgresql website
postgresql-9.4-1210.jdbc41.jar
2014-04-18
----------
Added most current JDBC41 driver from the postgresql website
postgresql-9.3-1101.jdbc41.jar
- should be backwards compatible with postgresql 8.x
- runs under Java 1.7 only (not Java 1.6)
- support for JDBC4 (support is limited see postgresql online documentation)
NOTE: This new driver is not the default driver currently configured.
The default driver specified in the buildomatic configurations is the following:
postgresql-9.2-1002.jdbc4.jar
To change to the most current driver shown above, edit your:
buildomatic/default_master.properties
Change:
# maven.jdbc.version=9.2-1002.jdbc4
To:
maven.jdbc.version=9.3-1101.jdbc41
2013-03-29
----------
Remove the older 801 jars.
2013-02-26
----------
Drivers updated to versions 1002:
postgresql-9.2-1002.jdbc3.jar
postgresql-9.2-1002.jdbc4.jar
2011-07-27
----------
Drivers in this folder:
postgresql-9.0-801.jdbc3.jar
- backwards compatible with postgresql 8.x
- compatible with postgresql 9.0
- runs under Java 1.5 and Java 1.6
postgresql-9.0-801.jdbc4.jar
- compatible with postgresql 9.0
- runs under Java 1.6
- support for JDBC4 (support is limited see postgresql online documentation)
http://jdbc.postgresql.org/download.html
- download info

View File

@ -0,0 +1,30 @@
#
# Copyright © 2005 - 2018 TIBCO Software Inc.
# http://www.jaspersoft.com.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
js.drop = drop database "${js.dbName}"
js.it.drop = drop database "${js.it.dbName}"
sugarcrm.drop = drop database "${sugarcrm.dbName}"
foodmart.drop = drop database "${foodmart.dbName}"
js.create = create database "${js.dbName}" template=template0 encoding='utf8' lc_collate='${db.set.lc_collate}' lc_ctype='${db.set.lc_ctype}'
js.it.create = create database "${js.it.dbName}" template=template0 encoding='utf8' lc_collate='${db.set.lc_collate}' lc_ctype='${db.set.lc_ctype}'
sugarcrm.create = create database "${sugarcrm.dbName}" template=template0 encoding='utf8' lc_collate='${db.set.lc_collate}' lc_ctype='${db.set.lc_ctype}'
foodmart.create = create database "${foodmart.dbName}"

View File

@ -0,0 +1,29 @@
#
# Copyright © 2005 - 2018 TIBCO Software Inc.
# http://www.jaspersoft.com.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
js.drop = drop database "${js.dbName}"
js.it.drop = drop database "${js.it.dbName}"
sugarcrm.drop = drop database "${sugarcrm.dbName}"
foodmart.drop = drop database "${foodmart.dbName}"
js.create = create database "${js.dbName}" encoding='utf8'
js.it.create = create database "${js.it.dbName}" encoding='utf8'
js.set-users-password-expire = update jiuser set previouspasswordchangetime = '1970-01-01'
js.disable-users = update jiuser set enabled = false where username <> 'superuser'
sugarcrm.create = create database "${sugarcrm.dbName}" encoding='utf8'
foodmart.create = create database "${foodmart.dbName}"

View File

@ -0,0 +1,154 @@
#
# Copyright © 2005 - 2018 TIBCO Software Inc.
# http://www.jaspersoft.com.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
# This is a file containing properties that are not platform-specific,
# but can safely be set to defaults (for now).
# For this to support all possible configuration, some things may have to have more config hooks
#
# TODO
# configure quartz.web.deployment.uri
# configure quartz.mail.*
#
# default web app names
webAppNameCE = jasperserver
webAppNamePro = jasperserver-pro
# war file source name used when copying
# (should not be changed)
webAppNameSrcCE = jasperserver
webAppNameSrcPro = jasperserver-pro
# to run maven in offline mode, set to true
maven.offline = false
# default location of maven local repository
maven-localrepo-path = $\{user.home\}/.m2/repository
# JNDI names; these should never change
js.jndi=jdbc/jasperserver
sugarcrm.jndi=jdbc/sugarcrm
foodmart.jndi=jdbc/foodmart
# use the same users and passwords for everything
js.dbUsername = ${dbUsername}
js.dbPassword = ${dbPassword}
sugarcrm.dbUsername = ${dbUsername}
sugarcrm.dbPassword = ${dbPassword}
foodmart.dbUsername = ${dbUsername}
foodmart.dbPassword = ${dbPassword}
# used by context.xml to set defaultAutoCommit for postgres
# set to blank if it hasn't already been set
js.extraParams=
# used only for oracle(this user have to be created)
dba.user=sys
dba.password=password
dba.role=as SYSDBA
# settings for quartz to send mail, used in js.quartz.properties
quartz.mail.sender.host=mail.example.com
quartz.mail.sender.port=25
quartz.mail.sender.protocol=smtp
quartz.mail.sender.username=admin
quartz.mail.sender.password=password
quartz.mail.sender.from=admin@example.com
quartz.web.deployment.uri=http://localhost:8080/jasperserver-pro
# property settings for unit-tests
test.foodmart.upperCaseNames=false
test.sugarcrm.upperCaseNames=false
# remote-tests settings
remote.test.host=localhost
remote.test.port=8080
remote.test.app-context-path-ce=jasperserver
remote.test.app-context-path-pro=jasperserver-pro
# docFlex settings for Public API generation
# docFlex is a non-included commercial product
# docFlexDir=c:/bin/docflex
docFlexDir=/opt/docflex-javadoc-1.6
docFlexVer=1.6
# flag used to skip of JDBC driver deploying during deployment process.
deployJDBCDriver=true
#Diagnostic configuration
diagnostic.jmx.usePlatformServer = false
# change this value if you have more than one app server on the same machine running JRS
diagnostic.jmx.port = 10990
test.diagnostic.jmx.port = 10999
# change this if you have more than one instance of JRS on the same app server (i.e. more than one JRS web app)
diagnostic.jmx.name = jasperserver
# change this to your RMI registry host name or IP, if you use a separate one
diagnostic.jmx.rmiHost = localhost
#AWS data source configuration
#Enable or disable creating of AWD Data Source security group.
aws.db.security.group.changes.enabled=true
# Db Security Group Name. Need to be overridden if server(where instance is running) is out of scope Amazon to have
#unique group name for this server.
aws.db.security.group.name=JRSSecurityGroup
aws.db.security.group.description=JasperReports Server Security Group
# Ingress Public Ip address of server that will be added in Db Security Group to have access to target Db instance
# that contains this Group.
aws.db.security.group.ingressPublicIp=
# Property, that control whether to suppress Warning if IAM role not properly configured in EC2 environment
aws.db.security.group.suppressEc2CredentialsWarnings=false
# flag s to enable or disable Monitoring and heart beat options.
jrs.config.enable.audit_monitoring=false
jrs.config.enable.audit.records=false
jrs.config.enable.monitoring.records=false
jrs.config.enable.heartbeat=true
jrs.config.enable.heartbeat.askForPermission=true
jrs.config.enable.heartbeat.permissionGranted=false
#flag which control whether to use by default optimized version of scripts in runtime
optimize.javascript=true
# default PhantomJS location
headless.browser=
#flag if tibcoDrivers are available for source build or not
#only applies for builds inside Jaspersoft TIBCO
#default setting : true
#if set to false, tibco driver dependencies are ignored
tibco.driver.available=true
SKIP_TEST_ARG=ignored
#source distribution:
#flag if fafj is used as maven dependencies or if it is pre-deployed
#to original folders
#if set to true, fafj dependencies and handling are ignored
disable.fafj=true
#(pro only) initialization for additional driver repository, see sample_conf/<db-type>_master.properties for configuration
tibco-driver-path=${repo-path}
#(pro only) by default tibco drivers are not deployed
deploy-tibco-drivers=false
# Repo FTP access
ftp.enabled=false
# If you are using an oracle 12c, you should set dbScriptVersion=oracle12c in order to use specific supermart-update script for oracle 12c
dbScriptVersion=

View File

@ -0,0 +1,37 @@
/*
* Copyright © 2005 - 2018 TIBCO Software Inc.
* http://www.jaspersoft.com.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
importPackage(java.io);
function writeFile(path, contents) {
var fw = new FileWriter(path);
fw.write(contents);
fw.close();
}
print('hi, this is js');
var appConFile = '../target/jasperserver-pro/WEB-INF/applicationContext-adhoc.xml';
var appCon = new XML(readFile(appConFile));
appCon.appendChild(<bean id="mybean" class="com.jaspersoft.ji.SomeBean">
<property name="foo" value="bar"/>
</bean>);
writeFile('newAppCon.xml', appCon.toString());

View File

@ -0,0 +1,38 @@
<?xml version="1.0"?>
<!--
~ Copyright © 2005 - 2018 TIBCO Software Inc.
~ http://www.jaspersoft.com.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<!-- =============================================================== -->
<!-- demo of running js standalone from Ant -->
<!-- =============================================================== -->
<project name="jasperserver-pro" default="tweakWar" basedir=".">
<target name="tweakWar">
<java classname="org.mozilla.javascript.tools.shell.Main">
<arg value="${basedir}/tweakWar.js"/>
<arg value="${webapp}"/>
<arg value="${config}"/>
<classpath>
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
</classpath>
</java>
</target>
</project>

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,471 @@
/*
* Copyright © 2005 - 2018 TIBCO Software Inc.
* http://www.jaspersoft.com.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
/*
tweakWar.js
This is run by the build of jasperserver-war in jasperserver-pro
It reads in one more more jiconfig files that specify various updates
to configuration files in the JasperServer OS webapp.
Current files updated:
WEB-INF/applicationContext.xml
WEB-INF/applicationContext-security.xml
WEB-INF/jasperserver-servlet.xml
example file:
<jiconfig>
<!-- additions to applicationContext.xml -->
<!-- this adds an entry to the sessionFactory bean that configures Hibernate -->
<addHibernateConfig hbmfile="/com/jaspersoft/ji/adhoc/AdhocState.hbm.xml"/>
<!-- this adds an entry to the persistentMappings bean that maps client classes
(or interfaces) to their corresponding persisted objects -->
<addPersistentClassMapping key="com.jaspersoft.ji.adhoc.AdhocState"
value="com.jaspersoft.ji.adhoc.hibernate.RepoAdhocTableState"/>
<!-- this adds an entry to the persistentMappings bean that maps client classes
(or interfaces) to their corresponding persisted objects -->
<addPersistentClassMapping key="com.jaspersoft.ji.adhoc.AdhocTableState"
value="com.jaspersoft.ji.adhoc.hibernate.RepoAdhocTableState"/>
<!-- this adds an entry to the mappingResourceFactory bean that maps client interfaces
to their corresponding client implementations -->
<addClientClassMapping key="com.jaspersoft.ji.adhoc.AdhocReportUnit"
value="com.jaspersoft.ji.adhoc.AdhocReportUnitImpl"/>
<!-- adding an MVC JSP
(updates jasperserver-servlet.xml and applicationContext-security.xml)
Adds a new entry to the handlerMapping bean which maps URIs to their controllers,
and adds a new entry to the paramResolver bean which maps it to a jsp under WEB-INF/jsp.
If uri isn't set, it's assumed to be "/" + jsp + ".html"
* NOTE: uri currently ignored
If role is set, adds the uri to the filterInvocationInterceptor in
applicationContext-security.xml with the given role string.
This lets non-admins see the page. The roles string is a comma-separated
list of roles. Current roles are ROLE_USER, ROLE_ADMIN (default), and ROLE_ANONYMOUS. -->
<addJSP
jsp="olap/viewOlap"
uri="/olap/viewOlap.html"
controllerBean ="olapModelController"
roles="ROLE_USER,ROLE_ANONYMOUS"/>
<!-- adds a new filter to one of the filter chains defined in applicationContext-security.xml.
There are multiple filter chains, each for a different URL pattern.
filterBean is the name of the bean to insert.
before is the bean it should come before.
pattern lets us specify which filter chain. -->
<addFilter
filterBean="JILicenseFilter"
before="exceptionTranslationFilter"
pattern="/**"/>
<!-- add a message catalog to the messageSource bean. This name should refer to a properties file
somewhere on the classpath -->
<addMessageCatalog path="LicenseMessages"/>
<!-- eval a js expression on the given file to do any kind of tweak that isn't covered here
The file is read in and turned into the XML variable 'top' which represents
the top level node. You can include any number of expressions.-->
<evalOnFile path="WEB-INF/web.xml>
<expr>top.* += &lt;something/&gt;</expr>
</evalOnFile>
<!-- setting of properties
right now I'm only letting you do appCon.xml, jasperserver.servlet.xml, and appCon-security.xml
but I suppose I could do any file
-->
<setProperty file="servlet" bean="configurationBean" property="paginationPageSize" value="20"/>
<!-- add listener class to web.xml
-->
<addListener class="my.Listener"/>
<!-- add Spring bean filter to web.xml
-->
<addServletSpringFilter beanName="filterBean" urlPattern="/filtered_path/*"/>
</jiconfig>
*/
importPackage(java.io);
// keep comments and whitespace in
XML.ignoreComments = false;
XML.ignoreWhitespace = false;
function writeFile(path, contents) {
var fw = new FileWriter(path);
fw.write(contents);
fw.close();
}
function clobberDir(path) {
var dir = new File(path);
var list = dir.listFiles();
for (i in list) {
// gotta love JS syntax...
list[i]["delete"]();
}
dir["delete"]();
}
// this returns a list of files with the given extension
function getFilesByExtension(dir, ext) {
var filter = new FileFilter({ accept: function(f) { return f.name.endsWith("." + ext) }});
var files = new File(dir).listFiles(filter);
var paths = [];
for (var i in files) {
paths.push(files[i].path);
}
return paths;
}
function saveXML(xml, filename) {
writeFile(filename, xml.toXMLString());
}
// look up bean, then property, in a spring bean definition file
function beanProperty(root, beanName, propName) {
var prop = root.beansNS::bean.(@id == beanName).beansNS::property.(@name == propName);
// if not found, create it
if (prop.length() == 0) {
// print("root: " + root.toXMLString());
// print("bean " + beanName + ": " + root.bean.(@id == beanName).toXMLString());
var newChild = <property name={propName}/>;
newChild.setNamespace(beansNS);
root.beansNS::bean.(@id == beanName).appendChild(newChild);
prop = root.beansNS::bean.(@id == beanName).beansNS::property.(@name == propName);
}
return prop;
}
function debug(str) {
// print(str);
}
function printStackTrace(exp) {
if (exp == undefined) {
try {
exp.toString();
} catch (e) {
exp = e;
}
}
// note that user could have caught some other
// "exception"- may be even a string or number -
// and passed the same as argument. Also, check for
// rhinoException property before using it
if (exp instanceof Error &&
exp.rhinoException != undefined) {
exp.rhinoException.printStackTrace();
}
}
var beansNS = new Namespace("http://www.springframework.org/schema/beans");
var wsddNS = new Namespace("http://xml.apache.org/axis/wsdd/");
var noNS = new Namespace("");
var webapp = arguments[0];
var configPath = arguments[1];
var savePath; // = 'oldfiles';
// file locations
var appConFile = webapp + '/WEB-INF/applicationContext.xml';
var servletFile = webapp + '/WEB-INF/jasperserver-servlet.xml';
var webXmlFile = webapp + '/WEB-INF/web.xml';
var wsDeployFile = webapp + '/WEB-INF/server-config.wsdd';
// var securityFile = webapp + '/WEB-INF/applicationContext-security.xml';
// read in files to xml
var appCon = new XML(readFile(appConFile));
var servlet = new XML(readFile(servletFile));
var webXml = new XML(readFile(webXmlFile));
var wsDeploy = new XML(readFile(wsDeployFile));
// var security = new XML(readFile(securityFile));
try {
// save before tweaking if there is a savedir
// we can diff easier because the formatting will be the same
if (savePath) {
clobberDir(savePath);
var saveDir = new File(savePath);
saveDir.mkdir();
var a = savePath + "/" + new File(appConFile).name;
var b = savePath + "/" + new File(servletFile).name;
// var c = savePath + "/" + new File(securityFile).name;
saveXML(appCon, a);
saveXML(servlet, b);
// saveXML(security, c);
}
// file or dir?
var cfg = new File(configPath);
if (cfg.directory) {
configFiles = getFilesByExtension(configPath, 'xml');
} else {
configFiles = [ configPath ];
}
for (i in configFiles) {
var configFile = configFiles[i];
print ("processing config file: " + configFile);
// read in config to xml
var config = new XML(readFile(configFile));
// get list of hbm configs
var sessionMapperList =
beanProperty(appCon, 'sessionFactory', 'mappingResources').beansNS::list;
// get list of hbm configs we want to add and add them
var hclist = config.addHibernateConfig;
for (var hc in hclist) {
var newChild = <value>{hclist[hc].@hbmfile}</value>;
newChild.setNamespace(beansNS);
sessionMapperList.appendChild(newChild);
debug('adding hbm config ' + hclist[hc].@hbmfile);
}
// get list of client mappings
var clientClassMappings =
beanProperty(appCon, 'mappingResourceFactory', 'implementationClassMappings').beansNS::map;
// get list of mappings we want to add and add them
var ccmlist = config.addClientClassMapping;
for (var ccm in ccmlist) {
var newChild = <entry key={ccmlist[ccm].@key} value={ccmlist[ccm].@value}/>;
newChild.setNamespace(beansNS);
clientClassMappings.appendChild(newChild);
debug('adding client class mapping: ' + newChild);
}
// get list of persistent mappings
var persistentClassMappings =
beanProperty(appCon, 'persistentMappings', 'implementationClassMappings').beansNS::map;
// get list of mappings we want to add and add them
var pcmlist = config.addPersistentClassMapping;
for (var pcm in pcmlist) {
var newChild = <entry key={pcmlist[pcm].@key} value={pcmlist[pcm].@value}/>;
newChild.setNamespace(beansNS);
persistentClassMappings.appendChild(newChild);
debug('adding persistent class mapping: ' + newChild);
}
var handlerMappings = beanProperty(servlet, 'urlHandlerMapping', 'properties').beansNS::props;
var methodMappings = beanProperty(servlet, 'paramResolver', 'mappings').beansNS::props;
// get JSPs that we want to add
var newJSPs = config.addJSP;
for (i in newJSPs) {
var jsp = newJSPs[i];
debug('adding new jsp: ' + jsp);
// construct uri from jsp
var uri = '/' + jsp.@jsp + '.html';
var newHandlerMapping = <prop key={ uri }>{ jsp.@controllerBean } </prop>;
newHandlerMapping.setNamespace(beansNS);
handlerMappings.appendChild(newHandlerMapping);
var newMethodMapping = <prop key={ uri }>{ jsp.@jsp } </prop>;
newMethodMapping.setNamespace(beansNS);
methodMappings.appendChild(newMethodMapping);
// add role to filterInvocationInterceptor if present
/*
if (jsp.@role) {
var pageRolesDef = security.
beansNS::bean.(@id == 'filterInvocationInterceptor').
beansNS::property.(@name == 'objectDefinitionSource').beansNS::value;
var pageRoles = pageRolesDef.toString().split('\n');
// add new role before first pattern (contains '=')
for (i in pageRoles) {
if (pageRoles[i].indexOf('=') > -1) {
pageRoles.splice(i, 0, uri.toLowerCase() + '=' + jsp.@roles);
break;
}
}
// put roles together again, and put back into XML
pageRolesDef.* = pageRoles.join('\n');
}
*/
}
// add filter to filter chain in security
/*
var newFilters = config.addFilter;
for (i in newFilters) {
var newFilter = newFilters[i];
debug('adding new filter: ' + newFilter);
var filterDef = beanProperty(
security, 'filterChainProxy', 'filterInvocationDefinitionSource').beansNS::value;
var filters = filterDef.toString().split('\n');
// find filter with matching pattern, and insert new filter before desired location
for (i in filters) {
if (filters[i].indexOf(newFilter.@pattern + '=') > -1) {
var index = filters[i].indexOf(newFilter.@before);
if (index > -1) {
filters[i] =
filters[i].slice(0, index) +
newFilter.@filterBean + ',' +
filters[i].slice(index);
break;
}
}
}
// put filters together again, and put back into XML
filterDef.* = filters.join('\n');
}
*/
// add message catalogs to messageSource in appCon
var newCats = config.addMessageCatalog;
var msgCatList = beanProperty(appCon, 'messageSource', 'basenames').beansNS::list;
for (i in newCats) {
var newCat = newCats[i];
var newChild = <value>WEB-INF/bundles/{ newCat.@name }</value>;
newChild.setNamespace(beansNS);
msgCatList.appendChild(newChild);
}
// add internal catalogs to messageSource in appCon
var newIntCats = config.addInternalCatalog;
for (i in newIntCats) {
var newIntCat = newIntCats[i];
var newChild = <value>WEB-INF/internal/{ newIntCat.@name }</value>;
newChild.setNamespace(beansNS);
msgCatList.appendChild(newChild);
}
// generic updates of files (powerful but dangerous!)
for each (var ev in config.evalOnFile) {
var path = webapp + '/' + ev.@path;
var top = new XML(readFile(path));
if (savePath) {
var saveFile = savePath + "/" + new File(path).name;
saveXML(top, saveFile);
}
for each (var expr in ev.expr) {
try {
eval(expr.toString());
} catch (e) {
print('error evaluating ' + expr + ' in file ' + ev.@path);
print(e);
}
}
saveXML(top, path);
}
// generic updates of properties
for each (var setProp in config.setProperty) {
// should map to one of our files (appCon, servlet, security) or else it'll blow up
// TODO allow child element as value
// TODO generic adding things to lists, props, maps, etc.
if (setProp.@file.length() > 0) {
eval("var file = " + setProp.@file);
var prop = beanProperty(file, setProp.@bean, setProp.@property);
prop.@value = setProp.@value;
} else if (setProp.@path.length() > 0) {
var path = webapp + '/' + setProp.@path;
var file = new XML(readFile(path));
var prop = beanProperty(file, setProp.@bean, setProp.@property);
prop.@value = setProp.@value;
saveXML(file, path);
}
}
// web xml stuff, set default namespace correctly
default xml namespace = webXml.namespace();
// add listeners to web.xml, after first listener
for each (var addListener in config.noNS::addListener) {
var listenerNode = <listener>
<listener-class>{ addListener.@noNS::className } </listener-class>
</listener>;
if (addListener.@noNS::position == 'last') {
webXml.insertChildAfter(webXml.listener[webXml.listener.length() - 1], listenerNode);
} else {
webXml.insertChildBefore(webXml.listener[0], listenerNode);
}
}
// add filters to web.xml, after last filter
for each (var filter in config.noNS::addServletSpringFilter) {
var filterNode =
<filter>
<filter-name>{filter.@noNS::beanName}</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>;
var filterMappingNode =
<filter-mapping>
<filter-name>{filter.@noNS::beanName}</filter-name>
<url-pattern>{filter.@noNS::urlPattern}</url-pattern>
</filter-mapping>;
webXml.insertChildAfter(webXml.filter[webXml.filter.length() - 1], filterNode);
webXml.insertChildAfter(webXml.filter[webXml.filter.length() - 1], filterMappingNode);
}
// set web.xml context param
// only works if param's already there
for each (var setContextParam in config.noNS::setContextParam) {
for each(var p in webXml['context-param']) {
if (p['param-name'] == setContextParam.@noNS::name) {
p['param-value'] = setContextParam.@noNS::value;
break;
}
}
}
for each (var setServletClass in config.noNS::setServletClass) {
for each(var p in webXml['servlet']) {
if (p['servlet-name'] == setServletClass.@noNS::name) {
p['servlet-class'] = setServletClass.@noNS::className;
break;
}
}
}
for each (var addServlet in config.noNS::addServlet) {
webXml.appendChild( <servlet>
<servlet-name>{addServlet.@noNS::name}</servlet-name>
<servlet-class>{addServlet.@noNS::className}</servlet-class>
</servlet>);
webXml.appendChild( <servlet-mapping>
<servlet-name>{addServlet.@noNS::name}</servlet-name>
<url-pattern>{addServlet.@noNS::urlPattern}</url-pattern>
</servlet-mapping>);
}
//Web Services
default xml namespace = wsDeploy.namespace();
for each (var addService in config.noNS::addService) {
for each (var service in addService.wsddNS::service) {
wsDeploy.appendChild(service);
}
}
// reset
default xml namespace = "";
}
// write file
saveXML(appCon, appConFile);
saveXML(servlet, servletFile);
saveXML(webXml, webXmlFile);
saveXML(wsDeploy, wsDeployFile);
// saveXML(security, securityFile);
} catch (e) {
printStackTrace(e);
}

View File

@ -0,0 +1,45 @@
#
# Copyright © 2005 - 2018 TIBCO Software Inc.
# http://www.jaspersoft.com.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
### jboss specific settings
# jboss profile (also known as a jboss configuration: all, default, minimal, etc)
jboss.profile = default
# jboss 7 profile
jboss7.profile = standalone
### Glassfish specific settings
# Glassfish's asadmin path
asadminPath = ${fixedAppServerDir}/bin
# Glassfish domain name (default is domain1)
glassfishDomain=domain1
# Glassfish domain port (default is 4848), user (default is admin) and password.
# Uncomment and set up next parmeters if you install JasperServer to the custom Glassfish domain (not default)
#glassfishPort=4848
#glassfishUser=admin
#AS_ADMIN_PASSWORD=adminadmin
# set here JVM Options for Glassfish
glassfishJvmOpt=-Xms1024m:-Xmx2048m:-Xss2m:-XX\\:+UseConcMarkSweepGC:-Djavax.xml.soap.MessageFactory=org.apache.axis.soap.MessageFactoryImpl:-Djavax.xml.soap.SOAPConnectionFactory=org.apache.axis.soap.SOAPConnectionFactoryImpl:-Djavax.xml.soap.SOAPFactory=org.apache.axis.soap.SOAPFactoryImpl:-Dcom.sun.enterprise.overrideablejavaxpackages=javax.ws.rs,javax.ws.rs.core,javax.ws.rs.ext:-Dcom.sun.grizzly.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
# set here JVM Options for Glassfish which needs to be removed firstly
glassfishJvmOptForRemoving=-Xmx512m

View File

@ -0,0 +1,24 @@
<?xml version="1.0"?>
<!--
~ Copyright © 2005 - 2018 TIBCO Software Inc.
~ http://www.jaspersoft.com.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 Servlet 2.5//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_2_5-0.dtd">
<glassfish-web-app>
<context-root>@webAppName@</context-root>
<class-loader delegate="false"/>
</glassfish-web-app>

View File

@ -0,0 +1,33 @@
<!--
~ Copyright © 2005 - 2018 TIBCO Software Inc.
~ http://www.jaspersoft.com.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="metadata">
<property name="dialect">${hibernateDialect}</property>
<property name="show_sql">false</property>
<property name="format_sql">false</property>
</session-factory>
</hibernate-configuration>

View File

@ -0,0 +1,33 @@
<!--
~ Copyright © 2005 - 2018 TIBCO Software Inc.
~ http://www.jaspersoft.com.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>com.jaspersoft.jasperserver</groupId>
<artifactId>jdbc-dep</artifactId>
<packaging>pom</packaging>
<version>1.0</version>
<name>JDBC driver dependency wrapper</name>
<dependencies>
<dependency>
<groupId>${maven.jdbc.groupId}</groupId>
<artifactId>${maven.jdbc.artifactId}</artifactId>
<version>${maven.jdbc.version}</version>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,88 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright © 2005 - 2018 TIBCO Software Inc.
~ http://www.jaspersoft.com.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<!DOCTYPE resources PUBLIC "-//Sun Microsystems Inc.//DTD Application Server 9.0 Domain//EN" "*<install directory>/lib/dtds/sun-resources_1_3.dtd*">
<resources>
<jdbc-connection-pool
name="jasperserver_pool"
datasource-classname="${jdbcDataSourceClass}"
res-type="javax.sql.ConnectionPoolDataSource"
max-pool-size="50">
<property name="serverName" value="${dbHost}"/>
<property name="user" value="${js.dbUsername}"/>
<property name="password" value="${escapeXML:js.dbPassword}"/>
<property name="url" value="${js.jdbcUrl}"/>
<property name="databaseName" value="${js.dbName}"/>
<property name="driverType" value="${db2.driverType}"/>
<property name="portNumber" value="${dbPort}"/>
<property name="currentSchema" value="${js.dbName}"/>
<property name="fullyMaterializeLobData" value="${db2.fullyMaterializeLobData}"/>
<property name="fullyMaterializeInputStreams" value="${db2.fullyMaterializeInputStreams}"/>
<property name="progressiveStreaming" value="${db2.progressiveStreaming}"/>
<property name="progresssiveLocators" value="${db2.progresssiveLocators}"/>
<property name="JDBC30DataSource" value="true"/>
<property name="AlternateID" value="${js.dbName}"/>
</jdbc-connection-pool>
<jdbc-resource enabled="true" jndi-name="${js.jndi}" object-type="user" pool-name="jasperserver_pool"/>
<jdbc-connection-pool
name="sugarcrm_pool"
datasource-classname="${jdbcDataSourceClass}"
res-type="javax.sql.ConnectionPoolDataSource"
max-pool-size="50">
<property name="serverName" value="${dbHost}"/>
<property name="user" value="${sugarcrm.dbUsername}"/>
<property name="password" value="${escapeXML:sugarcrm.dbPassword}"/>
<property name="url" value="${sugarcrm.jdbcUrl}"/>
<property name="databaseName" value="${sugarcrm.dbName}"/>
<property name="driverType" value="${db2.driverType}"/>
<property name="portNumber" value="${dbPort}"/>
<property name="currentSchema" value="${sugarcrm.dbName}"/>
<property name="JDBC30DataSource" value="true"/>
<property name="AlternateID" value="${sugarcrm.dbName}"/>
</jdbc-connection-pool>
<jdbc-resource enabled="true" jndi-name="${sugarcrm.jndi}" object-type="user" pool-name="sugarcrm_pool"/>
<jdbc-connection-pool
name="foodmart_pool"
datasource-classname="${jdbcDataSourceClass}"
res-type="javax.sql.ConnectionPoolDataSource"
max-pool-size="50">
<property name="serverName" value="${dbHost}"/>
<property name="user" value="${foodmart.dbUsername}"/>
<property name="password" value="${escapeXML:foodmart.dbPassword}"/>
<property name="url" value="${foodmart.jdbcUrl}"/>
<property name="databaseName" value="${foodmart.dbName}"/>
<property name="driverType" value="${db2.driverType}"/>
<property name="portNumber" value="${dbPort}"/>
<property name="currentSchema" value="${foodmart.dbName}"/>
<property name="JDBC30DataSource" value="true"/>
<property name="AlternateID" value="${foodmart.dbName}"/>
</jdbc-connection-pool>
<jdbc-resource enabled="true" jndi-name="${foodmart.jndi}" object-type="user" pool-name="foodmart_pool"/>
</resources>

View File

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright © 2005 - 2018 TIBCO Software Inc.
~ http://www.jaspersoft.com.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<!DOCTYPE resources PUBLIC "-//Sun Microsystems Inc.//DTD Application Server 9.0 Domain//EN" "*<install directory>/lib/dtds/sun-resources_1_3.dtd*">
<resources>
<jdbc-connection-pool
name="jasperserver_pool"
datasource-classname="${jdbcDataSourceClass}"
res-type="javax.sql.ConnectionPoolDataSource"
max-pool-size="50">
<property name="serverName" value="${dbHost}"/>
<property name="user" value="${js.dbUsername}"/>
<property name="password" value="${escapeXML:js.dbPassword}"/>
<property name="url" value="${js.jdbcUrl}"/>
<property name="databaseName" value="${js.dbName}"/>
<property name="JDBC30DataSource" value="true"/>
</jdbc-connection-pool>
<jdbc-resource enabled="true" jndi-name="${js.jndi}" object-type="user" pool-name="jasperserver_pool"/>
<jdbc-connection-pool
name="sugarcrm_pool"
datasource-classname="${jdbcDataSourceClass}"
res-type="javax.sql.ConnectionPoolDataSource"
max-pool-size="50">
<property name="serverName" value="${dbHost}"/>
<property name="user" value="${sugarcrm.dbUsername}"/>
<property name="password" value="${escapeXML:sugarcrm.dbPassword}"/>
<property name="url" value="${sugarcrm.jdbcUrl}"/>
<property name="databaseName" value="${sugarcrm.dbName}"/>
<property name="portNumber" value="${dbPort}"/>
<property name="JDBC30DataSource" value="true"/>
</jdbc-connection-pool>
<jdbc-resource enabled="true" jndi-name="${sugarcrm.jndi}" object-type="user" pool-name="sugarcrm_pool"/>
<jdbc-connection-pool
name="foodmart_pool"
datasource-classname="${jdbcDataSourceClass}"
res-type="javax.sql.ConnectionPoolDataSource"
max-pool-size="50">
<property name="serverName" value="${dbHost}"/>
<property name="user" value="${foodmart.dbUsername}"/>
<property name="password" value="${escapeXML:foodmart.dbPassword}"/>
<property name="url" value="${foodmart.jdbcUrl}"/>
<property name="databaseName" value="${foodmart.dbName}"/>
<property name="portNumber" value="${dbPort}"/>
<property name="JDBC30DataSource" value="true"/>
</jdbc-connection-pool>
<jdbc-resource enabled="true" jndi-name="${foodmart.jndi}" object-type="user" pool-name="foodmart_pool"/>
</resources>

View File

@ -0,0 +1,85 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright © 2005 - 2018 TIBCO Software Inc.
~ http://www.jaspersoft.com.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<!DOCTYPE resources PUBLIC "-//Sun Microsystems Inc.//DTD Application Server 9.0 Domain//EN" "*<install directory>/lib/dtds/sun-resources_1_3.dtd*">
<resources>
<jdbc-connection-pool
name="jasperserver_pool"
datasource-classname="${jdbcDataSourceClass}"
res-type="javax.sql.ConnectionPoolDataSource"
max-pool-size="50">
<property name="serverName" value="${dbHost}"/>
<property name="user" value="${js.dbUsername}"/>
<property name="password" value="${escapeXML:js.dbPassword}"/>
<property name="url" value="${js.jdbcUrl}&amp;user=${js.dbUsername}&amp;password=${escapeXML:js.dbPassword}"/>
<property name="databaseName" value="${js.dbName}"/>
<property name="driverType" value="${db2.driverType}"/>
<property name="portNumber" value="${dbPort}"/>
<property name="currentSchema" value="${js.dbName}"/>
<property name="fullyMaterializeLobData" value="${db2.fullyMaterializeLobData}"/>
<property name="fullyMaterializeInputStreams" value="${db2.fullyMaterializeInputStreams}"/>
<property name="progressiveStreaming" value="${db2.progressiveStreaming}"/>
<property name="progresssiveLocators" value="${db2.progresssiveLocators}"/>
<property name="JDBC30DataSource" value="true"/>
</jdbc-connection-pool>
<jdbc-resource enabled="true" jndi-name="${js.jndi}" object-type="user" pool-name="jasperserver_pool"/>
<jdbc-connection-pool
name="sugarcrm_pool"
datasource-classname="${jdbcDataSourceClass}"
res-type="javax.sql.ConnectionPoolDataSource"
max-pool-size="50">
<property name="serverName" value="${dbHost}"/>
<property name="user" value="${sugarcrm.dbUsername}"/>
<property name="password" value="${escapeXML:sugarcrm.dbPassword}"/>
<property name="url" value="${sugarcrm.jdbcUrl}&amp;user=${sugarcrm.dbUsername}&amp;password=${escapeXML:sugarcrm.dbPassword}"/>
<property name="databaseName" value="${sugarcrm.dbName}"/>
<property name="driverType" value="${db2.driverType}"/>
<property name="portNumber" value="${dbPort}"/>
<property name="currentSchema" value="${sugarcrm.dbName}"/>
<property name="JDBC30DataSource" value="true"/>
</jdbc-connection-pool>
<jdbc-resource enabled="true" jndi-name="${sugarcrm.jndi}" object-type="user" pool-name="sugarcrm_pool"/>
<jdbc-connection-pool
name="foodmart_pool"
datasource-classname="${jdbcDataSourceClass}"
res-type="javax.sql.ConnectionPoolDataSource"
max-pool-size="50">
<property name="serverName" value="${dbHost}"/>
<property name="user" value="${foodmart.dbUsername}"/>
<property name="password" value="${escapeXML:foodmart.dbPassword}"/>
<property name="url" value="${foodmart.jdbcUrl}&amp;user=${foodmart.dbUsername}&amp;password=${escapeXML:foodmart.dbPassword}"/>
<property name="databaseName" value="${foodmart.dbName}"/>
<property name="driverType" value="${db2.driverType}"/>
<property name="portNumber" value="${dbPort}"/>
<property name="currentSchema" value="${foodmart.dbName}"/>
<property name="JDBC30DataSource" value="true"/>
</jdbc-connection-pool>
<jdbc-resource enabled="true" jndi-name="${foodmart.jndi}" object-type="user" pool-name="foodmart_pool"/>
</resources>

View File

@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright © 2005 - 2018 TIBCO Software Inc.
~ http://www.jaspersoft.com.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<!DOCTYPE resources PUBLIC "-//Sun Microsystems Inc.//DTD Application Server 9.0 Domain//EN" "*<install directory>/lib/dtds/sun-resources_1_3.dtd*">
<resources>
<jdbc-connection-pool
name="jasperserver_pool"
datasource-classname="${jdbcDataSourceClass}"
res-type="javax.sql.ConnectionPoolDataSource"
max-pool-size="50">
<property name="serverName" value="${dbHost}"/>
<property name="user" value="${js.dbUsername}"/>
<property name="password" value="${escapeXML:js.dbPassword}"/>
<property name="url" value="${js.jdbcUrl}"/>
<property name="${sidOrSnParam}" value="${sidOrSnValue}"/>
<property name="portNumber" value="${dbPort}"/>
<property name="JDBC30DataSource" value="true"/>
</jdbc-connection-pool>
<jdbc-resource enabled="true" jndi-name="${js.jndi}" object-type="user" pool-name="jasperserver_pool"/>
<jdbc-connection-pool
name="sugarcrm_pool"
datasource-classname="${jdbcDataSourceClass}"
res-type="javax.sql.ConnectionPoolDataSource"
max-pool-size="50">
<property name="serverName" value="${dbHost}"/>
<property name="user" value="${sugarcrm.dbUsername}"/>
<property name="password" value="${escapeXML:sugarcrm.dbPassword}"/>
<property name="url" value="${sugarcrm.jdbcUrl}"/>
<property name="${sidOrSnParam}" value="${sidOrSnValue}"/>
<property name="CatalogOptions" value="0"/>
<property name="portNumber" value="${dbPort}"/>
<property name="JDBC30DataSource" value="true"/>
</jdbc-connection-pool>
<jdbc-resource enabled="true" jndi-name="${sugarcrm.jndi}" object-type="user" pool-name="sugarcrm_pool"/>
<jdbc-connection-pool
name="foodmart_pool"
datasource-classname="${jdbcDataSourceClass}"
res-type="javax.sql.ConnectionPoolDataSource"
max-pool-size="50">
<property name="serverName" value="${dbHost}"/>
<property name="user" value="${foodmart.dbUsername}"/>
<property name="password" value="${escapeXML:foodmart.dbPassword}"/>
<property name="url" value="${foodmart.jdbcUrl}"/>
<property name="${sidOrSnParam}" value="${sidOrSnValue}"/>
<property name="portNumber" value="${dbPort}"/>
<property name="CatalogOptions" value="0"/>
<property name="JDBC30DataSource" value="true"/>
</jdbc-connection-pool>
<jdbc-resource enabled="true" jndi-name="${foodmart.jndi}" object-type="user" pool-name="foodmart_pool"/>
</resources>

View File

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright © 2005 - 2018 TIBCO Software Inc.
~ http://www.jaspersoft.com.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<datasources>
<local-tx-datasource>
<jndi-name>${js.jndi}</jndi-name>
<connection-url>${js.jdbcUrl}</connection-url>
<driver-class>${jdbcDriverClass}</driver-class>
<user-name>${js.dbUsername}</user-name>
<password>${escapeXML:js.dbPassword}</password>
<min-pool-size>5</min-pool-size>
<max-pool-size>50</max-pool-size>
<idle-timeout-minutes>30</idle-timeout-minutes>
</local-tx-datasource>
<local-tx-datasource>
<jndi-name>${sugarcrm.jndi}</jndi-name>
<connection-url>${sugarcrm.jdbcUrl}</connection-url>
<driver-class>${jdbcDriverClass}</driver-class>
<user-name>${sugarcrm.dbUsername}</user-name>
<password>${escapeXML:sugarcrm.dbPassword}</password>
<min-pool-size>5</min-pool-size>
<max-pool-size>50</max-pool-size>
<idle-timeout-minutes>30</idle-timeout-minutes>
</local-tx-datasource>
<local-tx-datasource>
<jndi-name>${foodmart.jndi}</jndi-name>
<connection-url>${foodmart.jdbcUrl}</connection-url>
<driver-class>${jdbcDriverClass}</driver-class>
<user-name>${foodmart.dbUsername}</user-name>
<password>${escapeXML:foodmart.dbPassword}</password>
<min-pool-size>5</min-pool-size>
<max-pool-size>50</max-pool-size>
<idle-timeout-minutes>30</idle-timeout-minutes>
</local-tx-datasource>
</datasources>

View File

@ -0,0 +1,104 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright © 2005 - 2018 TIBCO Software Inc.
~ http://www.jaspersoft.com.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<datasources>
<!--
http://bugzilla.jaspersoft.com/show_bug.cgi?id=24621
2013-09-25 thorick
A couple of surprising facts about JBoss EAP6/AS7 'IronJacamar'
Connection Pools:
1. no matter what you specify for <validate-in-match> it is forced to 'TRUE' at runtime
2. if you have validation on (and it's ALWAYS on by #1 above)
you MUST provide a validation mechanism,
if you DO NOT, then once the Connections are gone,
they are never coming back, even when the DBMS service is restored.
For JBoss we choose SQL Statement validation.
We set <validate-on-match> to true for clarity (setting it to 'false' will not actually set it to false).
Also: if you do not specify a max pool size, the default value is apparently 20.
-->
<datasource jta="false" jndi-name="java:/${js.jndi}" pool-name="${js.dbName}" enabled="true" use-ccm="false">
<connection-url>${js.jdbcUrl}</connection-url>
<driver>${maven.jdbc.artifactId}-${maven.jdbc.version}.jar</driver>
<security>
<user-name>${js.dbUsername}</user-name>
<password>${escapeXML:js.dbPassword}</password>
</security>
<pool>
<min-pool-size>5</min-pool-size>
<max-pool-size>50</max-pool-size>
<prefill>true</prefill>
</pool>
<validation>
<validate-on-match>false</validate-on-match>
<background-validation>false</background-validation>
<check-valid-connection-sql>${jdbcTestTableQuery}</check-valid-connection-sql>
</validation>
<statement>
<share-prepared-statements>false</share-prepared-statements>
</statement>
</datasource>
<datasource jta="false" jndi-name="java:/${foodmart.jndi}" pool-name="${foodmart.dbName}" enabled="true" use-ccm="false">
<connection-url>${foodmart.jdbcUrl}</connection-url>
<driver>${maven.jdbc.artifactId}-${maven.jdbc.version}.jar</driver>
<security>
<user-name>${foodmart.dbUsername}</user-name>
<password>${escapeXML:foodmart.dbPassword}</password>
</security>
<pool>
<min-pool-size>5</min-pool-size>
<max-pool-size>50</max-pool-size>
<prefill>true</prefill>
</pool>
<validation>
<validate-on-match>false</validate-on-match>
<background-validation>false</background-validation>
<check-valid-connection-sql>${jdbcTestTableQuery}</check-valid-connection-sql>
</validation>
<statement>
<share-prepared-statements>false</share-prepared-statements>
</statement>
</datasource>
<datasource jta="false" jndi-name="java:/${sugarcrm.jndi}" pool-name="${sugarcrm.dbName}" enabled="true" use-ccm="false">
<connection-url>${sugarcrm.jdbcUrl}</connection-url>
<driver>${maven.jdbc.artifactId}-${maven.jdbc.version}.jar</driver>
<security>
<user-name>${sugarcrm.dbUsername}</user-name>
<password>${escapeXML:sugarcrm.dbPassword}</password>
</security>
<pool>
<min-pool-size>5</min-pool-size>
<max-pool-size>50</max-pool-size>
<prefill>true</prefill>
</pool>
<validation>
<validate-on-match>false</validate-on-match>
<background-validation>false</background-validation>
<check-valid-connection-sql>${jdbcTestTableQuery}</check-valid-connection-sql>
</validation>
<statement>
<share-prepared-statements>false</share-prepared-statements>
</statement>
</datasource>
</datasources>

View File

@ -0,0 +1,24 @@
#!/bin/sh
# Usage example:
# ./js-mvn verify -o
# ./js-mvn verify -projects=:adhoc-integration-test -o
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
export MAVEN_OPTS="-Xms128m -Xmx512m"
MVN_RUN=mvn
CMD_LINE_ARGS=$*
$MVN_RUN -s ${currentConf}/maven_settings.xml -DskipUnitTestDir $CMD_LINE_ARGS
# ant fix-webapp-name
# Coping war folder to installer location
echo "Buildomatic war folders maybe outdated"
echo " ${warDir}/${webAppNameSrcCE}"
echo " ${warDir}/${webAppNameSrcPro}"
echo "Pro tip: To deploy webapp use 'ant copy-pro-war deploy-webapp-pro'"

View File

@ -0,0 +1,31 @@
#
# Copyright © 2005 - 2018 TIBCO Software Inc.
# http://www.jaspersoft.com.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
# Enable or disable creation and updates to AWS RDS and Redshift DB Security Groups.
aws.db.security.group.changes.enabled=${aws.db.security.group.changes.enabled}
# DB Security Group Name. This name will be used as the basis for the JRS server instance DB Security Group name. You must update it to be UNIQUE in the list of
# DB Security Groups, only if the JRS server instance is running outside of AWS EC2. If JRS will run on EC2, then the instance id will be added to make it unique.
aws.db.security.group.name=${aws.db.security.group.name}
aws.db.security.group.description=${aws.db.security.group.description}
# Ingress Public Ip address that will be added in the DB Security Group to grant access to target DB instance(s).
aws.db.security.group.ingressPublicIp=${aws.db.security.group.ingressPublicIp}
# Property, that control whether to suppress Warning if IAM role not properly configured in EC2 environment
aws.db.security.group.suppressEc2CredentialsWarnings=${aws.db.security.group.suppressEc2CredentialsWarnings}

View File

@ -0,0 +1,68 @@
#
# Copyright © 2005 - 2018 TIBCO Software Inc.
# http://www.jaspersoft.com.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
# enable or disable auditing monitoring feature
feature.audit_monitoring.enabled=${jrs.config.enable.audit_monitoring}
# Enable or disable Auditing
audit.records.enabled=${jrs.config.enable.audit.records}
# Enable or disable Monitoring
monitoring.records.enabled=${jrs.config.enable.monitoring.records}
# Enable or disable HeartBeat
heartbeat.enabled=${jrs.config.enable.heartbeat}
heartbeat.askForPermission.enabled=${jrs.config.enable.heartbeat.askForPermission}
heartbeat.permissionGranted.enabled=${jrs.config.enable.heartbeat.permissionGranted}
# Max upload file size across application in bytes
# -1 - size not limited
file.upload.max.size=-1
# Control default value of javascript optimization in runtime
javascript.optimize=${optimize.javascript}
# Path to PhantomJS executable, required for dashboard export
# Example: phantomjs.binary=/usr/bin/phantomjs
phantomjs.binary=${headless.browser}
# Base url of the server, accessible by local browser
# Used for Dashboard export and Scheduling
# By default, it is determined from request, set this property in order to work with scheduled
# jobs without logging in even once or to use some custom URL
# Example: deploy.base.local.url=http://localhost:8080/jasperserver-pro
deploy.base.local.url=
# Control links in hypermedia documents
# for example: deploy.base.url=http://bi.example.com
# right now works only for home page
# if empty then use request url
deploy.base.url=
## New external auth tenant creation: user config
new.tenant.user.name.1=jasperadmin
new.tenant.user.fullname.1=jasperadmin
# To encrypt the user password, set new.tenant.user.password.1=${tenant.user.pass} here.
# Then, in master properties, uncomment encrypt=true, set tenant.user.pass=<Your Password> and
# propsToEncrypt=tenant.user.pass. Run in buildomatic folder: ant refresh-config. Find the encrypted
# password in buildomatic master.properties and in /build_conf/default/js.config.properties
new.tenant.user.password.1=jasperadmin
new.tenant.user.email.1=
# Repo FTP access
ftp.enabled=${ftp.enabled}

View File

@ -0,0 +1,24 @@
#
# Copyright © 2005 - 2018 TIBCO Software Inc.
# http://www.jaspersoft.com.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
#Diagnostic default remote access configuration
diagnostic.usePlatformJMXServer = ${diagnostic.jmx.usePlatformServer}
diagnostic.port = ${diagnostic.jmx.port}
diagnostic.name = ${diagnostic.jmx.name}
diagnostic.rmiHost = ${diagnostic.jmx.rmiHost}

View File

@ -0,0 +1,28 @@
#
# Copyright © 2005 - 2018 TIBCO Software Inc.
# http://www.jaspersoft.com.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
# External authentication properties that can be configured via
# the master.properties file
external.jdbc.driverClassName=${external.jdbcDriverClass}
external.jdbc.url=${external.jdbcUrl}
external.jdbc.username=${external.dbUsername}
external.jdbc.password=${external.dbPassword}
external.ldap.url=${external.ldapUrl}
external.ldap.username=${external.ldapDn}
external.ldap.password=${external.ldapPassword}

View File

@ -0,0 +1,78 @@
#
# Copyright © 2005 - 2018 TIBCO Software Inc.
# http://www.jaspersoft.com.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
# Property that determines the Hibernate dialect
metadata.hibernate.dialect=${hibernateDialect}
# jasperserver repo db settings
metadata.jdbc.driverClassName=${jdbcDriverClass}
metadata.jdbc.url=${js.jdbcUrl}
metadata.jdbc.username=${dbUsername}
metadata.jdbc.password=${dbPassword}
metadata.jdbc.password.escapeXML=${escapeXML:dbPassword}
metadata.jndi=${js.jndi}
metadata.database.generate=true
# foodmart db settings
foodmart.jdbc.driverClassName=${jdbcDriverClass}
foodmart.jdbc.url=${foodmart.jdbcUrl}
foodmart.jdbc.username=${foodmart.dbUsername}
foodmart.jdbc.password=${foodmart.dbPassword}
foodmart.jdbc.password.escapeXML=${escapeXML:foodmart.dbPassword}
foodmart.jndi=${foodmart.jndi}
# sugarcrm db settings
sugarcrm.jdbc.driverClassName=${jdbcDriverClass}
sugarcrm.jdbc.url=${sugarcrm.jdbcUrl}
sugarcrm.jdbc.username=${sugarcrm.dbUsername}
sugarcrm.jdbc.password=${sugarcrm.dbPassword}
sugarcrm.jdbc.password.escapeXML=${escapeXML:sugarcrm.dbPassword}
sugarcrm.jndi=${sugarcrm.jndi}
# sugarcrm is also referenced as test in unit tests
test.jdbc.driverClassName=${jdbcDriverClass}
test.jdbc.url=${sugarcrm.jdbcUrl}
test.jdbc.username=${sugarcrm.dbUsername}
test.jdbc.password=${sugarcrm.dbPassword}
test.jdbc.password.escapeXML=${escapeXML:sugarcrm.dbPassword}
test.jndi=${sugarcrm.jndi}
# flag used to skip some unit tests or to use uppercase schema files
test.databaseFlavor=${dbType}
test.createMinimalData=${test.set.createMinimalData}
foodmart.upperCaseNames=${test.foodmart.upperCaseNames}
sugarcrm.upperCaseNames=${test.sugarcrm.upperCaseNames}
# used to add parms to tomcat datasource: context.xml
# todo: still used?
datasource.extra.params=
# Tomcat JNDI Resource factory attribute
tomcat.basic.datasource.factory=${tomcatBasicDatasourceFactory}
# jasperserver repo DB for Integration Testing
it.metadata.jdbc.driverClassName=${jdbcDriverClass}
it.metadata.jdbc.url=${js.it.jdbcUrl}
it.metadata.jdbc.username=${dbUsername}
it.metadata.jdbc.password=${dbPassword}
it.metadata.jdbc.password.escapeXML=${escapeXML:dbPassword}

View File

@ -0,0 +1,59 @@
#
# Copyright © 2005 - 2018 TIBCO Software Inc.
# http://www.jaspersoft.com.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
# This file will consolidate all the configurable quartz properties
#
# Other properties which didn't need configuration are kept in js.quartz.base.properties
quartz.delegateClass=${quartz.delegateClass}
quartz.tablePrefix=${quartz.tablePrefix}
#value would be one of the following
#SMART_POLICY
#MISFIRE_INSTRUCTION_FIRE_NOW
#MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY
report.quartz.misfirepolicy.singlesimplejob=SMART_POLICY
#value would be one of the following
#SMART_POLICY
#MISFIRE_INSTRUCTION_FIRE_NOW
#MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY
#MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_EXISTING_COUNT
#MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT
#MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT
#MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_REMAINING_REPEAT_COUNT
report.quartz.misfirepolicy.repeatingsimplejob=SMART_POLICY
#value would be one of the following
#SMART_POLICY
#MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY
#MISFIRE_INSTRUCTION_FIRE_ONCE_NOW
#MISFIRE_INSTRUCTION_DO_NOTHING
report.quartz.misfirepolicy.calendarjob=SMART_POLICY
quartz.extraSettings=
report.scheduler.web.deployment.uri=${quartz.web.deployment.uri}
report.scheduler.mail.sender.host=${quartz.mail.sender.host}
report.scheduler.mail.sender.username=${quartz.mail.sender.username}
report.scheduler.mail.sender.password=${quartz.mail.sender.password}
report.scheduler.mail.sender.from=${quartz.mail.sender.from}
report.scheduler.mail.sender.protocol=${quartz.mail.sender.protocol}
report.scheduler.mail.sender.port=${quartz.mail.sender.port}

View File

@ -0,0 +1,195 @@
<!--
~ Copyright © 2005 - 2018 TIBCO Software Inc.
~ http://www.jaspersoft.com.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<settings>
<offline>${maven.offline}</offline>
<localRepository>${maven-localrepo-path}</localRepository>
<profiles>
<profile>
<id>JasperServerProfile</id>
<properties>
<repository.database.driver.groupId>${maven.jdbc.groupId}</repository.database.driver.groupId>
<repository.database.driver.artifactId>${maven.jdbc.artifactId}</repository.database.driver.artifactId>
<repository.database.driver.version>${maven.jdbc.version}</repository.database.driver.version>
<js.quartz.properties>${currentConf}/js.quartz.properties</js.quartz.properties>
<js.quartz.base.properties>${currentConf}/js.quartz.base.properties</js.quartz.base.properties>
<js.quartz.script>${js-base-path}/scripts/quartz/${quartz.ddlScript}</js.quartz.script>
<metadata.database.generate>false</metadata.database.generate>
<suppress.quartz.init>true</suppress.quartz.init>
<js-path>${js-path}</js-path>
<js-pro-path>${js-pro-path}</js-pro-path>
<jasperserver-repo>file:/${repo-path}</jasperserver-repo> <!-- used for jpivot bld only -->
<platform-path>${currentConf}</platform-path>
<test.hibernate.cfg>${currentConf}/hibernate.cfg.xml</test.hibernate.cfg>
<test.hibernate.jdbc.properties>${currentConf}/js.jdbc.properties</test.hibernate.jdbc.properties>
<master.properties>${masterPropsSource}</master.properties>
<!-- workaround src w/o tibco drivers -->
<tibco.driver.available>false</tibco.driver.available>
<SKIP_TEST_ARG>skipTests</SKIP_TEST_ARG>
<disable.fafj>false</disable.fafj>
</properties>
<repositories>
<repository>
<id>JBoss</id>
<url>https://repository.jboss.org/nexus/content/groups/public</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>jaspersoft-external-addons</id>
<url>http://jaspersoft.jfrog.io/jaspersoft/jrs-ce-addons-releases</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>jaspersoft-external-addons-snapshots</id>
<url>http://jaspersoft.jfrog.io/jaspersoft/jrs-ce-addons-snapshots</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</repository>
<repository>
<id>jaspersoft-js-modules</id>
<url>http://jaspersoft.jfrog.io/jaspersoft/jrs-ce-js-modules</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>jaspersoft-external-third-party</id>
<url>http://jaspersoft.jfrog.io/jaspersoft/third-party-ce-artifacts</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>jasperreports-snapshots</id>
<url>http://jaspersoft.jfrog.io/jaspersoft/jr-ce-snapshots/</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</repository>
<repository>
<id>jasperreports-releases</id>
<url>http://jaspersoft.jfrog.io/jaspersoft/jr-ce-releases</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>jboss-eap-alpha</id>
<name>JBoss EAP 6.3.0.Alpha</name>
<url>https://maven.repository.redhat.com/earlyaccess/all/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>Repo1 Maven</id>
<url>http://repo1.maven.org/maven2/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>SpringSource</id>
<url>http://repo.springsource.org/release</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>Google</id>
<url>http://z-os.googlecode.com/svn/release-repository/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>jaspersoft-3rd-party</id>
<url>http://jaspersoft.jfrog.io/jaspersoft/jaspersoft-3rd-party</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>cloudera-repo-releases</id>
<url>https://repository.cloudera.com/artifactory/repo/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>jaspersoft-external-third-party</id>
<url>http://jaspersoft.jfrog.io/jaspersoft/third-party-ce-artifacts</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>JasperServerProfile</activeProfile>
</activeProfiles>
</settings>

View File

@ -0,0 +1,59 @@
<!--
~ Copyright © 2005 - 2018 TIBCO Software Inc.
~ http://www.jaspersoft.com.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<settings>
<offline>${maven.offline}</offline>
<localRepository>${maven-localrepo-path}</localRepository>
<profiles>
<profile>
<id>JasperServerProfile</id>
<properties>
<repository.database.driver.groupId>${maven.jdbc.groupId}</repository.database.driver.groupId>
<repository.database.driver.artifactId>${maven.jdbc.artifactId}</repository.database.driver.artifactId>
<repository.database.driver.version>${maven.jdbc.version}</repository.database.driver.version>
<js.quartz.properties>${currentConf}/js.quartz.properties</js.quartz.properties>
<js.quartz.base.properties>${currentConf}/js.quartz.base.properties</js.quartz.base.properties>
<js.quartz.script>${js-base-path}/scripts/quartz/${quartz.ddlScript}</js.quartz.script>
<js.db.script.path>${currentSqlDir}</js.db.script.path>
<metadata.database.generate>false</metadata.database.generate>
<suppress.quartz.init>true</suppress.quartz.init>
<js-path>${js-path}</js-path>
<js-pro-path>${js-pro-path}</js-pro-path>
<jasperserver-repo>file:/${repo-path}</jasperserver-repo> <!-- used for jpivot bld only -->
<platform-path>${currentConf}</platform-path>
<test.hibernate.cfg>${currentConf}/hibernate.cfg.xml</test.hibernate.cfg>
<test.hibernate.jdbc.properties>${currentConf}/js.jdbc.properties</test.hibernate.jdbc.properties>
<master.properties>${masterPropsSource}</master.properties>
<!-- workaround src w/o tibco drivers -->
<tibco.driver.available>false</tibco.driver.available>
<SKIP_TEST_ARG>skipTests</SKIP_TEST_ARG>
<disable.fafj>${disable.fafj}</disable.fafj>
</properties>
<repositories>
<!-- custom repositories definition -->
</repositories>
<pluginRepositories>
<!-- custom pluginRepositories definition -->
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>JasperServerProfile</activeProfile>
</activeProfiles>
<!-- custom configurations -->
</settings>

View File

@ -0,0 +1,87 @@
<!--
~ Copyright © 2005 - 2018 TIBCO Software Inc.
~ http://www.jaspersoft.com.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<settings>
<offline>${maven.offline}</offline>
<localRepository>${maven-localrepo-path}</localRepository>
<profiles>
<profile>
<id>JasperServerProfile</id>
<properties>
<repository.database.driver.groupId>${maven.jdbc.groupId}</repository.database.driver.groupId>
<repository.database.driver.artifactId>${maven.jdbc.artifactId}</repository.database.driver.artifactId>
<repository.database.driver.version>${maven.jdbc.version}</repository.database.driver.version>
<js.quartz.properties>${currentConf}/js.quartz.properties</js.quartz.properties>
<js.quartz.base.properties>${currentConf}/js.quartz.base.properties</js.quartz.base.properties>
<js.quartz.script>${js-base-path}/scripts/quartz/${quartz.ddlScript}</js.quartz.script>
<js.db.script.path>${currentSqlDir}</js.db.script.path>
<metadata.database.generate>false</metadata.database.generate>
<suppress.quartz.init>true</suppress.quartz.init>
<js-path>${js-path}</js-path>
<js-pro-path>${js-pro-path}</js-pro-path>
<platform-path>${currentConf}</platform-path>
<test.hibernate.cfg>${currentConf}/hibernate.cfg.xml</test.hibernate.cfg>
<test.hibernate.jdbc.properties>${currentConf}/js.jdbc.properties</test.hibernate.jdbc.properties>
<master.properties>${masterPropsSource}</master.properties>
<!-- workaround src w/o tibco drivers -->
<tibco.driver.available>${tibco.driver.available}</tibco.driver.available>
<SKIP_TEST_ARG>${SKIP_TEST_ARG}</SKIP_TEST_ARG>
<disable.fafj>${disable.fafj}</disable.fafj>
</properties>
</profile>
<profile>
<repositories>
<repository>
<id>jaspersoft-central</id>
<name>repo</name>
<url>${mvn-mirror}</url>
<snapshots>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>jaspersoft-central</id>
<name>repo</name>
<url>${mvn-mirror}</url>
</pluginRepository>
</pluginRepositories>
<id>jaspersoft-central</id>
</profile>
</profiles>
<mirrors>
<mirror>
<mirrorOf>*</mirrorOf>
<name>repo</name>
<url>${mvn-mirror}</url>
<id>repo</id>
</mirror>
</mirrors>
<activeProfiles>
<activeProfile>JasperServerProfile</activeProfile>
<activeProfile>jaspersoft-central</activeProfile>
</activeProfiles>
<servers>
<server>
<id>myserver</id>
<username>tomcat</username>
<password>tomcat</password>
</server>
</servers>
</settings>

View File

@ -0,0 +1,146 @@
<!--
~ Copyright © 2005 - 2018 TIBCO Software Inc.
~ http://www.jaspersoft.com.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<settings>
<offline>${maven.offline}</offline>
<localRepository>${maven-localrepo-path}</localRepository>
<profiles>
<profile>
<id>JasperServerProfile</id>
<properties>
<repository.database.driver.groupId>${maven.jdbc.groupId}</repository.database.driver.groupId>
<repository.database.driver.artifactId>${maven.jdbc.artifactId}</repository.database.driver.artifactId>
<repository.database.driver.version>${maven.jdbc.version}</repository.database.driver.version>
<js.quartz.properties>${currentConf}/js.quartz.properties</js.quartz.properties>
<js.quartz.base.properties>${currentConf}/js.quartz.base.properties</js.quartz.base.properties>
<js.quartz.script>${js-base-path}/scripts/quartz/${quartz.ddlScript}</js.quartz.script>
<js.db.script.path>${currentSqlDir}</js.db.script.path>
<metadata.database.generate>false</metadata.database.generate>
<suppress.quartz.init>true</suppress.quartz.init>
<js-path>${js-path}</js-path>
<js-pro-path>${js-pro-path}</js-pro-path>
<jasperserver-repo>file:/${repo-path}</jasperserver-repo> <!-- used for jpivot bld only -->
<platform-path>${currentConf}</platform-path>
<test.hibernate.cfg>${currentConf}/hibernate.cfg.xml</test.hibernate.cfg>
<test.hibernate.jdbc.properties>${currentConf}/js.jdbc.properties</test.hibernate.jdbc.properties>
<master.properties>${masterPropsSource}</master.properties>
<!-- workaround src w/o tibco drivers -->
<tibco.driver.available>${deploy-tibco-drivers}</tibco.driver.available>
<SKIP_TEST_ARG>skipTests</SKIP_TEST_ARG>
<disable.fafj>false</disable.fafj>
</properties>
<repositories>
<repository>
<id>js-repo-svn</id>
<name>Repository for JasperReports Server dependencies</name>
<url>file://${repo-path}</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
</repository>
<repository>
<id>js-repo-tibco-drivers</id>
<name>Repository for JasperReports Server additional resources (TIBCO data connectivity drivers)</name>
<url>file://${tibco-driver-path}</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
</repository>
<repository>
<id>Repo1 Maven</id>
<url>http://repo1.maven.org/maven2/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>SpringSource</id>
<url>http://repo.springsource.org/release</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>JBoss</id>
<url>https://repository.jboss.org/nexus/content/groups/public</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>jboss-eap-alpha</id>
<name>JBoss EAP 6.3.0.Alpha</name>
<url>https://maven.repository.redhat.com/earlyaccess/all/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>js-repo-svn</id>
<url>file://${repo-path}</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
<!-- The Maven tool has a Central Repository that is utilized even if -->
<!-- not specifid in the settings.xml. listed here for reference only -->
<!-- <pluginRepository> -->
<!-- <id>central</id> -->
<!-- <url>http://repo1.maven.org/maven2/</url> -->
<!-- </pluginRepository> -->
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>JasperServerProfile</activeProfile>
</activeProfiles>
<servers>
<server>
<id>myserver</id>
<username>tomcat</username>
<password>tomcat</password>
</server>
</servers>
</settings>

View File

@ -0,0 +1,19 @@
#
# Copyright © 2005 - 2018 TIBCO Software Inc.
# http://www.jaspersoft.com.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
week.start.day=2

View File

@ -0,0 +1,35 @@
#
# Copyright © 2005 - 2018 TIBCO Software Inc.
# http://www.jaspersoft.com.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
# Properties file with JDBC-related settings.
# Applied by PropertyPlaceholderConfigurer from "applicationContext-*.xml".
# Targeted at system administrators, to avoid touching the context XML files.
# Property that determines the Hibernate dialect
metadata.hibernate.dialect=${hibernateDialect}
metadata.hibernate.dataSource.jndiName=${js.jndi}
#
# default_schema setting will be uncommented if your database requires
# a schema to be specified (such as for DB2)
#
#metadata.hibernate.default_schema=${metadata.hibernate.default_schema}
hibernate.cache.region.factory_class=net.sf.ehcache.hibernate.SingletonEhCacheRegionFactory

View File

@ -0,0 +1,77 @@
<!--
~ Copyright © 2005 - 2018 TIBCO Software Inc.
~ http://www.jaspersoft.com.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<Context path="/jasperserver" reloadable="false">
<!-- maxActive: Maximum number of dB connections in pool. Make sure you
configure your mysqld max_connections large enough to handle
all of your db connections. Set to 0 for no limit.
-->
<!-- maxIdle: Maximum number of idle dB connections to retain in pool.
Set to -1 for no limit. See also the DBCP documentation on this
and the minEvictableIdleTimeMillis configuration parameter.
-->
<!-- maxWait: Maximum time to wait for a dB connection to become available
in ms, in this example 10 seconds. An Exception is thrown if
this timeout is exceeded. Set to -1 to wait indefinitely.
-->
<!-- Additional properties to consider. Settings for specifying a -->
<!-- validation query to help with reconnect/timeout errors. -->
<!-- Exact syntax may vary with database type (this tested on mysql. -->
<!-- -->
<!-- validationQuery="select 1" -->
<!-- testOnBorrow="true" -->
<!-- (and add this to url property): &amp;autoReconnectForPools=true -->
<Resource name="${js.jndi}" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="${js.dbUsername}" password="${escapeXML:js.dbPassword}"
driverClassName="${jdbcDriverClass}"
accessToUnderlyingConnectionAllowed = "true"
validationQuery="${jdbcTestTableQuery}"
testOnBorrow="true"
url="${js.jdbcUrl}"
factory="${tomcatBasicDatasourceFactory}"
${js.extraParams} />
<Resource name="${sugarcrm.jndi}" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="${sugarcrm.dbUsername}" password="${escapeXML:sugarcrm.dbPassword}"
driverClassName="${jdbcDriverClass}"
accessToUnderlyingConnectionAllowed = "true"
validationQuery="${jdbcTestTableQuery}"
testOnBorrow="true"
url="${sugarcrm.jdbcUrl}"
factory="${tomcatBasicDatasourceFactory}"/>
<Resource name="${foodmart.jndi}" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="${foodmart.dbUsername}" password="${escapeXML:foodmart.dbPassword}"
driverClassName="${jdbcDriverClass}"
accessToUnderlyingConnectionAllowed = "true"
validationQuery="${jdbcTestTableQuery}"
testOnBorrow="true"
url="${foodmart.jdbcUrl}"
factory="${tomcatBasicDatasourceFactory}"/>
<!-- Comment this line to enable session persistence across Tomcat restarts -->
<Manager pathname="" />
</Context>

View File

@ -0,0 +1,35 @@
#
# Copyright © 2005 - 2018 TIBCO Software Inc.
# http://www.jaspersoft.com.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
# Properties file with JDBC-related settings.
# Applied by PropertyPlaceholderConfigurer from "applicationContext-*.xml".
# Targeted at system administrators, to avoid touching the context XML files.
# Property that determines the Hibernate dialect
metadata.hibernate.dialect=${hibernateDialect}
metadata.hibernate.dataSource.jndiName=${js.jndi}
#
# default_schema setting will be uncommented if your database requires
# a schema to be specified (such as for DB2)
#
#metadata.hibernate.default_schema=${metadata.hibernate.default_schema}
hibernate.cache.region.factory_class=net.sf.ehcache.hibernate.EhCacheRegionFactory

View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
~ Copyright © 2005 - 2018 TIBCO Software Inc.
~ http://www.jaspersoft.com.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<jboss-web>
<resource-ref>
<res-ref-name>${js.jndi}</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<jndi-name>java:/${js.jndi}</jndi-name>
</resource-ref>
<resource-ref>
<res-ref-name>${sugarcrm.jndi}</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<jndi-name>java:/${sugarcrm.jndi}</jndi-name>
</resource-ref>
<resource-ref>
<res-ref-name>${foodmart.jndi}</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<jndi-name>java:/${foodmart.jndi}</jndi-name>
</resource-ref>
</jboss-web>

View File

@ -0,0 +1,86 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright © 2005 - 2018 TIBCO Software Inc.
~ http://www.jaspersoft.com.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<!DOCTYPE weblogic-web-app
PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN"
"http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd" >
<weblogic-web-app>
<!--security-role-assignment>
<role-name>tomcat</role-name>
<principal-name>tomcat</principal-name>
</security-role-assignment-->
<!--<context-root>/jasperserver-pro</context-root>-->
<jsp-descriptor>
<jsp-param>
<param-name>compilerSupportsEncoding</param-name>
<param-value>true</param-value>
</jsp-param>
<jsp-param>
<param-name>precompile</param-name>
<param-value>false</param-value>
</jsp-param>
<jsp-param>
<param-name>pageCheckSeconds</param-name>
<param-value>-1</param-value>
</jsp-param>
<jsp-param>
<param-name>keepgenerated</param-name>
<param-value>true</param-value>
</jsp-param>
<jsp-param>
<param-name>noTryBlocks</param-name>
<param-value>true</param-value>
</jsp-param>
<jsp-param>
<param-name>printNulls</param-name>
<param-value>true</param-value>
</jsp-param>
<jsp-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</jsp-param>
</jsp-descriptor>
<reference-descriptor>
<resource-description>
<res-ref-name>jdbc/jasperserver</res-ref-name>
<jndi-name>JasperServerDataBase</jndi-name>
</resource-description>
<resource-description>
<res-ref-name>jdbc/sugarcrm</res-ref-name>
<jndi-name>SugarcrmDataBase</jndi-name>
</resource-description>
<resource-description>
<res-ref-name>jdbc/foodmart</res-ref-name>
<jndi-name>FoodmartDataBase</jndi-name>
</resource-description>
</reference-descriptor>
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
<session-descriptor>
<cookie-http-only>false</cookie-http-only>
</session-descriptor>
</weblogic-web-app>

Binary file not shown.

View File

@ -0,0 +1,8 @@
#!/bin/bash
#
# chmod can run very long when run with the ant chmod task
# run chmod via native linux chmod
#
chmod -R 755 *

View File

@ -0,0 +1,14 @@
#!/bin/bash
#
# The Ant zip task is not capable of preserving file permissions. File
# permissions in the War File Distribution need to be correct so that
# linux users will not get permission errors when executing scripts.
#
# This script will use the zip utility native to the linux
# (presumably) operating system.
#
echo "command to execute: zip -r $1 $2 "
zip -r $1 $2

View File

@ -0,0 +1,15 @@
buildomatic-additional/install_resources/extra-files/readme.txt
---------------------------------------------------------------
License source will be getting moved to a separate svn project.
Until then build the Pro source by including the js-license-<ver>.jar
as a 3rd party dependency.
In this folder is a special version of the root pom.xml file
that has been modified to specify this dependency. This
temp-root-pom.xml file is copied on top of existing root pom.xml.
ji-license-<ver>.jar should be found in the jasperserver-repo
maven style source path location.

View File

@ -0,0 +1,694 @@
<!--
~ Copyright © 2005 - 2018 TIBCO Software Inc.
~ http://www.jaspersoft.com.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>jaspersoft.ji-pro</groupId>
<artifactId>jaspersoft.ji-pro</artifactId>
<packaging>pom</packaging>
<version>4.0.0</version>
<name>JasperServer and JasperAnalysis Pro</name>
<description>JasperServer Pro - including JasperAnalysis Pro</description>
<url>http://www.jaspersoft.com</url>
<modules>
<module>common</module>
<module>common-export</module>
<module>mondrian-aop-woven</module>
<module>jpivot-aop-woven</module>
<!-- for 4.0 src building comment out license module -->
<!-- <module>license</module> -->
<module>datarator</module>
<module>datarator-el</module>
<module>semantic-layer</module>
<module>multi-tenancy</module>
<module>analysis</module>
<module>analysis-export</module>
<module>gyroscope</module>
<module>gyroscope-export</module>
<module>report-options</module>
<module>jasperserver-war-jar</module>
<module>gyroscope-ireport-plugin</module>
<module>repository-hibernate</module>
<module>jasperserver-common-ws</module>
<module>search</module>
<module>jasperserver-war</module>
<module>export-tool</module>
<module>unit-tests</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.4</version>
<configuration>
<aggregate>true</aggregate>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.5-Jaspersoft</version>
<configuration>
<useConsolidated>true</useConsolidated>
<instrumentation>
<includesGroupId>
<includeGroupId>^jaspersoft.*</includeGroupId>
</includesGroupId>
<excludesArtifactId>
<excludeArtifactId>^jdbc-dep$</excludeArtifactId>
</excludesArtifactId>
<excludes>
<exclude>
com/jaspersoft/ji/ireport/**/*.class</exclude>
<exclude>mondrian/**/*.class</exclude>
<exclude>com/tonbeller/**/*.class</exclude>
</excludes>
</instrumentation>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.4.2</version>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.0.4</version>
</dependency>
<!-- for 4.0 src building add this dependency -->
<dependency>
<groupId>jaspersoft.ji-pro</groupId>
<artifactId>ji-license</artifactId>
<version>4.0.0</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.jaspersoft.jasperserver.api.common.impl</groupId>
<artifactId>jasperserver-api-common-impl</artifactId>
<version>${ji-os-version}</version>
</dependency>
<dependency>
<groupId>com.jaspersoft.jasperserver.api.common</groupId>
<artifactId>jasperserver-api-common</artifactId>
<version>${ji-os-version}</version>
</dependency>
<dependency>
<groupId>com.jaspersoft.jasperserver.api.engine</groupId>
<artifactId>jasperserver-api-engine</artifactId>
<version>${ji-os-version}</version>
</dependency>
<dependency>
<groupId>com.jaspersoft.jasperserver.api.engine.impl</groupId>
<artifactId>jasperserver-api-engine-impl</artifactId>
<version>${ji-os-version}</version>
</dependency>
<dependency>
<groupId>com.jaspersoft.jasperserver.api.metadata.impl</groupId>
<artifactId>jasperserver-api-metadata-impl</artifactId>
<version>${ji-os-version}</version>
</dependency>
<dependency>
<groupId>com.jaspersoft.jasperserver.api.metadata.impl</groupId>
<artifactId>jasperserver-repository-hibernate</artifactId>
<version>${ji-os-version}</version>
</dependency>
<dependency>
<groupId>com.jaspersoft.jasperserver.api.metadata</groupId>
<artifactId>jasperserver-api-metadata</artifactId>
<version>${ji-os-version}</version>
<exclusions>
<exclusion>
<!--Not the Mondrian JAR as we are overriding it with an AOP version.
The JARs Mondrian depends on are in the OS WAR, so we get them
when we include that WAR-->
<groupId>mondrian</groupId>
<artifactId>mondrian</artifactId>
</exclusion>
<exclusion>
<!--Not the Jpivot JAR as we are overriding it with an AOP version.-->
<groupId>${jpivot-groupId}</groupId>
<artifactId>${jpivot-artifactId}</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.jaspersoft.jasperserver.core.util</groupId>
<artifactId>jasperserver-core-util</artifactId>
<version>${ji-os-version}</version>
</dependency>
<dependency>
<groupId>com.jaspersoft.jasperserver.api.unitTest</groupId>
<artifactId>jasperserver-api-unit-test</artifactId>
<version>${ji-os-version}</version>
<type>test-jar</type>
</dependency>
<dependency>
<groupId>com.jaspersoft.jasperserver</groupId>
<artifactId>jasperserver-export-tool</artifactId>
<version>${ji-os-version}</version>
</dependency>
<dependency>
<groupId>com.jaspersoft.jasperserver</groupId>
<artifactId>jasperserver-search</artifactId>
<version>${ji-os-version}</version>
</dependency>
<dependency>
<groupId>com.jaspersoft.jasperserver</groupId>
<artifactId>jasperserver-war-jar</artifactId>
<version>${ji-os-version}</version>
</dependency>
<dependency>
<groupId>com.jaspersoft.jasperserver</groupId>
<artifactId>jasperserver-common-ws</artifactId>
<version>${ji-os-version}</version>
</dependency>
<dependency>
<groupId>com.jaspersoft.jasperserver</groupId>
<artifactId>jasperserver-ireport-plugin</artifactId>
<version>${ji-os-version}</version>
</dependency>
<dependency>
<groupId>jaspersoft.ji-pro</groupId>
<artifactId>ji-analysis</artifactId>
<version>${ji-pro-version}</version>
</dependency>
<dependency>
<groupId>jaspersoft.ji-pro</groupId>
<artifactId>mondrian-aop-woven</artifactId>
<version>${ji-pro-version}</version>
</dependency>
<dependency>
<groupId>jaspersoft.ji-pro</groupId>
<artifactId>ji-common</artifactId>
<version>${ji-pro-version}</version>
</dependency>
<dependency>
<groupId>jaspersoft.ji-pro</groupId>
<artifactId>ji-common-export</artifactId>
<version>${ji-pro-version}</version>
</dependency>
<dependency>
<groupId>jaspersoft.ji-pro</groupId>
<artifactId>ji-common-ws-server</artifactId>
<version>${ji-pro-version}</version>
</dependency>
<dependency>
<groupId>jaspersoft.ji-pro</groupId>
<artifactId>ji-datarator</artifactId>
<version>${ji-pro-version}</version>
</dependency>
<dependency>
<groupId>jaspersoft.ji-pro</groupId>
<artifactId>ji-datarator-el</artifactId>
<version>${ji-pro-version}</version>
</dependency>
<dependency>
<groupId>jaspersoft.ji-pro</groupId>
<artifactId>ji-semantic-layer</artifactId>
<version>${ji-pro-version}</version>
</dependency>
<dependency>
<groupId>jaspersoft.ji-pro</groupId>
<artifactId>ji-multi-tenancy</artifactId>
<version>${ji-pro-version}</version>
</dependency>
<dependency>
<groupId>jaspersoft.ji-pro</groupId>
<artifactId>ji-export-tool</artifactId>
<version>${ji-pro-version}</version>
</dependency>
<dependency>
<groupId>jaspersoft.ji-pro</groupId>
<artifactId>ji-gyroscope</artifactId>
<version>${ji-pro-version}</version>
</dependency>
<dependency>
<groupId>jaspersoft.ji-pro</groupId>
<artifactId>ji-gyroscope-export</artifactId>
<version>${ji-pro-version}</version>
</dependency>
<dependency>
<groupId>jaspersoft.ji-pro</groupId>
<artifactId>ji-license</artifactId>
<version>${ji-pro-version}</version>
</dependency>
<dependency>
<groupId>jaspersoft.ji-pro</groupId>
<artifactId>ji-repository</artifactId>
<version>${ji-pro-version}</version>
</dependency>
<dependency>
<groupId>jaspersoft.ji-pro</groupId>
<artifactId>ji-report-options-api</artifactId>
<version>${ji-pro-version}</version>
</dependency>
<dependency>
<groupId>jaspersoft.ji-pro</groupId>
<artifactId>ji-report-options-export</artifactId>
<version>${ji-pro-version}</version>
</dependency>
<dependency>
<groupId>jaspersoft.ji-pro</groupId>
<artifactId>ji-multi-tenancy</artifactId>
<version>${ji-pro-version}</version>
</dependency>
<dependency>
<groupId>jaspersoft.ji-pro</groupId>
<artifactId>ji-report-options-web</artifactId>
<version>${ji-pro-version}</version>
</dependency>
<dependency>
<groupId>jaspersoft.ji-pro</groupId>
<artifactId>ji-ws-server</artifactId>
<version>${ji-pro-version}</version>
</dependency>
<dependency>
<groupId>jaspersoft.ji-pro</groupId>
<artifactId>ji-search</artifactId>
<version>${ji-pro-version}</version>
</dependency>
<dependency>
<groupId>jaspersoft.ji-pro</groupId>
<artifactId>ji-war-jar</artifactId>
<version>${ji-pro-version}</version>
</dependency>
<dependency>
<groupId>jaspersoft.ji.test</groupId>
<artifactId>ji-unit-tests</artifactId>
<type>test-jar</type>
<version>${ji-pro-version}</version>
</dependency>
<dependency>
<groupId>${jpivot-groupId}</groupId>
<artifactId>${jpivot-artifactId}</artifactId>
<version>${jpivot-version}</version>
<exclusions>
<exclusion>
<groupId>axis.axis-saaj</groupId>
<artifactId>saaj-ri</artifactId>
</exclusion>
<exclusion>
<groupId>mondrian</groupId>
<artifactId>mondrian</artifactId>
</exclusion>
<exclusion>
<groupId>xom</groupId>
<artifactId>xom</artifactId>
</exclusion>
<exclusion>
<groupId>xpp3</groupId>
<artifactId>xpp3</artifactId>
</exclusion>
<exclusion>
<groupId>stax</groupId>
<artifactId>stax-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.jaspersoft.jasperserver</groupId>
<artifactId>jdbc-dep</artifactId>
<type>pom</type>
<version>1.0</version>
</dependency>
<dependency>
<groupId>jaxen</groupId>
<artifactId>jaxen</artifactId>
<version>1.1-beta-8</version>
<exclusions>
<exclusion>
<groupId>pull-parser</groupId>
<artifactId>pull-parser</artifactId>
</exclusion>
<exclusion>
<groupId>xerces</groupId>
<artifactId>xmlParserAPIs</artifactId>
</exclusion>
<exclusion>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
</exclusion>
<exclusion>
<groupId>xom</groupId>
<artifactId>xom</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>xalan</groupId>
<artifactId>xalan</artifactId>
<version>2.7.1</version>
</dependency>
<dependency>
<groupId>jproductivity</groupId>
<artifactId>protection</artifactId>
<version>4.5</version>
</dependency>
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
<exclusions>
<exclusion>
<groupId>xalan</groupId>
<artifactId>xalan</artifactId>
</exclusion>
<exclusion>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
</exclusion>
<exclusion>
<groupId>xerces</groupId>
<artifactId>xmlParserAPIs</artifactId>
</exclusion>
<exclusion>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
</exclusion>
<exclusion>
<groupId>xom</groupId>
<artifactId>xom</artifactId>
</exclusion>
<exclusion>
<groupId>xpp3</groupId>
<artifactId>xpp3</artifactId>
</exclusion>
<exclusion>
<groupId>stax</groupId>
<artifactId>stax-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>jdom</groupId>
<artifactId>jdom</artifactId>
<version>1.1</version>
<exclusions>
<exclusion>
<groupId>xalan</groupId>
<artifactId>xalan</artifactId>
</exclusion>
<exclusion>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
</exclusion>
<exclusion>
<groupId>xerces</groupId>
<artifactId>xmlParserAPIs</artifactId>
</exclusion>
<exclusion>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
</exclusion>
<exclusion>
<groupId>xom</groupId>
<artifactId>xom</artifactId>
</exclusion>
<exclusion>
<groupId>xpp3</groupId>
<artifactId>xpp3</artifactId>
</exclusion>
<exclusion>
<groupId>stax</groupId>
<artifactId>stax-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.2.1</version>
<exclusions>
<exclusion>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
</exclusion>
<exclusion>
<groupId>xerces</groupId>
<artifactId>xerces</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>1.2</version>
<exclusions>
<exclusion>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
</exclusion>
<exclusion>
<groupId>xerces</groupId>
<artifactId>xerces</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-digester</groupId>
<artifactId>commons-digester</artifactId>
<version>1.7</version>
<exclusions>
<exclusion>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>4.0.0</version>
<exclusions>
<exclusion>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-discovery</groupId>
<artifactId>commons-discovery</artifactId>
<version>0.4</version>
</dependency>
<dependency>
<groupId>com.jaspersoft.jasperreports</groupId>
<artifactId>jasperreports-pro</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>com.jaspersoft.jasperreports</groupId>
<artifactId>jasperreports-fusion</artifactId>
<version>4.0.0</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>3.2.5.RELEASE</version>
<!--<type>test-jar</type>-->
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-remoting</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-support</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</dependencyManagement>
<distributionManagement>
<repository>
<id>internalDeployed</id>
<name>Internal artifacts</name>
<url>${ji-repo-releases}</url>
</repository>
<snapshotRepository>
<id>internalDeployed</id>
<name>Internal artifacts</name>
<url>${ji-repo-snapshots}</url>
</snapshotRepository>
</distributionManagement>
<properties>
<ji-pro-version>4.0.0</ji-pro-version>
<ji-os-version>4.0.0</ji-os-version>
<jpivot-groupId>jaspersoft.ji-pro.ji-jpivot-ui</jpivot-groupId>
<jpivot-artifactId>ji-jpivot</jpivot-artifactId>
<jpivot-version>4.0.0</jpivot-version>
<mondrian-version>3.2.0-13661</mondrian-version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- Profiles for two types of javadoc to run -->
<profiles>
<!-- Profile for JasperServer API javadoc, which creates JavaDoc for classes annotated with -->
<!-- annotated with @JasperServerAPI using DocFlex doclet -->
<profile>
<id>docflex-javadoc</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.4</version>
<configuration>
<!-- The maximum heap size available to JVM when running Javadoc -->
<maxmemory>512m</maxmemory>
<!-- Using DocFlex Doclet -->
<doclet>com.docflex.javadoc.Doclet</doclet>
<docletArtifact>
<groupId>docflex</groupId>
<artifactId>docflex-doclet</artifactId>
<version>${docFlex-version}</version>
</docletArtifact>
<!-- Specify command-line parameters for DocFlex Doclet -->
<additionalparam>
<!-- license file -->
-license ${docflex-home}/docflex-javadoc-full.license
<!-- The main template -->
-template ${docflex-home}/templates/javadocPro/FramedDoc.tpl
<!-- template params start with "p:" -->
<!-- set titles -->
-p:windowTitle "JasperServer API ${project.version}"
-p:docTitle "JasperServer API ${project.version}"
<!--generate deprecated-list.html-->
-p:gen.deprecatedList true
<!-- Only include classes annotated as api's -->
-p:filter.byAnns.include.classes com.jaspersoft.jasperserver.api.JasperServerAPI
<!---p:include.byAnns.classes com.jaspersoft.jasperserver.api.JasperServerAPI-->
<!-- leave out empty packages -->
-p:include.emptyPackages false
<!---p:exclude.package.empty true-->
<!-- Omit members inherited from java.lang classes -->
-p:omit.inheritedMemberLists.for java.lang.
<!-- Set the output format -->
-format HTML
<!-- Supress showing up the doclet GUI -->
-nodialog
<!-- Do not launch documentation viewer -->
-launchviewer=false
<!-- Tell DocFlex the output directory -->
-d ${project.build.directory}/site/public-api
</additionalparam>
<!-- Tell Maven the output directory -->
<destDir>site/public-api</destDir>
<!-- For the project-reports page -->
<name>JasperServer Public API</name>
<!-- combine all the javadoc from the subprojects -->
<aggregate>true</aggregate>
</configuration>
</plugin>
</plugins>
</build>
<activation>
<property>
<name>javadoc-type</name>
<value>public-api</value>
</property>
</activation>
</profile>
</profiles>
</project>

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,4 @@
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.2
Created-By: 1.6.0_18-b07 (Sun Microsystems Inc.)

View File

@ -0,0 +1,52 @@
<!--
~ Copyright © 2005 - 2018 TIBCO Software Inc.
~ http://www.jaspersoft.com.
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<jboss-deployment-structure>
<!-- This corresponds to the top level deployment. For a war this is the war's module, for an ear -->
<!-- This is the top level ear module, which contains all the classes in the EAR's lib folder -->
<deployment>
<exclusions>
</exclusions>
<dependencies>
<module name="jaspersoft.tibcosoftware"/>
<system>
<paths>
<path name="com/sun/management"/>
</paths>
</system>
</dependencies>
<!-- Add additional classes to the deployment module. In this case, it is the same as including the jar in the EAR's lib directory
[dlitvak] Jboss7 seems to read jars from vfs (virtual) directory: a security mechanism?
Jboss's classloader assigns vfs location to CodeSource object of the loaded jar classes.
In order to assign the class object physical deployment module location, wwe found it necessary to introduce this file with
additional resource roots marked with use-physical-code-source="true" (issue 26780)
References: https://community.jboss.org/thread/170527
https://issues.jboss.org/browse/AS7-308
https://docs.jboss.org/author/display/AS7/Class+Loading+in+AS7?_sscc=t
-->
<resources>
</resources>
</deployment>
</jboss-deployment-structure>

Some files were not shown because too many files have changed in this diff Show More