001: /*
002: * ChainBuilder ESB
003: * Visual Enterprise Integration
004: *
005: * Copyright (C) 2006 Bostech Corporation
006: *
007: * This program is free software; you can redistribute it and/or modify
008: * it under the terms of the GNU General Public License as published by
009: * the Free Software Foundation; either version 2 of the License, or
010: * (at your option) any later version.
011: *
012: * This program is distributed in the hope that it will be useful,
013: * but WITHOUT ANY WARRANTY; without even the implied warranty of
014: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015: * General Public License for more details.
016: *
017: * You should have received a copy of the GNU General Public License
018: * along with this program; if not, write to the Free Software
019: * Foundation, Inc.,59 Temple Place, Suite 330, Boston, MA 02111-1307
020: * USA
021: *
022: *
023: * $Id: FtpWsdl1Deployer.java 7794 2007-06-07 08:17:52Z lzheng $
024: */
025: package com.bostechcorp.cbesb.runtime.component.ftp;
026:
027: import javax.jbi.messaging.MessageExchange;
028: import javax.wsdl.extensions.ExtensibilityElement;
029: import javax.wsdl.extensions.ExtensionRegistry;
030:
031: import org.apache.commons.logging.Log;
032: import org.apache.commons.logging.LogFactory;
033:
034: import com.bostechcorp.cbesb.runtime.ccsl.jbi.messaging.CbComponent;
035: import com.bostechcorp.cbesb.runtime.ccsl.jbi.messaging.CbEndpoint;
036: import com.bostechcorp.cbesb.runtime.ccsl.jbi.messaging.Wsdl1Deployer;
037: import com.bostechcorp.cbesb.runtime.component.ftp.wsdl.FtpBinding;
038: import com.bostechcorp.cbesb.runtime.component.ftp.wsdl.FtpInput;
039: import com.bostechcorp.cbesb.runtime.component.ftp.wsdl.FtpInputExtension;
040: import com.bostechcorp.cbesb.runtime.component.ftp.wsdl.FtpOutput;
041: import com.bostechcorp.cbesb.runtime.component.ftp.wsdl.FtpOutputExtension;
042:
043: /**
044: * @author j.zhang
045: * @version 1.0.0
046: */
047: public class FtpWsdl1Deployer extends Wsdl1Deployer {
048:
049: protected final transient Log logger = LogFactory
050: .getLog(getClass());
051:
052: public FtpWsdl1Deployer(CbComponent component) {
053: super (component);
054: }
055:
056: /* (non-Javadoc)
057: * @see org.apache.servicemix.common.wsdl1.AbstractWsdl1Deployer#createEndpoint(javax.wsdl.extensions.ExtensibilityElement, javax.wsdl.extensions.ExtensibilityElement, org.apache.servicemix.common.wsdl1.JbiEndpoint)
058: */
059: protected CbEndpoint createEndpoint(
060: ExtensibilityElement[] portElement,
061: ExtensibilityElement[] bindingElement) {
062: logger.debug("createEndpoint portElement=" + portElement[0]);
063:
064: FtpEndpoint endpoint = new FtpEndpoint();
065: if (portElement[0] instanceof FtpInput) {
066: FtpInput inputPortElement = (FtpInput) portElement[0];
067: logger.debug("FtpInput portElement=" + inputPortElement);
068: endpoint.setRole(MessageExchange.Role.CONSUMER);
069: endpoint.setDefaultMep(inputPortElement.getDefaultMep());
070: endpoint.setFtpHost(inputPortElement.getFtpHost());
071: endpoint.setFtpUser(inputPortElement.getFtpUser());
072: endpoint.setFtpPassword(inputPortElement.getFtpPassword());
073: endpoint.setCmdFile(inputPortElement.getCmdFile());
074: endpoint.setFtpConnectMode(inputPortElement
075: .getFtpConnectMode());
076: endpoint.setFtpTransferMode(inputPortElement
077: .getFtpTransferMode());
078: endpoint.setSourceDir(inputPortElement.getSourceDir());
079: endpoint.setTransferDir(inputPortElement.getTransferDir());
080: endpoint.setStageDir(inputPortElement.getStageDir());
081: endpoint.setArchiveDir(inputPortElement.getArchiveDir());
082: endpoint.setHoldDir(inputPortElement.getHoldDir());
083:
084: if (inputPortElement.getScanInterval() != null
085: && !inputPortElement.getScanInterval().equals("")) {
086: endpoint.setMode(FtpEndpoint.MODE_POLL);
087: endpoint.setPollInterval(Integer
088: .parseInt(inputPortElement.getScanInterval()));
089: } else {
090: endpoint.setMode(FtpEndpoint.MODE_SCHEDULE);
091: endpoint
092: .setScheduleFile(inputPortElement.getSchedule());
093: endpoint.setSchedulerService(inputPortElement
094: .getSchedulerService());
095: endpoint.setSchedulerEndpoint(inputPortElement
096: .getSchedulerEndpoint());
097: }
098:
099: endpoint.setHold(inputPortElement.getHold());
100: endpoint.setFilePattern(inputPortElement.getFilePattern());
101: endpoint.setMatchMode(inputPortElement.getMatchMode());
102: endpoint.setTwoPass(inputPortElement.getTwoPass());
103: endpoint.setTwoPassInterval(inputPortElement
104: .getTwoPassInterval());
105: endpoint.setFileCompleteAction(inputPortElement
106: .getFileCompleteAction());
107: endpoint.setRecordsPerMessage(inputPortElement
108: .getRecordsPerMessage());
109: endpoint.setReadStyle(inputPortElement.getReadStyle());
110: endpoint.setRecordType(inputPortElement.getRecordType());
111: endpoint.setCharset(inputPortElement.getCharset());
112: endpoint.setArchiveFilePattern(inputPortElement
113: .getArchiveFilePattern());
114: endpoint
115: .setReplyFtpHost(inputPortElement.getReplyFtpHost());
116: endpoint
117: .setReplyFtpUser(inputPortElement.getReplyFtpUser());
118: endpoint.setReplyFtpPassword(inputPortElement
119: .getReplyFtpPassword());
120: endpoint.setReplyFtpConnectMode(inputPortElement
121: .getReplyFtpConnectMode());
122: endpoint.setReplyFtpTransferMode(inputPortElement
123: .getReplyFtpTransferMode());
124: endpoint.setReplyDir(inputPortElement.getReplyDir());
125: endpoint
126: .setReplyCharset(inputPortElement.getReplyCharset());
127: endpoint.setReplyWriteStyle(inputPortElement
128: .getReplyWriteStyle());
129: endpoint.setReplyFilePattern(inputPortElement
130: .getReplyFilePattern());
131: } else {
132: FtpOutput outputPortElement = (FtpOutput) portElement[0];
133: logger.debug("FtpOutput portElement=" + outputPortElement);
134: endpoint.setRole(MessageExchange.Role.PROVIDER);
135: endpoint.setDefaultMep(outputPortElement.getDefaultMep());
136: endpoint.setFtpHost(outputPortElement.getFtpHost());
137: endpoint.setFtpUser(outputPortElement.getFtpUser());
138: endpoint.setFtpPassword(outputPortElement.getFtpPassword());
139: endpoint.setCmdFile(outputPortElement.getCmdFile());
140: endpoint.setFtpConnectMode(outputPortElement
141: .getFtpConnectMode());
142: endpoint.setFtpTransferMode(outputPortElement
143: .getFtpTransferMode());
144: endpoint.setDestDir(outputPortElement.getDestDir());
145: endpoint.setTransferDir(outputPortElement.getTransferDir());
146: endpoint.setStageDir(outputPortElement.getStageDir());
147: endpoint.setCharset(outputPortElement.getCharset());
148: endpoint.setWriteStyle(outputPortElement.getWriteStyle());
149: endpoint.setFilePattern(outputPortElement.getFilePattern());
150: endpoint.setFileCompleteAction(outputPortElement
151: .getFileCompleteAction());
152: endpoint.setArchiveDir(outputPortElement.getArchiveDir());
153: endpoint.setArchiveFilePattern(outputPortElement
154: .getArchiveFilePattern());
155: }
156: return endpoint;
157: }
158:
159: /* (non-Javadoc)
160: * @see org.apache.servicemix.common.wsdl1.AbstractWsdl1Deployer#filterBindingElement(javax.wsdl.extensions.ExtensibilityElement)
161: */
162: protected boolean filterBindingElement(ExtensibilityElement element) {
163: return element instanceof FtpBinding;
164: }
165:
166: /* (non-Javadoc)
167: * @see org.apache.servicemix.common.wsdl1.AbstractWsdl1Deployer#filterPortElement(javax.wsdl.extensions.ExtensibilityElement)
168: */
169: protected boolean filterPortElement(ExtensibilityElement element) {
170: return (element instanceof FtpInput)
171: || (element instanceof FtpOutput);
172: }
173:
174: /* (non-Javadoc)
175: * @see org.apache.servicemix.common.wsdl1.AbstractWsdl1Deployer#registerExtensions(javax.wsdl.extensions.ExtensionRegistry)
176: */
177: protected void registerExtensions(ExtensionRegistry registry) {
178: super.registerExtensions(registry);
179: FtpInputExtension.register(registry);
180: FtpOutputExtension.register(registry);
181: }
182: }
|