You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by Ruwan Linton <ru...@gmail.com> on 2008/06/25 06:52:36 UTC
Re: svn commit: r671420 - in /synapse/branches/1.2/modules/transports/src/main/java/org/apache/synapse/transport/fix: FIXConstants.java FIXTransportSender.java
Hi Hiranya,
Please switch the working copy to trunk, we are no more on the 1.2-branch
and the trunk svn location is;
https://svn.apache.org/repos/asf/synapse/trunk/java
Thanks,
Ruwan
On Wed, Jun 25, 2008 at 10:05 AM, <hi...@apache.org> wrote:
> Author: hiranya
> Date: Tue Jun 24 21:35:35 2008
> New Revision: 671420
>
> URL: http://svn.apache.org/viewvc?rev=671420&view=rev
> Log:
> * Introduced a new service parameter (transport.fix.BeginStringValidation)
> * Disabled BeginString validation (as per SYNAPSE-373)
>
>
> Modified:
>
> synapse/branches/1.2/modules/transports/src/main/java/org/apache/synapse/transport/fix/FIXConstants.java
>
> synapse/branches/1.2/modules/transports/src/main/java/org/apache/synapse/transport/fix/FIXTransportSender.java
>
> Modified:
> synapse/branches/1.2/modules/transports/src/main/java/org/apache/synapse/transport/fix/FIXConstants.java
> URL:
> http://svn.apache.org/viewvc/synapse/branches/1.2/modules/transports/src/main/java/org/apache/synapse/transport/fix/FIXConstants.java?rev=671420&r1=671419&r2=671420&view=diff
>
> ==============================================================================
> ---
> synapse/branches/1.2/modules/transports/src/main/java/org/apache/synapse/transport/fix/FIXConstants.java
> (original)
> +++
> synapse/branches/1.2/modules/transports/src/main/java/org/apache/synapse/transport/fix/FIXConstants.java
> Tue Jun 24 21:35:35 2008
> @@ -96,4 +96,6 @@
>
> public static final String FIX_RESPONSE_HANDLER_APPROACH =
> "transport.fix.SendAllToInSequence";
>
> + public static final String FIX_BEGIN_STRING_VALIDATION =
> "transport.fix.BeginStringValidation";
> +
> }
> \ No newline at end of file
>
> Modified:
> synapse/branches/1.2/modules/transports/src/main/java/org/apache/synapse/transport/fix/FIXTransportSender.java
> URL:
> http://svn.apache.org/viewvc/synapse/branches/1.2/modules/transports/src/main/java/org/apache/synapse/transport/fix/FIXTransportSender.java?rev=671420&r1=671419&r2=671420&view=diff
>
> ==============================================================================
> ---
> synapse/branches/1.2/modules/transports/src/main/java/org/apache/synapse/transport/fix/FIXTransportSender.java
> (original)
> +++
> synapse/branches/1.2/modules/transports/src/main/java/org/apache/synapse/transport/fix/FIXTransportSender.java
> Tue Jun 24 21:35:35 2008
> @@ -128,13 +128,15 @@
> }
> }
>
> - private boolean isTargetVald(Map<String, String> fieldValues,
> SessionID targetSession) {
> + private boolean isTargetVald(Map<String, String> fieldValues,
> SessionID targetSession,
> + boolean beginStrValidation) {
> +
> String beginString = fieldValues.get(FIXConstants.BEGIN_STRING);
> String deliverToCompID =
> fieldValues.get(FIXConstants.DELIVER_TO_COMP_ID);
> String deliverToSubID =
> fieldValues.get(FIXConstants.DELIVER_TO_SUB_ID);
> String deliverToLocationID =
> fieldValues.get(FIXConstants.DELIVER_TO_LOCATION_ID);
>
> - if (!targetSession.getBeginString().equals(beginString)) {
> + if (beginStrValidation &&
> !targetSession.getBeginString().equals(beginString)) {
> return false;
> } else if
> (!targetSession.getTargetCompID().equals(deliverToCompID)) {
> return false;
> @@ -268,9 +270,12 @@
> String beginString = fieldValues.get(FIXConstants.BEGIN_STRING);
> String deliverToCompID =
> fieldValues.get(FIXConstants.DELIVER_TO_COMP_ID);
>
> + AxisService service =
> cfgCtx.getAxisConfiguration().getService(serviceName);
> +
> //match BeginString values
> - if (beginString != null &&
> !beginString.equals(sessionID.getBeginString())) {
> - handleException("Cannot forward messages to a session with a
> different BeginString");
> + if (isValidationOn(service) && beginString != null &&
> !beginString.equals(sessionID.getBeginString())) {
> + handleException("BeginString validation is on. Cannot forward
> messages to a session" +
> + " with a different BeginString");
> }
>
> if (deliverToCompID != null) {
> @@ -285,7 +290,6 @@
>
> if (!Session.doesSessionExist(sessionID)) {
> //try to create initiator to send the message
> - AxisService service =
> cfgCtx.getAxisConfiguration().getService(serviceName);
> sessionFactory.createFIXInitiator(targetEPR, service,
> sessionID);
> }
>
> @@ -319,9 +323,12 @@
> String beginString = fieldValues.get(FIXConstants.BEGIN_STRING);
> String deliverToCompID =
> fieldValues.get(FIXConstants.DELIVER_TO_COMP_ID);
>
> + AxisService service =
> cfgCtx.getAxisConfiguration().getService(serviceName);
> +
> //match BeginString values
> - if (beginString != null &&
> !beginString.equals(sessionID.getBeginString())) {
> - handleException("Cannot forward messages to a session with a
> different BeginString");
> + if (isValidationOn(service) && beginString != null &&
> !beginString.equals(sessionID.getBeginString())) {
> + handleException("BeginString validation is on. Cannot forward
> messages to a session" +
> + " with a different BeginString");
> }
>
> if (deliverToCompID != null) {
> @@ -330,7 +337,6 @@
> handleException("Cannot forward messages that do not have a
> valid DeliverToCompID field");
> } else {
> prepareToForwardMessage(fixMessage, fieldValues);
> - AxisService service =
> cfgCtx.getAxisConfiguration().getService(serviceName);
> setDeliverToXFields(fixMessage, service);
> }
> } else {
> @@ -366,18 +372,20 @@
> Acceptor acceptor = sessionFactory.getAccepter(serviceName);
> SessionID sessionID = null;
>
> + AxisService service =
> cfgCtx.getAxisConfiguration().getService(serviceName);
> +
> if (acceptor != null) {
> ArrayList<SessionID> sessions = acceptor.getSessions();
> if (sessions.size() == 1) {
> sessionID = sessions.get(0);
> - if (deliverToCompID != null && !isTargetVald(fieldValues,
> sessionID)) {
> + if (deliverToCompID != null && !isTargetVald(fieldValues,
> sessionID, isValidationOn(service))) {
> sessionID = null;
> }
>
> } else if (sessions.size() > 1 && deliverToCompID != null) {
> for (int i = 0; i < sessions.size(); i++) {
> sessionID = sessions.get(i);
> - if (isTargetVald(fieldValues, sessionID)) {
> + if (isTargetVald(fieldValues, sessionID,
> isValidationOn(service))) {
> break;
> }
> }
> @@ -392,8 +400,25 @@
> return false;
> }
>
> + /**
> + * Checks whether BeginString validation is on for the specified
> + * service.
> + *
> + * @param service the AxisService of the message
> + * @return a boolean value indicating the validation state
> + */
> + private boolean isValidationOn(AxisService service) {
> + Parameter validationParam =
> service.getParameter(FIXConstants.FIX_BEGIN_STRING_VALIDATION);
> + if (validationParam != null) {
> + if ("true".equals(validationParam.getValue().toString())) {
> + return true;
> + }
> + }
> + return false;
> + }
> +
> public void logOutIncomingSession(SessionID sessionID) {
> messageSender.cleanUpMessages(sessionID.toString());
> }
>
> -}
> \ No newline at end of file
> +}
>
>
>
--
Ruwan Linton
http://wso2.org - "Oxygenating the Web Services Platform"
http://ruwansblog.blogspot.com/