IDEMPIERE-4267 Remove org.adempiere.report.jasper.webapp (#33)
* IDEMPIERE-4267 Remove org.adempiere.report.jasper.webapp Remove org.adempiere.report.jasper.webapp project. Use reportfilename.md5 to get remote md5 hash. Use hex instead of base64 for md5 hash. Copy standalone.jrxml to org.adempiere.report.jasper/test folder. * IDEMPIERE-4267 Remove org.adempiere.report.jasper.webapp Remove org.adempiere.report.jasper.fragment.test project Added space checking for the default hash created by the md5sum command line tool.
This commit is contained in:
parent
c6df56d2ba
commit
9d937aa328
|
@ -1,7 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
|
@ -1,28 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>org.adempiere.report.jasper.fragment.test</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.ManifestBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.SchemaBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.pde.PluginNature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
|
@ -1,7 +0,0 @@
|
|||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
|
||||
org.eclipse.jdt.core.compiler.compliance=1.7
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.source=1.7
|
|
@ -1,3 +0,0 @@
|
|||
eclipse.preferences.version=1
|
||||
pluginProject.extensions=false
|
||||
resolve.requirebundle=false
|
Binary file not shown.
|
@ -1,9 +0,0 @@
|
|||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Test
|
||||
Bundle-SymbolicName: org.adempiere.report.jasper.fragment.test
|
||||
Bundle-Version: 1.0.0.qualifier
|
||||
Fragment-Host: org.adempiere.report.jasper.webapp;bundle-version="1.0.0"
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Jetty-WarPatchFragmentFolderPath: /
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
source.. = src/
|
||||
output.. = bin/
|
||||
bin.includes = META-INF/,\
|
||||
.,\
|
||||
test.jrxml
|
||||
src.includes = test.jrxml
|
|
@ -1,152 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Created using an evaluation version of JasperAssistant (http://www.jasperassistant.com) -->
|
||||
<!DOCTYPE jasperReport PUBLIC "-//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
|
||||
|
||||
<jasperReport language="java" name="standalone" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="30" bottomMargin="30">
|
||||
<title>
|
||||
<band height="782">
|
||||
<staticText>
|
||||
<reportElement x="0" y="50" width="150" height="40"/>
|
||||
<textElement/>
|
||||
<text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="160" y="50" width="390" height="40"/>
|
||||
<textElement/>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="50" width="150" height="40"/><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="0" y="100" width="150" height="40"/>
|
||||
<textElement>
|
||||
<font size="12"/>
|
||||
</textElement>
|
||||
<text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="160" y="100" width="390" height="40"/>
|
||||
<textElement/>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="100" width="150" height="40"/><textElement><font size="14"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="0" y="150" width="150" height="40"/>
|
||||
<textElement>
|
||||
<font fontName="Times New Roman" size="12" />
|
||||
</textElement>
|
||||
<text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="160" y="150" width="390" height="40"/>
|
||||
<textElement/>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="150" width="150" height="40"/><textElement><font fontName="Times New Roman" size="12" /></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="0" y="200" width="150" height="40"/>
|
||||
<textElement>
|
||||
<font fontName="Times New Roman" size="12" isBold="true" isItalic="true" />
|
||||
</textElement>
|
||||
<text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="160" y="200" width="390" height="40"/>
|
||||
<textElement/>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="200" width="150" height="40"/><textElement><font fontName="Times New Roman" size="12" isBold="true" isItalic="true" /></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="0" y="250" width="150" height="40"/>
|
||||
<textElement>
|
||||
<font fontName="Comic Sans Test" size="12" isBold="false" />
|
||||
</textElement>
|
||||
<text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="160" y="250" width="390" height="40"/>
|
||||
<textElement/>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="250" width="150" height="40"/><textElement><font fontName="Comic Sans MS" size="12" isBold="false" /></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="0" y="300" width="150" height="40"/>
|
||||
<textElement>
|
||||
<font fontName="Comic Sans MS" size="12" isBold="true" />
|
||||
</textElement>
|
||||
<text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="160" y="300" width="390" height="40"/>
|
||||
<textElement/>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="300" width="150" height="40"/><textElement><font fontName="Comic Sans MS" size="12" isBold="true" /></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="0" y="350" width="150" height="40"/>
|
||||
<textElement>
|
||||
<font fontName="Monospaced" size="12" isItalic="true" isUnderline="true" />
|
||||
</textElement>
|
||||
<text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="160" y="350" width="390" height="40"/>
|
||||
<textElement/>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="350" width="150" height="40"/><textElement><font fontName="Monospaced" size="12" isItalic="true" isUnderline="true" /></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="0" y="400" width="150" height="40"/>
|
||||
<textElement>
|
||||
<font fontName="Monospaced" size="12" isBold="true" isStrikeThrough="true" />
|
||||
</textElement>
|
||||
<text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="160" y="400" width="390" height="40"/>
|
||||
<textElement/>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="400" width="150" height="40"/><textElement><font fontName="Monospaced" size="12" isBold="true" isStrikeThrough="true" /></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="0" y="450" width="150" height="40" forecolor="#ff0000"/>
|
||||
<textElement>
|
||||
<font size="14"/>
|
||||
</textElement>
|
||||
<text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="160" y="450" width="390" height="40"/>
|
||||
<textElement/>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="450" width="150" height="40" forecolor="red"/><textElement><font size="14"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement mode="Opaque" x="0" y="500" width="150" height="40" forecolor="#ff00" backcolor="#ffff00"/>
|
||||
<textElement>
|
||||
<font fontName="Times New Roman" size="12" isBold="true" />
|
||||
</textElement>
|
||||
<text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="160" y="500" width="390" height="40"/>
|
||||
<textElement/>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="500" width="150" height="40" forecolor="green" backcolor="#FFFF00" mode="Opaque"/><textElement><font fontName="Times New Roman" size="12" isBold="true" /></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement mode="Opaque" x="0" y="550" width="150" height="90" forecolor="#ff" backcolor="#ffdd99"/>
|
||||
<textElement textAlignment="Center" verticalAlignment="Middle">
|
||||
<font fontName="Times New Roman" size="12" isBold="true" />
|
||||
</textElement>
|
||||
<text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="160" y="550" width="390" height="90"/>
|
||||
<textElement/>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="550" width="150" height="90" forecolor="blue" backcolor="#FFDD99" mode="Opaque"/><textElement textAlignment="Center" verticalAlignment="Middle"><font fontName="Times New Roman" size="12" isBold="true" /></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement mode="Opaque" x="0" y="650" width="150" height="90" forecolor="#ff0000" backcolor="#99ddff"/>
|
||||
<textElement textAlignment="Right" verticalAlignment="Bottom">
|
||||
<font fontName="Times New Roman" size="12" isBold="true" />
|
||||
</textElement>
|
||||
<text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="160" y="650" width="390" height="90"/>
|
||||
<textElement/>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="650" width="150" height="90" forecolor="red" backcolor="#99DDFF" mode="Opaque"/><textElement textAlignment="Right" verticalAlignment="Bottom"><font fontName="Times New Roman" size="12" isBold="true" /></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
</staticText>
|
||||
</band>
|
||||
</title>
|
||||
</jasperReport>
|
|
@ -1,11 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11">
|
||||
<attributes>
|
||||
<attribute name="module" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="src/"/>
|
||||
<classpathentry kind="output" path="target/classes"/>
|
||||
</classpath>
|
|
@ -1,34 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>org.adempiere.report.jasper.webapp</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.ManifestBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.SchemaBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.m2e.core.maven2Builder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
<nature>org.eclipse.pde.PluginNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
|
@ -1,2 +0,0 @@
|
|||
eclipse.preferences.version=1
|
||||
encoding/<project>=UTF-8
|
|
@ -1,10 +0,0 @@
|
|||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
|
||||
org.eclipse.jdt.core.compiler.compliance=11
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
|
||||
org.eclipse.jdt.core.compiler.release=enabled
|
||||
org.eclipse.jdt.core.compiler.source=11
|
|
@ -1,4 +0,0 @@
|
|||
activeProfiles=
|
||||
eclipse.preferences.version=1
|
||||
resolveWorkspaceProjects=true
|
||||
version=1
|
|
@ -1,17 +0,0 @@
|
|||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: iDempiere JasperReport Web App
|
||||
Bundle-SymbolicName: org.adempiere.report.jasper.webapp;singleton:=true
|
||||
Bundle-Version: 7.1.0.qualifier
|
||||
Require-Bundle: org.adempiere.base;bundle-version="0.0.0"
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-11
|
||||
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version>=11))"
|
||||
Web-ContextPath: JasperReportFiles
|
||||
Import-Package: javax.servlet;version="2.5.0",
|
||||
javax.servlet.http;version="2.5.0",
|
||||
javax.servlet.jsp;version="2.1.0",
|
||||
org.apache.commons.codec,
|
||||
org.apache.commons.codec.binary
|
||||
Bundle-ClassPath: .
|
||||
Automatic-Module-Name: org.adempiere.report.jasper.webapp
|
||||
Bundle-Vendor: iDempiere Community
|
|
@ -1,15 +0,0 @@
|
|||
@CALL ..\utils_dev\myDevEnv.bat
|
||||
@IF NOT %COMPIERE_ENV%==Y GOTO NOBUILD
|
||||
|
||||
@echo Cleanup ...
|
||||
@%JAVA_HOME%\bin\java -Dant.home="." %ANT_PROPERTIES% org.apache.tools.ant.Main clean
|
||||
|
||||
@echo Building ...
|
||||
@%JAVA_HOME%\bin\java -Dant.home="." %ANT_PROPERTIES% org.apache.tools.ant.Main main
|
||||
|
||||
@REM @pause
|
||||
@REM @exit
|
||||
|
||||
:NOBUILD
|
||||
@Echo Check myDevEnv.bat (copy from myDevEnvTemplate.bat)
|
||||
@REM @Pause
|
|
@ -1,18 +0,0 @@
|
|||
# Module compiling script
|
||||
# Ported from Windows script Marek Mosiewicz<marek.mosiewicz@jotel.com.pl>
|
||||
|
||||
|
||||
SAVED_DIR=`pwd` #save current dir
|
||||
cd `dirname $0`/../utils_dev #change dir to place where script resides - doesn not work with sym links
|
||||
UTILS_DEV=`pwd` #this is compiere source
|
||||
cd $SAVED_DIR #back to the saved directory
|
||||
|
||||
. $UTILS_DEV/myDevEnv.sh #call environment
|
||||
echo done
|
||||
if [ ! $COMPIERE_ENV==Y ] ; then
|
||||
echo "Can't set developemeent environemnt - check myDevEnv.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo running Ant
|
||||
$JAVA_HOME/bin/java -Dant.home="." $ANT_PROPERTIES org.apache.tools.ant.Main
|
|
@ -1,26 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 2.3//EN" "http://www.jboss.org/j2ee/dtd/jboss-web_3_0.dtd">
|
||||
|
||||
<jboss-web>
|
||||
|
||||
<!-- Resource Environment References -->
|
||||
<!--
|
||||
For additional resouce-env-ref tags add a merge file called jbossweb-resource-env-ref.xml
|
||||
-->
|
||||
|
||||
<!-- Resource references -->
|
||||
<!--
|
||||
For additional resouce-ref tags add a merge file called jbossweb-resource-ref.xml
|
||||
-->
|
||||
|
||||
<!-- EJB References -->
|
||||
<!--
|
||||
For additional ejb-ref tags add a merge file called jbossweb-ejb-ref.xml
|
||||
-->
|
||||
<ejb-ref>
|
||||
<ejb-ref-name>ejb/compiere/MD5</ejb-ref-name>
|
||||
<jndi-name>ejb/compiere/MD5</jndi-name>
|
||||
</ejb-ref>
|
||||
|
||||
<!-- EJB Local References -->
|
||||
</jboss-web>
|
|
@ -1,69 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
|
||||
version="3.1">
|
||||
|
||||
<filter>
|
||||
<filter-name>MD5Filter</filter-name>
|
||||
<filter-class>
|
||||
org.compiere.web.MD5Filter
|
||||
</filter-class>
|
||||
</filter>
|
||||
<filter-mapping>
|
||||
<filter-name>MD5Filter</filter-name>
|
||||
<url-pattern>/*</url-pattern>
|
||||
</filter-mapping>
|
||||
|
||||
<servlet>
|
||||
<servlet-name>GetMD5File</servlet-name>
|
||||
<servlet-class>
|
||||
org.compiere.web.GetMD5FileServlet
|
||||
</servlet-class>
|
||||
</servlet>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>GetMD5File</servlet-name>
|
||||
<url-pattern>/GetMD5File</url-pattern>
|
||||
</servlet-mapping>
|
||||
<!--
|
||||
To specify mime mappings, create a file named mime-mappings.xml, put it in your project's mergedir.
|
||||
Organize mime-mappings.xml following this DTD slice:
|
||||
|
||||
<!ELEMENT mime-mapping (extension, mime-type)>
|
||||
-->
|
||||
|
||||
<!--
|
||||
To specify error pages, create a file named error-pages.xml, put it in your project's mergedir.
|
||||
Organize error-pages.xml following this DTD slice:
|
||||
|
||||
<!ELEMENT error-page ((error-code | exception-type), location)>
|
||||
-->
|
||||
|
||||
<!--
|
||||
To add taglibs by xml, create a file called taglibs.xml and place it
|
||||
in your merge dir.
|
||||
-->
|
||||
|
||||
<!--
|
||||
To set up security settings for your web app, create a file named web-security.xml, put it in your project's mergedir.
|
||||
Organize web-security.xml following this DTD slice:
|
||||
|
||||
<!ELEMENT security-constraint (display-name?, web-resource-collection+, auth-constraint?, user-data-constraint?)>
|
||||
<!ELEMENT web-resource-collection (web-resource-name, description?, url-pattern*, http-method*)>
|
||||
<!ELEMENT web-resource-name (#PCDATA)>
|
||||
<!ELEMENT url-pattern (#PCDATA)>
|
||||
<!ELEMENT http-method (#PCDATA)>
|
||||
<!ELEMENT user-data-constraint (description?, transport-guarantee)>
|
||||
<!ELEMENT transport-guarantee (#PCDATA)>
|
||||
|
||||
<!ELEMENT login-config (auth-method?, realm-name?, form-login-config?)>
|
||||
<!ELEMENT auth-method (#PCDATA)>
|
||||
<!ELEMENT realm-name (#PCDATA)>
|
||||
<!ELEMENT form-login-config (form-login-page, form-error-page)>
|
||||
<!ELEMENT form-login-page (#PCDATA)>
|
||||
<!ELEMENT form-error-page (#PCDATA)>
|
||||
-->
|
||||
|
||||
</web-app>
|
|
@ -1,11 +0,0 @@
|
|||
bin.includes = META-INF/,\
|
||||
standalone.jrxml,\
|
||||
WEB-INF/,\
|
||||
.
|
||||
bin.excludes = src/**,\
|
||||
.settings/**,\
|
||||
.classpath,\
|
||||
.project,\
|
||||
build.properties
|
||||
output.. = target/classes/
|
||||
source.. = src/
|
|
@ -1,58 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project name="Packaging Generator" default="_packaging_generation_">
|
||||
|
||||
<property name="deploy.name" value="web" />
|
||||
|
||||
<target name="_packaging_generation_" depends="EJB.jar,EJB-client.jar,Web.war,WebApp.ear"/>
|
||||
|
||||
<target name="EJB.jar" description="${deploy.name}AppEJB.jar">
|
||||
<jar destfile="${deploy.name}AppEJB.jar">
|
||||
<zipfileset dir="src/META-INF" prefix="META-INF">
|
||||
<include name="ejb-jar.xml"/>
|
||||
</zipfileset>
|
||||
<zipfileset dir="src/META-INF" prefix="META-INF">
|
||||
<include name="jboss.xml"/>
|
||||
</zipfileset>
|
||||
<zipfileset dir="../JasperReports">
|
||||
<include name="CompiereJasper.jar"/>
|
||||
</zipfileset>
|
||||
<zipfileset dir="build" includes="org/compiere/ejb/*.class,org/compiere/interfaces/*.class"/>
|
||||
</jar>
|
||||
</target>
|
||||
|
||||
<target name="EJB-client.jar" description="${deploy.name}EJB-client.jar">
|
||||
<jar destfile="${deploy.name}EJB-client.jar">
|
||||
<zipfileset dir="build" includes="org/compiere/interfaces/*.class"/>
|
||||
</jar>
|
||||
</target>
|
||||
|
||||
<target name="Web.war" description="${deploy.name}App.war">
|
||||
<jar destfile="${deploy.name}App.war">
|
||||
<zipfileset dir="src/WEB-INF" prefix="WEB-INF">
|
||||
<include name="web.xml"/>
|
||||
</zipfileset>
|
||||
<zipfileset dir="src/WEB-INF" prefix="WEB-INF">
|
||||
<include name="jboss-web.xml"/>
|
||||
</zipfileset>
|
||||
<zipfileset dir="." prefix="WEB-INF/lib">
|
||||
<include name="${deploy.name}EJB-client.jar"/>
|
||||
</zipfileset>
|
||||
<zipfileset dir="build" prefix="WEB-INF/classes" includes="org/compiere/web/*.class"/>
|
||||
<zipfileset dir="webroot" includes="*.jrxml, *.xml, *.html"/>
|
||||
</jar>
|
||||
</target>
|
||||
|
||||
<target name="WebApp.ear" description="${deploy.name}App.ear">
|
||||
<jar destfile="${deploy.name}App.ear">
|
||||
<zipfileset dir="src/META-INF" prefix="META-INF">
|
||||
<include name="application.xml"/>
|
||||
</zipfileset>
|
||||
<zipfileset dir=".">
|
||||
<include name="${deploy.name}AppEJB.jar"/>
|
||||
</zipfileset>
|
||||
<zipfileset dir=".">
|
||||
<include name="${deploy.name}App.war"/>
|
||||
</zipfileset>
|
||||
</jar>
|
||||
</target>
|
||||
</project>
|
|
@ -1,12 +0,0 @@
|
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>org.idempiere</groupId>
|
||||
<artifactId>org.idempiere.parent</artifactId>
|
||||
<version>7.1.0-SNAPSHOT</version>
|
||||
<relativePath>../org.idempiere.parent/pom.xml</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.adempiere.report.jasper.webapp</artifactId>
|
||||
<packaging>eclipse-plugin</packaging>
|
||||
</project>
|
|
@ -1,124 +0,0 @@
|
|||
package org.compiere.utils;
|
||||
|
||||
import java.security.*;
|
||||
import java.io.*;
|
||||
|
||||
import org.apache.commons.codec.binary.Base64;
|
||||
|
||||
/**
|
||||
* @author rlemeill
|
||||
*
|
||||
*/
|
||||
public class DigestOfFile
|
||||
{
|
||||
/**
|
||||
* @param algorithm ie MD5
|
||||
* @throws Exception
|
||||
*/
|
||||
public DigestOfFile(String algorithm) throws Exception
|
||||
{
|
||||
digestAgent = MessageDigest.getInstance(algorithm);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param file to hash
|
||||
* @return hash
|
||||
* @throws Exception
|
||||
*/
|
||||
synchronized public byte[] digestAsByteArray(File file) throws Exception
|
||||
{
|
||||
digestAgent.reset();
|
||||
InputStream is = new BufferedInputStream(new FileInputStream(file));
|
||||
for (int bytesRead = 0; (bytesRead = is.read(buffer)) >= 0;)
|
||||
{
|
||||
digestAgent.update(buffer, 0, bytesRead);
|
||||
}
|
||||
is.close();
|
||||
byte[] digest = digestAgent.digest();
|
||||
return digest;
|
||||
}
|
||||
|
||||
/**
|
||||
* @author rlemeill
|
||||
* @param file
|
||||
* @return hash (base64 encoded)
|
||||
* @throws Exception
|
||||
*/
|
||||
synchronized public String digestAsBase64(File file) throws Exception
|
||||
{
|
||||
byte[] digest = digestAsByteArray(file);
|
||||
Base64 base64 = new Base64();
|
||||
String digestAsBase64 = new String(base64.encode(digest));
|
||||
return digestAsBase64;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//private static final char[] HEX_CHARS = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
|
||||
|
||||
private MessageDigest digestAgent;
|
||||
private byte[] buffer = new byte[4096];
|
||||
|
||||
/**
|
||||
* @author rlemeill
|
||||
* @param args file
|
||||
*/
|
||||
public static void main(String[] args)
|
||||
{
|
||||
try
|
||||
{
|
||||
DigestOfFile md5DigestAgent = new DigestOfFile("MD5");
|
||||
|
||||
for (int argIndex = 0; argIndex < args.length; argIndex++)
|
||||
{
|
||||
{
|
||||
String base64Digest = md5DigestAgent.digestAsBase64(new File(args[argIndex]));
|
||||
System.out.println("Base64 MD5 of " + args[argIndex] + " = [" + base64Digest + "]");
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
e.printStackTrace(System.out);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param file1 first file to compare
|
||||
* @param file2 second file to compare
|
||||
* @return true if files are identic false otherwise
|
||||
*/
|
||||
public static boolean md5localHashCompare(File file1,File file2)
|
||||
{
|
||||
//compute Hash of exisiting and downloaded
|
||||
String hashFile1;
|
||||
String hashFile2;
|
||||
try{
|
||||
DigestOfFile md5DigestAgent = new DigestOfFile("MD5");
|
||||
hashFile1 = md5DigestAgent.digestAsBase64(file1);
|
||||
hashFile2 = md5DigestAgent.digestAsBase64(file2);
|
||||
return hashFile1.equals(hashFile2) ; }
|
||||
catch (Exception e)
|
||||
{
|
||||
return false; //if there is an error during comparison return files are difs
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param file
|
||||
* @return md5 hash null if file is not found or other error
|
||||
*/
|
||||
public static String GetLocalMD5Hash(File file)
|
||||
{
|
||||
String hash;
|
||||
try{
|
||||
DigestOfFile md5DigestAgent = new DigestOfFile("MD5");
|
||||
hash = md5DigestAgent.digestAsBase64(file);
|
||||
return hash; }
|
||||
catch (Exception e)
|
||||
{
|
||||
return null; //if there is an error during comparison return files are difs
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,78 +0,0 @@
|
|||
/*
|
||||
* Créé le 22 mars 2005
|
||||
*
|
||||
* TODO Pour changer le modčle de ce fichier généré, allez ŕ :
|
||||
* Fenętre - Préférences - Java - Style de code - Modčles de code
|
||||
*/
|
||||
package org.compiere.utils;
|
||||
|
||||
import java.net.URL;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.compiere.util.CLogger;
|
||||
import org.compiere.utils.DigestOfFile;
|
||||
|
||||
public class MD5Impl {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final CLogger log = CLogger.getCLogger(MD5Impl.class);
|
||||
|
||||
public MD5Impl() {
|
||||
super();
|
||||
}
|
||||
|
||||
/**
|
||||
* Business method
|
||||
* @param FileName
|
||||
* @return hash base64 encoded
|
||||
*/
|
||||
public String getFileMD5(String FileName) {
|
||||
String hash = null;
|
||||
String absoluteFilename = null;
|
||||
String filepartOnly = null;
|
||||
try
|
||||
{
|
||||
//Thread.currentThread().getContextClassLoader().getResource("");
|
||||
if ( FileName.startsWith("http://") )
|
||||
{
|
||||
//extract absolute path
|
||||
String[] filePathParts = FileName.split("/");
|
||||
filepartOnly = filePathParts[filePathParts.length-1];
|
||||
URL currentFile = Thread.currentThread().getContextClassLoader().getResource(filepartOnly);
|
||||
System.out.println(filepartOnly);
|
||||
absoluteFilename = currentFile.getFile();
|
||||
if (log.isLoggable(Level.INFO)) log.info("decoded absolute path name for "+filepartOnly +" is "+absoluteFilename);
|
||||
}
|
||||
else
|
||||
{
|
||||
absoluteFilename = FileName;
|
||||
}
|
||||
|
||||
if (absoluteFilename != null)
|
||||
{
|
||||
DigestOfFile md5DigestAgent = new DigestOfFile("MD5");
|
||||
hash = md5DigestAgent.digestAsBase64(new java.io.File(absoluteFilename));
|
||||
}
|
||||
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
log.severe(e.getMessage());
|
||||
return null;
|
||||
}
|
||||
|
||||
return hash;
|
||||
}
|
||||
|
||||
/**
|
||||
* Business method
|
||||
* @param Filename
|
||||
* @return AbsolutePath on server
|
||||
*/
|
||||
public String getFileAsolutePath(String Filename)
|
||||
{
|
||||
java.net.URL currentFile = Thread.currentThread().getContextClassLoader().getResource(Filename);
|
||||
return currentFile.toString();
|
||||
}
|
||||
}
|
|
@ -1,68 +0,0 @@
|
|||
/*
|
||||
* Créé le 22 mars 2005
|
||||
*
|
||||
* TODO Pour changer le modčle de ce fichier généré, allez ŕ :
|
||||
* Fenętre - Préférences - Java - Style de code - Modčles de code
|
||||
*/
|
||||
package org.compiere.web;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
|
||||
import javax.servlet.ServletConfig;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServlet;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.compiere.util.Util;
|
||||
import org.compiere.utils.MD5Impl;
|
||||
|
||||
/**
|
||||
* Servlet Class
|
||||
*
|
||||
* @author Michael Judd BF [2728388] - fix potential CSS vulnerability
|
||||
*/
|
||||
public class GetMD5FileServlet extends HttpServlet {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -2625917637549702574L;
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private MD5Impl md5;
|
||||
|
||||
public GetMD5FileServlet() {
|
||||
super();
|
||||
}
|
||||
|
||||
public void init(ServletConfig config) throws ServletException {
|
||||
super.init(config);
|
||||
md5 = new MD5Impl();
|
||||
}
|
||||
|
||||
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
|
||||
throws ServletException,
|
||||
IOException {
|
||||
// TODO Auto-generated method stub
|
||||
String file = Util.maskHTML(req.getParameter("File"));
|
||||
String output = req.getParameter("output");
|
||||
if ("text".equalsIgnoreCase(output))
|
||||
{
|
||||
resp.setContentType("text/plain");
|
||||
PrintWriter out = resp.getWriter();
|
||||
out.print(md5.getFileMD5(file));
|
||||
}
|
||||
else
|
||||
{
|
||||
PrintWriter out = resp.getWriter();
|
||||
out.println("<HTML><HEAD><TITLE>MD5 Hash</TITLE></HEAD><BODY>");
|
||||
out.println("File is: "+ file + "<BR>MD5 : "+ md5.getFileMD5(file)+"<BR>");
|
||||
//out.println(md5.getFileAsolutePath(file));
|
||||
out.println("</BODY></HTML>");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,111 +0,0 @@
|
|||
package org.compiere.web;
|
||||
|
||||
import java.io.IOException;
|
||||
import javax.servlet.Filter;
|
||||
import javax.servlet.FilterChain;
|
||||
import javax.servlet.FilterConfig;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.ServletRequest;
|
||||
import javax.servlet.ServletResponse;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
|
||||
/**
|
||||
* Implementation of <code>javax.servlet.Filter</code> used to compress
|
||||
* the ServletResponse if it is bigger than a threshold.
|
||||
*
|
||||
* @author Amy Roh
|
||||
* @author Dmitri Valdin
|
||||
* @version $Revision: 1.2 $, $Date: 2004/03/18 16:40:33 $
|
||||
*/
|
||||
|
||||
public class MD5Filter implements Filter{
|
||||
|
||||
/**
|
||||
* The filter configuration object we are associated with. If this value
|
||||
* is null, this filter instance is not currently configured.
|
||||
*/
|
||||
private FilterConfig config = null;
|
||||
|
||||
/**
|
||||
/**
|
||||
* Place this filter into service.
|
||||
*
|
||||
* @param filterConfig The filter configuration object
|
||||
*/
|
||||
|
||||
public void init(FilterConfig filterConfig) {
|
||||
|
||||
config = filterConfig;
|
||||
}
|
||||
|
||||
/**
|
||||
* Take this filter out of service.
|
||||
*/
|
||||
public void destroy() {
|
||||
|
||||
this.config = null;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>doFilter</code> method of the Filter is called by the container
|
||||
* each time a request/response pair is passed through the chain due
|
||||
* to a client request for a resource at the end of the chain.
|
||||
* The FilterChain passed into this method allows the Filter to pass on the
|
||||
* request and response to the next entity in the chain.<p>
|
||||
* This method first examines the request to check whether the client support
|
||||
* compression. <br>
|
||||
* It simply just pass the request and response if there is no support for
|
||||
* compression.<br>
|
||||
* If the compression support is available, it creates a
|
||||
* CompressionServletResponseWrapper object which compresses the content and
|
||||
* modifies the header if the content length is big enough.
|
||||
* It then invokes the next entity in the chain using the FilterChain object
|
||||
* (<code>chain.doFilter()</code>), <br>
|
||||
**/
|
||||
|
||||
public void doFilter ( ServletRequest request, ServletResponse response,
|
||||
FilterChain chain ) throws IOException, ServletException {
|
||||
|
||||
if (request instanceof HttpServletRequest) {
|
||||
// is md5 request
|
||||
String s = ((HttpServletRequest)request).getParameter("md5");
|
||||
if (!"true".equals(s)) {
|
||||
chain.doFilter(request, response);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (response instanceof HttpServletResponse) {
|
||||
MD5ResponseWrapper wrappedResponse =
|
||||
new MD5ResponseWrapper((HttpServletResponse)response);
|
||||
try {
|
||||
chain.doFilter(request, wrappedResponse);
|
||||
} finally {
|
||||
wrappedResponse.finishResponse();
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set filter config
|
||||
* This function is equivalent to init. Required by Weblogic 6.1
|
||||
*
|
||||
* @param filterConfig The filter configuration object
|
||||
*/
|
||||
public void setFilterConfig(FilterConfig filterConfig) {
|
||||
init(filterConfig);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return filter config
|
||||
* Required by Weblogic 6.1
|
||||
*/
|
||||
public FilterConfig getFilterConfig() {
|
||||
return config;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,63 +0,0 @@
|
|||
/**
|
||||
*
|
||||
*/
|
||||
package org.compiere.web;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.security.MessageDigest;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.security.NoSuchProviderException;
|
||||
|
||||
import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.WriteListener;
|
||||
|
||||
import org.apache.commons.codec.binary.Base64;
|
||||
|
||||
/**
|
||||
* @author hengsin
|
||||
*
|
||||
*/
|
||||
public class MD5OutputStream extends ServletOutputStream {
|
||||
|
||||
private MessageDigest digestAgent;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public MD5OutputStream() {
|
||||
try {
|
||||
digestAgent = MessageDigest.getInstance("MD5", "SUN");
|
||||
} catch (NoSuchAlgorithmException e) {
|
||||
e.printStackTrace();
|
||||
} catch (NoSuchProviderException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see java.io.OutputStream#write(int)
|
||||
*/
|
||||
@Override
|
||||
public void write(int b) throws IOException {
|
||||
digestAgent.update((byte) b);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return md5 hash
|
||||
*/
|
||||
public String getMD5Hash() {
|
||||
byte[] digest = digestAgent.digest();
|
||||
Base64 base64 = new Base64();
|
||||
String digestAsBase64 = new String(base64.encode(digest));
|
||||
return digestAsBase64;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isReady() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setWriteListener(WriteListener arg0) {
|
||||
}
|
||||
}
|
|
@ -1,75 +0,0 @@
|
|||
/**
|
||||
*
|
||||
*/
|
||||
package org.compiere.web;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
|
||||
import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpServletResponseWrapper;
|
||||
|
||||
/**
|
||||
* @author hengsin
|
||||
*
|
||||
*/
|
||||
public class MD5ResponseWrapper extends HttpServletResponseWrapper {
|
||||
|
||||
private ServletOutputStream stream = null;
|
||||
private PrintWriter writer = null;
|
||||
private HttpServletResponse origResponse;
|
||||
|
||||
/**
|
||||
* @param response
|
||||
*/
|
||||
public MD5ResponseWrapper(HttpServletResponse response) {
|
||||
super(response);
|
||||
origResponse = response;
|
||||
}
|
||||
|
||||
public void finishResponse() {
|
||||
if (stream != null) {
|
||||
String digest = ((MD5OutputStream)stream).getMD5Hash();
|
||||
origResponse.setContentType("text/plain");
|
||||
origResponse.setContentLength(digest.getBytes().length);
|
||||
try {
|
||||
origResponse.getOutputStream().write(digest.getBytes());
|
||||
origResponse.getOutputStream().flush();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ServletOutputStream getOutputStream() throws IOException {
|
||||
if (writer != null)
|
||||
throw new IllegalStateException("getWriter() has already been called for this response");
|
||||
|
||||
if (stream == null)
|
||||
stream = createOutputStream();
|
||||
|
||||
return (stream);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PrintWriter getWriter() throws IOException {
|
||||
if (writer != null)
|
||||
return (writer);
|
||||
|
||||
if (stream != null)
|
||||
throw new IllegalStateException("getOutputStream() has already been called for this response");
|
||||
|
||||
stream = createOutputStream();
|
||||
|
||||
writer = new PrintWriter(stream);
|
||||
return writer;
|
||||
}
|
||||
|
||||
private ServletOutputStream createOutputStream() {
|
||||
stream = new MD5OutputStream();
|
||||
return stream;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
@CALL ..\utils_dev\myDevEnv.bat
|
||||
@IF NOT %COMPIERE_ENV%==Y GOTO NOBUILD
|
||||
|
||||
@echo Cleanup ...
|
||||
@%JAVA_HOME%\bin\java -Dant.home="." %ANT_PROPERTIES% org.apache.tools.ant.Main clean
|
||||
|
||||
@echo Building ...
|
||||
@%JAVA_HOME%\bin\java -Dant.home="." %ANT_PROPERTIES% org.apache.tools.ant.Main dist
|
||||
|
||||
@pause
|
||||
@exit
|
||||
|
||||
:NOBUILD
|
||||
@Echo Check myDevEnv.bat (copy from myDevEnvTemplate.bat)
|
||||
@Pause
|
|
@ -1,18 +0,0 @@
|
|||
# Module compiling script
|
||||
# Ported from Windows script Marek Mosiewicz<marek.mosiewicz@jotel.com.pl>
|
||||
|
||||
|
||||
SAVED_DIR=`pwd` #save current dir
|
||||
cd `dirname $0`/../utils_dev #change dir to place where script resides - doesn not work with sym links
|
||||
UTILS_DEV=`pwd` #this is compiere source
|
||||
cd $SAVED_DIR #back to the saved directory
|
||||
|
||||
. $UTILS_DEV/myDevEnv.sh #call environment
|
||||
echo done
|
||||
if [ ! $COMPIERE_ENV==Y ] ; then
|
||||
echo "Can't set developemeent environemnt - check myDevEnv.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo running Ant
|
||||
$JAVA_HOME/bin/java -Dant.home="." $ANT_PROPERTIES org.apache.tools.ant.Main
|
|
@ -1,22 +0,0 @@
|
|||
CVS=cvs
|
||||
RM=rm
|
||||
CVSROOT=:pserver:anonymous@cvs.sourceforge.net:/cvsroot/compiere
|
||||
#JAVAHOME=c:\jdk1.5.0_01
|
||||
JAVAHOME=c:\j2sdk1.4.2_06
|
||||
JAVAC=$(JAVAHOME)\bin\javac
|
||||
JAVA=$(JAVAHOME)\bin\java
|
||||
|
||||
#usage at de top directory (containing base, client...)
|
||||
#make -f JasperReports/scripts/Makefile all
|
||||
version:
|
||||
$(JAVAC) JasperReports\scripts\Version.java -classpath lib\Compiere.jar
|
||||
|
||||
patch: version
|
||||
$(RM) -f JasperReports/patch-$(shell $(JAVA) JasperReports.scripts.Version ).diff
|
||||
-$(CVS) -d $(CVSROOT) diff -N -u base client data db dbPort extend install interfaces jboss launch looks print serverApps serverRoot utils utils_dev tools webStore>> JasperReports/patch-$(shell $(JAVA) JasperReports.scripts.Version ).diff
|
||||
|
||||
pack: version
|
||||
$(RM) -f compierejasper-$(shell $(JAVA) JasperReports.scripts.Version ).tar.bz2
|
||||
tar -cvjf compierejasper-$(shell $(JAVA) JasperReports.scripts.Version ).tar.bz2 --exclude=JasperReports/lib --exclude=JasperReports/build --exclude=JasperReports/needed JasperReports tools/lib/barbecue-1.1.jar tools/lib/iReport.jar tools/lib/commons-beanutils-1.7.jar tools/lib/itext-1.2.jar tools/lib/commons-collections-3.1.jar tools/lib/commons-digester-1.6.jar tools/lib/commons-logging-1.4.jar tools/lib/jasperreports-0.6.5.jar tools/lib/jfreechart-0.9.21.jar tools/lib/xercesImpl.jar tools/lib/xml-apis.jar
|
||||
|
||||
all: patch pack
|
|
@ -1,14 +0,0 @@
|
|||
package JasperReports.scripts;
|
||||
|
||||
import org.compiere.*;
|
||||
|
||||
|
||||
class Version
|
||||
{
|
||||
public static void main(String args[])
|
||||
{
|
||||
String version[];
|
||||
version = org.compiere.Compiere.MAIN_VERSION.split(" ");
|
||||
System.out.println(version[1]);
|
||||
}
|
||||
}
|
|
@ -28,6 +28,9 @@ import java.math.BigDecimal;
|
|||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.StandardCopyOption;
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
|
@ -71,6 +74,7 @@ import org.compiere.util.DB;
|
|||
import org.compiere.util.Env;
|
||||
import org.compiere.util.Ini;
|
||||
import org.compiere.util.Language;
|
||||
import org.compiere.util.Msg;
|
||||
import org.compiere.util.Trx;
|
||||
import org.compiere.util.Util;
|
||||
import org.compiere.utils.DigestOfFile;
|
||||
|
@ -197,8 +201,6 @@ public class ReportStarter implements ProcessCall, ClientProcess
|
|||
fout.close();
|
||||
return downloadedFile;
|
||||
} catch (FileNotFoundException e) {
|
||||
if(reportLocation.indexOf("Subreport") == -1 && !reportLocation.endsWith(".properties")) // Only show the warning if it is not a subreport or properties
|
||||
log.warning("404 not found: Report cannot be found on server "+ e.getMessage());
|
||||
return null;
|
||||
} catch (IOException e) {
|
||||
throw new AdempiereException("I/O error when trying to download (sub)report from server "+ e.getLocalizedMessage());
|
||||
|
@ -254,78 +256,91 @@ public class ReportStarter implements ProcessCall, ClientProcess
|
|||
String downloadedLocalFile = System.getProperty("java.io.tmpdir") + System.getProperty("file.separator")+"TMP" + cleanFile;
|
||||
|
||||
reportFile = new File(localFile);
|
||||
|
||||
|
||||
if (reportFile.exists())
|
||||
{
|
||||
String localMD5hash = DigestOfFile.GetLocalMD5Hash(reportFile);
|
||||
String remoteMD5Hash = getRemoteMD5(reportLocation);
|
||||
if (log.isLoggable(Level.INFO)) log.info("MD5 for local file is "+localMD5hash );
|
||||
if ( remoteMD5Hash != null)
|
||||
{
|
||||
String remoteMD5Hash = getRemoteMD5(reportLocation);
|
||||
if (!Util.isEmpty(remoteMD5Hash, true))
|
||||
{
|
||||
if (localMD5hash.equals(remoteMD5Hash))
|
||||
String localMD5hash = DigestOfFile.getMD5Hash(reportFile);
|
||||
if (log.isLoggable(Level.INFO)) log.info("MD5 for local file is "+localMD5hash );
|
||||
if (localMD5hash.equals(remoteMD5Hash.trim()))
|
||||
{
|
||||
if (log.isLoggable(Level.INFO)) log.info(" no need to download: local report is up-to-date");
|
||||
if (log.isLoggable(Level.INFO)) log.info("MD5 match: local report file is up-to-date");
|
||||
return reportFile;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (log.isLoggable(Level.INFO)) log.info(" report on server is different that local one, download and replace");
|
||||
if (log.isLoggable(Level.INFO)) log.info("MD5 is different, download and replace");
|
||||
downloadedFile = getRemoteFile(reportLocation, downloadedLocalFile);
|
||||
reportFile.delete();
|
||||
downloadedFile.renameTo(reportFile);
|
||||
if (downloadedFile != null)
|
||||
{
|
||||
Path to = reportFile.toPath();
|
||||
Path from = downloadedFile.toPath();
|
||||
Files.copy(from, to, StandardCopyOption.REPLACE_EXISTING);
|
||||
return to.toFile();
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
log.warning("Remote hashing is not available did you deployed webApp.ear?");
|
||||
downloadedFile = getRemoteFile(reportLocation, downloadedLocalFile);
|
||||
// compare hash of existing and downloaded
|
||||
if ( DigestOfFile.md5localHashCompare(reportFile,downloadedFile) )
|
||||
if (downloadedFile == null)
|
||||
return null;
|
||||
|
||||
// compare hash of existing and downloaded
|
||||
if ( DigestOfFile.md5HashCompare(reportFile,downloadedFile) )
|
||||
{
|
||||
//nothing file are identical
|
||||
if (log.isLoggable(Level.INFO)) log.info(" no need to replace your existing report");
|
||||
if (log.isLoggable(Level.INFO)) log.info("MD5 match: local report file is up-to-date");
|
||||
return reportFile;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (log.isLoggable(Level.INFO)) log.info(" report on server is different that local one, replacing");
|
||||
reportFile.delete();
|
||||
downloadedFile.renameTo(reportFile);
|
||||
if (log.isLoggable(Level.INFO)) log.info("MD5 is different, replace with downloaded file");
|
||||
Path to = reportFile.toPath();
|
||||
Path from = downloadedFile.toPath();
|
||||
Files.copy(from, to, StandardCopyOption.REPLACE_EXISTING);
|
||||
return to.toFile();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
reportFile = getRemoteFile(reportLocation,localFile);
|
||||
return reportFile;
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception e) {
|
||||
throw new AdempiereException("Unknown exception: "+ e.getLocalizedMessage());
|
||||
}
|
||||
return reportFile;
|
||||
}
|
||||
}
|
||||
|
||||
private String getRemoteMD5(String reportLocation) {
|
||||
try{
|
||||
String md5url = reportLocation;
|
||||
if (md5url.indexOf("?") > 0)
|
||||
md5url = md5url + "&md5=true";
|
||||
else
|
||||
md5url = md5url + "?md5=true";
|
||||
try {
|
||||
String md5url = reportLocation + ".md5";
|
||||
URL reportURL = new URL(md5url);
|
||||
InputStream in = reportURL.openStream();
|
||||
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
byte buf[] = new byte[1024];
|
||||
int s = 0;
|
||||
while((s = in.read(buf, 0, 1024)) > 0)
|
||||
baos.write(buf, 0, s);
|
||||
|
||||
in.close();
|
||||
String hash = new String(baos.toByteArray());
|
||||
return hash;
|
||||
try (InputStream in = reportURL.openStream()) {
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
byte buf[] = new byte[1024];
|
||||
int s = 0;
|
||||
while((s = in.read(buf, 0, 1024)) > 0)
|
||||
baos.write(buf, 0, s);
|
||||
|
||||
String hash = new String(baos.toByteArray());
|
||||
int posSpace = hash.indexOf(" ");
|
||||
if (posSpace > 0)
|
||||
hash = hash.substring(0, posSpace);
|
||||
return hash;
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new AdempiereException("I/O error when trying to download (sub)report from server "+ e.getLocalizedMessage());
|
||||
if (log.isLoggable(Level.INFO))
|
||||
log.log(Level.INFO, "MD5 not available for " + reportLocation, e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -388,7 +403,8 @@ public class ReportStarter implements ProcessCall, ClientProcess
|
|||
}
|
||||
ReportData reportData = getReportData(pi, trxName);
|
||||
if (reportData == null) {
|
||||
reportResult(AD_PInstance_ID, "Can not find report data", trxName);
|
||||
reportResult(AD_PInstance_ID, "Failed to retrieve report data", trxName);
|
||||
pi.setSummary("Failed to retrieve report data", true);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -401,6 +417,7 @@ public class ReportStarter implements ProcessCall, ClientProcess
|
|||
if (Util.isEmpty(reportPath, true))
|
||||
{
|
||||
reportResult(AD_PInstance_ID, "Can not find report", trxName);
|
||||
pi.setSummary("Can not find report", true);
|
||||
return false;
|
||||
}
|
||||
if (reportPath.startsWith("@#LocalHttpAddr@")) {
|
||||
|
@ -430,6 +447,7 @@ public class ReportStarter implements ProcessCall, ClientProcess
|
|||
String tmp = "Can not find report file at path - " + reportPath;
|
||||
log.severe(tmp);
|
||||
reportResult(AD_PInstance_ID, tmp, trxName);
|
||||
pi.setSummary(tmp, true);
|
||||
}
|
||||
|
||||
if (reportFile != null)
|
||||
|
@ -860,6 +878,7 @@ public class ReportStarter implements ProcessCall, ClientProcess
|
|||
processInfo.setRowCount(nrows);
|
||||
}
|
||||
reportResult( AD_PInstance_ID, null, trxName);
|
||||
pi.setSummary(Msg.getMsg(Env.getCtx(), "Success"), false);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -1182,7 +1201,7 @@ public class ReportStarter implements ProcessCall, ClientProcess
|
|||
String downloadedLocalFile = System.getProperty("java.io.tmpdir") + System.getProperty("file.separator")+"TMP" + entry.getName();
|
||||
File reportFile = new File(localFile);
|
||||
if (reportFile.exists()) {
|
||||
String localMD5hash = DigestOfFile.GetLocalMD5Hash(reportFile);
|
||||
String localMD5hash = DigestOfFile.getMD5Hash(reportFile);
|
||||
String entryMD5hash = DigestOfFile.getMD5Hash(entry.getData());
|
||||
if (localMD5hash.equals(entryMD5hash))
|
||||
{
|
||||
|
|
|
@ -4,9 +4,11 @@ import java.io.BufferedInputStream;
|
|||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.InputStream;
|
||||
import java.security.DigestInputStream;
|
||||
import java.security.MessageDigest;
|
||||
|
||||
import org.apache.commons.codec.binary.Base64;
|
||||
import org.apache.commons.codec.binary.Hex;
|
||||
|
||||
/**
|
||||
* @author rlemeill
|
||||
|
@ -32,14 +34,13 @@ public class DigestOfFile
|
|||
synchronized public byte[] digestAsByteArray(File file) throws Exception
|
||||
{
|
||||
digestAgent.reset();
|
||||
InputStream is = new BufferedInputStream(new FileInputStream(file));
|
||||
for (int bytesRead = 0; (bytesRead = is.read(buffer)) >= 0;)
|
||||
try (InputStream is = new BufferedInputStream(new FileInputStream(file));
|
||||
DigestInputStream dis = new DigestInputStream(is, digestAgent))
|
||||
{
|
||||
digestAgent.update(buffer, 0, bytesRead);
|
||||
}
|
||||
is.close();
|
||||
byte[] digest = digestAgent.digest();
|
||||
return digest;
|
||||
while(dis.read() != -1){}
|
||||
byte[] digest = digestAgent.digest();
|
||||
return digest;
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized byte[] digestAsByteArray(byte[] input) throws Exception
|
||||
|
@ -76,13 +77,31 @@ public class DigestOfFile
|
|||
return digestAsBase64;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param file
|
||||
* @return hex encoded md5 string
|
||||
* @throws Exception
|
||||
*/
|
||||
public synchronized String digestAsHex(File file) throws Exception
|
||||
{
|
||||
byte[] digest = digestAsByteArray(file);
|
||||
return Hex.encodeHexString(digest);
|
||||
}
|
||||
|
||||
|
||||
//private static final char[] HEX_CHARS = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
|
||||
|
||||
/**
|
||||
*
|
||||
* @param input
|
||||
* @return hex encoded md5 string
|
||||
* @throws Exception
|
||||
*/
|
||||
public synchronized String digestAsHex(byte[] input) throws Exception
|
||||
{
|
||||
byte[] digest = digestAsByteArray(input);
|
||||
return Hex.encodeHexString(digest);
|
||||
}
|
||||
|
||||
private MessageDigest digestAgent;
|
||||
//private Base64 base64Encoder = new Base64();
|
||||
private byte[] buffer = new byte[4096];
|
||||
|
||||
/**
|
||||
* @author rlemeill
|
||||
|
@ -114,15 +133,15 @@ public class DigestOfFile
|
|||
* @param file2 second file to compare
|
||||
* @return true if files are identic false otherwise
|
||||
*/
|
||||
public static boolean md5localHashCompare(File file1,File file2)
|
||||
public static boolean md5HashCompare(File file1,File file2)
|
||||
{
|
||||
//compute Hash of exisiting and downloaded
|
||||
String hashFile1;
|
||||
String hashFile2;
|
||||
try{
|
||||
DigestOfFile md5DigestAgent = new DigestOfFile("MD5");
|
||||
hashFile1 = md5DigestAgent.digestAsBase64(file1);
|
||||
hashFile2 = md5DigestAgent.digestAsBase64(file2);
|
||||
hashFile1 = md5DigestAgent.digestAsHex(file1);
|
||||
hashFile2 = md5DigestAgent.digestAsHex(file2);
|
||||
return hashFile1.equals(hashFile2) ; }
|
||||
catch (Exception e)
|
||||
{
|
||||
|
@ -134,13 +153,15 @@ public class DigestOfFile
|
|||
* @param file
|
||||
* @return md5 hash null if file is not found or other error
|
||||
*/
|
||||
public static String GetLocalMD5Hash(File file)
|
||||
public static String getMD5Hash(File file)
|
||||
{
|
||||
String hash;
|
||||
try{
|
||||
try
|
||||
{
|
||||
DigestOfFile md5DigestAgent = new DigestOfFile("MD5");
|
||||
hash = md5DigestAgent.digestAsBase64(file);
|
||||
return hash; }
|
||||
hash = md5DigestAgent.digestAsHex(file);
|
||||
return hash;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
return null; //if there is an error during comparison return files are difs
|
||||
|
@ -155,10 +176,12 @@ public class DigestOfFile
|
|||
public static String getMD5Hash(byte[] input)
|
||||
{
|
||||
String hash;
|
||||
try{
|
||||
try
|
||||
{
|
||||
DigestOfFile md5DigestAgent = new DigestOfFile("MD5");
|
||||
hash = md5DigestAgent.digestAsBase64(input);
|
||||
return hash; }
|
||||
hash = md5DigestAgent.digestAsHex(input);
|
||||
return hash;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
return null; //if there is an error during comparison return files are difs
|
||||
|
|
|
@ -28,124 +28,100 @@
|
|||
<text><![CDATA[<staticText><reportElement x="0" y="100" width="150" height="40"/><textElement><font size="14"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="0" y="150" width="150" height="40"/>
|
||||
<reportElement x="0" y="150" width="150" height="60"/>
|
||||
<textElement>
|
||||
<font fontName="serif" size="12" pdfFontName="Times-Roman"/>
|
||||
</textElement>
|
||||
<text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="160" y="150" width="390" height="40"/>
|
||||
<reportElement x="160" y="150" width="390" height="60"/>
|
||||
<textElement/>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="150" width="150" height="40"/><textElement><font fontName="serif" size="12" pdfFontName="Times-Roman"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="150" width="150" height="60"/><textElement><font fontName="serif" size="12" pdfFontName="Times-Roman"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="0" y="200" width="150" height="40"/>
|
||||
<reportElement x="0" y="220" width="150" height="60"/>
|
||||
<textElement>
|
||||
<font fontName="serif" size="12" isBold="true" isItalic="true" pdfFontName="Times-BoldItalic"/>
|
||||
</textElement>
|
||||
<text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="160" y="200" width="390" height="40"/>
|
||||
<reportElement x="160" y="220" width="390" height="60"/>
|
||||
<textElement/>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="200" width="150" height="40"/><textElement><font fontName="serif" size="12" isBold="true" isItalic="true" pdfFontName="Times-BoldItalic"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="220" width="150" height="60"/><textElement><font fontName="serif" size="12" isBold="true" isItalic="true" pdfFontName="Times-BoldItalic"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="0" y="250" width="150" height="40"/>
|
||||
<textElement>
|
||||
<font fontName="Comic Sans MS" size="12" isBold="false" pdfFontName="COMIC.TTF"/>
|
||||
</textElement>
|
||||
<text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="160" y="250" width="390" height="40"/>
|
||||
<textElement/>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="250" width="150" height="40"/><textElement><font fontName="Comic Sans MS" size="12" isBold="false" pdfFontName="COMIC.TTF"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="0" y="300" width="150" height="40"/>
|
||||
<textElement>
|
||||
<font fontName="Comic Sans MS" size="12" isBold="true" pdfFontName="COMICBD.TTF"/>
|
||||
</textElement>
|
||||
<text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="160" y="300" width="390" height="40"/>
|
||||
<textElement/>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="300" width="150" height="40"/><textElement><font fontName="Comic Sans MS" size="12" isBold="true" pdfFontName="COMICBD.TTF"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="0" y="350" width="150" height="40"/>
|
||||
<reportElement x="0" y="290" width="150" height="60"/>
|
||||
<textElement>
|
||||
<font fontName="monospaced" size="12" isItalic="true" isUnderline="true" pdfFontName="Courier-Oblique"/>
|
||||
</textElement>
|
||||
<text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="160" y="350" width="390" height="40"/>
|
||||
<reportElement x="160" y="290" width="390" height="60"/>
|
||||
<textElement/>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="350" width="150" height="40"/><textElement><font fontName="monospaced" size="12" isItalic="true" isUnderline="true" pdfFontName="Courier-Oblique"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="290" width="150" height="60"/><textElement><font fontName="monospaced" size="12" isItalic="true" isUnderline="true" pdfFontName="Courier-Oblique"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="0" y="400" width="150" height="40"/>
|
||||
<reportElement x="0" y="360" width="150" height="60"/>
|
||||
<textElement>
|
||||
<font fontName="monospaced" size="12" isBold="true" isStrikeThrough="true" pdfFontName="Courier-Bold"/>
|
||||
</textElement>
|
||||
<text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="160" y="400" width="390" height="40"/>
|
||||
<reportElement x="160" y="360" width="390" height="60"/>
|
||||
<textElement/>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="400" width="150" height="40"/><textElement><font fontName="monospaced" size="12" isBold="true" isStrikeThrough="true" pdfFontName="Courier-Bold"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="360" width="150" height="60"/><textElement><font fontName="monospaced" size="12" isBold="true" isStrikeThrough="true" pdfFontName="Courier-Bold"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="0" y="450" width="150" height="40" forecolor="#ff0000"/>
|
||||
<reportElement x="0" y="430" width="150" height="60" forecolor="#ff0000"/>
|
||||
<textElement>
|
||||
<font size="14"/>
|
||||
</textElement>
|
||||
<text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="160" y="450" width="390" height="40"/>
|
||||
<reportElement x="160" y="430" width="390" height="60"/>
|
||||
<textElement/>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="450" width="150" height="40" forecolor="red"/><textElement><font size="14"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="430" width="150" height="60" forecolor="red"/><textElement><font size="14"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement mode="Opaque" x="0" y="500" width="150" height="40" forecolor="#ff00" backcolor="#ffff00"/>
|
||||
<reportElement mode="Opaque" x="0" y="500" width="150" height="60" forecolor="#ff00" backcolor="#ffff00"/>
|
||||
<textElement>
|
||||
<font fontName="serif" size="12" isBold="true" pdfFontName="Times-Bold"/>
|
||||
</textElement>
|
||||
<text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="160" y="500" width="390" height="40"/>
|
||||
<reportElement x="160" y="500" width="390" height="60"/>
|
||||
<textElement/>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="500" width="150" height="40" forecolor="green" backcolor="#FFFF00" mode="Opaque"/><textElement><font fontName="serif" size="12" isBold="true" pdfFontName="Times-Bold"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="500" width="150" height="60" forecolor="green" backcolor="#FFFF00" mode="Opaque"/><textElement><font fontName="serif" size="12" isBold="true" pdfFontName="Times-Bold"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement mode="Opaque" x="0" y="550" width="150" height="90" forecolor="#ff" backcolor="#ffdd99"/>
|
||||
<reportElement mode="Opaque" x="0" y="570" width="150" height="90" forecolor="#ff" backcolor="#ffdd99"/>
|
||||
<textElement textAlignment="Center" verticalAlignment="Middle">
|
||||
<font fontName="serif" size="12" isBold="true" pdfFontName="Times-Bold"/>
|
||||
</textElement>
|
||||
<text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="160" y="550" width="390" height="90"/>
|
||||
<reportElement x="160" y="570" width="390" height="90"/>
|
||||
<textElement/>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="550" width="150" height="90" forecolor="blue" backcolor="#FFDD99" mode="Opaque"/><textElement textAlignment="Center" verticalAlignment="Middle"><font fontName="serif" size="12" isBold="true" pdfFontName="Times-Bold"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="570" width="150" height="90" forecolor="blue" backcolor="#FFDD99" mode="Opaque"/><textElement textAlignment="Center" verticalAlignment="Middle"><font fontName="serif" size="12" isBold="true" pdfFontName="Times-Bold"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement mode="Opaque" x="0" y="650" width="150" height="90" forecolor="#ff0000" backcolor="#99ddff"/>
|
||||
<reportElement mode="Opaque" x="0" y="670" width="150" height="90" forecolor="#ff0000" backcolor="#99ddff"/>
|
||||
<textElement textAlignment="Right" verticalAlignment="Bottom">
|
||||
<font fontName="serif" size="12" isBold="true" pdfFontName="Times-Bold"/>
|
||||
</textElement>
|
||||
<text><![CDATA[The quick brown fox jumps over the lazy dog.]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement x="160" y="650" width="390" height="90"/>
|
||||
<reportElement x="160" y="670" width="390" height="90"/>
|
||||
<textElement/>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="650" width="150" height="90" forecolor="red" backcolor="#99DDFF" mode="Opaque"/><textElement textAlignment="Right" verticalAlignment="Bottom"><font fontName="serif" size="12" isBold="true" pdfFontName="Times-Bold"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
<text><![CDATA[<staticText><reportElement x="0" y="670" width="150" height="90" forecolor="red" backcolor="#99DDFF" mode="Opaque"/><textElement textAlignment="Right" verticalAlignment="Bottom"><font fontName="serif" size="12" isBold="true" pdfFontName="Times-Bold"/></textElement><text>The quick brown fox jumps over the lazy dog.</text></staticText>]]></text>
|
||||
</staticText>
|
||||
</band>
|
||||
</title>
|
|
@ -82,13 +82,6 @@
|
|||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
<plugin
|
||||
id="org.adempiere.report.jasper.webapp"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
<plugin
|
||||
id="org.adempiere.server"
|
||||
download-size="0"
|
||||
|
|
|
@ -353,7 +353,6 @@
|
|||
<setEntry value="org.adempiere.replication.server@default:default"/>
|
||||
<setEntry value="org.adempiere.replication@default:default"/>
|
||||
<setEntry value="org.adempiere.report.jasper.library@default:false"/>
|
||||
<setEntry value="org.adempiere.report.jasper.webapp@default:default"/>
|
||||
<setEntry value="org.adempiere.report.jasper@default:default"/>
|
||||
<setEntry value="org.adempiere.server@default:true"/>
|
||||
<setEntry value="org.adempiere.ui.zk@default:true"/>
|
||||
|
|
|
@ -353,7 +353,6 @@
|
|||
<setEntry value="org.adempiere.replication.server@default:default"/>
|
||||
<setEntry value="org.adempiere.replication@default:default"/>
|
||||
<setEntry value="org.adempiere.report.jasper.library@default:false"/>
|
||||
<setEntry value="org.adempiere.report.jasper.webapp@default:default"/>
|
||||
<setEntry value="org.adempiere.report.jasper@default:default"/>
|
||||
<setEntry value="org.adempiere.server@default:true"/>
|
||||
<setEntry value="org.adempiere.ui.zk@default:true"/>
|
||||
|
|
1
pom.xml
1
pom.xml
|
@ -25,7 +25,6 @@
|
|||
<module>org.adempiere.replication.server</module>
|
||||
<module>org.adempiere.report.jasper.library</module>
|
||||
<module>org.adempiere.report.jasper</module>
|
||||
<module>org.adempiere.report.jasper.webapp</module>
|
||||
<module>org.adempiere.server</module>
|
||||
<module>org.adempiere.ui</module>
|
||||
<module>org.adempiere.ui.zk</module>
|
||||
|
|
Loading…
Reference in New Issue