hg merge experimental

This commit is contained in:
Carlos Ruiz 2017-10-19 16:44:01 +02:00
commit d34023d178
140 changed files with 568 additions and 15051 deletions

View File

@ -4,6 +4,9 @@ build
External Plug-in Libraries
org.eclipse.jetty.http/bin
alpn-boot.jar
.sonarlint
org.adempiere.webstore/bin
org.idempiere.hazelcast.service.config/bin
syntax: regexp
^adempiere$
^org\.adempiere\.install/lib$

View File

@ -36,10 +36,6 @@
id="org.adempiere.report.jasper"
version="0.0.0"/>
<includes
id="org.idempiere.customize"
version="0.0.0"/>
<plugin
id="org.adempiere.base"
download-size="0"
@ -208,6 +204,20 @@
version="0.0.0"
unpack="false"/>
<plugin
id="javax.xml.bind"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="javax.xml.stream"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.apache.commons.codec"
download-size="0"

View File

@ -20,7 +20,7 @@
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc}"/>
<stringAttribute key="pde.version" value="3.3"/>
<stringAttribute key="product" value="org.adempiere.server.server_product"/>
<stringAttribute key="selected_target_plugins" value="bcpkix*1.55.0@default:default,bcpkix*1.56.0@default:default,bcprov*1.55.0@default:default,bcprov*1.56.0@default:default,com.itextpdf@default:default,com.sun.mail.javax.mail@default:default,groovy-all*2.4.7@default:default,groovy-all*2.4.8@default:default,javax.activation@default:default,javax.annotation-api@default:default,javax.annotation@default:default,javax.ejb@default:default,javax.inject@default:default,javax.jms@default:default,javax.management.j2ee-api@default:default,javax.transaction@default:false,javax.xml.rpc@default:default,javax.xml.soap@default:default,javax.xml@default:default,net.sf.supercsv.super-csv@default:default,org.apache.activemq.activemq-core@default:default,org.apache.activemq.kahadb@default:default,org.apache.ant@default:default,org.apache.commons.codec@default:default,org.apache.commons.collections@default:default,org.apache.commons.logging@default:default,org.apache.commons.net@default:default,org.apache.poi@default:default,org.apache.servicemix.bundles.cglib@default:default,org.apache.xerces@default:default,org.apache.xml.resolver@default:default,org.apache.xml.serializer@default:default,org.cryptacular@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.util@default:default,org.eclipse.jdt.core.compiler.batch@default:default,org.eclipse.jetty.osgi-servlet-api@default:default,org.eclipse.osgi.compatibility.plugins@default:false,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.hamcrest.core@default:default,org.junit@default:default,org.passay@default:default,org.restlet@default:default,org.slf4j.api@default:default,org.slf4j.jcl@default:default"/>
<stringAttribute key="selected_target_plugins" value="bcpkix@default:default,bcprov@default:default,com.itextpdf@default:default,com.jaspersoft.studio.bundles.barbecue@default:default,com.sun.mail.javax.mail@default:default,groovy-all@default:default,javax.activation@default:default,javax.annotation-api@default:default,javax.ejb@default:default,javax.inject@default:default,javax.jms@default:default,javax.management.j2ee-api@default:default,javax.transaction@default:false,javax.xml.rpc@default:default,javax.xml.soap@default:default,javax.xml@default:default,net.sf.supercsv.super-csv@default:default,org.apache.activemq.activemq-core@default:default,org.apache.activemq.kahadb@default:default,org.apache.ant@default:default,org.apache.commons.codec@default:default,org.apache.commons.collections@default:default,org.apache.commons.logging@default:default,org.apache.commons.net@default:default,org.apache.felix.scr@default:default,org.apache.poi@default:default,org.apache.servicemix.bundles.cglib@default:default,org.apache.xerces@default:default,org.apache.xml.resolver@default:default,org.apache.xml.serializer@default:default,org.cryptacular@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.http.registry@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.util@default:default,org.eclipse.jdt.core.compiler.batch@default:default,org.eclipse.jetty.osgi-servlet-api@default:default,org.eclipse.osgi.compatibility.plugins@default:false,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.hamcrest.core@default:default,org.jfree.chart-osgi@default:default,org.jfree.jcommon-osgi@default:default,org.junit@default:default,org.krysalis.barcode4j@default:default,org.passay@default:default,org.restlet@default:default,org.slf4j.api@default:default,org.slf4j.jcl@default:default"/>
<stringAttribute key="selected_workspace_plugins" value="org.adempiere.base@default:default,org.adempiere.extend@default:false,org.adempiere.install@default:default,org.adempiere.plugin.utils@default:default,org.adempiere.ui@default:default,org.apache.ecs@default:default,org.compiere.db.oracle.provider@default:default,org.compiere.db.postgresql.provider@default:default,org.idempiere.fitrecorder@default:default,org.slf4j.jdk14@default:false"/>
<booleanAttribute key="show_selected_only" value="false"/>
<stringAttribute key="templateConfig" value="${target_home}/configuration/config.ini"/>

View File

@ -10,11 +10,7 @@
<classpathentry exported="true" kind="lib" path="jython-engine.jar"/>
<classpathentry exported="true" kind="lib" path="jython.jar"/>
<classpathentry exported="true" kind="lib" path="cron4j-2.2.5.jar"/>
<classpathentry exported="true" kind="lib" path="barbecue-1.5-beta1.jar"/>
<classpathentry exported="true" kind="lib" path="jcommon-1.0.23.jar"/>
<classpathentry exported="true" kind="lib" path="jfreechart-1.0.19.jar"/>
<classpathentry exported="true" kind="lib" path="jnlp.jar"/>
<classpathentry exported="true" kind="lib" path="barcode4j-2.1.jar"/>
<classpathentry exported="true" kind="lib" path="commons-validator-1.6.jar"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>

View File

@ -5,21 +5,11 @@
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.ibm.etools.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
@ -30,17 +20,9 @@
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ds.core.builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="org.adempiere.base">
<wb-resource deploy-path="/" source-path="/src"/>
</wb-module>
</project-modules>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<fixed facet="jst.utility"/>
<fixed facet="jst.java"/>
<installed facet="jst.utility" version="1.0"/>
<installed facet="jst.java" version="1.8"/>
</faceted-project>

View File

@ -7,11 +7,7 @@ Bundle-ClassPath: base.jar,
jython-engine.jar,
jython.jar,
cron4j-2.2.5.jar,
barbecue-1.5-beta1.jar,
jcommon-1.0.23.jar,
jfreechart-1.0.19.jar,
jnlp.jar,
barcode4j-2.1.jar,
bsh-2.0b6.jar,
commons-validator-1.6.jar
Export-Package: bsh,
@ -26,19 +22,6 @@ Export-Package: bsh,
com.akunagroup.uk.postcode,
it.sauronsoftware.cron4j,
javax.jnlp,
net.sourceforge.barbecue,
net.sourceforge.barbecue.env,
net.sourceforge.barbecue.formatter,
net.sourceforge.barbecue.linear,
net.sourceforge.barbecue.linear.codabar,
net.sourceforge.barbecue.linear.code128,
net.sourceforge.barbecue.linear.code39,
net.sourceforge.barbecue.linear.ean,
net.sourceforge.barbecue.linear.postnet,
net.sourceforge.barbecue.linear.twoOfFive,
net.sourceforge.barbecue.linear.upc,
net.sourceforge.barbecue.output,
net.sourceforge.barbecue.twod.pdf417,
org.adempiere.apps.graph,
org.adempiere.base,
org.adempiere.base.equinox,
@ -72,81 +55,7 @@ Export-Package: bsh,
org.eevolution.model,
org.idempiere.broadcast,
org.idempiere.distributed,
org.idempiere.model,
org.jfree,
org.jfree.base,
org.jfree.base.config,
org.jfree.base.log,
org.jfree.base.modules,
org.jfree.chart,
org.jfree.chart.annotations,
org.jfree.chart.axis,
org.jfree.chart.block,
org.jfree.chart.editor,
org.jfree.chart.encoders,
org.jfree.chart.entity,
org.jfree.chart.event,
org.jfree.chart.imagemap,
org.jfree.chart.labels,
org.jfree.chart.needle,
org.jfree.chart.panel,
org.jfree.chart.plot,
org.jfree.chart.plot.dial,
org.jfree.chart.renderer,
org.jfree.chart.renderer.category,
org.jfree.chart.renderer.xy,
org.jfree.chart.resources,
org.jfree.chart.servlet,
org.jfree.chart.title,
org.jfree.chart.urls,
org.jfree.chart.util,
org.jfree.data,
org.jfree.data.category,
org.jfree.data.contour,
org.jfree.data.function,
org.jfree.data.gantt,
org.jfree.data.general,
org.jfree.data.io,
org.jfree.data.jdbc,
org.jfree.data.resources,
org.jfree.data.statistics,
org.jfree.data.time,
org.jfree.data.time.ohlc,
org.jfree.data.xml,
org.jfree.data.xy,
org.jfree.date,
org.jfree.io,
org.jfree.layout,
org.jfree.resources,
org.jfree.text,
org.jfree.threads,
org.jfree.ui,
org.jfree.ui.about,
org.jfree.ui.about.resources,
org.jfree.ui.action,
org.jfree.ui.tabbedui,
org.jfree.util,
org.krysalis.barcode4j,
org.krysalis.barcode4j.ant,
org.krysalis.barcode4j.cli,
org.krysalis.barcode4j.impl,
org.krysalis.barcode4j.impl.codabar,
org.krysalis.barcode4j.impl.code128,
org.krysalis.barcode4j.impl.code39,
org.krysalis.barcode4j.impl.datamatrix,
org.krysalis.barcode4j.impl.fourstate,
org.krysalis.barcode4j.impl.int2of5,
org.krysalis.barcode4j.impl.pdf417,
org.krysalis.barcode4j.impl.postnet,
org.krysalis.barcode4j.impl.upcean,
org.krysalis.barcode4j.output,
org.krysalis.barcode4j.output.bitmap,
org.krysalis.barcode4j.output.eps,
org.krysalis.barcode4j.output.java2d,
org.krysalis.barcode4j.output.svg,
org.krysalis.barcode4j.servlet,
org.krysalis.barcode4j.tools,
org.krysalis.barcode4j.xalan
org.idempiere.model
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Import-Package: com.sun.mail.smtp;version="1.5",
javax.activation,
@ -158,6 +67,8 @@ Import-Package: com.sun.mail.smtp;version="1.5",
junit.framework;version="3.8.2";resolution:=optional,
junit.textui;version="3.8.2";resolution:=optional,
net.sf.cglib.proxy,
net.sourceforge.barbecue;version="1.5.0.beta1",
net.sourceforge.barbecue.linear.ean;version="1.5.0.beta1",
org.apache.activemq;version="5.3.0",
org.apache.commons.collections;version="3.2.0",
org.apache.commons.collections.keyvalue;version="3.2.0",
@ -173,6 +84,20 @@ Import-Package: com.sun.mail.smtp;version="1.5",
org.eclipse.core.runtime;version="3.4.0",
org.eclipse.osgi.framework.console;version="1.1.0",
org.eclipse.osgi.service.datalocation,
org.jfree.chart;version="1.0.19",
org.jfree.chart.axis;version="1.0.19",
org.jfree.chart.plot;version="1.0.19",
org.jfree.chart.renderer.category;version="1.0.19",
org.jfree.data.category;version="1.0.19",
org.jfree.data.general;version="1.0.19",
org.jfree.data.time;version="1.0.19",
org.jfree.data.xy;version="1.0.19",
org.jfree.date;version="1.0.23",
org.jfree.io;version="1.0.23",
org.krysalis.barcode4j;version="2.1.0",
org.krysalis.barcode4j.impl;version="2.1.0",
org.krysalis.barcode4j.impl.upcean;version="2.1.0",
org.krysalis.barcode4j.output.bitmap;version="2.1.0",
org.osgi.framework,
org.osgi.service.cm;version="1.3.0",
org.osgi.service.component;version="1.1.0",

View File

@ -4,9 +4,6 @@ bin.includes = META-INF/,\
jython-engine.jar,\
jython.jar,\
cron4j-2.2.5.jar,\
barbecue-1.5-beta1.jar,\
jcommon-1.0.23.jar,\
jfreechart-1.0.19.jar,\
jnlp.jar,\
OSGI-INF/,\
OSGI-INF/dslocator.xml,\
@ -26,7 +23,6 @@ bin.includes = META-INF/,\
OSGI-INF/defaulttaxproviderfactory.xml,\
OSGI-INF/addressvalidationeventhandler.xml,\
schema/,\
barcode4j-2.1.jar,\
bsh-2.0b6.jar,\
commons-validator-1.6.jar
output.base.jar = bin/

View File

@ -8,12 +8,8 @@
<get src="${url.file.srv}/jarfile/4.1/jython-engine.jar" dest="jython-engine.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.maven2.lib}/maven2/org/python/jython/2.2.1/jython-2.2.1.jar" dest="jython.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.maven2.lib}/maven2/it/sauronsoftware/cron4j/cron4j/2.2.5/cron4j-2.2.5.jar" dest="cron4j-2.2.5.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.maven2.lib}/maven2/net/sourceforge/barbecue/barbecue/1.5-beta1/barbecue-1.5-beta1.jar" dest="barbecue-1.5-beta1.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.maven2.lib}/maven2/org/jfree/jcommon/1.0.23/jcommon-1.0.23.jar" dest="jcommon-1.0.23.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.maven2.lib}/maven2/org/jfree/jfreechart/1.0.19/jfreechart-1.0.19.jar" dest="jfreechart-1.0.19.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.maven2.lib}/maven2/commons-validator/commons-validator/1.6/commons-validator-1.6.jar" dest="commons-validator-1.6.jar" usetimestamp="true" verbose="true" retries="5" />
<!-- jnlp is not used in idempiere? -->
<get src="${url.maven2.lib}/maven2/net/sf/barcode4j/barcode4j/2.1/barcode4j-2.1.jar" dest="barcode4j-2.1.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.srv}/jarfile/4.1/jnlp.jar" dest="jnlp.jar" usetimestamp="true" verbose="true" retries="5" />
</target>
</project>

View File

@ -76,6 +76,8 @@ public class AttachmentFileSystem implements IAttachmentStore {
if (log.isLoggable(Level.FINE)) log.fine("move file: " + path);
FileChannel in = null;
FileChannel out = null;
FileInputStream fis = null;
FileOutputStream fos = null;
try {
//create destination folder
StringBuilder msgfile = new StringBuilder().append(attachmentPathRoot).append(File.separator).append(getAttachmentPathSnippet(attach));
@ -88,11 +90,11 @@ public class AttachmentFileSystem implements IAttachmentStore {
msgfile = new StringBuilder().append(attachmentPathRoot).append(File.separator)
.append(getAttachmentPathSnippet(attach)).append(File.separator).append(entryFile.getName());
final File destFile = new File(msgfile.toString());
in = new FileInputStream(entryFile).getChannel();
out = new FileOutputStream(destFile).getChannel();
fis = new FileInputStream(entryFile);
in = fis.getChannel();
fos = new FileOutputStream(destFile);
out = fos.getChannel();
in.transferTo(0, in.size(), out);
in.close();
out.close();
/* IDEMPIERE-2864
if(entryFile.exists()){
if(!entryFile.delete()){
@ -107,11 +109,19 @@ public class AttachmentFileSystem implements IAttachmentStore {
+ attachmentPathRoot + File.separator +
getAttachmentPathSnippet(attach) + File.separator + entryFile.getName());
} finally {
if (in != null && in.isOpen()) {
in.close();
if (fis != null) {
try{
fis.close();
}catch(Exception e) {
//do nothing
}
}
if (out != null && out.isOpen()) {
out.close();
if (fos != null) {
try{
fos.close();
}catch(Exception e) {
//do nothing
}
}
}
}

View File

@ -14,6 +14,9 @@
<booleanAttribute key="default" value="false"/>
<booleanAttribute key="includeOptional" value="false"/>
<stringAttribute key="location" value="${workspace_loc}/../runtime-install.app"/>
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
</listAttribute>
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
@ -21,7 +24,7 @@
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc}"/>
<stringAttribute key="pde.version" value="3.3"/>
<stringAttribute key="product" value="org.adempiere.server.server_product"/>
<stringAttribute key="selected_target_plugins" value="bcpkix@default:default,bcprov@default:default,com.itextpdf@default:default,com.sun.mail.javax.mail@default:default,groovy-all@default:default,javax.activation@default:default,javax.ejb@default:default,javax.jms@default:default,javax.management.j2ee-api@default:default,javax.transaction@default:false,javax.xml.rpc@default:default,javax.xml.soap@default:default,javax.xml@default:default,net.sf.supercsv.super-csv@default:default,org.apache.activemq.activemq-core@default:default,org.apache.activemq.kahadb@default:default,org.apache.ant@default:default,org.apache.commons.codec@default:false,org.apache.commons.collections@default:default,org.apache.commons.logging@default:default,org.apache.commons.net@default:default,org.apache.poi@default:default,org.apache.servicemix.bundles.cglib@default:default,org.cryptacular@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.util@default:default,org.eclipse.jetty.osgi-servlet-api@default:default,org.eclipse.osgi.compatibility.plugins@default:false,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.hamcrest.core@default:default,org.junit@default:default,org.passay@default:default,org.restlet@default:default,org.slf4j.api@default:default,org.slf4j.jcl@default:default"/>
<stringAttribute key="selected_target_plugins" value="bcpkix@default:default,bcprov@default:default,com.itextpdf@default:default,com.jaspersoft.studio.bundles.barbecue@default:default,com.sun.mail.javax.mail@default:default,groovy-all@default:default,javax.activation@default:default,javax.ejb@default:default,javax.jms@default:default,javax.management.j2ee-api@default:default,javax.transaction@default:false,javax.xml.rpc@default:default,javax.xml.soap@default:default,javax.xml@default:default,net.sf.supercsv.super-csv@default:default,org.apache.activemq.activemq-core@default:default,org.apache.activemq.kahadb@default:default,org.apache.ant@default:default,org.apache.commons.codec@default:false,org.apache.commons.collections@default:default,org.apache.commons.logging@default:default,org.apache.commons.net@default:default,org.apache.felix.scr@default:default,org.apache.poi@default:default,org.apache.servicemix.bundles.cglib@default:default,org.cryptacular@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.util@default:default,org.eclipse.jetty.osgi-servlet-api@default:default,org.eclipse.osgi.compatibility.plugins@default:false,org.eclipse.osgi.compatibility.state@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.hamcrest.core@default:default,org.jfree.chart-osgi@default:default,org.jfree.jcommon-osgi@default:default,org.junit@default:default,org.krysalis.barcode4j@default:default,org.passay@default:default,org.restlet@default:default,org.slf4j.api@default:default,org.slf4j.jcl@default:default"/>
<stringAttribute key="selected_workspace_plugins" value="org.adempiere.base@default:default,org.adempiere.extend@default:false,org.adempiere.install@default:true,org.apache.ecs@default:default,org.compiere.db.oracle.provider@default:default,org.compiere.db.postgresql.provider@default:default,org.slf4j.jdk14@default:false"/>
<booleanAttribute key="show_selected_only" value="false"/>
<stringAttribute key="templateConfig" value="${target_home}/configuration/config.ini"/>

View File

@ -15,3 +15,4 @@ Export-Package: org.adempiere.pipo.srv,
org.adempiere.pipo2.exception
Require-Bundle: org.adempiere.base;bundle-version="0.0.0"
Service-Component: OSGI-INF/dictionaryservice.xml
Bundle-ActivationPolicy: lazy

View File

@ -10,3 +10,4 @@ Require-Bundle: org.adempiere.server;bundle-version="0.0.0",
Import-Package: javax.jms;version="1.1.0",
org.apache.activemq
Service-Component: OSGI-INF/serverfactory.xml
Bundle-ActivationPolicy: lazy

View File

@ -26,7 +26,188 @@
id="org.adempiere.report.jasper.library"
download-size="0"
install-size="0"
fragment="true"
version="0.0.0"/>
<plugin
id="com.jaspersoft.studio.bundles.itext"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="com.jaspersoft.studio.bundles.batik"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.antlr.runtime"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.jaspersoft.studio.bundles.barbecue"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.krysalis.barcode4j"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.jaspersoft.studio.bundles.poi"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.jaspersoft.studio.bundles.zxing"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="bctsp"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="bcmail"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.apache.servicemix.bundles.jaxen"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.jfree.jcommon-osgi"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.apache.servicemix.bundles.rhino"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.apache.servicemix.bundles.jaxen"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.jfree.chart-osgi"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.apache.lucene.analysis"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.apache.lucene.core"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.jaspersoft.studio.bundles.jxl"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="net.sf.jasperreports.engine"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.dom4j"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.w3c.dom.events"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.w3c.dom.smil"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.w3c.dom.svg"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.w3c.css.sac"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.apache.commons.logging"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.apache.commons.digester"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.apache.servicemix.bundles.xmlbeans"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
</feature>

View File

@ -1,54 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry exported="true" kind="lib" path="lib/bcprov-jdk14-139.jar"/>
<classpathentry exported="true" kind="lib" path="lib/batik-anim-1.8.jar"/>
<classpathentry exported="true" kind="lib" path="lib/batik-awt-util-1.8.jar"/>
<classpathentry exported="true" kind="lib" path="lib/batik-bridge-1.8.jar"/>
<classpathentry exported="true" kind="lib" path="lib/batik-codec-1.8.jar"/>
<classpathentry exported="true" kind="lib" path="lib/batik-css-1.8.jar"/>
<classpathentry exported="true" kind="lib" path="lib/batik-dom-1.8.jar"/>
<classpathentry exported="true" kind="lib" path="lib/batik-ext-1.8.jar"/>
<classpathentry exported="true" kind="lib" path="lib/batik-extension-1.8.jar"/>
<classpathentry exported="true" kind="lib" path="lib/batik-gui-util-1.8.jar"/>
<classpathentry exported="true" kind="lib" path="lib/batik-gvt-1.8.jar"/>
<classpathentry exported="true" kind="lib" path="lib/batik-parser-1.8.jar"/>
<classpathentry exported="true" kind="lib" path="lib/batik-script-1.8.jar"/>
<classpathentry exported="true" kind="lib" path="lib/batik-svg-dom-1.8.jar"/>
<classpathentry exported="true" kind="lib" path="lib/batik-svggen-1.8.jar"/>
<classpathentry exported="true" kind="lib" path="lib/batik-swing-1.8.jar"/>
<classpathentry exported="true" kind="lib" path="lib/batik-transcoder-1.8.jar"/>
<classpathentry exported="true" kind="lib" path="lib/batik-util-1.8.jar"/>
<classpathentry exported="true" kind="lib" path="lib/batik-xml-1.8.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jasperreports-chart-customizers-6.3.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jasperreports-chart-themes-6.3.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jasperreports-functions-6.3.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/castor-core-1.3.3.jar"/>
<classpathentry exported="true" kind="lib" path="lib/castor-xml-1.3.3.jar"/>
<classpathentry exported="true" kind="lib" path="lib/commons-digester-2.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/commons-javaflow-20160505.jar"/>
<classpathentry exported="true" kind="lib" path="lib/core-2.3.0.jar"/>
<classpathentry exported="true" kind="lib" path="lib/fop-transcoder-allinone-1.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/hibernate-core-3.3.2.GA.jar"/>
<classpathentry exported="true" kind="lib" path="lib/itext-2.1.7.js5.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jasperreports-6.3.0.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jasperreports-fonts-6.3.0.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jasperreports-functions-6.3.0.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jaxen-1.1.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jcommon-1.0.23.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jfreechart-1.0.19.jar"/>
<classpathentry exported="true" kind="lib" path="lib/js.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jxl-2.6.10.jar"/>
<classpathentry exported="true" kind="lib" path="lib/lucene-analyzers-common-4.5.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/lucene-core-4.5.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/lucene-queryparser-4.5.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/mondrian-3.1.1.12687.jar"/>
<classpathentry exported="true" kind="lib" path="lib/olap4j-0.9.7.309-JS-3.jar"/>
<classpathentry exported="true" kind="lib" path="lib/persistence-api-1.0.jar"/>
<classpathentry exported="true" kind="lib" path="lib/poi-3.10.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/poi-ooxml-3.10.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/rhino-1.7.6.jar"/>
<classpathentry exported="true" kind="lib" path="lib/spring-beans-2.5.jar"/>
<classpathentry exported="true" kind="lib" path="lib/spring-core-2.5.jar"/>
<classpathentry exported="true" kind="lib" path="lib/velocity-1.7.jar"/>
<classpathentry exported="true" kind="lib" path="lib/xml-apis-ext-1.3.04.jar"/>
<classpathentry exported="true" kind="lib" path="lib/xmlgraphics-commons-1.5.jar"/>
<classpathentry exported="true" kind="lib" path="lib/xmpcore-5.1.1.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>

View File

@ -4,226 +4,20 @@ Bundle-Name: Library
Bundle-SymbolicName: org.adempiere.report.jasper.library;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ClassPath: lib/batik-anim-1.8.jar,
lib/batik-awt-util-1.8.jar,
lib/batik-bridge-1.8.jar,
lib/batik-codec-1.8.jar,
lib/batik-css-1.8.jar,
lib/batik-dom-1.8.jar,
lib/batik-ext-1.8.jar,
lib/batik-extension-1.8.jar,
lib/batik-gui-util-1.8.jar,
lib/batik-gvt-1.8.jar,
lib/batik-parser-1.8.jar,
lib/batik-script-1.8.jar,
lib/batik-svg-dom-1.8.jar,
lib/batik-svggen-1.8.jar,
lib/batik-swing-1.8.jar,
lib/batik-transcoder-1.8.jar,
lib/batik-util-1.8.jar,
lib/batik-xml-1.8.jar,
Fragment-Host: net.sf.jasperreports.engine;bundle-version="6.3.1"
Bundle-ClassPath: .,
lib/castor-core-1.3.3.jar,
lib/castor-xml-1.3.3.jar,
lib/commons-digester-2.1.jar,
lib/commons-javaflow-20160505.jar,
lib/core-2.3.0.jar,
lib/fop-transcoder-allinone-1.1.jar,
lib/hibernate-core-3.3.2.GA.jar,
lib/itext-2.1.7.js5.jar,
lib/jasperreports-6.3.0.jar,
lib/jasperreports-fonts-6.3.0.jar,
lib/jasperreports-functions-6.3.0.jar,
lib/jaxen-1.1.1.jar,
lib/jcommon-1.0.23.jar,
lib/jfreechart-1.0.19.jar,
lib/js.jar,
lib/jxl-2.6.10.jar,
lib/lucene-analyzers-common-4.5.1.jar,
lib/lucene-core-4.5.1.jar,
lib/lucene-queryparser-4.5.1.jar,
lib/mondrian-3.1.1.12687.jar,
lib/olap4j-0.9.7.309-JS-3.jar,
lib/persistence-api-1.0.jar,
lib/poi-3.10.1.jar,
lib/poi-ooxml-3.10.1.jar,
lib/rhino-1.7.6.jar,
lib/spring-beans-2.5.jar,
lib/spring-core-2.5.jar,
lib/velocity-1.7.jar,
lib/xml-apis-ext-1.3.04.jar,
lib/xmlgraphics-commons-1.5.jar,
lib/xmpcore-5.1.1.jar,
.,
lib/bcprov-jdk14-139.jar
Export-Package: net.sf.jasperreports.ant,
net.sf.jasperreports.charts,
net.sf.jasperreports.charts.base,
net.sf.jasperreports.charts.design,
net.sf.jasperreports.charts.fill,
net.sf.jasperreports.charts.type,
net.sf.jasperreports.charts.util,
net.sf.jasperreports.charts.xml,
net.sf.jasperreports.compilers,
net.sf.jasperreports.components,
net.sf.jasperreports.components.barbecue,
net.sf.jasperreports.components.barcode4j,
net.sf.jasperreports.components.charts,
net.sf.jasperreports.components.headertoolbar,
net.sf.jasperreports.components.headertoolbar.actions,
net.sf.jasperreports.components.headertoolbar.json,
net.sf.jasperreports.components.headertoolbar.json.resources,
net.sf.jasperreports.components.headertoolbar.resources,
net.sf.jasperreports.components.headertoolbar.resources.images,
net.sf.jasperreports.components.headertoolbar.resources.images.format,
net.sf.jasperreports.components.headertoolbar.resources.images.jive,
net.sf.jasperreports.components.headertoolbar.resources.images.style,
net.sf.jasperreports.components.headertoolbar.resources.require,
net.sf.jasperreports.components.iconlabel,
net.sf.jasperreports.components.items,
net.sf.jasperreports.components.items.fill,
net.sf.jasperreports.components.list,
net.sf.jasperreports.components.map,
net.sf.jasperreports.components.map.fill,
net.sf.jasperreports.components.map.resources.require,
net.sf.jasperreports.components.map.resources.templates,
net.sf.jasperreports.components.map.type,
net.sf.jasperreports.components.sort,
net.sf.jasperreports.components.sort.actions,
net.sf.jasperreports.components.sort.resources,
net.sf.jasperreports.components.sort.resources.images,
net.sf.jasperreports.components.spiderchart,
net.sf.jasperreports.components.spiderchart.type,
net.sf.jasperreports.components.table,
net.sf.jasperreports.components.table.fill,
net.sf.jasperreports.components.table.util,
net.sf.jasperreports.crosstabs,
net.sf.jasperreports.crosstabs.base,
net.sf.jasperreports.crosstabs.design,
net.sf.jasperreports.crosstabs.fill,
net.sf.jasperreports.crosstabs.fill.calculation,
net.sf.jasperreports.crosstabs.interactive,
net.sf.jasperreports.crosstabs.type,
net.sf.jasperreports.crosstabs.xml,
net.sf.jasperreports.data,
net.sf.jasperreports.data.bean,
net.sf.jasperreports.data.cache,
net.sf.jasperreports.data.csv,
net.sf.jasperreports.data.ds,
net.sf.jasperreports.data.ejbql,
net.sf.jasperreports.data.empty,
net.sf.jasperreports.data.excel,
net.sf.jasperreports.data.hibernate,
net.sf.jasperreports.data.hibernate.spring,
net.sf.jasperreports.data.http,
net.sf.jasperreports.data.jdbc,
net.sf.jasperreports.data.jndi,
net.sf.jasperreports.data.json,
net.sf.jasperreports.data.mondrian,
net.sf.jasperreports.data.provider,
net.sf.jasperreports.data.qe,
net.sf.jasperreports.data.xls,
net.sf.jasperreports.data.xlsx,
net.sf.jasperreports.data.xml,
net.sf.jasperreports.data.xmla,
net.sf.jasperreports.engine,
net.sf.jasperreports.engine.analytics.data,
net.sf.jasperreports.engine.analytics.dataset,
net.sf.jasperreports.engine.base,
net.sf.jasperreports.engine.component,
net.sf.jasperreports.engine.convert,
net.sf.jasperreports.engine.data,
net.sf.jasperreports.engine.design,
net.sf.jasperreports.engine.design.events,
net.sf.jasperreports.engine.dtds,
net.sf.jasperreports.engine.export,
net.sf.jasperreports.engine.export.data,
net.sf.jasperreports.engine.export.draw,
net.sf.jasperreports.engine.export.oasis,
net.sf.jasperreports.engine.export.ooxml,
net.sf.jasperreports.engine.export.ooxml.docx,
net.sf.jasperreports.engine.export.ooxml.docx._rels,
net.sf.jasperreports.engine.export.ooxml.pptx._rels,
net.sf.jasperreports.engine.export.ooxml.pptx.ppt.slideLayouts,
net.sf.jasperreports.engine.export.ooxml.pptx.ppt.slideLayouts._rels,
net.sf.jasperreports.engine.export.ooxml.pptx.ppt.slideMasters,
net.sf.jasperreports.engine.export.ooxml.pptx.ppt.slideMasters._rels,
net.sf.jasperreports.engine.export.ooxml.pptx.ppt.theme,
net.sf.jasperreports.engine.export.ooxml.type,
net.sf.jasperreports.engine.export.ooxml.xlsx._rels,
net.sf.jasperreports.engine.export.tabulator,
net.sf.jasperreports.engine.export.type,
net.sf.jasperreports.engine.export.zip,
net.sf.jasperreports.engine.fill,
net.sf.jasperreports.engine.fonts,
net.sf.jasperreports.engine.images,
net.sf.jasperreports.engine.part,
net.sf.jasperreports.engine.print,
net.sf.jasperreports.engine.query,
net.sf.jasperreports.engine.scriptlets,
net.sf.jasperreports.engine.style,
net.sf.jasperreports.engine.type,
net.sf.jasperreports.engine.util,
net.sf.jasperreports.engine.util.xml,
net.sf.jasperreports.engine.virtualization,
net.sf.jasperreports.engine.xml,
net.sf.jasperreports.export,
net.sf.jasperreports.export.annotations,
net.sf.jasperreports.export.parameters,
net.sf.jasperreports.export.type,
net.sf.jasperreports.expressions,
net.sf.jasperreports.extensions,
net.sf.jasperreports.fonts,
net.sf.jasperreports.fonts.dejavu,
net.sf.jasperreports.fonts.pictonic,
net.sf.jasperreports.functions,
net.sf.jasperreports.functions.annotations,
net.sf.jasperreports.functions.standard,
net.sf.jasperreports.governors,
net.sf.jasperreports.j2ee.servlets,
net.sf.jasperreports.olap,
net.sf.jasperreports.olap.mapping,
net.sf.jasperreports.olap.mondrian,
net.sf.jasperreports.olap.olap4j,
net.sf.jasperreports.olap.result,
net.sf.jasperreports.olap.xmla,
net.sf.jasperreports.parts,
net.sf.jasperreports.parts.subreport,
net.sf.jasperreports.renderers,
net.sf.jasperreports.renderers.util,
net.sf.jasperreports.repo,
net.sf.jasperreports.search,
net.sf.jasperreports.swing,
net.sf.jasperreports.types.date,
net.sf.jasperreports.util,
net.sf.jasperreports.view,
net.sf.jasperreports.view.images,
net.sf.jasperreports.view.save,
net.sf.jasperreports.web,
net.sf.jasperreports.web.actions,
net.sf.jasperreports.web.commands,
net.sf.jasperreports.web.listeners,
net.sf.jasperreports.web.servlets,
net.sf.jasperreports.web.servlets.resources,
net.sf.jasperreports.web.servlets.resources.require.report,
net.sf.jasperreports.web.servlets.resources.require.util,
net.sf.jasperreports.web.servlets.resources.require.viewer,
net.sf.jasperreports.web.servlets.resources.templates,
net.sf.jasperreports.web.servlets.resources.viewer,
net.sf.jasperreports.web.util
Require-Bundle: bcprov;bundle-version="1.54.0",
org.apache.commons.beanutils;bundle-version="0.0.0",
org.apache.commons.collections;bundle-version="0.0.0",
org.eclipse.jdt.core.compiler.batch;bundle-version="0.0.0",
org.apache.httpcomponents.httpclient;bundle-version="0.0.0",
org.apache.httpcomponents.httpcore;bundle-version="0.0.0",
groovy-all;bundle-version="0.0.0",
com.fasterxml.jackson.core.jackson-annotations;bundle-version="0.0.0",
com.fasterxml.jackson.core.jackson-core;bundle-version="0.0.0",
com.fasterxml.jackson.core.jackson-databind;bundle-version="0.0.0",
joda-time;bundle-version="0.0.0",
com.ibm.icu;bundle-version="0.0.0",
org.apache.xalan;bundle-version="2.7.1",
org.apache.xerces;bundle-version="2.9.0"
lib/jasperreports-functions-6.3.1.jar,
lib/jasperreports-chart-customizers-6.3.1.jar,
lib/jasperreports-chart-themes-6.3.1.jar
Import-Package: bsh,
bsh.classpath,
bsh.collection,
@ -236,19 +30,6 @@ Import-Package: bsh,
javax.servlet;version="3.1.0",
javax.servlet.http;version="3.1.0",
javax.servlet.resources;version="3.1.0",
net.sourceforge.barbecue,
net.sourceforge.barbecue.env,
net.sourceforge.barbecue.formatter,
net.sourceforge.barbecue.linear,
net.sourceforge.barbecue.linear.codabar,
net.sourceforge.barbecue.linear.code128,
net.sourceforge.barbecue.linear.code39,
net.sourceforge.barbecue.linear.ean,
net.sourceforge.barbecue.linear.postnet,
net.sourceforge.barbecue.linear.twoOfFive,
net.sourceforge.barbecue.linear.upc,
net.sourceforge.barbecue.output,
net.sourceforge.barbecue.twod.pdf417,
org.apache.commons.codec.digest;version="1.6.0",
org.apache.tools.ant,
org.apache.tools.ant.attribute,
@ -321,26 +102,5 @@ Import-Package: bsh,
org.apache.tools.mail,
org.apache.tools.tar,
org.apache.tools.zip,
org.apache.xml.serializer;version="2.7.1",
org.krysalis.barcode4j,
org.krysalis.barcode4j.ant,
org.krysalis.barcode4j.cli,
org.krysalis.barcode4j.impl,
org.krysalis.barcode4j.impl.codabar,
org.krysalis.barcode4j.impl.code128,
org.krysalis.barcode4j.impl.code39,
org.krysalis.barcode4j.impl.datamatrix,
org.krysalis.barcode4j.impl.fourstate,
org.krysalis.barcode4j.impl.int2of5,
org.krysalis.barcode4j.impl.pdf417,
org.krysalis.barcode4j.impl.postnet,
org.krysalis.barcode4j.impl.upcean,
org.krysalis.barcode4j.output,
org.krysalis.barcode4j.output.bitmap,
org.krysalis.barcode4j.output.eps,
org.krysalis.barcode4j.output.java2d,
org.krysalis.barcode4j.output.svg,
org.krysalis.barcode4j.servlet,
org.krysalis.barcode4j.tools,
org.krysalis.barcode4j.xalan
org.apache.xml.serializer;version="2.7.1"
DynamicImport-Package: *

View File

@ -1,53 +1,14 @@
bin.includes = META-INF/,\
.,\
lib/batik-anim-1.8.jar,\
lib/batik-awt-util-1.8.jar,\
lib/batik-bridge-1.8.jar,\
lib/batik-codec-1.8.jar,\
lib/batik-css-1.8.jar,\
lib/batik-dom-1.8.jar,\
lib/batik-ext-1.8.jar,\
lib/batik-extension-1.8.jar,\
lib/batik-gui-util-1.8.jar,\
lib/batik-gui-util-1.8batik-parser-1.8.jar,\
lib/batik-gvt-1.8.jar,\
lib/batik-parser-1.8.jar,\
lib/batik-script-1.8.jar,\
lib/batik-svg-dom-1.8.jar,\
lib/batik-svggen-1.8.jar,\
lib/batik-swing-1.8.jar,\
lib/batik-transcoder-1.8.jar,\
lib/batik-util-1.8.jar,\
lib/batik-xml-1.8.jar,\
lib/castor-core-1.3.3.jar,\
lib/castor-xml-1.3.3.jar,\
lib/commons-digester-2.1.jar,\
lib/commons-javaflow-20160505.jar,\
lib/core-2.3.0.jar,\
lib/fop-transcoder-allinone-1.1.jar,\
lib/hibernate-core-3.3.2.GA.jar,\
lib/itext-2.1.7.js5.jar,\
lib/jasperreports-6.3.0.jar,\
lib/jasperreports-fonts-6.3.0.jar,\
lib/jasperreports-functions-6.3.0.jar,\
lib/jaxen-1.1.1.jar,\
lib/jcommon-1.0.23.jar,\
lib/jfreechart-1.0.19.jar,\
lib/js.jar,\
lib/jxl-2.6.10.jar,\
lib/lucene-analyzers-common-4.5.1.jar,\
lib/lucene-core-4.5.1.jar,\
lib/lucene-queryparser-4.5.1.jar,\
lib/mondrian-3.1.1.12687.jar,\
lib/olap4j-0.9.7.309-JS-3.jar,\
lib/persistence-api-1.0.jar,\
lib/poi-3.10.1.jar,\
lib/poi-ooxml-3.10.1.jar,\
lib/rhino-1.7.6.jar,\
lib/spring-beans-2.5.jar,\
lib/spring-core-2.5.jar,\
lib/velocity-1.7.jar,\
lib/xml-apis-ext-1.3.04.jar,\
lib/xmlgraphics-commons-1.5.jar,\
lib/xmpcore-5.1.1.jar,\
lib/bcprov-jdk14-139.jar
lib/jasperreports-functions-6.3.1.jar,\
lib/jasperreports-chart-customizers-6.3.1.jar,\
lib/jasperreports-chart-themes-6.3.1.jar

View File

@ -1,55 +1,18 @@
<project name="zklibrary" basedir="." default="copy">
<target name="copy">
<mkdir dir="lib" />
<get src="${url.file.jp.lib}/batik-anim-1.8.jar" dest="lib/batik-anim-1.8.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/batik-awt-util-1.8.jar" dest="lib/batik-awt-util-1.8.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/batik-bridge-1.8.jar" dest="lib/batik-bridge-1.8.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/batik-codec-1.8.jar" dest="lib/batik-codec-1.8.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/batik-css-1.8.jar" dest="lib/batik-css-1.8.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/batik-dom-1.8.jar" dest="lib/batik-dom-1.8.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/batik-ext-1.8.jar" dest="lib/batik-ext-1.8.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/batik-extension-1.8.jar" dest="lib/batik-extension-1.8.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/batik-gui-util-1.8.jar" dest="lib/batik-gui-util-1.8.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/batik-gvt-1.8.jar" dest="lib/batik-gvt-1.8.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/batik-parser-1.8.jar" dest="lib/batik-parser-1.8.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/batik-script-1.8.jar" dest="lib/batik-script-1.8.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/batik-svg-dom-1.8.jar" dest="lib/batik-svg-dom-1.8.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/batik-svggen-1.8.jar" dest="lib/batik-svggen-1.8.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/batik-swing-1.8.jar" dest="lib/batik-swing-1.8.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/batik-transcoder-1.8.jar" dest="lib/batik-transcoder-1.8.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/batik-util-1.8.jar" dest="lib/batik-util-1.8.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/batik-xml-1.8.jar" dest="lib/batik-xml-1.8.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/castor-core-1.3.3.jar" dest="lib/castor-core-1.3.3.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/castor-xml-1.3.3.jar" dest="lib/castor-xml-1.3.3.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/commons-digester-2.1.jar" dest="lib/commons-digester-2.1.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/commons-javaflow-20160505.jar" dest="lib/commons-javaflow-20160505.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/core-2.3.0.jar" dest="lib/core-2.3.0.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/fop-transcoder-allinone-1.1.jar" dest="lib/fop-transcoder-allinone-1.1.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/hibernate-core-3.3.2.GA.jar" dest="lib/hibernate-core-3.3.2.GA.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/itext-2.1.7.js5.jar" dest="lib/itext-2.1.7.js5.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/jasperreports-6.3.0.jar" dest="lib/jasperreports-6.3.0.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/jasperreports-fonts-6.3.0.jar" dest="lib/jasperreports-fonts-6.3.0.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/jasperreports-functions-6.3.0.jar" dest="lib/jasperreports-functions-6.3.0.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/jaxen-1.1.1.jar" dest="lib/jaxen-1.1.1.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/jcommon-1.0.23.jar" dest="lib/jcommon-1.0.23.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/jfreechart-1.0.19.jar" dest="lib/jfreechart-1.0.19.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/jasperreports-fonts-6.3.1.jar" dest="lib/jasperreports-fonts-6.3.1.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/jasperreports-chart-themes-6.3.1.jar" dest="lib/jasperreports-chart-themes-6.3.1.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/jasperreports-chart-customizers-6.3.1.jar" dest="lib/jasperreports-chart-customizers-6.3.1.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/jasperreports-functions-6.3.1.jar" dest="lib/jasperreports-functions-6.3.1.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/js.jar" dest="lib/js.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/jxl-2.6.10.jar" dest="lib/jxl-2.6.10.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/lucene-analyzers-common-4.5.1.jar" dest="lib/lucene-analyzers-common-4.5.1.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/lucene-core-4.5.1.jar" dest="lib/lucene-core-4.5.1.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/lucene-queryparser-4.5.1.jar" dest="lib/lucene-queryparser-4.5.1.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/mondrian-3.1.1.12687.jar" dest="lib/mondrian-3.1.1.12687.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/olap4j-0.9.7.309-JS-3.jar" dest="lib/olap4j-0.9.7.309-JS-3.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/persistence-api-1.0.jar" dest="lib/persistence-api-1.0.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/poi-3.10.1.jar" dest="lib/poi-3.10.1.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/poi-ooxml-3.10.1.jar" dest="lib/poi-ooxml-3.10.1.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/rhino-1.7.6.jar" dest="lib/rhino-1.7.6.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/spring-beans-2.5.jar" dest="lib/spring-beans-2.5.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/spring-core-2.5.jar" dest="lib/spring-core-2.5.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/velocity-1.7.jar" dest="lib/velocity-1.7.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/xml-apis-ext-1.3.04.jar" dest="lib/xml-apis-ext-1.3.04.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/xmlgraphics-commons-1.5.jar" dest="lib/xmlgraphics-commons-1.5.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/xmpcore-5.1.1.jar" dest="lib/xmpcore-5.1.1.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.file.jp.lib}/bcprov-jdk14-139.jar" dest="lib/bcprov-jdk14-139.jar" usetimestamp="true" verbose="true" retries="5" />
</target>
</project>

View File

@ -23,3 +23,31 @@ poi-3.10.1 haven't yet osgi version, ever on newest obit repository. so use Bun
batik haven't yet osgi version, ever on newest obit repository. so use Bundle-ClassPath
current batik osgi version isn't use by other bundle, so can remove it.
itext is very old and have modify code from JP community, so use version from JP
==========================
note for p2
1. use jasper report at jasperreports-6.3.1/dist to create p2
2. use TIBCOJaspersoftStudio-6.3.1.final/plugins to create extra p2 for jasperreport, it provide almost dependency osgi version
3. have to run ${ECLIPSE_FOLDER}/eclipse -application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher for TIBCOJaspersoftStudio-6.3.1.final/plugins
4. com.jaspersoft.studio.bundles.itext_2.1.7.js5 need package from bcprov. idempiere already have osgi of bcprov at version 1.56
but after 1.50 bcprov change some package like org.bouncycastle.ocsp to org.bouncycastle.cert.ocsp
success to run both version bcprov 1.50 and bcprov 1.56 but it make start progress take long time (about 2 minute)
so better use Bundle-ClassPath for bcprov-jdk14-139 go with jasperreport
5. TIBCOJaspersoftStudio-6.3.1.final/plugins also have osgi version of jasper report runtime, bundle name net.sf.jasperreports, file name net.sf.jasperreports_6.3.1.final
but it use bundle dependency, so have to use all bundle package by jasper ever it already have osgi version on idempiere
it ever force us to use a old version of beanshell (bsh-2.0b4) with a security issue
so i like to create osgi version from jasperreports-6.3.1/dist/jasperreports-6.3.1.jar
manifest of jasperreports-6.3.1.jar already have osgi metadata and bundle name is net.sf.jasperreports.engine
so just change file name to net.sf.jasperreports.engine_6.3.1.jar and run ${ECLIPSE_FOLDER}/eclipse -application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher
note: net.sf.jasperreports.engine_6.3.1.jar use package dynamic import
6. com.jaspersoft.studio.bundles.itext_2.1.7.js5 already have bcprov-jdk14-139 on Bundle-ClassPath, but manifest still import package from bcprov-jdk14-139. so i modify its manifest before call ${ECLIPSE_FOLDER}/eclipse -application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher
7. org.krysalis.barcode4j_2.1.0.jar have osgi version on maven but it dependency to org.apache.avalon, so use version from jasper report. it modify manifest.mf to don't depend to org.apache.avalon

View File

@ -6,12 +6,10 @@ Bundle-Version: 4.1.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: org.adempiere.base;bundle-version="0.0.0",
org.adempiere.ui.swing;bundle-version="0.0.0",
org.adempiere.report.jasper;bundle-version="0.0.0",
org.adempiere.report.jasper.library;bundle-version="0.0.0"
org.adempiere.report.jasper;bundle-version="0.0.0"
Import-Package: net.sf.jasperreports.engine,
net.sf.jasperreports.engine.export,
net.sf.jasperreports.view,
net.sf.jasperreports.view.images,
org.adempiere.report.jasper,
org.osgi.framework
Service-Component: OSGI-INF/jrviewerprovider.xml

View File

@ -1,8 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<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>

View File

@ -5,11 +5,6 @@
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
@ -25,17 +20,9 @@
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ds.core.builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@ -1,7 +0,0 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.8

View File

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="org.adempiere.report.jasper">
<wb-resource deploy-path="/" source-path="/src"/>
</wb-module>
</project-modules>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<fixed facet="jst.java"/>
<fixed facet="jst.utility"/>
<installed facet="jst.utility" version="1.0"/>
<installed facet="jst.java" version="1.8"/>
</faceted-project>

View File

@ -5,12 +5,13 @@ Bundle-SymbolicName: org.adempiere.report.jasper;singleton:=true
Bundle-Version: 4.1.0.qualifier
Bundle-ClassPath: JasperReports.jar
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Import-Package: org.apache.commons.codec,
Import-Package: net.sourceforge.barbecue;version="1.5.0.beta1",
org.apache.commons.codec,
org.apache.commons.codec.binary,
org.apache.commons.logging;version="1.1.1",
org.apache.commons.logging.impl;version="1.1.1"
Require-Bundle: org.adempiere.base;bundle-version="0.0.0",
org.adempiere.report.jasper.library;bundle-version="0.0.0"
net.sf.jasperreports.engine;bundle-version="6.3.1"
Service-Component: OSGI-INF/processfactory.xml
Export-Package: org.adempiere.report.jasper
Bundle-ActivationPolicy: lazy

View File

@ -561,6 +561,14 @@ public class ReportStarter implements ProcessCall, ClientProcess
params.put("AD_ROLE_ID", new Integer( Env.getAD_Role_ID(Env.getCtx())));
params.put("AD_USER_ID", new Integer( Env.getAD_User_ID(Env.getCtx())));
params.put("AD_CLIENT_NAME", Env.getContext(Env.getCtx(), "#AD_Client_Name"));
params.put("AD_ROLE_NAME", Env.getContext(Env.getCtx(), "#AD_Role_Name"));
params.put("AD_USER_NAME", Env.getContext(Env.getCtx(), "#AD_User_Name"));
params.put("AD_ORG_NAME", Env.getContext(Env.getCtx(), "#AD_Org_Name"));
params.put("BASE_DIR", REPORT_HOME.getAbsolutePath());
//params.put("HeaderLogo", reportPath);
//params.put("LoginLogo", reportPath);
Language currLang = Env.getLanguage(Env.getCtx());
String printerName = null;
MPrintFormat printFormat = null;

View File

@ -9,9 +9,9 @@
<cq:property key="target.ws" value="*"/>
<cq:advisorNode namePattern="^org\.objectweb\.asm(\..+)?" componentType="osgi.bundle" versionOverride="[5.0.1,6.0.0)"/>
<cq:advisorNode namePattern="^org\.eclipse\.jetty\.osgi-servlet-api$" useTargetPlatform="false" useWorkspace="false" versionOverride="[0.0.0,4.0.0)"/>
<cq:advisorNode namePattern="^org\.eclipse\.jetty\.alpn\.api$" versionOverride="[0.0.0,9.3.11)"/>
<cq:advisorNode namePattern="^org\.mortbay\.jasper\.apache-jsp$" componentType="osgi.bundle" versionOverride="(8.0.0,8.0.33]"/>
<cq:advisorNode namePattern="^org\.eclipse\.jetty(\..+)?" useTargetPlatform="false" useWorkspace="false" versionOverride="[9.2.0,9.3.11)"/>
<cq:advisorNode namePattern="^org\.atmosphere\.runtime$" componentType="osgi.bundle" useTargetPlatform="false" useWorkspace="false" versionOverride="[2.4.9,2.4.9]"/>
<cq:advisorNode namePattern="^org\.eclipse\.jetty\.alpn\.api$" versionOverride="[0.0.0,9.4.8)"/>
<cq:advisorNode namePattern="^org\.mortbay\.jasper\.apache-jsp$" componentType="osgi.bundle" versionOverride="(8.0.0,9.4.8)"/>
<cq:advisorNode namePattern="^org\.eclipse\.jetty(\..+)?" useTargetPlatform="false" useWorkspace="false" versionOverride="[9.2.0,9.4.8)"/>
<cq:advisorNode namePattern="^org\.atmosphere\.runtime$" componentType="osgi.bundle" useTargetPlatform="false" useWorkspace="false" versionOverride="[0.0.0,3.0.0)"/>
<cq:advisorNode namePattern="^.*$" useTargetPlatform="false" useWorkspace="false"/>
</cq:componentQuery>

View File

@ -5,64 +5,80 @@
<bc:propertyRef key="workspace.root"/>
</bc:replace>
</rm:propertyElement>
<rm:locator pattern="^org\.eclipse\.jetty\.http$" searchPathRef="workspace.project"/>
<rm:locator pattern="^org\.eclipse\.jetty\.alpn\.api$" searchPathRef="modify-bundle"/>
<rm:locator pattern="^org\.apache\.felix\.webconsole\.plugins\.packageadmin$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.idempiere\.hazelcast\.service$" searchPathRef="workspace.feature" failOnError="false"/>
<rm:locator pattern="^org\.idempiere\.hazelcast\.service$" searchPathRef="workspace.project"/>
<rm:locator pattern="^org\.apache\.poi$" searchPathRef="orbit"/>
<rm:locator pattern="^org\.eclipse\.jdt\.core\.compiler\.batch$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.apache\.commons\.collections4$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.apache\.commons\.configuration$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.apache\.felix\.webconsole\.plugins\.packageadmin(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.idempiere\.hazelcast\.service(\.source)?$" searchPathRef="workspace.feature" failOnError="false"/>
<rm:locator pattern="^org\.idempiere\.hazelcast\.service(\.source)?$" searchPathRef="workspace.project"/>
<rm:locator pattern="^org\.apache\.poi(\.source)?$" searchPathRef="orbit"/>
<rm:locator pattern="^org\.eclipse\.jdt\.core\.compiler\.batch(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.apache\.commons\.collections4(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.apache\.commons\.configuration(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.apache\.commons\.digester(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.mortbay\.jasper(\..+)?" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.eclipse\.jetty\.apache\-jsp$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.eclipse\.jetty\.osgi\-servlet\-api$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.eclipse\.jetty\.alpn\.api$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.mortbay\.jetty\.alpn\.boot$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.eclipse\.jetty\.alpn\.server$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.eclipse\.jetty\.apache\-jsp(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.eclipse\.jetty\.osgi\-servlet\-api(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.eclipse\.jetty\.alpn\.api(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.mortbay\.jetty\.alpn\.boot(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.eclipse\.jetty\.alpn\.server(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.apache\.felix\.webconsole(\..+)?" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.apache\.felix\.inventory" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.passay$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^com\.itextpdf$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^bcpkix$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^bcprov$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^com\.ibm\.icu$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^groovy-all$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^joda-time$" searchPathRef="modify-bundle"/>
<rm:locator pattern="^org\.cryptacular$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^net\.sf\.supercsv\.super-csv$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.atmosphere\.runtime$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^javax\.websocket\-api$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^javax\.annotation\-api$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^javax\.management\.j2ee\-api$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^com\.sun\.mail\.javax\.mail$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.apache\.felix\.inventory(\.source)?" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.passay(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^com\.itextpdf(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^bcpkix(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^bcprov(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^bcmail(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^bctsp(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.apache\.velocity(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.apache\.commons\.javaflow(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^com\.ibm\.icu(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^groovy-all(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^joda-time(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.cryptacular(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^net\.sf\.supercsv\.super-csv(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.atmosphere\.runtime(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^javax\.websocket\-api(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^javax\.annotation\-api(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^javax\.management\.j2ee\-api(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^com\.sun\.mail\.javax\.mail(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.objectweb\.asm(\..+)?" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.apache\.taglibs(\..+)?" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.apache\.aries(\..+)?" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.apache\.servicemix\.bundles\.cglib$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.apache\.servicemix\.bundles\.cglib(\.source)?$" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.apache\.activemq(\..+)?" searchPathRef="bundles.maven"/>
<rm:locator pattern="^org\.eclipse\.jetty(\..+)?" searchPathRef="jetty"/>
<rm:locator pattern="^javax\.security\.auth\.message$" searchPathRef="jetty"/>
<rm:locator pattern="^javax\.security\.auth\.message(\.source)?$" searchPathRef="jetty"/>
<rm:locator pattern="^org\.eclipse(\..+)?" searchPathRef="equinox" failOnError="false"/>
<rm:locator pattern="^org\.sat4j(\..+)?" searchPathRef="equinox"/>
<rm:locator pattern="^org\.slf4j\.jdk14$" searchPathRef="workspace.project"/>
<rm:locator pattern="^org\.slf4j\.jdk14(\.source)?$" searchPathRef="workspace.project"/>
<rm:locator pattern="^org\.slf4j(\..+)?" searchPathRef="orbit"/>
<rm:locator pattern="^org\.apache\.ant(\..+)?" searchPathRef="orbit"/>
<rm:locator pattern="^org\.apache\.commons(\..+)?" searchPathRef="orbit"/>
<rm:locator pattern="^org\.restlet(\..+)?" searchPathRef="restlet.p2"/>
<rm:locator pattern="^zcommon$" searchPathRef="zkoss.osgi"/>
<rm:locator pattern="^zel$" searchPathRef="zkoss.osgi"/>
<rm:locator pattern="^zhtml$" searchPathRef="zkoss.osgi"/>
<rm:locator pattern="^zk$" searchPathRef="zkoss.osgi"/>
<rm:locator pattern="^zkbind$" searchPathRef="zkoss.osgi"/>
<rm:locator pattern="^zkplus$" searchPathRef="zkoss.osgi"/>
<rm:locator pattern="^zul$" searchPathRef="zkoss.osgi"/>
<rm:locator pattern="^zweb$" searchPathRef="zkoss.osgi"/>
<rm:locator pattern="^zjavassist$" searchPathRef="zkoss.osgi"/>
<rm:locator pattern="^zcommon(\.source)?$" searchPathRef="zkoss.osgi"/>
<rm:locator pattern="^zel(\.source)?$" searchPathRef="zkoss.osgi"/>
<rm:locator pattern="^zhtml(\.source)?$" searchPathRef="zkoss.osgi"/>
<rm:locator pattern="^zk(\.source)?$" searchPathRef="zkoss.osgi"/>
<rm:locator pattern="^zkbind(\.source)?$" searchPathRef="zkoss.osgi"/>
<rm:locator pattern="^zkplus(\.source)?$" searchPathRef="zkoss.osgi"/>
<rm:locator pattern="^zul(\.source)?$" searchPathRef="zkoss.osgi"/>
<rm:locator pattern="^zweb(\.source)?$" searchPathRef="zkoss.osgi"/>
<rm:locator pattern="^zjavassist(\.source)?$" searchPathRef="zkoss.osgi"/>
<rm:locator pattern="^com\.jaspersoft\.studio(\..+)?$" searchPathRef="jasper.osgi"/>
<rm:locator pattern="^org\.krysalis\.barcode4j(\..+)?$" searchPathRef="jasper.osgi"/>
<rm:locator pattern="^org\.apache\.servicemix\.bundles\.antlr(\..+)?$" searchPathRef="jasper.osgi"/>
<rm:locator pattern="^org\.apache\.servicemix\.bundles\.jaxen(\..+)?$" searchPathRef="jasper.osgi"/>
<rm:locator pattern="^org\.apache\.servicemix\.bundles\.rhino(\..+)?$" searchPathRef="jasper.osgi"/>
<rm:locator pattern="^org\.apache\.servicemix\.bundles\.xmlbeans(\..+)?$" searchPathRef="jasper.osgi"/>
<rm:locator pattern="^com\.jaspersoft\.studio\.bundles\.zxing(\..+)?$" searchPathRef="jasper.osgi"/>
<rm:locator pattern="^org\.jfree\.jcommon-osgi(\..+)?$" searchPathRef="jasper.osgi"/>
<rm:locator pattern="^org\.jfree\.chart-osgi(\..+)?$" searchPathRef="jasper.osgi"/>
<rm:locator pattern="^org\.apache\.commons\.collections(\..+)?$" searchPathRef="jasper.osgi"/>
<rm:locator searchPathRef="orbit" failOnError="false"/>
<rm:locator searchPathRef="equinox" failOnError="false"/>
<rm:locator searchPathRef="jasper.osgi" failOnError="false"/>
<rm:locator searchPathRef="extend.workspace" failOnError="false"/>
<rm:locator searchPathRef="workspace.project" failOnError="false"/>
<rm:locator searchPathRef="workspace.feature"/>
<rm:searchPath name="equinox">
<rm:provider componentTypes="osgi.bundle,eclipse.feature" readerType="p2" source="false" mutable="false">
<rm:property key="buckminster.source" value="false"/>
@ -109,11 +125,6 @@
<rm:property key="buckminster.mutable" value="false"/>
<rm:uri format="${url.orbit}"/>
</rm:provider>
<rm:provider componentTypes="osgi.bundle" readerType="p2" source="false" mutable="false">
<rm:property key="buckminster.source" value="false"/>
<rm:property key="buckminster.mutable" value="false"/>
<rm:uri format="${url.orbit.neon}"/>
</rm:provider>
</rm:searchPath>
<rm:searchPath name="restlet.p2">
<rm:provider componentTypes="osgi.bundle" readerType="p2" source="false" mutable="false">
@ -154,19 +165,24 @@
<maven:entry artifactId="org.apache.felix.inventory" groupId="org.apache.felix" name="org.apache.felix.inventory"/>
<maven:entry artifactId="org.apache.felix.webconsole.plugins.packageadmin" groupId="org.apache.felix" name="org.apache.felix.webconsole.plugins.packageadmin"/>
<maven:entry artifactId="javassist" groupId="org.javassist" name="javassist"/>
<maven:entry artifactId="passay" groupId="org.passay" name="org.passay"/>
<maven:entry artifactId="itextpdf" groupId="com.itextpdf" name="com.itextpdf"/>
<maven:entry artifactId="bcpkix-jdk15on" groupId="org.bouncycastle" name="bcpkix"/>
<maven:entry artifactId="bcprov-jdk15on" groupId="org.bouncycastle" name="bcprov"/>
<maven:entry artifactId="cryptacular" groupId="org.cryptacular" name="org.cryptacular"/>
<maven:entry artifactId="super-csv" groupId="net.sf.supercsv" name="net.sf.supercsv.super-csv"/>
<maven:entry artifactId="atmosphere-runtime" groupId="org.atmosphere" name="org.atmosphere.runtime"/>
<maven:entry groupId="org.passay" artifactId="passay" name="org.passay"/>
<maven:entry groupId="com.itextpdf" artifactId="itextpdf" name="com.itextpdf"/>
<maven:entry groupId="org.bouncycastle" artifactId="bcpkix-jdk15on" name="bcpkix"/>
<maven:entry groupId="org.bouncycastle" artifactId="bcprov-jdk15on" name="bcprov"/>
<maven:entry groupId="org.bouncycastle" artifactId="bcmail-jdk15on" name="bcmail"/>
<maven:entry groupId="org.bouncycastle" artifactId="bctsp-jdk15on" name="bctsp"/>
<maven:entry groupId="org.apache.velocity" artifactId="velocity" name="org.apache.velocity"/>
<maven:entry groupId="commons-digester" artifactId="commons-digester" name="org.apache.commons.digester"/>
<maven:entry groupId="com.google.code.maven-play-plugin.org.apache.commons" artifactId="commons-javaflow" name="org.apache.commons.javaflow"/>
<maven:entry groupId="org.cryptacular" artifactId="cryptacular" name="org.cryptacular"/>
<maven:entry groupId="net.sf.supercsv" artifactId="super-csv" name="net.sf.supercsv.super-csv"/>
<maven:entry groupId="org.atmosphere" artifactId="atmosphere-runtime" name="org.atmosphere.runtime"/>
<maven:entry artifactId="jetty-alpn-server" groupId="org.eclipse.jetty" name="org.eclipse.jetty.alpn.server"/>
<maven:entry artifactId="alpn-api" groupId="org.eclipse.jetty.alpn" name="org.eclipse.jetty.alpn.api"/>
<maven:entry artifactId="groovy-all" groupId="org.codehaus.groovy" name="groovy-all"/>
<maven:entry artifactId="icu4j" groupId="com.ibm.icu" name="com.ibm.icu"/>
<maven:entry artifactId="joda-time" groupId="joda-time" name="joda-time"/>
<maven:entry artifactId="commons-configuration" groupId="commons-configuration" name="org.apache.commons.configuration"/>
<maven:entry groupId="org.codehaus.groovy" artifactId="groovy-all" name="groovy-all"/>
<maven:entry groupId="com.ibm.icu" artifactId="icu4j" name="com.ibm.icu"/>
<maven:entry groupId="joda-time" artifactId="joda-time" name="joda-time"/>
<maven:entry groupId="commons-configuration" artifactId="commons-configuration" name="org.apache.commons.configuration"/>
<maven:entry artifactId="commons-collections4" groupId="org.apache.commons" name="org.apache.commons.collections4"/>
</maven:mappings>
</rm:provider>
@ -185,6 +201,13 @@
<rm:uri format="${url.modify.bundle}"/>
</rm:provider>
</rm:searchPath>
<rm:searchPath name="jasper.osgi">
<rm:provider componentTypes="osgi.bundle" readerType="p2" source="false" mutable="false">
<rm:property key="buckminster.source" value="false"/>
<rm:property key="buckminster.mutable" value="false"/>
<rm:uri format="${url.jp.p2}"/>
</rm:provider>
</rm:searchPath>
<rm:searchPath name="extend.workspace">
<rm:provider componentTypes="osgi.bundle,eclipse.feature" readerType="local">
<rm:uri format="${extend.plugin.root}${extend.bundle.folder.1}/${buckminster.component}"/>

View File

@ -89,17 +89,6 @@
fragment="true"
unpack="false"/>
<plugin
id="org.eclipse.swt.cocoa.macosx"
os="macosx"
ws="cocoa"
arch="x86"
download-size="0"
install-size="0"
version="0.0.0"
fragment="true"
unpack="false"/>
<plugin
id="org.eclipse.swt.cocoa.macosx.x86_64"
os="macosx"
@ -111,15 +100,4 @@
fragment="true"
unpack="false"/>
<plugin
id="org.eclipse.swt.gtk.solaris.x86"
os="solaris"
ws="gtk"
arch="x86"
download-size="0"
install-size="0"
version="0.0.0"
fragment="true"
unpack="false"/>
</feature>

View File

@ -6,7 +6,7 @@ target.os=*
target.ws=*
target.arch=*
#local.repository.root=file:///mnt/data/dev/project/me/repository/stuff/setup.idempiere/localRepository
local.repository.root=http://downloads.sourceforge.net/project/idempiere/binary.file
local.repository.root.maven=http://central.maven.org/maven2
url.maven2=http://central.maven.org
@ -14,22 +14,21 @@ url.maven2.lib=http://central.maven.org
url.maven.zkoss=http://mavensync.zkoss.org
url.maven.zkoss.lib=http://mavensync.zkoss.org
url.zkoss.osgi=http://downloads.sourceforge.net/project/idempiere/binary.file/jarfile/zk-p2/zk-8.0.2.2/
url.zkoss.osgi=${local.repository.root}/jarfile/zk-p2/zk-8.0.2.2/
url.maven.restlet=http://maven.restlet.org
url.equinox=http://download.eclipse.org/eclipse/updates/4.4
url.equinox=http://download.eclipse.org/eclipse/updates/4.7
url.jetty=http://download.eclipse.org/jetty/updates/jetty-bundles-9.x
url.orbit=http://download.eclipse.org/tools/orbit/downloads/drops/R20150124073747/repository
url.orbit.neon=http://download.eclipse.org/tools/orbit/downloads/drops/R20160520211859/repository/
url.orbit=http://download.eclipse.org/tools/orbit/downloads/drops/R20170919201930/repository/
url.file.srv=http://downloads.sourceforge.net/project/idempiere/binary.file
url.file.srv=${local.repository.root}
url.restlet.p2=http://p2.restlet.com/2.3
url.modify.bundle=http://downloads.sourceforge.net/project/idempiere/binary.file/jarfile/modifyBundle-1.0.0
url.modify.bundle=${local.repository.root}/jarfile/modifyBundle-1.0.0
url.file.jp.lib=http://downloads.sourceforge.net/project/idempiere/binary.file/jarfile/jp-6.3.0
url.file.jp.lib=${local.repository.root}/jarfile/jp-6.3.1
url.jp.p2=${local.repository.root}/jarfile/jp-p2/jp-6.3.1
url.alpn.boot=http://central.maven.org/maven2/org/mortbay/jetty/alpn/alpn-boot/8.1.11.v20170118/alpn-boot-8.1.11.v20170118.jar

View File

@ -34,9 +34,6 @@
<!-- maybe it's same file in org.idempiere.fitnesse.server, just diference version-->
<get src="${url.file.srv}/jarfile/4.1/fitnesse2.jar" dest="../fitnesse/fitnesse.jar" usetimestamp="true" verbose="true" retries="5" />
<mkdir dir="../ztl" />
<get src="${url.maven.zkoss.lib}/maven2/org/zkoss/ztl/ztl/2.0.0-SNAPSHOT/ztl-2.0.0-SNAPSHOT.jar" dest="../ztl/ztl-2.0.0-SNAPSHOT.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.alpn.boot}" dest="../alpn-boot.jar" usetimestamp="true" verbose="true" retries="5" />
</target>

View File

@ -54,6 +54,11 @@
id="org.idempiere.zk"
version="0.0.0"/>
<includes
id="org.idempiere.customize"
version="0.0.0"
optional="true"/>
<plugin
id="org.apache.taglibs.taglibs-standard-spec"
download-size="0"

View File

@ -10,7 +10,7 @@
<New class="org.eclipse.jetty.http2.server.HTTP2ServerConnectionFactory">
<Arg name="config"><Ref refid="sslHttpConfig"/></Arg>
<Set name="maxConcurrentStreams"><Property name="jetty.http2.maxConcurrentStreams" deprecated="http2.maxConcurrentStreams" default="1024"/></Set>
<Set name="initialStreamSendWindow"><Property name="jetty.http2.initialStreamSendWindow" default="65535"/></Set>
<Set name="initialStreamRecvWindow"><Property name="jetty.http2.initialStreamRecvWindow" default="65535"/></Set>
</New>
</Arg>
</Call>

View File

@ -1,17 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<?pde version="3.5"?>
<product name="iDempiere Server" uid="org.adempiere.server.product" id="org.eclipse.equinox.p2.director.product" application="org.adempiere.server.application" version="4.1.0.qualifier" useFeatures="true" includeLaunchers="true">
<product name="iDempiere Server" uid="org.adempiere.server.product" id="org.adempiere.server.server_product" application="org.adempiere.server.application" version="4.1.0.qualifier" useFeatures="true" includeLaunchers="true">
<configIni use="default">
</configIni>
<launcherArgs>
<programArgs>
<argsX86>-console 12612 --launcher.XXMaxPermSize 192m</argsX86>
<programArgs>-console
</programArgs>
<vmArgs>-Xbootclasspath/p:alpn-boot.jar -Dorg.osgi.framework.bootdelegation=sun.security.ssl,org.eclipse.jetty.alpn -Dosgi.compatibility.bootdelegation=true -Djetty.home=jettyhome -Djetty.etc.config.urls=etc/jetty.xml,etc/jetty-deployer.xml,etc/jetty-ssl.xml,etc/jetty-ssl-context.xml,etc/jetty-http.xml,etc/jetty-alpn.xml,etc/jetty-http2.xml,etc/jetty-https.xml -Dosgi.console=localhost:12612 -Dmail.mime.encodefilename=true -Dmail.mime.decodefilename=true -Dmail.mime.encodeparameters=true -Dmail.mime.decodeparameters=true
<argsX86>-Dosgi.noShutdown=true -Dosgi.framework.activeThreadType=normal -Dosgi.compatibility.bootdelegation=true -Djetty.home=${workspace_loc}/jettyhome -Djetty.etc.config.urls=etc/jetty.xml,etc/jetty-selector.xml,etc/jetty-ssl.xml,etc/jetty-https.xml,etc/jetty-deployer.xml</argsX86>
<vmArgs>-Xbootclasspath/p:alpn-boot.jar -Declipse.product=org.adempiere.server.product -Dosgi.noShutdown=true -Dosgi.framework.activeThreadType=normal -Dorg.osgi.framework.bootdelegation=sun.security.ssl,org.eclipse.jetty.alpn -Dosgi.compatibility.bootdelegation=true -Djetty.home=jettyhome -Djetty.etc.config.urls=etc/jetty.xml,etc/jetty-deployer.xml,etc/jetty-ssl.xml,etc/jetty-ssl-context.xml,etc/jetty-http.xml,etc/jetty-alpn.xml,etc/jetty-http2.xml,etc/jetty-https.xml -Dmail.mime.encodefilename=true -Dmail.mime.decodefilename=true -Dmail.mime.encodeparameters=true -Dmail.mime.decodeparameters=true -Dhazelcast.config=hazelcast.xml -Dorg.zkoss.zk.config.path=file://${workspace_loc}/zk.xml
</vmArgs>
<vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
</vmArgsMac>
@ -20,58 +18,50 @@
<windowImages/>
<launcher name="idempiere">
<solaris/>
<win useIco="false">
<bmp/>
</win>
</launcher>
<vm>
<linux include="false">org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8</linux>
</vm>
<plugins>
</plugins>
<features>
<feature id="org.adempiere.server" version="4.1.0.qualifier"/>
<feature id="org.adempiere.server"/>
<feature id="org.adempiere.target.platform"/>
<feature id="org.idempiere.eclipse.platform"/>
</features>
<configurations>
<plugin id="org.adempiere.base" autoStart="true" startLevel="4" />
<plugin id="org.adempiere.eclipse.equinox.http.servlet" autoStart="true" startLevel="4" />
<plugin id="org.adempiere.eclipse.equinox.http.servletbridge" autoStart="true" startLevel="4" />
<plugin id="org.adempiere.eclipse.equinox.servletbridge" autoStart="true" startLevel="4" />
<plugin id="org.adempiere.install" autoStart="true" startLevel="4" />
<plugin id="org.adempiere.pipo" autoStart="true" startLevel="0" />
<plugin id="org.adempiere.pipo.handlers" autoStart="true" startLevel="0" />
<plugin id="org.adempiere.replication.server" autoStart="true" startLevel="4" />
<plugin id="org.adempiere.report.jasper.webapp" autoStart="true" startLevel="4" />
<plugin id="org.adempiere.server" autoStart="true" startLevel="4" />
<plugin id="org.adempiere.ui.zk" autoStart="true" startLevel="4" />
<plugin id="org.adempiere.webstore" autoStart="true" startLevel="4" />
<plugin id="org.apache.aries.spifly.dynamic.bundle" autoStart="true" startLevel="2" />
<plugin id="org.adempiere.eclipse.equinox.http.servlet" autoStart="true" startLevel="0" />
<plugin id="org.adempiere.server" autoStart="true" startLevel="0" />
<plugin id="org.adempiere.ui.zk" autoStart="true" startLevel="0" />
<plugin id="org.apache.aries.spifly.dynamic.bundle" autoStart="true" startLevel="0" />
<plugin id="org.apache.felix.webconsole" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="4" />
<plugin id="org.eclipse.equinox.cm" autoStart="true" startLevel="2" />
<plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.equinox.cm" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
<plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="3" />
<plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="3" />
<plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="2" />
<plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="2" />
<plugin id="org.eclipse.equinox.http.registry" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.equinox.metatype" autoStart="true" startLevel="2" />
<plugin id="org.eclipse.equinox.p2.reconciler.dropins" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.equinox.simpleconfigurator" autoStart="true" startLevel="1" />
<plugin id="org.eclipse.jetty.apache-jsp" autoStart="true" startLevel="3" />
<plugin id="org.eclipse.jetty.alpn.api" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.jetty.alpn.server" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.jetty.apache-jsp" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.jetty.http" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.jetty.http2.common" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.jetty.http2.hpack" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.jetty.http2.server" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.jetty.osgi.boot" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.jetty.osgi.httpservice" autoStart="false" startLevel="0" />
<plugin id="org.eclipse.jetty.websocket.javax.websocket.server" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.osgi.services" autoStart="true" startLevel="3" />
<plugin id="org.eclipse.jetty.osgi.httpservice" autoStart="true" startLevel="0" />
<plugin id="org.idempiere.felix.webconsole" autoStart="true" startLevel="0" />
<plugin id="org.idempiere.hazelcast.service" autoStart="true" startLevel="0" />
<plugin id="org.idempiere.webservices" autoStart="true" startLevel="0" />
<plugin id="org.objectweb.asm" autoStart="true" startLevel="0" />
<plugin id="org.objectweb.asm.commons" autoStart="true" startLevel="0" />
<plugin id="org.objectweb.asm.tree" autoStart="true" startLevel="0" />
<plugin id="org.restlet" autoStart="true" startLevel="3" />
<plugin id="org.mortbay.jasper.apache-el" autoStart="true" startLevel="0" />
<plugin id="org.mortbay.jasper.apache-jsp" autoStart="true" startLevel="0" />
<plugin id="org.restlet" autoStart="true" startLevel="0" />
<property name="eclipse.product" value="org.adempiere.server.product" />
<property name="org.eclipse.equinox.simpleconfigurator.exclusiveInstallation" value="false" />
<property name="org.eclipse.update.reconcile" value="false" />
@ -82,4 +72,11 @@
<property name="osgi.noShutdown" value="true" />
</configurations>
<preferencesInfo>
<targetfile overwrite="false"/>
</preferencesInfo>
<cssInfo>
</cssInfo>
</product>

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
plugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar
-install
setup
--launcher.XXMaxPermSize

View File

@ -1,6 +1,5 @@
osgi.framework=file\:../plugins/org.eclipse.osgi_3.10.2.v20150203-1939.jar
osgi.framework=file\:../plugins/org.eclipse.osgi_3.12.50.v20170928-1321.jar
osgi.install.area=setup
equinox.use.ds=true
osgi.bundles=org.eclipse.equinox.ds@1:start,\
org.eclipse.equinox.util,\
org.eclipse.core.variables,\
@ -23,6 +22,8 @@ osgi.bundles=org.eclipse.equinox.ds@1:start,\
org.eclipse.equinox.app,\
org.eclipse.equinox.registry,\
org.eclipse.equinox.common@2:start,\
org.eclipse.osgi.util,\
org.apache.felix.scr,\
org.eclipse.core.contenttype,\
org.apache.poi,\
org.eclipse.core.jobs,\
@ -35,9 +36,6 @@ osgi.bundles=org.eclipse.equinox.ds@1:start,\
javax.xml.rpc,\
javax.xml.soap,\
javax.xml,\
org.apache.xerces@3:start,\
org.apache.xml.resolver@3:start,\
org.apache.xml.serializer@3:start,\
javax.activation,\
org.apache.activemq.activemq-core,\
org.apache.activemq.kahadb,\
@ -46,15 +44,20 @@ osgi.bundles=org.eclipse.equinox.ds@1:start,\
javax.annotation-api,\
org.slf4j.api,\
org.slf4j.jcl,\
org.slf4j.jdk14,\
org.apache.commons.codec,\
org.eclipse.osgi.compatibility.state,\
org.eclipse.osgi.compatibility.plugins,\
org.cryptacular,\
net.sf.supercsv.super-csv,\
zjavassist,\
com.itextpdf,\
com.jaspersoft.studio.bundles.barbecue,\
org.jfree.chart-osgi,\
org.jfree.jcommon-osgi,\
org.krysalis.barcode4j,\
bcprov,\
org.apache.xalan,\
bcpkix,\
org.eclipse.equinox.common,\
org.passay,\
groovy-all,\
org.eclipse.osgi@start

View File

@ -18,10 +18,10 @@
point="org.eclipse.core.runtime.products">
<product
application="org.adempiere.server.application"
name="Adempiere Server">
name="iDempiere Server">
<property
name="appName"
value="Adempiere Server">
value="iDempiere Server">
</property>
</product>
</extension>

View File

@ -89,6 +89,34 @@
version="0.0.0"
unpack="false"/>
<plugin
id="org.apache.felix.scr"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.equinox.ds"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.osgi.services"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.osgi.util"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.ant.core"
download-size="0"

View File

@ -5,11 +5,6 @@
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
@ -25,17 +20,9 @@
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ds.core.builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@ -1,7 +0,0 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.8

View File

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="org.adempiere.ui.swing">
<wb-resource deploy-path="/" source-path="/src"/>
</wb-module>
</project-modules>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<fixed facet="jst.java"/>
<fixed facet="jst.utility"/>
<installed facet="jst.utility" version="1.0"/>
<installed facet="jst.java" version="1.8"/>
</faceted-project>

View File

@ -72,7 +72,8 @@ Require-Bundle: org.adempiere.base;bundle-version="0.0.0",
org.adempiere.ui;bundle-version="0.0.0",
org.restlet;bundle-version="0.0.0",
org.restlet.ext.servlet;bundle-version="0.0.0",
groovy-all;bundle-version="0.0.0"
groovy-all;bundle-version="0.0.0",
org.jfree.chart-osgi;bundle-version="1.0.19"
Eclipse-ExtensibleAPI: true
Eclipse-RegisterBuddy: org.adempiere.base
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
@ -84,6 +85,7 @@ Import-Package: javax.net.ssl,
org.compiere.css,
org.eclipse.core.runtime;version="3.4.0",
org.eclipse.equinox.app,
org.jfree.ui;version="1.0.23",
org.osgi.framework;version="1.5.0"
Service-Component: OSGI-INF/*.xml
Bundle-ActivationPolicy: lazy

View File

@ -5,11 +5,6 @@
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
@ -25,18 +20,9 @@
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ds.core.builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@ -31,6 +31,14 @@ Import-Package: groovy.transform.stc;version="2.4.7",
org.apache.tools.ant,
org.apache.tools.ant.taskdefs,
org.compiere.css,
org.jfree.chart,
org.jfree.chart.encoders,
org.jfree.chart.entity,
org.jfree.chart.plot,
org.jfree.data,
org.jfree.data.general,
org.jfree.data.time,
org.jfree.util,
org.eclipse.core.runtime;version="3.4.0",
org.osgi.framework;version="1.7.0",
org.osgi.service.event;version="1.3.0",

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE scr:component>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.webui.apps.form.DefaultCreateFromFactory">
<implementation class="org.adempiere.webui.apps.form.DefaultCreateFromFactory"/>
<service>

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE scr:component>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.webui.factory.DefaultEditorFactory">
<implementation class="org.adempiere.webui.factory.DefaultEditorFactory"/>
<service>

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE scr:component>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.webui.factory.DefaultFormFactory">
<implementation class="org.adempiere.webui.factory.DefaultFormFactory"/>
<service>

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE scr:component>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.webui.factory.DefaultInfoFactory">
<implementation class="org.adempiere.webui.factory.DefaultInfoFactory"/>
<service>

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE scr:component>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.webui.apps.form.DefaultPaymentFormFactory">
<implementation class="org.adempiere.webui.apps.form.DefaultPaymentFormFactory"/>
<service>

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE scr:component>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.webui.process.DefaultPrintShippingLabel">
<implementation class="org.adempiere.webui.process.DefaultPrintShippingLabel"/>
<service>

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE scr:component>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.webui.factory.DefaultFeedbackService">
<implementation class="org.adempiere.webui.factory.DefaultFeedbackService"/>
<service>

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE scr:component>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.webui.apps.graph.jfreegraph.ChartRendererServiceImpl">
<implementation class="org.adempiere.webui.apps.graph.jfreegraph.ChartRendererServiceImpl"/>
<property name="service.ranking" type="Integer" value="0"/>

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE scr:component>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.webui.window.ZkJRViewerProvider">
<implementation class="org.adempiere.webui.window.ZkJRViewerProvider"/>
<service>

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE scr:component>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.webui.util.ProcessFactoryImpl">
<implementation class="org.adempiere.webui.util.ProcessFactoryImpl"/>
<property name="service.ranking" type="Integer" value="1"/>

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE scr:component>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.webui.window.ZkReportViewerProvider">
<implementation class="org.adempiere.webui.window.ZkReportViewerProvider"/>
<service>

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE scr:component>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.webui.util.WebUIResourceFinder">
<implementation class="org.adempiere.webui.util.WebUIResourceFinder"/>
<service>

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE scr:component>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.adempiere.webui.factory.ZulDashboardGadgetFactory">
<implementation class="org.adempiere.webui.factory.ZulDashboardGadgetFactory"/>
<service>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE config>
<config>
<config-name>org.adempiere.ui.zk</config-name>
<version>

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language>
<!-- lang.xml
Purpose:

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib>
<taglib>
<uri>http://www.idempiere.org/dsp/web/util</uri>

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE zk>
<!--
zk.xml Copyright (C) 2006 Potix Corporation. All Rights Reserved.

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE zk>
<!--
zk.xml Copyright (C) 2006 Potix Corporation. All Rights Reserved.
@ -24,7 +25,6 @@
<!-- false to use compress js which is much smaller. change to true if you need to debug -->
<client-config>
<debug-js>true</debug-js>
<processing-prompt-delay>500</processing-prompt-delay>
</client-config>

View File

@ -1,3 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE project>
<project name="labelapplet" basedir="." default="sign">
<target name="build">
<mkdir dir="bin"/>

View File

@ -1,3 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE project>
<project name="zklibrary" basedir="." default="copy">
<target name="copy">
<mkdir dir="WEB-INF/lib" />

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plugin>
<?eclipse version="3.4"?>
<plugin>
<extension-point id="org.adempiere.webui.Form" name="Web Form" schema="schema/org.adempiere.webui.Form.exsd"/>

View File

@ -11,7 +11,8 @@ Bundle-ClassPath: .,
c3p0-0.9.5.jar,
c3p0-oracle-thin-extras-0.9.5.jar,
mchange-commons-java-0.2.9.jar
Import-Package: org.osgi.framework,
Import-Package: org.jfree.io;version="1.0.23",
org.osgi.framework,
org.slf4j;version="1.7.2"
Bundle-ActivationPolicy: lazy
Bundle-Activator: org.adempiere.db.oracle.OracleBundleActivator

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry exported="true" kind="lib" path="postgresql-42.1.4.jar"/>
<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="lib" path="c3p0-0.9.5.2.jar"/>
<classpathentry kind="lib" path="mchange-commons-java-0.2.12.jar"/>
<classpathentry kind="lib" path="postgresql-9.4.1212.jre7.jar"/>
<classpathentry exported="true" kind="lib" path="c3p0-0.9.5.2.jar"/>
<classpathentry exported="true" kind="lib" path="mchange-commons-java-0.2.12.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View File

@ -5,12 +5,13 @@ Bundle-SymbolicName: org.compiere.db.postgresql.provider;singleton:=true
Bundle-Version: 4.1.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ClassPath: .,
postgresql-9.4.1212.jre7.jar,
c3p0-0.9.5.2.jar,
mchange-commons-java-0.2.12.jar
mchange-commons-java-0.2.12.jar,
postgresql-42.1.4.jar
Require-Bundle: org.adempiere.base;bundle-version="0.0.0",
org.adempiere.install;bundle-version="0.0.0"
Import-Package: junit.framework;version="3.8.2",
org.jfree.io;version="1.0.23",
org.junit;version="4.8.1",
org.osgi.framework,
org.slf4j;version="1.7.2"

View File

@ -4,7 +4,7 @@ bin.includes = META-INF/,\
plugin.xml,\
OSGI-INF/pgprovider.xml,\
OSGI-INF/,\
postgresql-9.4.1212.jre7.jar,\
c3p0-0.9.5.2.jar,\
mchange-commons-java-0.2.12.jar
mchange-commons-java-0.2.12.jar,\
postgresql-42.1.4.jar
source.. = src/

View File

@ -1,7 +1,7 @@
<project name="zklibrary" basedir="." default="copy">
<target name="copy">
<get src="${url.maven2.lib}/maven2/org/postgresql/postgresql/9.4.1212.jre7/postgresql-9.4.1212.jre7.jar" dest="postgresql-9.4.1212.jre7.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.maven2.lib}/maven2/com/mchange/c3p0/0.9.5.2/c3p0-0.9.5.2.jar" dest="c3p0-0.9.5.2.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.maven2.lib}/maven2/com/mchange/mchange-commons-java/0.2.12/mchange-commons-java-0.2.12.jar" dest="mchange-commons-java-0.2.12.jar" usetimestamp="true" verbose="true" retries="5" />
<get src="${url.maven2.lib}/maven2/org/postgresql/postgresql/42.1.4/postgresql-42.1.4.jar" dest="postgresql-42.1.4.jar" usetimestamp="true" verbose="true" retries="5" />
</target>
</project>

View File

@ -1,7 +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-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View File

@ -1,33 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>org.eclipse.jetty.http</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.pde.ds.core.builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@ -1,35 +0,0 @@
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven Bundle Plugin
Built-By: joakim
Build-Jdk: 1.8.0_65
Implementation-Vendor: Eclipse.org - Jetty
Implementation-Version: 9.3.10.v20160621
url: http://www.eclipse.org/jetty
Bnd-LastModified: 1457969504223
Bundle-Classpath: .
Bundle-Copyright: Copyright (c) 2008-2016 Mort Bay Consulting Pty. Ltd.
Bundle-Description: Jetty module for Jetty :: Http Utility
Bundle-DocURL: http://www.eclipse.org/jetty
Bundle-License: http://www.apache.org/licenses/LICENSE-2.0, http://www
.eclipse.org/org/documents/epl-v10.php
Bundle-ManifestVersion: 2
Bundle-Name: Jetty :: Http Utility
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-SymbolicName: org.eclipse.jetty.http
Bundle-Vendor: Eclipse Jetty Project
Bundle-Version: 9.3.10.v20160621
Export-Package: org.eclipse.jetty.http;version="9.3.10";uses:="org.ecl
ipse.jetty.util,org.eclipse.jetty.util.log,org.eclipse.jetty.util.res
ource",org.eclipse.jetty.http.pathmap;version="9.3.10";uses:="org.ecl
ipse.jetty.util.annotation,org.eclipse.jetty.util.component",org.ecli
pse.jetty.http2.hpack;version="9.3.10";uses:="org.eclipse.jetty.http,
org.eclipse.jetty.util.log"
Import-Package: org.eclipse.jetty.util;version="[9.3.10,9.3.11)",org.e
clipse.jetty.util.annotation;version="[9.3.10,9.3.11)",org.eclipse.je
tty.util.component;version="[9.3.10,9.3.11)",org.eclipse.jetty.util.l
og;version="[9.3.10,9.3.11)",org.eclipse.jetty.util.resource;version=
"[9.3.10,9.3.11)"
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.8))"
Tool: Bnd-2.4.1.201501161923

View File

@ -1,2 +0,0 @@
org.eclipse.jetty.http.Http1FieldPreEncoder
org.eclipse.jetty.http2.hpack.HpackFieldPreEncoder

View File

@ -1,27 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>About</title>
</head>
<body lang="EN-US">
<h2>About This Content</h2>
<p>19 May, 2009</p>
<h3>License</h3>
<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). The Content is dual licensed and is provided to you under the terms and conditions of the Eclipse Public License Version 1.0 (&quot;EPL&quot;) as well as the Apache Software License Version 2.0. A copy of the EPL is available
at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. A copy of the ASL is available at <a href="http://www.apache.org/licenses/LICENSE-2.0.html">http://www.apache.org/licenses/LICENSE-2.0.html</a>. For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may apply to your use of any object code in the Content. Check the Redistributor's license that was provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise indicated below, the terms and conditions of the EPL still apply to any source code in the Content and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
<p><b>jetty-util</b> artifact only:<br/><br/>The UnixCrypt.java code implements the one way cryptography used by
Unix systems for simple password protection. Copyright 1996 Aki Yoshida,
modified April 2001 by Iris Van den Broeke, Daniel Deville.
Permission to use, copy, modify and distribute UnixCrypt
for non-commercial or commercial purposes and without fee is
granted provided that the copyright notice appears in all copies.</p>
</body>
</html>

View File

@ -1,4 +0,0 @@
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.

View File

@ -1,71 +0,0 @@
//
// ========================================================================
// Copyright (c) 1995-2016 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
//
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
//
package org.eclipse.jetty.http;
/* ------------------------------------------------------------------------------- */
/**
* <p>Exception thrown to indicate a Bad HTTP Message has either been received
* or attempted to be generated. Typically these are handled with either 400
* or 500 responses.</p>
*/
@SuppressWarnings("serial")
public class BadMessageException extends RuntimeException
{
final int _code;
final String _reason;
public BadMessageException()
{
this(400,null);
}
public BadMessageException(int code)
{
this(code,null);
}
public BadMessageException(String reason)
{
this(400,reason);
}
public BadMessageException(int code, String reason)
{
super(code+": "+reason);
_code=code;
_reason=reason;
}
public BadMessageException(int code, String reason, Throwable cause)
{
super(code+": "+reason, cause);
_code=code;
_reason=reason;
}
public int getCode()
{
return _code;
}
public String getReason()
{
return _reason;
}
}

View File

@ -1,173 +0,0 @@
//
// ========================================================================
// Copyright (c) 1995-2016 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
//
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
//
package org.eclipse.jetty.http;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.TimeZone;
import org.eclipse.jetty.util.StringUtil;
/**
* ThreadLocal Date formatters for HTTP style dates.
*/
public class DateGenerator
{
private static final TimeZone __GMT = TimeZone.getTimeZone("GMT");
static
{
__GMT.setID("GMT");
}
static final String[] DAYS =
{ "Sat", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
static final String[] MONTHS =
{ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "Jan"};
private static final ThreadLocal<DateGenerator> __dateGenerator =new ThreadLocal<DateGenerator>()
{
@Override
protected DateGenerator initialValue()
{
return new DateGenerator();
}
};
public final static String __01Jan1970=DateGenerator.formatDate(0);
/**
* Format HTTP date "EEE, dd MMM yyyy HH:mm:ss 'GMT'"
* @param date the date in milliseconds
* @return the formatted date
*/
public static String formatDate(long date)
{
return __dateGenerator.get().doFormatDate(date);
}
/**
* Format "EEE, dd-MMM-yyyy HH:mm:ss 'GMT'" for cookies
* @param buf the buffer to put the formatted date into
* @param date the date in milliseconds
*/
public static void formatCookieDate(StringBuilder buf, long date)
{
__dateGenerator.get().doFormatCookieDate(buf,date);
}
/**
* Format "EEE, dd-MMM-yyyy HH:mm:ss 'GMT'" for cookies
* @param date the date in milliseconds
* @return the formatted date
*/
public static String formatCookieDate(long date)
{
StringBuilder buf = new StringBuilder(28);
formatCookieDate(buf, date);
return buf.toString();
}
private final StringBuilder buf = new StringBuilder(32);
private final GregorianCalendar gc = new GregorianCalendar(__GMT);
/**
* Format HTTP date "EEE, dd MMM yyyy HH:mm:ss 'GMT'"
* @param date the date in milliseconds
* @return the formatted date
*/
public String doFormatDate(long date)
{
buf.setLength(0);
gc.setTimeInMillis(date);
int day_of_week = gc.get(Calendar.DAY_OF_WEEK);
int day_of_month = gc.get(Calendar.DAY_OF_MONTH);
int month = gc.get(Calendar.MONTH);
int year = gc.get(Calendar.YEAR);
int century = year / 100;
year = year % 100;
int hours = gc.get(Calendar.HOUR_OF_DAY);
int minutes = gc.get(Calendar.MINUTE);
int seconds = gc.get(Calendar.SECOND);
buf.append(DAYS[day_of_week]);
buf.append(',');
buf.append(' ');
StringUtil.append2digits(buf, day_of_month);
buf.append(' ');
buf.append(MONTHS[month]);
buf.append(' ');
StringUtil.append2digits(buf, century);
StringUtil.append2digits(buf, year);
buf.append(' ');
StringUtil.append2digits(buf, hours);
buf.append(':');
StringUtil.append2digits(buf, minutes);
buf.append(':');
StringUtil.append2digits(buf, seconds);
buf.append(" GMT");
return buf.toString();
}
/**
* Format "EEE, dd-MMM-yy HH:mm:ss 'GMT'" for cookies
* @param buf the buffer to format the date into
* @param date the date in milliseconds
*/
public void doFormatCookieDate(StringBuilder buf, long date)
{
gc.setTimeInMillis(date);
int day_of_week = gc.get(Calendar.DAY_OF_WEEK);
int day_of_month = gc.get(Calendar.DAY_OF_MONTH);
int month = gc.get(Calendar.MONTH);
int year = gc.get(Calendar.YEAR);
year = year % 10000;
int epoch = (int) ((date / 1000) % (60 * 60 * 24));
int seconds = epoch % 60;
epoch = epoch / 60;
int minutes = epoch % 60;
int hours = epoch / 60;
buf.append(DAYS[day_of_week]);
buf.append(',');
buf.append(' ');
StringUtil.append2digits(buf, day_of_month);
buf.append('-');
buf.append(MONTHS[month]);
buf.append('-');
StringUtil.append2digits(buf, year/100);
StringUtil.append2digits(buf, year%100);
buf.append(' ');
StringUtil.append2digits(buf, hours);
buf.append(':');
StringUtil.append2digits(buf, minutes);
buf.append(':');
StringUtil.append2digits(buf, seconds);
buf.append(" GMT");
}
}

View File

@ -1,109 +0,0 @@
//
// ========================================================================
// Copyright (c) 1995-2016 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
//
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
//
package org.eclipse.jetty.http;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
/**
* ThreadLocal data parsers for HTTP style dates
*
*/
public class DateParser
{
private static final TimeZone __GMT = TimeZone.getTimeZone("GMT");
static
{
__GMT.setID("GMT");
}
final static String __dateReceiveFmt[] =
{
"EEE, dd MMM yyyy HH:mm:ss zzz",
"EEE, dd-MMM-yy HH:mm:ss",
"EEE MMM dd HH:mm:ss yyyy",
"EEE, dd MMM yyyy HH:mm:ss", "EEE dd MMM yyyy HH:mm:ss zzz",
"EEE dd MMM yyyy HH:mm:ss", "EEE MMM dd yyyy HH:mm:ss zzz", "EEE MMM dd yyyy HH:mm:ss",
"EEE MMM-dd-yyyy HH:mm:ss zzz", "EEE MMM-dd-yyyy HH:mm:ss", "dd MMM yyyy HH:mm:ss zzz",
"dd MMM yyyy HH:mm:ss", "dd-MMM-yy HH:mm:ss zzz", "dd-MMM-yy HH:mm:ss", "MMM dd HH:mm:ss yyyy zzz",
"MMM dd HH:mm:ss yyyy", "EEE MMM dd HH:mm:ss yyyy zzz",
"EEE, MMM dd HH:mm:ss yyyy zzz", "EEE, MMM dd HH:mm:ss yyyy", "EEE, dd-MMM-yy HH:mm:ss zzz",
"EEE dd-MMM-yy HH:mm:ss zzz", "EEE dd-MMM-yy HH:mm:ss",
};
public static long parseDate(String date)
{
return __dateParser.get().parse(date);
}
private static final ThreadLocal<DateParser> __dateParser =new ThreadLocal<DateParser>()
{
@Override
protected DateParser initialValue()
{
return new DateParser();
}
};
final SimpleDateFormat _dateReceive[]= new SimpleDateFormat[__dateReceiveFmt.length];
private long parse(final String dateVal)
{
for (int i = 0; i < _dateReceive.length; i++)
{
if (_dateReceive[i] == null)
{
_dateReceive[i] = new SimpleDateFormat(__dateReceiveFmt[i], Locale.US);
_dateReceive[i].setTimeZone(__GMT);
}
try
{
Date date = (Date) _dateReceive[i].parseObject(dateVal);
return date.getTime();
}
catch (java.lang.Exception e)
{
// LOG.ignore(e);
}
}
if (dateVal.endsWith(" GMT"))
{
final String val = dateVal.substring(0, dateVal.length() - 4);
for (SimpleDateFormat element : _dateReceive)
{
try
{
Date date = (Date) element.parseObject(val);
return date.getTime();
}
catch (java.lang.Exception e)
{
// LOG.ignore(e);
}
}
}
return -1;
}
}

View File

@ -1,188 +0,0 @@
//
// ========================================================================
// Copyright (c) 1995-2016 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
//
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
//
package org.eclipse.jetty.http;
import java.io.IOException;
import java.io.InputStream;
import java.nio.ByteBuffer;
import java.nio.channels.ReadableByteChannel;
import org.eclipse.jetty.http.MimeTypes.Type;
import org.eclipse.jetty.util.resource.Resource;
/* ------------------------------------------------------------ */
public class GzipHttpContent implements HttpContent
{
private final HttpContent _content;
private final HttpContent _contentGz;
public final static String ETAG_GZIP="--gzip";
public final static String ETAG_GZIP_QUOTE="--gzip\"";
public final static PreEncodedHttpField CONTENT_ENCODING_GZIP=new PreEncodedHttpField(HttpHeader.CONTENT_ENCODING,"gzip");
public static String removeGzipFromETag(String etag)
{
if (etag==null)
return null;
int i = etag.indexOf(ETAG_GZIP_QUOTE);
if (i<0)
return etag;
return etag.substring(0,i)+'"';
}
public GzipHttpContent(HttpContent content, HttpContent contentGz)
{
_content=content;
_contentGz=contentGz;
}
@Override
public int hashCode()
{
return _content.hashCode();
}
@Override
public boolean equals(Object obj)
{
return _content.equals(obj);
}
@Override
public Resource getResource()
{
return _content.getResource();
}
@Override
public HttpField getETag()
{
return new HttpField(HttpHeader.ETAG,getETagValue());
}
@Override
public String getETagValue()
{
return _content.getResource().getWeakETag(ETAG_GZIP);
}
@Override
public HttpField getLastModified()
{
return _content.getLastModified();
}
@Override
public String getLastModifiedValue()
{
return _content.getLastModifiedValue();
}
@Override
public HttpField getContentType()
{
return _content.getContentType();
}
@Override
public String getContentTypeValue()
{
return _content.getContentTypeValue();
}
@Override
public HttpField getContentEncoding()
{
return CONTENT_ENCODING_GZIP;
}
@Override
public String getContentEncodingValue()
{
return CONTENT_ENCODING_GZIP.getValue();
}
@Override
public String getCharacterEncoding()
{
return _content.getCharacterEncoding();
}
@Override
public Type getMimeType()
{
return _content.getMimeType();
}
@Override
public void release()
{
_content.release();
}
@Override
public ByteBuffer getIndirectBuffer()
{
return _contentGz.getIndirectBuffer();
}
@Override
public ByteBuffer getDirectBuffer()
{
return _contentGz.getDirectBuffer();
}
@Override
public HttpField getContentLength()
{
return _contentGz.getContentLength();
}
@Override
public long getContentLengthValue()
{
return _contentGz.getContentLengthValue();
}
@Override
public InputStream getInputStream() throws IOException
{
return _contentGz.getInputStream();
}
@Override
public ReadableByteChannel getReadableByteChannel() throws IOException
{
return _contentGz.getReadableByteChannel();
}
@Override
public String toString()
{
return String.format("GzipHttpContent@%x{r=%s|%s,lm=%s|%s,ct=%s}",hashCode(),
_content.getResource(),_contentGz.getResource(),
_content.getResource().lastModified(),_contentGz.getResource().lastModified(),
getContentType());
}
@Override
public HttpContent getGzipContent()
{
return null;
}
}

View File

@ -1,106 +0,0 @@
//
// ========================================================================
// Copyright (c) 1995-2016 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
//
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
//
package org.eclipse.jetty.http;
import org.eclipse.jetty.util.StringUtil;
/* ------------------------------------------------------------ */
/**
*/
public class HostPortHttpField extends HttpField
{
private final String _host;
private final int _port;
public HostPortHttpField(String authority)
{
this(HttpHeader.HOST,HttpHeader.HOST.asString(),authority);
}
public HostPortHttpField(HttpHeader header, String name, String authority)
{
super(header,name,authority);
if (authority==null || authority.length()==0)
throw new IllegalArgumentException("No Authority");
try
{
if (authority.charAt(0)=='[')
{
// ipv6reference
int close=authority.lastIndexOf(']');
if (close<0)
throw new BadMessageException(HttpStatus.BAD_REQUEST_400,"Bad ipv6");
_host=authority.substring(0,close+1);
if (authority.length()>close+1)
{
if (authority.charAt(close+1)!=':')
throw new BadMessageException(HttpStatus.BAD_REQUEST_400,"Bad ipv6 port");
_port=StringUtil.toInt(authority,close+2);
}
else
_port=0;
}
else
{
// ipv4address or hostname
int c = authority.lastIndexOf(':');
if (c>=0)
{
_host=authority.substring(0,c);
_port=StringUtil.toInt(authority,c+1);
}
else
{
_host=authority;
_port=0;
}
}
}
catch (BadMessageException bm)
{
throw bm;
}
catch(Exception e)
{
throw new BadMessageException(HttpStatus.BAD_REQUEST_400,"Bad HostPort",e);
}
}
/* ------------------------------------------------------------ */
/** Get the host.
* @return the host
*/
public String getHost()
{
return _host;
}
/* ------------------------------------------------------------ */
/** Get the port.
* @return the port
*/
public int getPort()
{
return _port;
}
}

View File

@ -1,69 +0,0 @@
//
// ========================================================================
// Copyright (c) 1995-2016 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
//
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
//
package org.eclipse.jetty.http;
import static java.nio.charset.StandardCharsets.ISO_8859_1;
import java.util.Arrays;
/* ------------------------------------------------------------ */
/**
*/
public class Http1FieldPreEncoder implements HttpFieldPreEncoder
{
/* ------------------------------------------------------------ */
/**
* @see org.eclipse.jetty.http.HttpFieldPreEncoder#getHttpVersion()
*/
@Override
public HttpVersion getHttpVersion()
{
return HttpVersion.HTTP_1_0;
}
/* ------------------------------------------------------------ */
/**
* @see org.eclipse.jetty.http.HttpFieldPreEncoder#getEncodedField(org.eclipse.jetty.http.HttpHeader, java.lang.String, java.lang.String)
*/
@Override
public byte[] getEncodedField(HttpHeader header, String headerString, String value)
{
if (header!=null)
{
int cbl=header.getBytesColonSpace().length;
byte[] bytes=Arrays.copyOf(header.getBytesColonSpace(), cbl+value.length()+2);
System.arraycopy(value.getBytes(ISO_8859_1),0,bytes,cbl,value.length());
bytes[bytes.length-2]=(byte)'\r';
bytes[bytes.length-1]=(byte)'\n';
return bytes;
}
byte[] n=headerString.getBytes(ISO_8859_1);
byte[] v=value.getBytes(ISO_8859_1);
byte[] bytes=Arrays.copyOf(n,n.length+2+v.length+2);
bytes[n.length]=(byte)':';
bytes[n.length]=(byte)' ';
bytes[bytes.length-2]=(byte)'\r';
bytes[bytes.length-1]=(byte)'\n';
return bytes;
}
}

View File

@ -1,32 +0,0 @@
//
// ========================================================================
// Copyright (c) 1995-2016 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
//
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
//
package org.eclipse.jetty.http;
/**
* HTTP compliance modes:
* <dl>
* <dt>RFC7230</dt><dd>(default) Compliance with RFC7230</dd>
* <dt>RFC2616</dt><dd>Wrapped/Continued headers and HTTP/0.9 supported</dd>
* <dt>LEGACY</dt><dd>(aka STRICT) Adherence to Servlet Specification requirement for
* exact case of header names, bypassing the header caches, which are case insensitive,
* otherwise equivalent to RFC2616</dd>
* </dl>
*/
public enum HttpCompliance { LEGACY, RFC2616, RFC7230 }

View File

@ -1,80 +0,0 @@
//
// ========================================================================
// Copyright (c) 1995-2016 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
//
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
//
package org.eclipse.jetty.http;
import java.io.IOException;
import java.io.InputStream;
import java.nio.ByteBuffer;
import java.nio.channels.ReadableByteChannel;
import org.eclipse.jetty.http.MimeTypes.Type;
import org.eclipse.jetty.util.resource.Resource;
/* ------------------------------------------------------------ */
/** HttpContent interface.
* <p>This information represents all the information about a
* static resource that is needed to evaluate conditional headers
* and to serve the content if need be. It can be implemented
* either transiently (values and fields generated on demand) or
* persistently (values and fields pre-generated in anticipation of
* reuse in from a cache).
* </p>
*
*/
public interface HttpContent
{
HttpField getContentType();
String getContentTypeValue();
String getCharacterEncoding();
Type getMimeType();
HttpField getContentEncoding();
String getContentEncodingValue();
HttpField getContentLength();
long getContentLengthValue();
HttpField getLastModified();
String getLastModifiedValue();
HttpField getETag();
String getETagValue();
ByteBuffer getIndirectBuffer();
ByteBuffer getDirectBuffer();
Resource getResource();
InputStream getInputStream() throws IOException;
ReadableByteChannel getReadableByteChannel() throws IOException;
void release();
HttpContent getGzipContent();
public interface Factory
{
/**
* @param path The path within the context to the resource
* @param maxBuffer The maximum buffer to allocated for this request. For cached content, a larger buffer may have
* previously been allocated and returned by the {@link HttpContent#getDirectBuffer()} or {@link HttpContent#getIndirectBuffer()} calls.
* @return A {@link HttpContent}
* @throws IOException
*/
HttpContent getContent(String path,int maxBuffer) throws IOException;
}
}

View File

@ -1,164 +0,0 @@
//
// ========================================================================
// Copyright (c) 1995-2016 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
//
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
//
package org.eclipse.jetty.http;
import java.util.concurrent.TimeUnit;
public class HttpCookie
{
private final String _name;
private final String _value;
private final String _comment;
private final String _domain;
private final long _maxAge;
private final String _path;
private final boolean _secure;
private final int _version;
private final boolean _httpOnly;
private final long _expiration;
public HttpCookie(String name, String value)
{
this(name, value, -1);
}
public HttpCookie(String name, String value, String domain, String path)
{
this(name, value, domain, path, -1, false, false);
}
public HttpCookie(String name, String value, long maxAge)
{
this(name, value, null, null, maxAge, false, false);
}
public HttpCookie(String name, String value, String domain, String path, long maxAge, boolean httpOnly, boolean secure)
{
this(name, value, domain, path, maxAge, httpOnly, secure, null, 0);
}
public HttpCookie(String name, String value, String domain, String path, long maxAge, boolean httpOnly, boolean secure, String comment, int version)
{
_name = name;
_value = value;
_domain = domain;
_path = path;
_maxAge = maxAge;
_httpOnly = httpOnly;
_secure = secure;
_comment = comment;
_version = version;
_expiration = maxAge < 0 ? -1 : System.nanoTime() + TimeUnit.SECONDS.toNanos(maxAge);
}
/**
* @return the cookie name
*/
public String getName()
{
return _name;
}
/**
* @return the cookie value
*/
public String getValue()
{
return _value;
}
/**
* @return the cookie comment
*/
public String getComment()
{
return _comment;
}
/**
* @return the cookie domain
*/
public String getDomain()
{
return _domain;
}
/**
* @return the cookie max age in seconds
*/
public long getMaxAge()
{
return _maxAge;
}
/**
* @return the cookie path
*/
public String getPath()
{
return _path;
}
/**
* @return whether the cookie is valid for secure domains
*/
public boolean isSecure()
{
return _secure;
}
/**
* @return the cookie version
*/
public int getVersion()
{
return _version;
}
/**
* @return whether the cookie is valid for the http protocol only
*/
public boolean isHttpOnly()
{
return _httpOnly;
}
/**
* @param timeNanos the time to check for cookie expiration, in nanoseconds
* @return whether the cookie is expired by the given time
*/
public boolean isExpired(long timeNanos)
{
return _expiration >= 0 && timeNanos >= _expiration;
}
/**
* @return a string representation of this cookie
*/
public String asString()
{
StringBuilder builder = new StringBuilder();
builder.append(getName()).append("=").append(getValue());
if (getDomain() != null)
builder.append(";$Domain=").append(getDomain());
if (getPath() != null)
builder.append(";$Path=").append(getPath());
return builder.toString();
}
}

View File

@ -1,510 +0,0 @@
//
// ========================================================================
// Copyright (c) 1995-2016 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
//
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
//
package org.eclipse.jetty.http;
import java.util.ArrayList;
import java.util.Objects;
import org.eclipse.jetty.util.StringUtil;
/** A HTTP Field
*/
public class HttpField
{
private final static String __zeroquality="q=0";
private final HttpHeader _header;
private final String _name;
private final String _value;
// cached hashcode for case insensitive name
private int hash = 0;
public HttpField(HttpHeader header, String name, String value)
{
_header = header;
_name = name;
_value = value;
}
public HttpField(HttpHeader header, String value)
{
this(header,header.asString(),value);
}
public HttpField(HttpHeader header, HttpHeaderValue value)
{
this(header,header.asString(),value.asString());
}
public HttpField(String name, String value)
{
this(HttpHeader.CACHE.get(name),name,value);
}
public HttpHeader getHeader()
{
return _header;
}
public String getName()
{
return _name;
}
public String getValue()
{
return _value;
}
public int getIntValue()
{
return Integer.valueOf(_value);
}
public long getLongValue()
{
return Long.valueOf(_value);
}
public String[] getValues()
{
ArrayList<String> list = new ArrayList<>();
int state = 0;
int start=0;
int end=0;
StringBuilder builder = new StringBuilder();
for (int i=0;i<_value.length();i++)
{
char c = _value.charAt(i);
switch(state)
{
case 0: // initial white space
switch(c)
{
case '"': // open quote
state=2;
break;
case ',': // ignore leading empty field
break;
case ' ': // more white space
case '\t':
break;
default: // character
start=i;
end=i;
state=1;
}
break;
case 1: // In token
switch(c)
{
case ',': // next field
list.add(_value.substring(start,end+1));
state=0;
break;
case ' ': // more white space
case '\t':
break;
default:
end=i;
}
break;
case 2: // In Quoted
switch(c)
{
case '\\': // next field
state=3;
break;
case '"': // end quote
list.add(builder.toString());
builder.setLength(0);
state=4;
break;
default:
builder.append(c);
}
break;
case 3: // In Quoted Quoted
builder.append(c);
state=2;
break;
case 4: // WS after end quote
switch(c)
{
case ' ': // white space
case '\t': // white space
break;
case ',': // white space
state=0;
break;
default:
throw new IllegalArgumentException("c="+(int)c);
}
break;
}
}
switch(state)
{
case 0:
break;
case 1:
list.add(_value.substring(start,end+1));
break;
case 4:
break;
default:
throw new IllegalArgumentException("state="+state);
}
return list.toArray(new String[list.size()]);
}
/* ------------------------------------------------------------ */
/** Look for a value in a possible multi valued field
* @param search Values to search for (case insensitive)
* @return True iff the value is contained in the field value entirely or
* as an element of a quoted comma separated list. List element parameters (eg qualities) are ignored,
* except if they are q=0, in which case the item itself is ignored.
*/
public boolean contains(String search)
{
if (search==null)
return _value==null;
if (search.length()==0)
return false;
if (_value==null)
return false;
search = StringUtil.asciiToLowerCase(search);
int state=0;
int match=0;
int param=0;
for (int i=0;i<_value.length();i++)
{
char c = _value.charAt(i);
switch(state)
{
case 0: // initial white space
switch(c)
{
case '"': // open quote
match=0;
state=2;
break;
case ',': // ignore leading empty field
break;
case ';': // ignore leading empty field parameter
param=-1;
match=-1;
state=5;
break;
case ' ': // more white space
case '\t':
break;
default: // character
match = Character.toLowerCase(c)==search.charAt(0)?1:-1;
state=1;
break;
}
break;
case 1: // In token
switch(c)
{
case ',': // next field
// Have we matched the token?
if (match==search.length())
return true;
state=0;
break;
case ';':
param=match>=0?0:-1;
state=5; // parameter
break;
default:
if (match>0)
{
if (match<search.length())
match=Character.toLowerCase(c)==search.charAt(match)?(match+1):-1;
else if (c!=' ' && c!= '\t')
match=-1;
}
break;
}
break;
case 2: // In Quoted token
switch(c)
{
case '\\': // quoted character
state=3;
break;
case '"': // end quote
state=4;
break;
default:
if (match>=0)
{
if (match<search.length())
match=Character.toLowerCase(c)==search.charAt(match)?(match+1):-1;
else
match=-1;
}
}
break;
case 3: // In Quoted character in quoted token
if (match>=0)
{
if (match<search.length())
match=Character.toLowerCase(c)==search.charAt(match)?(match+1):-1;
else
match=-1;
}
state=2;
break;
case 4: // WS after end quote
switch(c)
{
case ' ': // white space
case '\t': // white space
break;
case ';':
state=5; // parameter
break;
case ',': // end token
// Have we matched the token?
if (match==search.length())
return true;
state=0;
break;
default:
// This is an illegal token, just ignore
match=-1;
}
break;
case 5: // parameter
switch(c)
{
case ',': // end token
// Have we matched the token and not q=0?
if (param!=__zeroquality.length() && match==search.length())
return true;
param=0;
state=0;
break;
case ' ': // white space
case '\t': // white space
break;
default:
if (param>=0)
{
if (param<__zeroquality.length())
param=Character.toLowerCase(c)==__zeroquality.charAt(param)?(param+1):-1;
else if (c!='0'&&c!='.')
param=-1;
}
}
break;
default:
throw new IllegalStateException();
}
}
return param!=__zeroquality.length() && match==search.length();
}
@Override
public String toString()
{
String v=getValue();
return getName() + ": " + (v==null?"":v);
}
public boolean isSameName(HttpField field)
{
if (field==null)
return false;
if (field==this)
return true;
if (_header!=null && _header==field.getHeader())
return true;
if (_name.equalsIgnoreCase(field.getName()))
return true;
return false;
}
private int nameHashCode()
{
int h = this.hash;
int len = _name.length();
if (h == 0 && len > 0)
{
for (int i = 0; i < len; i++)
{
// simple case insensitive hash
char c = _name.charAt(i);
// assuming us-ascii (per last paragraph on http://tools.ietf.org/html/rfc7230#section-3.2.4)
if ((c >= 'a' && c <= 'z'))
c -= 0x20;
h = 31 * h + c;
}
this.hash = h;
}
return h;
}
@Override
public int hashCode()
{
if (_header==null)
return _value.hashCode() ^ nameHashCode();
return _value.hashCode() ^ _header.hashCode();
}
@Override
public boolean equals(Object o)
{
if (o==this)
return true;
if (!(o instanceof HttpField))
return false;
HttpField field=(HttpField)o;
if (_header!=field.getHeader())
return false;
if (!_name.equalsIgnoreCase(field.getName()))
return false;
if (_value==null && field.getValue()!=null)
return false;
return Objects.equals(_value,field.getValue());
}
public static class IntValueHttpField extends HttpField
{
private final int _int;
public IntValueHttpField(HttpHeader header, String name, String value, int intValue)
{
super(header,name,value);
_int=intValue;
}
public IntValueHttpField(HttpHeader header, String name, String value)
{
this(header,name,value,Integer.valueOf(value));
}
public IntValueHttpField(HttpHeader header, String name, int intValue)
{
this(header,name,Integer.toString(intValue),intValue);
}
public IntValueHttpField(HttpHeader header, int value)
{
this(header,header.asString(),value);
}
@Override
public int getIntValue()
{
return _int;
}
@Override
public long getLongValue()
{
return _int;
}
}
public static class LongValueHttpField extends HttpField
{
private final long _long;
public LongValueHttpField(HttpHeader header, String name, String value, long longValue)
{
super(header,name,value);
_long=longValue;
}
public LongValueHttpField(HttpHeader header, String name, String value)
{
this(header,name,value,Long.valueOf(value));
}
public LongValueHttpField(HttpHeader header, String name, long value)
{
this(header,name,Long.toString(value),value);
}
public LongValueHttpField(HttpHeader header,long value)
{
this(header,header.asString(),value);
}
@Override
public int getIntValue()
{
return (int)_long;
}
@Override
public long getLongValue()
{
return _long;
}
}
}

View File

@ -1,36 +0,0 @@
//
// ========================================================================
// Copyright (c) 1995-2016 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
//
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
//
package org.eclipse.jetty.http;
/* ------------------------------------------------------------ */
/** Interface to pre-encode HttpFields. Used by {@link PreEncodedHttpField}
*/
public interface HttpFieldPreEncoder
{
/* ------------------------------------------------------------ */
/** The major version this encoder is for. Both HTTP/1.0 and HTTP/1.1
* use the same field encoding, so the {@link HttpVersion#HTTP_1_0} should
* be return for all HTTP/1.x encodings.
* @return The major version this encoder is for.
*/
HttpVersion getHttpVersion();
byte[] getEncodedField(HttpHeader header, String headerString, String value);
}

View File

@ -1,970 +0,0 @@
//
// ========================================================================
// Copyright (c) 1995-2016 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
//
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
//
package org.eclipse.jetty.http;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Set;
import java.util.StringTokenizer;
import org.eclipse.jetty.util.ArrayTernaryTrie;
import org.eclipse.jetty.util.QuotedStringTokenizer;
import org.eclipse.jetty.util.Trie;
import org.eclipse.jetty.util.log.Log;
import org.eclipse.jetty.util.log.Logger;
/**
* HTTP Fields. A collection of HTTP header and or Trailer fields.
*
* <p>This class is not synchronized as it is expected that modifications will only be performed by a
* single thread.
*
* <p>The cookie handling provided by this class is guided by the Servlet specification and RFC6265.
*
*/
public class HttpFields implements Iterable<HttpField>
{
@Deprecated
public static final String __separators = ", \t";
private static final Logger LOG = Log.getLogger(HttpFields.class);
private HttpField[] _fields;
private int _size;
/**
* Initialize an empty HttpFields.
*/
public HttpFields()
{
_fields=new HttpField[20];
}
/**
* Initialize an empty HttpFields.
*
* @param capacity the capacity of the http fields
*/
public HttpFields(int capacity)
{
_fields=new HttpField[capacity];
}
/**
* Initialize HttpFields from copy.
*
* @param fields the fields to copy data from
*/
public HttpFields(HttpFields fields)
{
_fields=Arrays.copyOf(fields._fields,fields._fields.length+10);
_size=fields._size;
}
public int size()
{
return _size;
}
@Override
public Iterator<HttpField> iterator()
{
return new Itr();
}
/**
* Get Collection of header names.
* @return the unique set of field names.
*/
public Set<String> getFieldNamesCollection()
{
final Set<String> set = new HashSet<>(_size);
for (HttpField f : this)
{
if (f!=null)
set.add(f.getName());
}
return set;
}
/**
* Get enumeration of header _names. Returns an enumeration of strings representing the header
* _names for this request.
* @return an enumeration of field names
*/
public Enumeration<String> getFieldNames()
{
return Collections.enumeration(getFieldNamesCollection());
}
/**
* Get a Field by index.
* @param index the field index
* @return A Field value or null if the Field value has not been set
*/
public HttpField getField(int index)
{
if (index>=_size)
throw new NoSuchElementException();
return _fields[index];
}
public HttpField getField(HttpHeader header)
{
for (int i=0;i<_size;i++)
{
HttpField f=_fields[i];
if (f.getHeader()==header)
return f;
}
return null;
}
public HttpField getField(String name)
{
for (int i=0;i<_size;i++)
{
HttpField f=_fields[i];
if (f.getName().equalsIgnoreCase(name))
return f;
}
return null;
}
public boolean contains(HttpField field)
{
for (int i=_size;i-->0;)
{
HttpField f=_fields[i];
if (f.isSameName(field) && f.contains(field.getValue()))
return true;
}
return false;
}
public boolean contains(HttpHeader header, String value)
{
for (int i=_size;i-->0;)
{
HttpField f=_fields[i];
if (f.getHeader()==header && f.contains(value))
return true;
}
return false;
}
public boolean contains(String name, String value)
{
for (int i=_size;i-->0;)
{
HttpField f=_fields[i];
if (f.getName().equalsIgnoreCase(name) && f.contains(value))
return true;
}
return false;
}
public boolean contains(HttpHeader header)
{
for (int i=_size;i-->0;)
{
HttpField f=_fields[i];
if (f.getHeader()==header)
return true;
}
return false;
}
public boolean containsKey(String name)
{
for (int i=_size;i-->0;)
{
HttpField f=_fields[i];
if (f.getName().equalsIgnoreCase(name))
return true;
}
return false;
}
@Deprecated
public String getStringField(HttpHeader header)
{
return get(header);
}
public String get(HttpHeader header)
{
for (int i=0;i<_size;i++)
{
HttpField f=_fields[i];
if (f.getHeader()==header)
return f.getValue();
}
return null;
}
@Deprecated
public String getStringField(String name)
{
return get(name);
}
public String get(String header)
{
for (int i=0;i<_size;i++)
{
HttpField f=_fields[i];
if (f.getName().equalsIgnoreCase(header))
return f.getValue();
}
return null;
}
/**
* Get multiple header of the same name
*
* @return List the values
* @param header the header
*/
public List<String> getValuesList(HttpHeader header)
{
final List<String> list = new ArrayList<>();
for (HttpField f : this)
if (f.getHeader()==header)
list.add(f.getValue());
return list;
}
/**
* Get multiple header of the same name
*
* @return List the header values
* @param name the case-insensitive field name
*/
public List<String> getValuesList(String name)
{
final List<String> list = new ArrayList<>();
for (HttpField f : this)
if (f.getName().equalsIgnoreCase(name))
list.add(f.getValue());
return list;
}
/**
* Get multiple field values of the same name, split
* as a {@link QuotedCSV}
*
* @return List the values with OWS stripped
* @param header The header
* @param keepQuotes True if the fields are kept quoted
*/
public List<String> getCSV(HttpHeader header,boolean keepQuotes)
{
QuotedCSV values = new QuotedCSV(keepQuotes);
for (HttpField f : this)
if (f.getHeader()==header)
values.addValue(f.getValue());
return values.getValues();
}
/**
* Get multiple field values of the same name
* as a {@link QuotedCSV}
*
* @return List the values with OWS stripped
* @param name the case-insensitive field name
* @param keepQuotes True if the fields are kept quoted
*/
public List<String> getCSV(String name,boolean keepQuotes)
{
QuotedCSV values = new QuotedCSV(keepQuotes);
for (HttpField f : this)
if (f.getName().equalsIgnoreCase(name))
values.addValue(f.getValue());
return values.getValues();
}
/**
* Get multiple field values of the same name, split and
* sorted as a {@link QuotedQualityCSV}
*
* @return List the values in quality order with the q param and OWS stripped
* @param header The header
*/
public List<String> getQualityCSV(HttpHeader header)
{
QuotedQualityCSV values = new QuotedQualityCSV();
for (HttpField f : this)
if (f.getHeader()==header)
values.addValue(f.getValue());
return values.getValues();
}
/**
* Get multiple field values of the same name, split and
* sorted as a {@link QuotedQualityCSV}
*
* @return List the values in quality order with the q param and OWS stripped
* @param name the case-insensitive field name
*/
public List<String> getQualityCSV(String name)
{
QuotedQualityCSV values = new QuotedQualityCSV();
for (HttpField f : this)
if (f.getName().equalsIgnoreCase(name))
values.addValue(f.getValue());
return values.getValues();
}
/**
* Get multi headers
*
* @return Enumeration of the values
* @param name the case-insensitive field name
*/
public Enumeration<String> getValues(final String name)
{
for (int i=0;i<_size;i++)
{
final HttpField f = _fields[i];
if (f.getName().equalsIgnoreCase(name) && f.getValue()!=null)
{
final int first=i;
return new Enumeration<String>()
{
HttpField field=f;
int i = first+1;
@Override
public boolean hasMoreElements()
{
if (field==null)
{
while (i<_size)
{
field=_fields[i++];
if (field.getName().equalsIgnoreCase(name) && field.getValue()!=null)
return true;
}
field=null;
return false;
}
return true;
}
@Override
public String nextElement() throws NoSuchElementException
{
if (hasMoreElements())
{
String value=field.getValue();
field=null;
return value;
}
throw new NoSuchElementException();
}
};
}
}
List<String> empty=Collections.emptyList();
return Collections.enumeration(empty);
}
/**
* Get multi field values with separator. The multiple values can be represented as separate
* headers of the same name, or by a single header using the separator(s), or a combination of
* both. Separators may be quoted.
*
* @param name the case-insensitive field name
* @param separators String of separators.
* @return Enumeration of the values, or null if no such header.
*/
@Deprecated
public Enumeration<String> getValues(String name, final String separators)
{
final Enumeration<String> e = getValues(name);
if (e == null)
return null;
return new Enumeration<String>()
{
QuotedStringTokenizer tok = null;
@Override
public boolean hasMoreElements()
{
if (tok != null && tok.hasMoreElements()) return true;
while (e.hasMoreElements())
{
String value = e.nextElement();
if (value!=null)
{
tok = new QuotedStringTokenizer(value, separators, false, false);
if (tok.hasMoreElements()) return true;
}
}
tok = null;
return false;
}
@Override
public String nextElement() throws NoSuchElementException
{
if (!hasMoreElements()) throw new NoSuchElementException();
String next = (String) tok.nextElement();
if (next != null) next = next.trim();
return next;
}
};
}
public void put(HttpField field)
{
boolean put=false;
for (int i=_size;i-->0;)
{
HttpField f=_fields[i];
if (f.isSameName(field))
{
if (put)
{
System.arraycopy(_fields,i+1,_fields,i,--_size-i);
}
else
{
_fields[i]=field;
put=true;
}
}
}
if (!put)
add(field);
}
/**
* Set a field.
*
* @param name the name of the field
* @param value the value of the field. If null the field is cleared.
*/
public void put(String name, String value)
{
if (value == null)
remove(name);
else
put(new HttpField(name, value));
}
public void put(HttpHeader header, HttpHeaderValue value)
{
put(header,value.toString());
}
/**
* Set a field.
*
* @param header the header name of the field
* @param value the value of the field. If null the field is cleared.
*/
public void put(HttpHeader header, String value)
{
if (value == null)
remove(header);
else
put(new HttpField(header, value));
}
/**
* Set a field.
*
* @param name the name of the field
* @param list the List value of the field. If null the field is cleared.
*/
public void put(String name, List<String> list)
{
remove(name);
for (String v : list)
if (v!=null)
add(name,v);
}
/**
* Add to or set a field. If the field is allowed to have multiple values, add will add multiple
* headers of the same name.
*
* @param name the name of the field
* @param value the value of the field.
*/
public void add(String name, String value)
{
if (value == null)
return;
HttpField field = new HttpField(name, value);
add(field);
}
public void add(HttpHeader header, HttpHeaderValue value)
{
add(header,value.toString());
}
/**
* Add to or set a field. If the field is allowed to have multiple values, add will add multiple
* headers of the same name.
*
* @param header the header
* @param value the value of the field.
*/
public void add(HttpHeader header, String value)
{
if (value == null) throw new IllegalArgumentException("null value");
HttpField field = new HttpField(header, value);
add(field);
}
/**
* Remove a field.
*
* @param name the field to remove
* @return the header that was removed
*/
public HttpField remove(HttpHeader name)
{
HttpField removed=null;
for (int i=_size;i-->0;)
{
HttpField f=_fields[i];
if (f.getHeader()==name)
{
removed=f;
System.arraycopy(_fields,i+1,_fields,i,--_size-i);
}
}
return removed;
}
/**
* Remove a field.
*
* @param name the field to remove
* @return the header that was removed
*/
public HttpField remove(String name)
{
HttpField removed=null;
for (int i=_size;i-->0;)
{
HttpField f=_fields[i];
if (f.getName().equalsIgnoreCase(name))
{
removed=f;
System.arraycopy(_fields,i+1,_fields,i,--_size-i);
}
}
return removed;
}
/**
* Get a header as an long value. Returns the value of an integer field or -1 if not found. The
* case of the field name is ignored.
*
* @param name the case-insensitive field name
* @return the value of the field as a long
* @exception NumberFormatException If bad long found
*/
public long getLongField(String name) throws NumberFormatException
{
HttpField field = getField(name);
return field==null?-1L:field.getLongValue();
}
/**
* Get a header as a date value. Returns the value of a date field, or -1 if not found. The case
* of the field name is ignored.
*
* @param name the case-insensitive field name
* @return the value of the field as a number of milliseconds since unix epoch
*/
public long getDateField(String name)
{
HttpField field = getField(name);
if (field == null)
return -1;
String val = valueParameters(field.getValue(), null);
if (val == null)
return -1;
final long date = DateParser.parseDate(val);
if (date==-1)
throw new IllegalArgumentException("Cannot convert date: " + val);
return date;
}
/**
* Sets the value of an long field.
*
* @param name the field name
* @param value the field long value
*/
public void putLongField(HttpHeader name, long value)
{
String v = Long.toString(value);
put(name, v);
}
/**
* Sets the value of an long field.
*
* @param name the field name
* @param value the field long value
*/
public void putLongField(String name, long value)
{
String v = Long.toString(value);
put(name, v);
}
/**
* Sets the value of a date field.
*
* @param name the field name
* @param date the field date value
*/
public void putDateField(HttpHeader name, long date)
{
String d=DateGenerator.formatDate(date);
put(name, d);
}
/**
* Sets the value of a date field.
*
* @param name the field name
* @param date the field date value
*/
public void putDateField(String name, long date)
{
String d=DateGenerator.formatDate(date);
put(name, d);
}
/**
* Sets the value of a date field.
*
* @param name the field name
* @param date the field date value
*/
public void addDateField(String name, long date)
{
String d=DateGenerator.formatDate(date);
add(name,d);
}
@Override
public int hashCode()
{
int hash=0;
for (HttpField field:_fields)
hash+=field.hashCode();
return hash;
}
@Override
public boolean equals(Object o)
{
if (this == o)
return true;
if (!(o instanceof HttpFields))
return false;
HttpFields that = (HttpFields)o;
// Order is not important, so we cannot rely on List.equals().
if (size() != that.size())
return false;
loop: for (HttpField fi : this)
{
for (HttpField fa : that)
{
if (fi.equals(fa))
continue loop;
}
return false;
}
return true;
}
@Override
public String toString()
{
try
{
StringBuilder buffer = new StringBuilder();
for (HttpField field : this)
{
if (field != null)
{
String tmp = field.getName();
if (tmp != null) buffer.append(tmp);
buffer.append(": ");
tmp = field.getValue();
if (tmp != null) buffer.append(tmp);
buffer.append("\r\n");
}
}
buffer.append("\r\n");
return buffer.toString();
}
catch (Exception e)
{
LOG.warn(e);
return e.toString();
}
}
public void clear()
{
_size=0;
}
public void add(HttpField field)
{
if (field!=null)
{
if (_size==_fields.length)
_fields=Arrays.copyOf(_fields,_size*2);
_fields[_size++]=field;
}
}
public void addAll(HttpFields fields)
{
for (int i=0;i<fields._size;i++)
add(fields._fields[i]);
}
/**
* Add fields from another HttpFields instance. Single valued fields are replaced, while all
* others are added.
*
* @param fields the fields to add
*/
public void add(HttpFields fields)
{
if (fields == null) return;
Enumeration<String> e = fields.getFieldNames();
while (e.hasMoreElements())
{
String name = e.nextElement();
Enumeration<String> values = fields.getValues(name);
while (values.hasMoreElements())
add(name, values.nextElement());
}
}
/**
* Get field value without parameters. Some field values can have parameters. This method separates the
* value from the parameters and optionally populates a map with the parameters. For example:
*
* <PRE>
*
* FieldName : Value ; param1=val1 ; param2=val2
*
* </PRE>
*
* @param value The Field value, possibly with parameters.
* @return The value.
*/
public static String stripParameters(String value)
{
if (value == null) return null;
int i = value.indexOf(';');
if (i < 0) return value;
return value.substring(0, i).trim();
}
/**
* Get field value parameters. Some field values can have parameters. This method separates the
* value from the parameters and optionally populates a map with the parameters. For example:
*
* <PRE>
*
* FieldName : Value ; param1=val1 ; param2=val2
*
* </PRE>
*
* @param value The Field value, possibly with parameters.
* @param parameters A map to populate with the parameters, or null
* @return The value.
*/
public static String valueParameters(String value, Map<String,String> parameters)
{
if (value == null) return null;
int i = value.indexOf(';');
if (i < 0) return value;
if (parameters == null) return value.substring(0, i).trim();
StringTokenizer tok1 = new QuotedStringTokenizer(value.substring(i), ";", false, true);
while (tok1.hasMoreTokens())
{
String token = tok1.nextToken();
StringTokenizer tok2 = new QuotedStringTokenizer(token, "= ");
if (tok2.hasMoreTokens())
{
String paramName = tok2.nextToken();
String paramVal = null;
if (tok2.hasMoreTokens()) paramVal = tok2.nextToken();
parameters.put(paramName, paramVal);
}
}
return value.substring(0, i).trim();
}
@Deprecated
private static final Float __one = new Float("1.0");
@Deprecated
private static final Float __zero = new Float("0.0");
@Deprecated
private static final Trie<Float> __qualities = new ArrayTernaryTrie<>();
static
{
__qualities.put("*", __one);
__qualities.put("1.0", __one);
__qualities.put("1", __one);
__qualities.put("0.9", new Float("0.9"));
__qualities.put("0.8", new Float("0.8"));
__qualities.put("0.7", new Float("0.7"));
__qualities.put("0.66", new Float("0.66"));
__qualities.put("0.6", new Float("0.6"));
__qualities.put("0.5", new Float("0.5"));
__qualities.put("0.4", new Float("0.4"));
__qualities.put("0.33", new Float("0.33"));
__qualities.put("0.3", new Float("0.3"));
__qualities.put("0.2", new Float("0.2"));
__qualities.put("0.1", new Float("0.1"));
__qualities.put("0", __zero);
__qualities.put("0.0", __zero);
}
@Deprecated
public static Float getQuality(String value)
{
if (value == null) return __zero;
int qe = value.indexOf(";");
if (qe++ < 0 || qe == value.length()) return __one;
if (value.charAt(qe++) == 'q')
{
qe++;
Float q = __qualities.get(value, qe, value.length() - qe);
if (q != null)
return q;
}
Map<String,String> params = new HashMap<>(4);
valueParameters(value, params);
String qs = params.get("q");
if (qs==null)
qs="*";
Float q = __qualities.get(qs);
if (q == null)
{
try
{
q = new Float(qs);
}
catch (Exception e)
{
q = __one;
}
}
return q;
}
/**
* List values in quality order.
*
* @param e Enumeration of values with quality parameters
* @return values in quality order.
*/
@Deprecated
public static List<String> qualityList(Enumeration<String> e)
{
if (e == null || !e.hasMoreElements())
return Collections.emptyList();
QuotedQualityCSV values = new QuotedQualityCSV();
while(e.hasMoreElements())
values.addValue(e.nextElement());
return values.getValues();
}
private class Itr implements Iterator<HttpField>
{
int _cursor; // index of next element to return
int _last=-1;
public boolean hasNext()
{
return _cursor != _size;
}
public HttpField next()
{
int i = _cursor;
if (i >= _size)
throw new NoSuchElementException();
_cursor = i + 1;
return _fields[_last=i];
}
public void remove()
{
if (_last<0)
throw new IllegalStateException();
System.arraycopy(_fields,_last+1,_fields,_last,--_size-_last);
_cursor=_last;
_last=-1;
}
}
}

View File

@ -1,191 +0,0 @@
//
// ========================================================================
// Copyright (c) 1995-2016 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
//
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
//
package org.eclipse.jetty.http;
import java.nio.ByteBuffer;
import org.eclipse.jetty.util.ArrayTrie;
import org.eclipse.jetty.util.StringUtil;
import org.eclipse.jetty.util.Trie;
public enum HttpHeader
{
/* ------------------------------------------------------------ */
/** General Fields.
*/
CONNECTION("Connection"),
CACHE_CONTROL("Cache-Control"),
DATE("Date"),
PRAGMA("Pragma"),
PROXY_CONNECTION ("Proxy-Connection"),
TRAILER("Trailer"),
TRANSFER_ENCODING("Transfer-Encoding"),
UPGRADE("Upgrade"),
VIA("Via"),
WARNING("Warning"),
NEGOTIATE("Negotiate"),
/* ------------------------------------------------------------ */
/** Entity Fields.
*/
ALLOW("Allow"),
CONTENT_ENCODING("Content-Encoding"),
CONTENT_LANGUAGE("Content-Language"),
CONTENT_LENGTH("Content-Length"),
CONTENT_LOCATION("Content-Location"),
CONTENT_MD5("Content-MD5"),
CONTENT_RANGE("Content-Range"),
CONTENT_TYPE("Content-Type"),
EXPIRES("Expires"),
LAST_MODIFIED("Last-Modified"),
/* ------------------------------------------------------------ */
/** Request Fields.
*/
ACCEPT("Accept"),
ACCEPT_CHARSET("Accept-Charset"),
ACCEPT_ENCODING("Accept-Encoding"),
ACCEPT_LANGUAGE("Accept-Language"),
AUTHORIZATION("Authorization"),
EXPECT("Expect"),
FORWARDED("Forwarded"),
FROM("From"),
HOST("Host"),
IF_MATCH("If-Match"),
IF_MODIFIED_SINCE("If-Modified-Since"),
IF_NONE_MATCH("If-None-Match"),
IF_RANGE("If-Range"),
IF_UNMODIFIED_SINCE("If-Unmodified-Since"),
KEEP_ALIVE("Keep-Alive"),
MAX_FORWARDS("Max-Forwards"),
PROXY_AUTHORIZATION("Proxy-Authorization"),
RANGE("Range"),
REQUEST_RANGE("Request-Range"),
REFERER("Referer"),
TE("TE"),
USER_AGENT("User-Agent"),
X_FORWARDED_FOR("X-Forwarded-For"),
X_FORWARDED_PROTO("X-Forwarded-Proto"),
X_FORWARDED_SERVER("X-Forwarded-Server"),
X_FORWARDED_HOST("X-Forwarded-Host"),
/* ------------------------------------------------------------ */
/** Response Fields.
*/
ACCEPT_RANGES("Accept-Ranges"),
AGE("Age"),
ETAG("ETag"),
LOCATION("Location"),
PROXY_AUTHENTICATE("Proxy-Authenticate"),
RETRY_AFTER("Retry-After"),
SERVER("Server"),
SERVLET_ENGINE("Servlet-Engine"),
VARY("Vary"),
WWW_AUTHENTICATE("WWW-Authenticate"),
/* ------------------------------------------------------------ */
/** Other Fields.
*/
COOKIE("Cookie"),
SET_COOKIE("Set-Cookie"),
SET_COOKIE2("Set-Cookie2"),
MIME_VERSION("MIME-Version"),
IDENTITY("identity"),
X_POWERED_BY("X-Powered-By"),
HTTP2_SETTINGS("HTTP2-Settings"),
STRICT_TRANSPORT_SECURITY("Strict-Transport-Security"),
/* ------------------------------------------------------------ */
/** HTTP2 Fields.
*/
C_METHOD(":method"),
C_SCHEME(":scheme"),
C_AUTHORITY(":authority"),
C_PATH(":path"),
C_STATUS(":status"),
UNKNOWN("::UNKNOWN::");
/* ------------------------------------------------------------ */
public final static Trie<HttpHeader> CACHE= new ArrayTrie<>(560);
static
{
for (HttpHeader header : HttpHeader.values())
if (header!=UNKNOWN)
if (!CACHE.put(header.toString(),header))
throw new IllegalStateException();
}
private final String _string;
private final byte[] _bytes;
private final byte[] _bytesColonSpace;
private final ByteBuffer _buffer;
/* ------------------------------------------------------------ */
HttpHeader(String s)
{
_string=s;
_bytes=StringUtil.getBytes(s);
_bytesColonSpace=StringUtil.getBytes(s+": ");
_buffer=ByteBuffer.wrap(_bytes);
}
/* ------------------------------------------------------------ */
public ByteBuffer toBuffer()
{
return _buffer.asReadOnlyBuffer();
}
/* ------------------------------------------------------------ */
public byte[] getBytes()
{
return _bytes;
}
/* ------------------------------------------------------------ */
public byte[] getBytesColonSpace()
{
return _bytesColonSpace;
}
/* ------------------------------------------------------------ */
public boolean is(String s)
{
return _string.equalsIgnoreCase(s);
}
/* ------------------------------------------------------------ */
public String asString()
{
return _string;
}
/* ------------------------------------------------------------ */
@Override
public String toString()
{
return _string;
}
}

View File

@ -1,104 +0,0 @@
//
// ========================================================================
// Copyright (c) 1995-2016 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
//
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
//
package org.eclipse.jetty.http;
import java.nio.ByteBuffer;
import java.util.EnumSet;
import org.eclipse.jetty.util.ArrayTrie;
import org.eclipse.jetty.util.BufferUtil;
import org.eclipse.jetty.util.Trie;
/**
*
*/
public enum HttpHeaderValue
{
CLOSE("close"),
CHUNKED("chunked"),
GZIP("gzip"),
IDENTITY("identity"),
KEEP_ALIVE("keep-alive"),
CONTINUE("100-continue"),
PROCESSING("102-processing"),
TE("TE"),
BYTES("bytes"),
NO_CACHE("no-cache"),
UPGRADE("Upgrade"),
UNKNOWN("::UNKNOWN::");
/* ------------------------------------------------------------ */
public final static Trie<HttpHeaderValue> CACHE= new ArrayTrie<HttpHeaderValue>();
static
{
for (HttpHeaderValue value : HttpHeaderValue.values())
if (value!=UNKNOWN)
CACHE.put(value.toString(),value);
}
private final String _string;
private final ByteBuffer _buffer;
/* ------------------------------------------------------------ */
HttpHeaderValue(String s)
{
_string=s;
_buffer=BufferUtil.toBuffer(s);
}
/* ------------------------------------------------------------ */
public ByteBuffer toBuffer()
{
return _buffer.asReadOnlyBuffer();
}
/* ------------------------------------------------------------ */
public boolean is(String s)
{
return _string.equalsIgnoreCase(s);
}
/* ------------------------------------------------------------ */
public String asString()
{
return _string;
}
/* ------------------------------------------------------------ */
@Override
public String toString()
{
return _string;
}
/* ------------------------------------------------------------ */
private static EnumSet<HttpHeader> __known =
EnumSet.of(HttpHeader.CONNECTION,
HttpHeader.TRANSFER_ENCODING,
HttpHeader.CONTENT_ENCODING);
/* ------------------------------------------------------------ */
public static boolean hasKnownValues(HttpHeader header)
{
if (header==null)
return false;
return __known.contains(header);
}
}

View File

@ -1,187 +0,0 @@
//
// ========================================================================
// Copyright (c) 1995-2016 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
//
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
//
package org.eclipse.jetty.http;
import java.nio.ByteBuffer;
import org.eclipse.jetty.util.ArrayTrie;
import org.eclipse.jetty.util.StringUtil;
import org.eclipse.jetty.util.Trie;
/* ------------------------------------------------------------------------------- */
/**
*/
public enum HttpMethod
{
GET,
POST,
HEAD,
PUT,
OPTIONS,
DELETE,
TRACE,
CONNECT,
MOVE,
PROXY,
PRI;
/* ------------------------------------------------------------ */
/**
* Optimized lookup to find a method name and trailing space in a byte array.
* @param bytes Array containing ISO-8859-1 characters
* @param position The first valid index
* @param limit The first non valid index
* @return A HttpMethod if a match or null if no easy match.
*/
public static HttpMethod lookAheadGet(byte[] bytes, final int position, int limit)
{
int length=limit-position;
if (length<4)
return null;
switch(bytes[position])
{
case 'G':
if (bytes[position+1]=='E' && bytes[position+2]=='T' && bytes[position+3]==' ')
return GET;
break;
case 'P':
if (bytes[position+1]=='O' && bytes[position+2]=='S' && bytes[position+3]=='T' && length>=5 && bytes[position+4]==' ')
return POST;
if (bytes[position+1]=='R' && bytes[position+2]=='O' && bytes[position+3]=='X' && length>=6 && bytes[position+4]=='Y' && bytes[position+5]==' ')
return PROXY;
if (bytes[position+1]=='U' && bytes[position+2]=='T' && bytes[position+3]==' ')
return PUT;
if (bytes[position+1]=='R' && bytes[position+2]=='I' && bytes[position+3]==' ')
return PRI;
break;
case 'H':
if (bytes[position+1]=='E' && bytes[position+2]=='A' && bytes[position+3]=='D' && length>=5 && bytes[position+4]==' ')
return HEAD;
break;
case 'O':
if (bytes[position+1]=='P' && bytes[position+2]=='T' && bytes[position+3]=='I' && length>=8 &&
bytes[position+4]=='O' && bytes[position+5]=='N' && bytes[position+6]=='S' && bytes[position+7]==' ' )
return OPTIONS;
break;
case 'D':
if (bytes[position+1]=='E' && bytes[position+2]=='L' && bytes[position+3]=='E' && length>=7 &&
bytes[position+4]=='T' && bytes[position+5]=='E' && bytes[position+6]==' ' )
return DELETE;
break;
case 'T':
if (bytes[position+1]=='R' && bytes[position+2]=='A' && bytes[position+3]=='C' && length>=6 &&
bytes[position+4]=='E' && bytes[position+5]==' ' )
return TRACE;
break;
case 'C':
if (bytes[position+1]=='O' && bytes[position+2]=='N' && bytes[position+3]=='N' && length>=8 &&
bytes[position+4]=='E' && bytes[position+5]=='C' && bytes[position+6]=='T' && bytes[position+7]==' ' )
return CONNECT;
break;
case 'M':
if (bytes[position+1]=='O' && bytes[position+2]=='V' && bytes[position+3]=='E' && length>=5 && bytes[position+4]==' ')
return MOVE;
break;
default:
break;
}
return null;
}
/* ------------------------------------------------------------ */
/**
* Optimized lookup to find a method name and trailing space in a byte array.
* @param buffer buffer containing ISO-8859-1 characters, it is not modified.
* @return A HttpMethod if a match or null if no easy match.
*/
public static HttpMethod lookAheadGet(ByteBuffer buffer)
{
if (buffer.hasArray())
return lookAheadGet(buffer.array(),buffer.arrayOffset()+buffer.position(),buffer.arrayOffset()+buffer.limit());
int l = buffer.remaining();
if (l>=4)
{
HttpMethod m = CACHE.getBest(buffer,0,l);
if (m!=null)
{
int ml = m.asString().length();
if (l>ml && buffer.get(buffer.position()+ml)==' ')
return m;
}
}
return null;
}
/* ------------------------------------------------------------ */
public final static Trie<HttpMethod> CACHE= new ArrayTrie<>();
static
{
for (HttpMethod method : HttpMethod.values())
CACHE.put(method.toString(),method);
}
/* ------------------------------------------------------------ */
private final ByteBuffer _buffer;
private final byte[] _bytes;
/* ------------------------------------------------------------ */
HttpMethod()
{
_bytes=StringUtil.getBytes(toString());
_buffer=ByteBuffer.wrap(_bytes);
}
/* ------------------------------------------------------------ */
public byte[] getBytes()
{
return _bytes;
}
/* ------------------------------------------------------------ */
public boolean is(String s)
{
return toString().equalsIgnoreCase(s);
}
/* ------------------------------------------------------------ */
public ByteBuffer asBuffer()
{
return _buffer.asReadOnlyBuffer();
}
/* ------------------------------------------------------------ */
public String asString()
{
return toString();
}
/* ------------------------------------------------------------ */
/**
* Converts the given String parameter to an HttpMethod
* @param method the String to get the equivalent HttpMethod from
* @return the HttpMethod or null if the parameter method is unknown
*/
public static HttpMethod fromString(String method)
{
return CACHE.get(method);
}
}

View File

@ -1,79 +0,0 @@
//
// ========================================================================
// Copyright (c) 1995-2016 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
//
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
//
package org.eclipse.jetty.http;
import java.nio.ByteBuffer;
import org.eclipse.jetty.util.ArrayTrie;
import org.eclipse.jetty.util.BufferUtil;
import org.eclipse.jetty.util.Trie;
/* ------------------------------------------------------------------------------- */
/**
*/
public enum HttpScheme
{
HTTP("http"),
HTTPS("https"),
WS("ws"),
WSS("wss");
/* ------------------------------------------------------------ */
public final static Trie<HttpScheme> CACHE= new ArrayTrie<HttpScheme>();
static
{
for (HttpScheme version : HttpScheme.values())
CACHE.put(version.asString(),version);
}
private final String _string;
private final ByteBuffer _buffer;
/* ------------------------------------------------------------ */
HttpScheme(String s)
{
_string=s;
_buffer=BufferUtil.toBuffer(s);
}
/* ------------------------------------------------------------ */
public ByteBuffer asByteBuffer()
{
return _buffer.asReadOnlyBuffer();
}
/* ------------------------------------------------------------ */
public boolean is(String s)
{
return s!=null && _string.equalsIgnoreCase(s);
}
public String asString()
{
return _string;
}
/* ------------------------------------------------------------ */
@Override
public String toString()
{
return _string;
}
}

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