diff --git a/Bundle/pom.xml b/Bundle/pom.xml
index ab6f64af..ba16aa76 100644
--- a/Bundle/pom.xml
+++ b/Bundle/pom.xml
@@ -6,7 +6,7 @@
net.sf.openas2
OpenAS2
- 2.6.1
+ 2.6.2
openas2-osgi
diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md
index 1fa13dbb..b82f68e3 100644
--- a/RELEASE-NOTES.md
+++ b/RELEASE-NOTES.md
@@ -1,18 +1,20 @@
# OpenAS2 Server
-# Version 2.6.1
+# Version 2.6.2
# RELEASE NOTES
-----
-The OpenAS2 project is pleased to announce the release of OpenAS2 2.6.1
+The OpenAS2 project is pleased to announce the release of OpenAS2 2.6.2
-The release download file is: OpenAS2Server-2.6.1.zip
+The release download file is: OpenAS2Server-2.6.2.zip
The zip file contains a PDF document (OpenAS2HowTo.pdf) providing information on installing and using the application.
-Version 2.6.1 - 2018-09-09
+Version 2.6.2 - 2018-09-26
This is a minor enhancement release:
**IMPORTANT NOTE**: Please review upgrade notes below if you are upgrading
- 1. Allow MDN subject to use filename parsing functionality to set the text.
+ 1. Provide ability to use restricted headers in HTTP with partnership level overrides for the "Content-Transfer-Encoding" header
+ 2. Allow unsigned MDN to be sent using the "none" keyword for the "as2_mdn_options" attribute
+ 3. Use a Java 7 compatible method call for a Map class method that required Java 8
##Upgrade Notes
See the openAS2HowTo appendix for the general process on upgrading OpenAS2.
@@ -24,6 +26,7 @@ This is a minor enhancement release:
1. Change the name of the MDN sender module from "AsynchMDNSenderModule" to "MDNSenderModule" in the config.xml if using your existing config.xml file in the upgrade. If "AsynchMDNSenderModule" is not in the config then add the following:
2. Change the name of the partnership attribute "messageid" to "as2_message_id_format" if used in any partnership definition.
3. Change the "as2_mdn_options" attribute to use $attribute.sign$ instead of hard coded signing algorithm
+ 4. If you experience issues with partners failing that were working in the previous version, check the troubleshooting section of the OpenAS2HowTo guide - specifically the issues around Content Transfer Encoding and Content Length/Chunking
### If upgrading from versions older than 2.4.1:
diff --git a/Remote/pom.xml b/Remote/pom.xml
index b494c03b..362d7d68 100644
--- a/Remote/pom.xml
+++ b/Remote/pom.xml
@@ -4,7 +4,7 @@
net.sf.openas2
OpenAS2
- 2.6.1
+ 2.6.2
4.0.0
diff --git a/Server/pom.xml b/Server/pom.xml
index 76e2b52d..643d959c 100644
--- a/Server/pom.xml
+++ b/Server/pom.xml
@@ -6,7 +6,7 @@
net.sf.openas2
OpenAS2
- 2.6.1
+ 2.6.2
openas2-server
diff --git a/Server/src/main/java/org/openas2/partner/Partnership.java b/Server/src/main/java/org/openas2/partner/Partnership.java
index aa59d026..4ae71dc0 100644
--- a/Server/src/main/java/org/openas2/partner/Partnership.java
+++ b/Server/src/main/java/org/openas2/partner/Partnership.java
@@ -24,7 +24,9 @@ public class Partnership implements Serializable {
/* partnership definition attributes */
public static final String PA_SUBJECT = "subject"; // Subject sent in messages
+ public static final String PA_CONTENT_TYPE = "content_type"; // optional content type for mime parts
public static final String PA_CONTENT_TRANSFER_ENCODING = "content_transfer_encoding"; // optional content transfer enc value
+ public static final String PA_SET_CONTENT_TRANSFER_ENCODING_HTTP = "set_content_transfer_encoding_http_header"; // See as an HTTP header
public static final String PA_REMOVE_PROTECTION_ATTRIB = "remove_cms_algorithm_protection_attrib"; // Some AS2 systems do not support the attribute
public static final String PA_SET_CONTENT_TRANSFER_ENCODING_OMBP = "set_content_transfer_encoding_on_outer_mime_bodypart"; // optional content transfer enc value
public static final String PA_RESEND_REQUIRES_NEW_MESSAGE_ID = "resend_requires_new_message_id"; // list of nme/value pairs for setting custom mime headers
diff --git a/Server/src/main/java/org/openas2/processor/msgtracking/EmbeddedDBHandler.java b/Server/src/main/java/org/openas2/processor/msgtracking/EmbeddedDBHandler.java
index abaebfe5..99de1bd5 100644
--- a/Server/src/main/java/org/openas2/processor/msgtracking/EmbeddedDBHandler.java
+++ b/Server/src/main/java/org/openas2/processor/msgtracking/EmbeddedDBHandler.java
@@ -1,125 +1,126 @@
-package org.openas2.processor.msgtracking;
-
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-
-import javax.annotation.Nullable;
-
-import org.h2.jdbcx.JdbcConnectionPool;
-import org.h2.tools.Server;
-import org.openas2.OpenAS2Exception;
-
-class EmbeddedDBHandler extends DbTrackingModule implements IDBHandler {
-
- @Nullable
- private JdbcConnectionPool cp = null;
-
- private Server server = null;
-
- private String connectString = "jdbc:h2:file:DB/openas2";
-
- public void createConnectionPool(String connectString, String userName, String pwd) throws OpenAS2Exception
- {
- // Check that a connection pool is not already running
- if (cp != null)
- {
- throw new OpenAS2Exception(
- "Connection pool already initialized. Cannot create a new connection pool. Stop current one first. DB connect string:"
- + connectString + " :: Active pool connect string: " + this.connectString);
- }
- this.connectString = connectString;
-
- cp = JdbcConnectionPool.create(connectString, userName, pwd);
- }
-
- public void start(String connectString, String userName, String pwd, Map params) throws OpenAS2Exception
- {
- createConnectionPool(connectString, userName, pwd);
- if ("true".equalsIgnoreCase(params.getOrDefault(PARAM_TCP_SERVER_START, "true")))
- {
- String tcpPort = params.get(PARAM_TCP_SERVER_PORT);
- if (tcpPort == null || tcpPort.length() < 1) tcpPort = "9092";
- String tcpPwd = params.get(PARAM_TCP_SERVER_PWD);
- if (tcpPwd == null || tcpPwd.length() < 1) tcpPwd = "OpenAS2";
- String dbDirectory = params.get(PARAM_DB_DIRECTORY);
- if (dbDirectory == null || dbDirectory.length() < 1)
- throw new OpenAS2Exception("TCP server requireds parameter: " + PARAM_DB_DIRECTORY);
-
- try
- {
- server = Server.createTcpServer( "-tcpPort", tcpPort, "-tcpPassword", tcpPwd, "-baseDir", dbDirectory, "-tcpAllowOthers").start();
- } catch (SQLException e)
- {
- throw new OpenAS2Exception("Failed to start TCP server", e);
- }
- }
- }
-
- public void stop()
- {
- // Stopping the TCP server will stop the database so only do one of them
- if (server != null)
- {
- server.stop();
- }
- else
- {
- try
- {
- shutdown(connectString);
- } catch (Exception e)
- {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- destroyConnectionPool();
- }
- }
-
- public void destroyConnectionPool()
- {
- if (cp == null)
- {
- return;
- }
- cp.dispose();
- cp = null;
- }
-
- public Connection getConnection() throws SQLException, OpenAS2Exception
- {
- // Check that a connection pool is running
- if (cp == null)
- {
- throw new OpenAS2Exception("Connection pool not initialized.");
- }
- return cp.getConnection();
- }
-
- public boolean shutdown(String connectString) throws SQLException, OpenAS2Exception
- {
- // Wait briefly if there are active connections
- int waitCount = 0;
- try
- {
- while (cp != null && cp.getActiveConnections() > 0 && waitCount < 10)
- {
- TimeUnit.MILLISECONDS.sleep(100);
- waitCount++;
- }
- } catch (InterruptedException e)
- {
- // Do nothing
- }
- Connection c = getConnection();
- Statement st = c.createStatement();
-
- boolean result = st.execute("SHUTDOWN");
- c.close();
- return result;
- }
-
-}
+package org.openas2.processor.msgtracking;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+import javax.annotation.Nullable;
+
+import org.h2.jdbcx.JdbcConnectionPool;
+import org.h2.tools.Server;
+import org.openas2.OpenAS2Exception;
+
+class EmbeddedDBHandler extends DbTrackingModule implements IDBHandler {
+
+ @Nullable
+ private JdbcConnectionPool cp = null;
+
+ private Server server = null;
+
+ private String connectString = "jdbc:h2:file:DB/openas2";
+
+ public void createConnectionPool(String connectString, String userName, String pwd) throws OpenAS2Exception
+ {
+ // Check that a connection pool is not already running
+ if (cp != null)
+ {
+ throw new OpenAS2Exception(
+ "Connection pool already initialized. Cannot create a new connection pool. Stop current one first. DB connect string:"
+ + connectString + " :: Active pool connect string: " + this.connectString);
+ }
+ this.connectString = connectString;
+
+ cp = JdbcConnectionPool.create(connectString, userName, pwd);
+ }
+
+ public void start(String connectString, String userName, String pwd, Map params) throws OpenAS2Exception
+ {
+ createConnectionPool(connectString, userName, pwd);
+ String isStartSrvr = params.get(PARAM_TCP_SERVER_START);
+ if (isStartSrvr == null || "true".equalsIgnoreCase(isStartSrvr))
+ {
+ String tcpPort = params.get(PARAM_TCP_SERVER_PORT);
+ if (tcpPort == null || tcpPort.length() < 1) tcpPort = "9092";
+ String tcpPwd = params.get(PARAM_TCP_SERVER_PWD);
+ if (tcpPwd == null || tcpPwd.length() < 1) tcpPwd = "OpenAS2";
+ String dbDirectory = params.get(PARAM_DB_DIRECTORY);
+ if (dbDirectory == null || dbDirectory.length() < 1)
+ throw new OpenAS2Exception("TCP server requireds parameter: " + PARAM_DB_DIRECTORY);
+
+ try
+ {
+ server = Server.createTcpServer( "-tcpPort", tcpPort, "-tcpPassword", tcpPwd, "-baseDir", dbDirectory, "-tcpAllowOthers").start();
+ } catch (SQLException e)
+ {
+ throw new OpenAS2Exception("Failed to start TCP server", e);
+ }
+ }
+ }
+
+ public void stop()
+ {
+ // Stopping the TCP server will stop the database so only do one of them
+ if (server != null)
+ {
+ server.stop();
+ }
+ else
+ {
+ try
+ {
+ shutdown(connectString);
+ } catch (Exception e)
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ destroyConnectionPool();
+ }
+ }
+
+ public void destroyConnectionPool()
+ {
+ if (cp == null)
+ {
+ return;
+ }
+ cp.dispose();
+ cp = null;
+ }
+
+ public Connection getConnection() throws SQLException, OpenAS2Exception
+ {
+ // Check that a connection pool is running
+ if (cp == null)
+ {
+ throw new OpenAS2Exception("Connection pool not initialized.");
+ }
+ return cp.getConnection();
+ }
+
+ public boolean shutdown(String connectString) throws SQLException, OpenAS2Exception
+ {
+ // Wait briefly if there are active connections
+ int waitCount = 0;
+ try
+ {
+ while (cp != null && cp.getActiveConnections() > 0 && waitCount < 10)
+ {
+ TimeUnit.MILLISECONDS.sleep(100);
+ waitCount++;
+ }
+ } catch (InterruptedException e)
+ {
+ // Do nothing
+ }
+ Connection c = getConnection();
+ Statement st = c.createStatement();
+
+ boolean result = st.execute("SHUTDOWN");
+ c.close();
+ return result;
+ }
+
+}
diff --git a/Server/src/main/java/org/openas2/processor/receiver/MessageBuilderModule.java b/Server/src/main/java/org/openas2/processor/receiver/MessageBuilderModule.java
index 043f1205..b66679ca 100644
--- a/Server/src/main/java/org/openas2/processor/receiver/MessageBuilderModule.java
+++ b/Server/src/main/java/org/openas2/processor/receiver/MessageBuilderModule.java
@@ -253,7 +253,9 @@ public void buildMessageData(Message msg, InputStream ip, String filename) throw
try
{
//byte[] data = IOUtilOld.getFileBytes(file);
- String contentType = getParameter(PARAM_MIMETYPE, false);
+ // Allow Content-Type to be overridden at partnership level or as property
+ String contentType = msg.getPartnership().getAttributeOrProperty(Partnership.PA_CONTENT_TYPE, null);
+ if (contentType == null) contentType = getParameter(PARAM_MIMETYPE, false);
if (contentType == null)
{
contentType = "application/octet-stream";
diff --git a/Server/src/main/java/org/openas2/processor/sender/AS2SenderModule.java b/Server/src/main/java/org/openas2/processor/sender/AS2SenderModule.java
index ccc8f8b1..1a796778 100644
--- a/Server/src/main/java/org/openas2/processor/sender/AS2SenderModule.java
+++ b/Server/src/main/java/org/openas2/processor/sender/AS2SenderModule.java
@@ -487,11 +487,11 @@ protected void addCustomOuterMimeHeaders(Message msg, MimeBodyPart dataBP) throw
}
- protected InternetHeaders getHttpHeaders(Message msg, MimeBodyPart securedData) {
+ protected InternetHeaders getHttpHeaders(Message msg, MimeBodyPart securedData) throws MessagingException {
Partnership partnership = msg.getPartnership();
InternetHeaders ih = new InternetHeaders();
- ih.addHeader("Connection", "close, TE");
+ ih.addHeader(HTTPUtil.HEADER_CONNECTION, "close, TE");
String userAgent = Properties.getProperty(Properties.HTTP_USER_AGENT_PROP,
msg.getAppTitle() + " (" + AS2SenderModule.class.getSimpleName() + ")");
ih.addHeader("User-Agent", userAgent);
@@ -503,24 +503,28 @@ protected InternetHeaders getHttpHeaders(Message msg, MimeBodyPart securedData)
ih.addHeader("Mime-Version", "1.0"); // make sure this is the
// encoding used in the msg, run TBF1
try {
- ih.addHeader("Content-type", securedData.getContentType());
+ ih.addHeader(HTTPUtil.HEADER_CONTENT_TYPE, securedData.getContentType());
} catch (MessagingException e) {
- ih.addHeader("Content-type", msg.getContentType());
+ ih.addHeader(HTTPUtil.HEADER_CONTENT_TYPE, msg.getContentType());
}
- ih.addHeader("AS2-Version", "1.1"); // RFC6017 - AS2 V1.1 supports compression
// AS2 V1.2 additionally supports EDIINT-Features
// ih.addHeader("EDIINT-Features","CEM,multiple-attachments");
// TODO (possibly implement???)
- String cte = null;
- try {
- cte = securedData.getEncoding();
- } catch (MessagingException e1) {
- e1.printStackTrace();
- }
- if (cte == null) {
- cte = Session.DEFAULT_CONTENT_TRANSFER_ENCODING;
+ ih.addHeader("AS2-Version", "1.1"); // RFC6017 - AS2 V1.1 supports compression
+ /* The Content-Transfer-Encoding header is now a restricted header for HTTP so allow
+ * it to be controlled by config at partnership level
+ * Java will automatically remove this even if set unless the
+ * sun.net.http.allowRestrictedHeaders property is set to "true"
+ */
+ if ("true".equalsIgnoreCase(System.getProperty("sun.net.http.allowRestrictedHeaders", "false"))) {
+ if (logger.isDebugEnabled()) logger.debug("HTTP RESTRICTED HEADERS property is not active");
+ String cte = null;
+ cte = msg.getPartnership().getAttributeOrProperty(Partnership.PA_CONTENT_TRANSFER_ENCODING, null);
+ if (cte != null) {
+ if ("true".equalsIgnoreCase(msg.getPartnership().getAttributeOrProperty(Partnership.PA_SET_CONTENT_TRANSFER_ENCODING_HTTP, "false")))
+ ih.addHeader("Content-Transfer-Encoding", cte);
+ }
}
- ih.addHeader("Content-Transfer-Encoding", cte);
ih.addHeader("Recipient-Address", partnership.getAttribute(Partnership.PA_AS2_URL));
String rId = partnership.getReceiverID(Partnership.PID_AS2);
if (rId.contains(" ")) rId = "\"" + rId + "\"";
@@ -535,7 +539,7 @@ protected InternetHeaders getHttpHeaders(Message msg, MimeBodyPart securedData)
ih.addHeader("Disposition-Notification-To", dispTo);
}
String dispOptions = partnership.getAttribute(Partnership.PA_AS2_MDN_OPTIONS);
- if (dispOptions != null) {
+ if (dispOptions != null && !"none".equalsIgnoreCase(dispOptions)) {
ih.addHeader("Disposition-Notification-Options", dispOptions);
}
String receiptOption = partnership.getAttribute(Partnership.PA_AS2_RECEIPT_OPTION);
@@ -652,8 +656,12 @@ protected void calcAndStoreMic(Message msg, MimeBodyPart mbp, boolean includeHea
// Calculate and get the original mic
// includeHeaders = (msg.getHistory().getItems().size() > 1);
- DispositionOptions dispOptions = new DispositionOptions(msg.getPartnership().getAttribute(
- Partnership.PA_AS2_MDN_OPTIONS));
+ String mdnOptions = msg.getPartnership().getAttributeOrProperty(Partnership.PA_AS2_MDN_OPTIONS, null);
+ if (mdnOptions == null || mdnOptions.length() < 1) {
+ throw new OpenAS2Exception("Partner attribute " + Partnership.PA_AS2_MDN_OPTIONS + "is required but can be set to \"none\"");
+ }
+ if ("none".equalsIgnoreCase(mdnOptions)) return;
+ DispositionOptions dispOptions = new DispositionOptions(mdnOptions);
msg.setCalculatedMIC(AS2Util.getCryptoHelper().calculateMIC(mbp, dispOptions.getMicalg()
, includeHeaders, msg.getPartnership().isPreventCanonicalization()));
if (logger.isTraceEnabled())
diff --git a/Server/src/main/java/org/openas2/util/AS2Util.java b/Server/src/main/java/org/openas2/util/AS2Util.java
index ca5d2505..5d9a0a6d 100644
--- a/Server/src/main/java/org/openas2/util/AS2Util.java
+++ b/Server/src/main/java/org/openas2/util/AS2Util.java
@@ -204,10 +204,13 @@ public static boolean checkMDN(AS2Message msg) throws DispositionException, Open
throw new OpenAS2Exception(e);
}
+ if ("none".equalsIgnoreCase(msg.getPartnership().getAttribute(Partnership.PA_AS2_MDN_OPTIONS))) {
+ // signed MDN not requested so...
+ return true;
+ }
if (logger.isTraceEnabled())
logger.trace("MIC processing start... ");
// get the returned mic from mdn object
-
String returnMIC = msg.getMDN().getAttribute(AS2MessageMDN.MDNA_MIC);
if (returnMIC == null || returnMIC.length() < 1) {
if (dispositionHasWarning)
diff --git a/Server/src/main/java/org/openas2/util/HTTPUtil.java b/Server/src/main/java/org/openas2/util/HTTPUtil.java
index 71f14adc..5b025e2c 100644
--- a/Server/src/main/java/org/openas2/util/HTTPUtil.java
+++ b/Server/src/main/java/org/openas2/util/HTTPUtil.java
@@ -139,7 +139,8 @@ public static abstract class Method {
};
public static String getHTTPResponseMessage(int responseCode) {
- return httpResponseCodeToPhrase.getOrDefault((Integer)responseCode, "Unknown");
+ String code = httpResponseCodeToPhrase.get((Integer)responseCode);
+ return (code == null)?"Unknown":code;
}
public static byte[] readHTTP(InputStream inStream, OutputStream outStream, InternetHeaders headerCache,
diff --git a/Server/src/test/resources/SingleServerTest/MyCompany/config/config.xml b/Server/src/test/resources/SingleServerTest/MyCompany/config/config.xml
index b422fbe4..59264564 100644
--- a/Server/src/test/resources/SingleServerTest/MyCompany/config/config.xml
+++ b/Server/src/test/resources/SingleServerTest/MyCompany/config/config.xml
@@ -37,6 +37,20 @@
pendingMDN="%home%/../data/pendingMDN3"
pendingMDNinfo="%home%/../data/pendinginfoMDN3">
+
+
+
+
+
+
-
+
-
+
-
- 4.0.0
- net.sf.openas2
- OpenAS2
- 2.6.1
- OpenAS2
- pom
-
-
- This is the base Maven build file for the OpenAS2 project.
- The project comprises a server ,osgi bundle and a remote client component.
- There is a pom.xml for each of the components to build that component.
-
-
- https://sourceforge.net/projects/openas2
-
-
-
- BSD-2 License
- https://opensource.org/licenses/BSD-2-Clause
- repo
-
-
-
-
- Server
- Remote
- Bundle
-
-
-
- 1.7
-
-
-
-
-
- org.osgi
- org.osgi.core
- 4.3.1
-
-
- org.dom4j
- dom4j
- 2.0.0
-
-
- org.bouncycastle
- bcmail-jdk15on
- 1.59
-
-
- org.bouncycastle
- bcpkix-jdk15on
- 1.59
-
-
- org.bouncycastle
- bcprov-jdk15on
- 1.59
-
-
- org.apache.commons
- commons-lang3
- 3.7
-
-
- commons-cli
- commons-cli
- 1.4
-
-
- commons-logging
- commons-logging
- 1.2
-
-
- javax.mail
- javax.mail-api
- 1.6.1
-
-
- com.sun.mail
- javax.mail
- 1.6.1
-
-
- com.h2database
- h2
- 1.4.197
-
-
- org.bouncycastle
- bcpg-jdk15on
- 1.54
-
-
-
- org.apache.httpcomponents
- httpcore
- 4.4.9
-
-
-
- org.apache.httpcomponents
- httpclient
- 4.5.5
-
-
- com.google.code.findbugs
- findbugs
- 3.0.1
- provided
-
-
- junit
- junit
- 4.12
- test
-
-
- org.hamcrest
- hamcrest-all
- 1.3
- test
-
-
-
- org.mockito
- mockito-core
- 2.18.3
- test
-
-
-
- commons-io
- commons-io
- 2.6
-
-
-
-
-
-
- ossrh
- https://oss.sonatype.org/content/repositories/snapshots
-
-
- ossrh
- https://oss.sonatype.org/service/local/staging/deploy/maven2/
-
-
-
-
- git@github.com:OpenAS2/OpenAs2App.git
- scm:git:git@github.com:OpenAS2/OpenAs2App.git
- scm:git:git@github.com:OpenAS2/OpenAs2App.git
- HEAD
-
-
-
-
- uhurusurfa
- Christopher Broderick
- uhurusurfa@users.sf.net
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.6.1
-
-
- ${java.version}
-
-
-
- org.apache.maven.plugins
- maven-jar-plugin
- 3.0.2
-
-
- true
-
- true
- ${mainClass}
- true
- true
-
-
-
-
-
- org.apache.maven.plugins
- maven-dependency-plugin
- 3.0.0
-
-
- copy-dependencies
- package
-
- copy-dependencies
-
-
- ${project.build.directory}/dist/lib
- false
- false
- true
- runtime
-
-
-
-
-
- org.apache.maven.plugins
- maven-antrun-plugin
- 1.8
-
-
- org.apache.maven.plugins
- maven-site-plugin
- 3.6
-
-
- org.apache.maven.wagon
- wagon-ssh
- 2.12
-
-
-
-
- org.apache.maven.plugins
- maven-release-plugin
- 2.5.3
-
- false
- release
- deploy
-
-
-
- org.sonatype.plugins
- nexus-staging-maven-plugin
- 1.6.7
- true
-
- ossrh
- https://oss.sonatype.org/
- true
-
-
-
-
-
-
-
- release
-
-
-
- org.apache.maven.plugins
- maven-source-plugin
- 3.0.1
-
-
- attach-sources
-
- jar-no-fork
-
-
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- 2.10.4
-
-
- attach-javadocs
-
- jar
-
-
-
-
-
- org.apache.maven.plugins
- maven-gpg-plugin
- 1.6
-
-
- sign-artifacts
- verify
-
- sign
-
-
-
-
-
-
-
-
-
-
+
+
+ 4.0.0
+ net.sf.openas2
+ OpenAS2
+ 2.6.2
+ OpenAS2
+ pom
+
+
+ This is the base Maven build file for the OpenAS2 project.
+ The project comprises a server ,osgi bundle and a remote client component.
+ There is a pom.xml for each of the components to build that component.
+
+
+ https://sourceforge.net/projects/openas2
+
+
+
+ BSD-2 License
+ https://opensource.org/licenses/BSD-2-Clause
+ repo
+
+
+
+
+ Server
+ Remote
+ Bundle
+
+
+
+ 1.7
+
+
+
+
+
+ org.osgi
+ org.osgi.core
+ 4.3.1
+
+
+ org.dom4j
+ dom4j
+ 2.0.0
+
+
+ org.bouncycastle
+ bcmail-jdk15on
+ 1.59
+
+
+ org.bouncycastle
+ bcpkix-jdk15on
+ 1.59
+
+
+ org.bouncycastle
+ bcprov-jdk15on
+ 1.59
+
+
+ org.apache.commons
+ commons-lang3
+ 3.7
+
+
+ commons-cli
+ commons-cli
+ 1.4
+
+
+ commons-logging
+ commons-logging
+ 1.2
+
+
+ javax.mail
+ javax.mail-api
+ 1.6.1
+
+
+ com.sun.mail
+ javax.mail
+ 1.6.1
+
+
+ com.h2database
+ h2
+ 1.4.197
+
+
+ org.bouncycastle
+ bcpg-jdk15on
+ 1.54
+
+
+
+ org.apache.httpcomponents
+ httpcore
+ 4.4.9
+
+
+
+ org.apache.httpcomponents
+ httpclient
+ 4.5.5
+
+
+ com.google.code.findbugs
+ findbugs
+ 3.0.1
+ provided
+
+
+ junit
+ junit
+ 4.12
+ test
+
+
+ org.hamcrest
+ hamcrest-all
+ 1.3
+ test
+
+
+
+ org.mockito
+ mockito-core
+ 2.18.3
+ test
+
+
+
+ commons-io
+ commons-io
+ 2.6
+
+
+
+
+
+
+ ossrh
+ https://oss.sonatype.org/content/repositories/snapshots
+
+
+ ossrh
+ https://oss.sonatype.org/service/local/staging/deploy/maven2/
+
+
+
+
+ git@github.com:OpenAS2/OpenAs2App.git
+ scm:git:git@github.com:OpenAS2/OpenAs2App.git
+ scm:git:git@github.com:OpenAS2/OpenAs2App.git
+ HEAD
+
+
+
+
+ uhurusurfa
+ Christopher Broderick
+ uhurusurfa@users.sf.net
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.6.1
+
+
+ ${java.version}
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ 3.0.2
+
+
+ true
+
+ true
+ ${mainClass}
+ true
+ true
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 3.0.0
+
+
+ copy-dependencies
+ package
+
+ copy-dependencies
+
+
+ ${project.build.directory}/dist/lib
+ false
+ false
+ true
+ runtime
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-antrun-plugin
+ 1.8
+
+
+ org.apache.maven.plugins
+ maven-site-plugin
+ 3.6
+
+
+ org.apache.maven.wagon
+ wagon-ssh
+ 2.12
+
+
+
+
+ org.apache.maven.plugins
+ maven-release-plugin
+ 2.5.3
+
+ false
+ release
+ deploy
+
+
+
+ org.sonatype.plugins
+ nexus-staging-maven-plugin
+ 1.6.7
+ true
+
+ ossrh
+ https://oss.sonatype.org/
+ true
+
+
+
+
+
+
+
+ release
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+ 3.0.1
+
+
+ attach-sources
+
+ jar-no-fork
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.10.4
+
+
+ attach-javadocs
+
+ jar
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-gpg-plugin
+ 1.6
+
+
+ sign-artifacts
+ verify
+
+ sign
+
+
+
+
+
+
+
+
+
+