You can subscribe to this list here.
| 2003 |
Jan
|
Feb
(14) |
Mar
(107) |
Apr
(211) |
May
(93) |
Jun
(158) |
Jul
(159) |
Aug
(368) |
Sep
(188) |
Oct
(151) |
Nov
(115) |
Dec
(98) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(25) |
Feb
|
Mar
(33) |
Apr
(28) |
May
(116) |
Jun
(2) |
Jul
(117) |
Aug
(19) |
Sep
(9) |
Oct
(2) |
Nov
|
Dec
(4) |
| 2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
(9) |
Dec
|
| 2006 |
Jan
|
Feb
|
Mar
(22) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2007 |
Jan
|
Feb
|
Mar
(6) |
Apr
|
May
|
Jun
|
Jul
|
Aug
(267) |
Sep
|
Oct
|
Nov
(6) |
Dec
(512) |
| 2008 |
Jan
(187) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(3) |
Jul
(6) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
|
Dec
|
| 2012 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <dgl...@us...> - 2003-08-18 00:27:17
|
Update of /cvsroot/babeldoc/babeldoc/modules/core/src/com/babeldoc/core/pipeline/stage
In directory sc8-pr-cvs1:/tmp/cvs-serv16859/modules/core/src/com/babeldoc/core/pipeline/stage
Modified Files:
JournalUpdatePipelineStage.java
Log Message:
Protect journal integrity by converting harmful characters into html equivalents
Index: JournalUpdatePipelineStage.java
===================================================================
RCS file: /cvsroot/babeldoc/babeldoc/modules/core/src/com/babeldoc/core/pipeline/stage/JournalUpdatePipelineStage.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** JournalUpdatePipelineStage.java 17 Aug 2003 22:40:45 -0000 1.2
--- JournalUpdatePipelineStage.java 18 Aug 2003 00:23:21 -0000 1.3
***************
*** 126,133 ****
}
! // Add a journal entry for the nessage
try {
((SimpleJournal)getJournal()).logMessage(getTicket(), getPipelineName() + "." + getName(),
! getOptions(JOURNAL_MESSAGE));
}
catch (JournalException e) {
--- 126,139 ----
}
! // get the message to be added
! String message = getOptions(JOURNAL_MESSAGE);
!
! // translate message, converting any problem characters into their html equivalent
! message = translateMessage(message);
!
! // add a journal entry for the message
try {
((SimpleJournal)getJournal()).logMessage(getTicket(), getPipelineName() + "." + getName(),
! message);
}
catch (JournalException e) {
***************
*** 137,139 ****
--- 143,169 ----
return super.processHelper();
}
+
+ /**
+ * Translates the message into a 'journal-safe' message, converting any
+ * problem characters into HTML equivalents
+ */
+ public String translateMessage(String message) {
+ StringBuffer sb = new StringBuffer();
+ for (int i=0; i<message.length(); i++) {
+ if (message.charAt(i) == '\n') {
+ sb.append("<BR>");
+ }
+ else if (message.charAt(i) == ',') {
+ sb.append(",");
+ }
+ else if (message.charAt(i) == '"') {
+ sb.append(""");
+ }
+ else {
+ sb.append(message.charAt(i));
+ }
+ }
+ return new String(sb);
+ }
+
}
|
|
From: <dgl...@us...> - 2003-08-17 22:40:48
|
Update of /cvsroot/babeldoc/babeldoc/modules/core/src/com/babeldoc/core/pipeline/stage In directory sc8-pr-cvs1:/tmp/cvs-serv996/modules/core/src/com/babeldoc/core/pipeline/stage Modified Files: JournalUpdatePipelineStage.java Log Message: Code cleanup (sorry for the mess!) Index: JournalUpdatePipelineStage.java =================================================================== RCS file: /cvsroot/babeldoc/babeldoc/modules/core/src/com/babeldoc/core/pipeline/stage/JournalUpdatePipelineStage.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** JournalUpdatePipelineStage.java 17 Aug 2003 22:34:46 -0000 1.1 --- JournalUpdatePipelineStage.java 17 Aug 2003 22:40:45 -0000 1.2 *************** *** 67,98 **** import com.babeldoc.core.I18n; - import com.babeldoc.core.journal.IJournalTicket; import com.babeldoc.core.journal.JournalException; - import com.babeldoc.core.journal.JournalStatus; import com.babeldoc.core.journal.simple.SimpleJournal; import com.babeldoc.core.option.ConfigOption; import com.babeldoc.core.option.IConfigOptionType; - import com.babeldoc.core.option.ValueListConfigOptionType; - import com.babeldoc.core.pipeline.PipelineDocument; import com.babeldoc.core.pipeline.PipelineException; import com.babeldoc.core.pipeline.PipelineStage; import com.babeldoc.core.pipeline.PipelineStageResult; - import java.io.IOException; - import java.io.InputStream; - import java.io.OutputStream; - import java.util.*; - - import javax.activation.DataHandler; - import javax.activation.DataSource; - import javax.activation.FileDataSource; - - import javax.mail.*; - import javax.mail.internet.InternetAddress; - import javax.mail.internet.MimeBodyPart; - import javax.mail.internet.MimeMessage; - import javax.mail.internet.MimeMultipart; - /** --- 67,79 ---- |
|
From: <dgl...@us...> - 2003-08-17 22:34:50
|
Update of /cvsroot/babeldoc/babeldoc/modules/core/src/com/babeldoc/core/journal
In directory sc8-pr-cvs1:/tmp/cvs-serv32424/modules/core/src/com/babeldoc/core/journal
Modified Files:
JournalOperation.java
Log Message:
Added JournalUpdatePipelineStage, added support for logging arbitrary messages into the journal
Index: JournalOperation.java
===================================================================
RCS file: /cvsroot/babeldoc/babeldoc/modules/core/src/com/babeldoc/core/journal/JournalOperation.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** JournalOperation.java 27 Jun 2003 02:19:57 -0000 1.3
--- JournalOperation.java 17 Aug 2003 22:34:47 -0000 1.4
***************
*** 96,99 ****
--- 96,100 ----
public static final JournalOperation updateStatus = new JournalOperation(2);
public static final JournalOperation updateDocument = new JournalOperation(3);
+ public static final JournalOperation updateJournal = new JournalOperation(4);
/** private constants */
***************
*** 102,105 ****
--- 103,107 ----
private static final String UPDATE_STATUS = "updateStatus";
private static final String UPDATE_DOCUMENT = "updateDocument";
+ private static final String UPDATE_JOURNAL = "updateJournal";
/** instance variable */
***************
*** 131,134 ****
--- 133,138 ----
} else if (op.equals(UPDATE_DOCUMENT)) {
return updateDocument;
+ } else if (op.equals(UPDATE_JOURNAL)) {
+ return updateJournal;
} else {
return null;
***************
*** 165,168 ****
--- 169,175 ----
case 3:
return "updateDocument";
+
+ case 4:
+ return "updateJournal";
}
|
|
From: <dgl...@us...> - 2003-08-17 22:34:50
|
Update of /cvsroot/babeldoc/babeldoc/modules/core/config/i18n In directory sc8-pr-cvs1:/tmp/cvs-serv32424/modules/core/config/i18n Modified Files: messages.properties Log Message: Added JournalUpdatePipelineStage, added support for logging arbitrary messages into the journal Index: messages.properties =================================================================== RCS file: /cvsroot/babeldoc/babeldoc/modules/core/config/i18n/messages.properties,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** messages.properties 16 Aug 2003 01:23:27 -0000 1.21 --- messages.properties 17 Aug 2003 22:34:47 -0000 1.22 *************** *** 388,391 **** --- 388,395 ---- core.pipeline.stage.externalapplication.opt.pipein=Pipe the response into the document in the attribute ExternalApplicationResponse + core.pipeline.stage.journalupdate.description=This pipeline stage writes a message into the journal. This message will be displayed when viewed with the journal tool. + core.pipeline.stage.journalupdate.opt.message=The message to write to the Journal + core.pipeline.stage.journalupdate.error.message=No journal message + core.pipeline.stageinfo.stageType=Type of pipeline stage core.pipeline.stageinfo.nextStage=Name of the next stage in pipeline |
|
From: <dgl...@us...> - 2003-08-17 22:34:49
|
Update of /cvsroot/babeldoc/babeldoc/modules/core/src/com/babeldoc/core/pipeline/stage In directory sc8-pr-cvs1:/tmp/cvs-serv32424/modules/core/src/com/babeldoc/core/pipeline/stage Added Files: JournalUpdatePipelineStage.java Log Message: Added JournalUpdatePipelineStage, added support for logging arbitrary messages into the journal --- NEW FILE: JournalUpdatePipelineStage.java --- /* ==================================================================== * The Apache Software License, Version 1.1 * * Copyright (c) 2000 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Apache" and "Apache Software Foundation" must * not be used to endorse or promote products derived from this * software without prior written permission. For written * permission, please contact ap...@ap.... * * 5. Products derived from this software may not be called "Apache", * nor may "Apache" appear in their name, without prior written * permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. * * Portions of this software are based upon public domain software * originally written at the National Center for Supercomputing Applications, * University of Illinois, Urbana-Champaign. * ==================================================================== * * Babeldoc: The Universal Document Processor * * $Header$ * $DateTime$ * $Author: dglick02 $ * */ package com.babeldoc.core.pipeline.stage; import com.babeldoc.core.I18n; import com.babeldoc.core.journal.IJournalTicket; import com.babeldoc.core.journal.JournalException; import com.babeldoc.core.journal.JournalStatus; import com.babeldoc.core.journal.simple.SimpleJournal; import com.babeldoc.core.option.ConfigOption; import com.babeldoc.core.option.IConfigOptionType; import com.babeldoc.core.option.ValueListConfigOptionType; import com.babeldoc.core.pipeline.PipelineDocument; import com.babeldoc.core.pipeline.PipelineException; import com.babeldoc.core.pipeline.PipelineStage; import com.babeldoc.core.pipeline.PipelineStageResult; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.*; import javax.activation.DataHandler; import javax.activation.DataSource; import javax.activation.FileDataSource; import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; /** * Add an entry to the Journal. * * <p> * Copyright: Copyright (c) 2002, 2003 * </p> * * @author David Glick * @version 1.0 */ public class JournalUpdatePipelineStage extends PipelineStage { /** Constants */ public static final String JOURNAL_MESSAGE = "message"; /** * Constructor with this stage's info */ public JournalUpdatePipelineStage() { super(new com.babeldoc.core.pipeline.PipelineStageInfo() { public String getName() { return "JournalUpdate"; } public String getDescription() { return I18n.get("core.pipeline.stage.journalupdate.description"); } public Collection getTypeSpecificOptions() { ArrayList options = new ArrayList(); options.add(new ConfigOption(JOURNAL_MESSAGE, IConfigOptionType.STRING, null, true, I18n.get("core.pipeline.stage.journalupdate.opt.message"))); return options; } }); } /** * pipeline stage * * @return the name of the next stage in the pipe line or nothing * @throws PipelineException If no message option exists, this exception is thrown */ public PipelineStageResult[] process() throws PipelineException { if (!hasOption(JOURNAL_MESSAGE)) { throw new PipelineException(I18n.get("core.pipeline.stage.journalupdate.error.message")); } // Add a journal entry for the nessage try { ((SimpleJournal)getJournal()).logMessage(getTicket(), getPipelineName() + "." + getName(), getOptions(JOURNAL_MESSAGE)); } catch (JournalException e) { throw new PipelineException(e.toString()); } return super.processHelper(); } } |
|
From: <dgl...@us...> - 2003-08-17 22:34:49
|
Update of /cvsroot/babeldoc/babeldoc/modules/core/config/service In directory sc8-pr-cvs1:/tmp/cvs-serv32424/modules/core/config/service Modified Files: query.properties Log Message: Added JournalUpdatePipelineStage, added support for logging arbitrary messages into the journal Index: query.properties =================================================================== RCS file: /cvsroot/babeldoc/babeldoc/modules/core/config/service/query.properties,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** query.properties 5 Aug 2003 23:13:44 -0000 1.10 --- query.properties 17 Aug 2003 22:34:46 -0000 1.11 *************** *** 20,23 **** --- 20,24 ---- PipelineStage.CallStage=com.babeldoc.core.pipeline.stage.CallStagePipelineStage PipelineStage.ExternalApplication=com.babeldoc.core.pipeline.stage.ExternalApplicationPipelineStage + PipelineStage.JournalUpdate=com.babeldoc.core.pipeline.stage.JournalUpdatePipelineStage Journal.simple=com.babeldoc.core.journal.simple.SimpleJournal |
|
From: <dgl...@us...> - 2003-08-17 22:34:49
|
Update of /cvsroot/babeldoc/babeldoc/modules/core/src/com/babeldoc/core/journal/simple
In directory sc8-pr-cvs1:/tmp/cvs-serv32424/modules/core/src/com/babeldoc/core/journal/simple
Modified Files:
SimpleJournal.java
Log Message:
Added JournalUpdatePipelineStage, added support for logging arbitrary messages into the journal
Index: SimpleJournal.java
===================================================================
RCS file: /cvsroot/babeldoc/babeldoc/modules/core/src/com/babeldoc/core/journal/simple/SimpleJournal.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** SimpleJournal.java 12 Aug 2003 00:11:24 -0000 1.7
--- SimpleJournal.java 17 Aug 2003 22:34:46 -0000 1.8
***************
*** 448,451 ****
--- 448,461 ----
/**
+ * Log a message into the log file
+ * @param stage the stage to log
+ * @param String The message to log
+ */
+ public void logMessage(IJournalTicket ticket, String stage, String message)
+ throws JournalException {
+ log(ticket, JournalOperation.updateJournal, message, stage, null);
+ }
+
+ /**
* Log string to the log file
*
|
|
From: <dgl...@us...> - 2003-08-17 22:34:49
|
Update of /cvsroot/babeldoc/babeldoc/modules/soap/src/com/babeldoc/soap/pipeline/stage
In directory sc8-pr-cvs1:/tmp/cvs-serv32424/modules/soap/src/com/babeldoc/soap/pipeline/stage
Modified Files:
SoapWriterPipelineStage.java
Log Message:
Added JournalUpdatePipelineStage, added support for logging arbitrary messages into the journal
Index: SoapWriterPipelineStage.java
===================================================================
RCS file: /cvsroot/babeldoc/babeldoc/modules/soap/src/com/babeldoc/soap/pipeline/stage/SoapWriterPipelineStage.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** SoapWriterPipelineStage.java 11 Aug 2003 07:25:37 -0000 1.12
--- SoapWriterPipelineStage.java 17 Aug 2003 22:34:46 -0000 1.13
***************
*** 163,169 ****
headers.addHeader("SOAPAction", soapAction);
- // get the SOAP header
- SOAPHeader header = message.getSOAPPart().getEnvelope().getHeader();
-
// if needed, add authentication
if (authentication != null) {
--- 163,166 ----
***************
*** 173,176 ****
--- 170,186 ----
authentication.getPassword());
}
+
+ // TEST TEST TEST
+ // get the SOAP envelope
+ SOAPEnvelope envelope = message.getSOAPPart().getEnvelope();
+ envelope.addNamespaceDeclaration("xsi", "http://www.w3.org/2001/XMLSchema-instance");
+ envelope.addNamespaceDeclaration("xsd", "http://www.w3.org/2001/XMLSchema");
+ envelope.addNamespaceDeclaration("SOAP-ENC", "http://schemas.xmlsoap.org/soap/encoding/");
+
+ ByteArrayOutputStream tbs = new ByteArrayOutputStream();
+ message.writeTo(tbs);
+ String strMessage = tbs.toString();
+ System.out.println("Message: \n" + strMessage + "\n");
+ // TEST TEST TEST
// establish the connection
|
|
From: <tr...@us...> - 2003-08-17 04:36:09
|
Update of /cvsroot/babeldoc/babeldoc/modules/scanner/src/com/babeldoc/scanner
In directory sc8-pr-cvs1:/tmp/cvs-serv17646/modules/scanner/src/com/babeldoc/scanner
Modified Files:
ScannerThread.java ScannerWorker.java ScannerWorkerInfo.java
Log Message:
Updates to the scanner code - added the count down option. Updated the I/ConfigInfo object for the getStrValue, getIntValue and the getValue methods for quick and easy access to the option values.
Index: ScannerThread.java
===================================================================
RCS file: /cvsroot/babeldoc/babeldoc/modules/scanner/src/com/babeldoc/scanner/ScannerThread.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
*** ScannerThread.java 14 Aug 2003 02:34:20 -0000 1.16
--- ScannerThread.java 17 Aug 2003 04:12:29 -0000 1.17
***************
*** 73,77 ****
import com.babeldoc.core.LogService;
- import org.apache.commons.lang.NumberUtils;
--- 73,76 ----
***************
*** 101,113 ****
*/
public void run() {
! while (running) {
LogService.getInstance().logDebug(this.getName() + "scanning...");
- worker.process();
! try {
! sleep(getSleepTime(worker));
! } catch (InterruptedException e) {
! LogService.getInstance().logInfo("Thread " + this.getName() +
! " interrupted");
}
}
--- 100,114 ----
*/
public void run() {
! while (running && !(worker.isCountedDown())) {
! waitToRun();
LogService.getInstance().logDebug(this.getName() + "scanning...");
! if(!worker.isCronScheduleType()) {
! worker.process();
! } else {
! ScannerSchedule scanSchedule = worker.getCronSchedule();
! if(scanSchedule!=null&&scanSchedule.isTimeToRun()) {
! worker.process();
! }
}
}
***************
*** 117,144 ****
/**
! * Stop this thread running.
! */
! public void stopThread() {
! running = false;
! worker.stop();
! interrupt();
! }
!
! /**
! * DOCUMENT ME!
! *
! * @param worker
*
- * @return
*/
! private long getSleepTime(ScannerWorker worker) {
if (worker.isCronScheduleType()) {
//return milliseconds before next minute
long currentTime = System.currentTimeMillis();
! return (((currentTime / 60000) + 1) * 60000) - currentTime;
} else {
! return NumberUtils.stringToInt((String)worker.getInfo().getOption(ScannerWorkerInfo.SCANNER_PERIOD).getValue());
}
}
}
--- 118,151 ----
/**
! * Wait certain number of milliseconds to run.
*
*/
! private void waitToRun() {
! long sleepTime;
!
if (worker.isCronScheduleType()) {
//return milliseconds before next minute
long currentTime = System.currentTimeMillis();
! sleepTime = (((currentTime / 60000) + 1) * 60000) - currentTime;
} else {
! sleepTime = worker.getInfo().getIntValue(ScannerWorkerInfo.SCANNER_PERIOD);
}
+
+ try {
+ sleep(sleepTime);
+ } catch (InterruptedException e) {
+ LogService.getInstance().logInfo("Thread " + this.getName() +
+ " interrupted");
+ }
+ }
+
+ /**
+ * Stop this thread running.
+ */
+ public void stopThread() {
+ running = false;
+ worker.stop();
+ interrupt();
}
}
Index: ScannerWorker.java
===================================================================
RCS file: /cvsroot/babeldoc/babeldoc/modules/scanner/src/com/babeldoc/scanner/ScannerWorker.java,v
retrieving revision 1.22
retrieving revision 1.23
diff -C2 -d -r1.22 -r1.23
*** ScannerWorker.java 14 Aug 2003 02:34:20 -0000 1.22
--- ScannerWorker.java 17 Aug 2003 04:12:29 -0000 1.23
***************
*** 103,106 ****
--- 103,113 ----
/** time in millis since the worker was started */
private long timeStarted;
+
+ /** The count down */
+ private int countdown;
+
+ /** holds the scanner schedule */
+ private ScannerSchedule cronSchedule = null;
+
public static final String SCANNER_KEY = "scanner";
public static final String SCAN_DATE_KEY = "scan_date";
***************
*** 124,128 ****
*/
public boolean isCronScheduleType() {
! return "true".equals(getInfo().getOption(ScannerWorkerInfo.SCANNER_CRON_SCHEDULE).getValue());
}
--- 131,154 ----
*/
public boolean isCronScheduleType() {
! return "true".equalsIgnoreCase(getInfo().getStrValue(ScannerWorkerInfo.SCANNER_CRON_SCHEDULE));
! }
!
! /**
! * Get the cron schedule from this worker. This will lazily create the schedule. If the schedule is
! * not provided in the configuration parameters, then return null. Also if the schedule is invalid,
! * log exception.
! *
! * @return cron schedule
! */
! public ScannerSchedule getCronSchedule() {
! String cronSched = getInfo().getStrValue(ScannerWorkerInfo.SCANNER_CRON_SCHEDULE);
! if(cronSchedule==null&&cronSched!=null) {
! try {
! cronSchedule = new ScannerSchedule(cronSched);
! } catch (Exception e) {
! getLog().logError(e);
! }
! }
! return cronSchedule;
}
***************
*** 214,217 ****
--- 240,244 ----
getLog().logInfo(getName() + " (" +
configData.getValue(ScannerWorkerInfo.SCANNER_TYPE) + ") configured...");
+ this.countdown = getInfo().getIntValue(ScannerWorkerInfo.COUNTDOWN);
}
***************
*** 242,246 ****
//Set status to stopped if worker should be ignored
! if ("true".equals(getInfo().getOption(ScannerWorkerInfo.IGNORED).getValue())) {
setStatus(ScannerWorkerStatus.STOPPED);
} else {
--- 269,273 ----
//Set status to stopped if worker should be ignored
! if ("true".equals(getInfo().getStrValue(ScannerWorkerInfo.IGNORED))) {
setStatus(ScannerWorkerStatus.STOPPED);
} else {
***************
*** 313,317 ****
*/
protected String getPipelineName() {
! return (String)this.getInfo().getOption(ScannerWorkerInfo.SCANNER_PIPELINE).getValue();
}
--- 340,344 ----
*/
protected String getPipelineName() {
! return this.getInfo().getStrValue(ScannerWorkerInfo.SCANNER_PIPELINE);
}
***************
*** 336,340 ****
FeedDocument feed = new FeedDocument(this.getPipelineName(), data, attr,
! !("false".equals(getInfo().getOption(ScannerWorkerInfo.JOURNAL).getValue())),
false);
--- 363,367 ----
FeedDocument feed = new FeedDocument(this.getPipelineName(), data, attr,
! !("false".equals(getInfo().getStrValue(ScannerWorkerInfo.JOURNAL))),
false);
***************
*** 447,450 ****
--- 474,478 ----
/**
* Set the last status change time.
+ *
* @param lastStatusChangeTime
*/
***************
*** 469,472 ****
--- 497,516 ----
protected void setTimeStarted(long timeStarted) {
this.timeStarted = timeStarted;
+ }
+
+ /**
+ * This scanner worker is considered counted down if the counter is NOT -1 or if
+ * post decrement == 0.
+ *
+ * @return
+ */
+ public boolean isCountedDown() {
+ if(countdown==-1) {
+ return false;
+ } else {
+ return countdown-- == 0;
+ }
+
+ // return !(countdown == -1) || countdown-- == 0;
}
}
Index: ScannerWorkerInfo.java
===================================================================
RCS file: /cvsroot/babeldoc/babeldoc/modules/scanner/src/com/babeldoc/scanner/ScannerWorkerInfo.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** ScannerWorkerInfo.java 14 Aug 2003 02:34:20 -0000 1.10
--- ScannerWorkerInfo.java 17 Aug 2003 04:12:29 -0000 1.11
***************
*** 107,110 ****
--- 107,113 ----
public static String JOURNAL = "journal";
+ /** count down (if provided) from this number until zero - then stop scanning */
+ public static String COUNTDOWN = "countDown";
+
/**
* Return collection of options that are common to all scanners
***************
*** 144,147 ****
--- 147,153 ----
IConfigOptionType.BOOLEAN, "true", false,
"Should the scanner use the journal. Default is true"));
+ general.add(new ConfigOption(COUNTDOWN,
+ IConfigOptionType.INTEGER, "-1", false,
+ "The number of times this countdown must run."));
return general;
|
|
From: <tr...@us...> - 2003-08-17 04:36:09
|
Update of /cvsroot/babeldoc/babeldoc/modules/scanner/config/scanner In directory sc8-pr-cvs1:/tmp/cvs-serv17646/modules/scanner/config/scanner Added Files: test.properties Log Message: Updates to the scanner code - added the count down option. Updated the I/ConfigInfo object for the getStrValue, getIntValue and the getValue methods for quick and easy access to the option values. --- NEW FILE: test.properties --- # This is a test scanner # # THis is scanner from the scanner example. # test-period.type=directory test-period.period=1000 test-period.inDirectory=/tmp/in test-period.doneDirectory=/tmp/done test-period.pipeline=test |
|
From: <tr...@us...> - 2003-08-17 04:36:09
|
Update of /cvsroot/babeldoc/babeldoc/modules/core/src/com/babeldoc/core/pipeline/stage
In directory sc8-pr-cvs1:/tmp/cvs-serv17646/modules/core/src/com/babeldoc/core/pipeline/stage
Modified Files:
EntityResolverMemoryCache.java
Log Message:
Updates to the scanner code - added the count down option. Updated the I/ConfigInfo object for the getStrValue, getIntValue and the getValue methods for quick and easy access to the option values.
Index: EntityResolverMemoryCache.java
===================================================================
RCS file: /cvsroot/babeldoc/babeldoc/modules/core/src/com/babeldoc/core/pipeline/stage/EntityResolverMemoryCache.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** EntityResolverMemoryCache.java 24 Jul 2003 23:51:20 -0000 1.2
--- EntityResolverMemoryCache.java 17 Aug 2003 04:12:29 -0000 1.3
***************
*** 81,86 ****
**/
public class EntityResolverMemoryCache
! implements EntityResolver
! {
/** an EntityResolver for babeldoc to use; a memory cache backended to a disk cache **/
static EntityResolver babeldocEntityResolver = null;
--- 81,85 ----
**/
public class EntityResolverMemoryCache
! implements EntityResolver {
/** an EntityResolver for babeldoc to use; a memory cache backended to a disk cache **/
static EntityResolver babeldocEntityResolver = null;
***************
*** 106,111 ****
**/
public InputSource resolveEntity (String publicId, String systemId)
! throws SAXException, IOException
! {
try {
byte[] bytes = null;
--- 105,109 ----
**/
public InputSource resolveEntity (String publicId, String systemId)
! throws SAXException, IOException {
try {
byte[] bytes = null;
|
Update of /cvsroot/babeldoc/babeldoc/modules/scanner/src/com/babeldoc/scanner/worker
In directory sc8-pr-cvs1:/tmp/cvs-serv17646/modules/scanner/src/com/babeldoc/scanner/worker
Modified Files:
DirectoryScanner.java ExternalApplicationScanner.java
FtpScanner.java HttpScanner.java MailboxScanner.java
SqlScanner.java
Log Message:
Updates to the scanner code - added the count down option. Updated the I/ConfigInfo object for the getStrValue, getIntValue and the getValue methods for quick and easy access to the option values.
Index: DirectoryScanner.java
===================================================================
RCS file: /cvsroot/babeldoc/babeldoc/modules/scanner/src/com/babeldoc/scanner/worker/DirectoryScanner.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -C2 -d -r1.17 -r1.18
*** DirectoryScanner.java 14 Aug 2003 02:34:21 -0000 1.17
--- DirectoryScanner.java 17 Aug 2003 04:12:29 -0000 1.18
***************
*** 148,152 ****
}
! setDoneDirectory((String)this.getInfo().getOption(DONE_DIR).getValue());
//if the done directory does not end with '/' then add one.
--- 148,152 ----
}
! setDoneDirectory(this.getInfo().getStrValue(DONE_DIR));
//if the done directory does not end with '/' then add one.
***************
*** 163,167 ****
try {
! setIncludeSubDirs("true".equals(this.getInfo().getOption(INCLUDE_SUB_DIRS).getClass()));
} catch (Exception e) {
// Dont catch or do anything here - this means that the default is accepted.
--- 163,167 ----
try {
! setIncludeSubDirs("true".equals(this.getInfo().getStrValue(INCLUDE_SUB_DIRS)));
} catch (Exception e) {
// Dont catch or do anything here - this means that the default is accepted.
***************
*** 212,217 ****
file.renameTo(outfile);
} catch (Exception e) {
! throw new ScannerException(I18n.get(
! "scanner.DirectoryScanner.error.finishing"), e);
}
}
--- 212,216 ----
file.renameTo(outfile);
} catch (Exception e) {
! throw new ScannerException(I18n.get("scanner.DirectoryScanner.error.finishing"), e);
}
}
Index: ExternalApplicationScanner.java
===================================================================
RCS file: /cvsroot/babeldoc/babeldoc/modules/scanner/src/com/babeldoc/scanner/worker/ExternalApplicationScanner.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** ExternalApplicationScanner.java 14 Aug 2003 02:34:21 -0000 1.4
--- ExternalApplicationScanner.java 17 Aug 2003 04:12:29 -0000 1.5
***************
*** 146,150 ****
public void initialize() throws ScannerConfigurationException {
// getLog().info("initialize");
! application = (String)this.getInfo().getOption(APPLICATION).getValue();
if ((application == null) || !(new File(application).isFile())) {
--- 146,150 ----
public void initialize() throws ScannerConfigurationException {
// getLog().info("initialize");
! application = this.getInfo().getStrValue(APPLICATION);
if ((application == null) || !(new File(application).isFile())) {
Index: FtpScanner.java
===================================================================
RCS file: /cvsroot/babeldoc/babeldoc/modules/scanner/src/com/babeldoc/scanner/worker/FtpScanner.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -C2 -d -r1.17 -r1.18
*** FtpScanner.java 14 Aug 2003 02:34:21 -0000 1.17
--- FtpScanner.java 17 Aug 2003 04:12:29 -0000 1.18
***************
*** 177,187 ****
public void initialize() throws ScannerConfigurationException {
// LogService.getInstance().logInfo("initialize");
! ftpHost = (String)this.getInfo().getOption(FTP_HOST).getValue();
! ftpUsername = (String)this.getInfo().getOption(FTP_USERNAME).getValue();
! ftpFolder = (String)this.getInfo().getOption(FTP_FOLDER).getValue();
! ftpOutFolder = (String)this.getInfo().getOption(FTP_OUT_FOLDER).getValue();
! localBackupFolder = (String)this.getInfo().getOption(LOCAL_BK_FOLDER).getValue();
! if (("true".equalsIgnoreCase((String)this.getInfo().getOption(SCAN_SUBFOLDERS).getValue()))) {
scanSubfolders = true;
}
--- 177,187 ----
public void initialize() throws ScannerConfigurationException {
// LogService.getInstance().logInfo("initialize");
! ftpHost = this.getInfo().getStrValue(FTP_HOST);
! ftpUsername = this.getInfo().getStrValue(FTP_USERNAME);
! ftpFolder = this.getInfo().getStrValue(FTP_FOLDER);
! ftpOutFolder = this.getInfo().getStrValue(FTP_OUT_FOLDER);
! localBackupFolder = this.getInfo().getStrValue(LOCAL_BK_FOLDER);
! if (("true".equalsIgnoreCase(this.getInfo().getStrValue(SCAN_SUBFOLDERS)))) {
scanSubfolders = true;
}
***************
*** 195,200 ****
connectToHost();
} catch (ScannerException se) {
! throw new ScannerConfigurationException(I18n.get(
! "scanner.FtpScanner.error.init"), se);
}
}
--- 195,199 ----
connectToHost();
} catch (ScannerException se) {
! throw new ScannerConfigurationException(I18n.get("scanner.FtpScanner.error.init"), se);
}
}
***************
*** 229,234 ****
if (!ftpClient.changeWorkingDirectory(ftpFolder)) {
ftpClient.disconnect();
! throw new ScannerException(I18n.get(
! "scanner.FtpScanner.error.notReachable"));
}
} else {
--- 228,232 ----
if (!ftpClient.changeWorkingDirectory(ftpFolder)) {
ftpClient.disconnect();
! throw new ScannerException(I18n.get("scanner.FtpScanner.error.notReachable"));
}
} else {
***************
*** 238,243 ****
} else {
ftpClient.disconnect();
! throw new ScannerException(I18n.get(
! "scanner.FtpScanner.error.connection"));
}
--- 236,240 ----
} else {
ftpClient.disconnect();
! throw new ScannerException(I18n.get("scanner.FtpScanner.error.connection"));
}
Index: HttpScanner.java
===================================================================
RCS file: /cvsroot/babeldoc/babeldoc/modules/scanner/src/com/babeldoc/scanner/worker/HttpScanner.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** HttpScanner.java 14 Aug 2003 02:34:21 -0000 1.4
--- HttpScanner.java 17 Aug 2003 04:12:29 -0000 1.5
***************
*** 76,80 ****
import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.methods.GetMethod;
- import org.apache.commons.lang.NumberUtils;
import java.io.IOException;
--- 76,79 ----
***************
*** 108,111 ****
--- 107,115 ----
public static final String PROXY_PORT = "proxyPort";
+ /** Default values for the configuration options */
+ public static final int DEFAULT_ATTEMPTS = 1;
+ public static final int DEFAULT_PROXYPORT = 80;
+ public static final int DEFAULT_TIMEOUT = 15000;
+
// Instance fields
HttpClient httpClient = null;
***************
*** 163,174 ****
*/
public void initialize() throws ScannerConfigurationException {
! url = (String)this.getInfo().getOption(URI).getValue();
! attempts = NumberUtils.stringToInt((String)this.getInfo().getOption(ATTEMPTS).getValue(), attempts);
! proxyHost = (String)this.getInfo().getOption(PROXY_HOST).getValue();
! proxyPort = NumberUtils.stringToInt((String)this.getInfo().getOption(PROXY_PORT).getValue(), proxyPort);
! timeout = NumberUtils.stringToInt((String)this.getInfo().getOption(TIMEOUT).getValue(), timeout);
! realm = (String)this.getInfo().getOption(REALM).getValue();
! user = (String)this.getInfo().getOption(USER).getValue();
! password = (String)this.getInfo().getOption(PASSWORD).getValue();
HostConfiguration httpConfig = new HostConfiguration();
--- 167,178 ----
*/
public void initialize() throws ScannerConfigurationException {
! url = this.getInfo().getStrValue(URI);
! attempts = this.getInfo().getIntValue(ATTEMPTS);
! proxyHost = this.getInfo().getStrValue(PROXY_HOST);
! proxyPort = this.getInfo().getIntValue(PROXY_PORT);
! timeout = this.getInfo().getIntValue(TIMEOUT);
! realm = this.getInfo().getStrValue(REALM);
! user = this.getInfo().getStrValue(USER);
! password = this.getInfo().getStrValue(PASSWORD);
HostConfiguration httpConfig = new HostConfiguration();
***************
*** 230,235 ****
// Check that we didn't run out of retries.
if (statusCode == -1) {
! LogService.getInstance().logError(I18n.get(
! "scanner.HttpScanner.error.failed", url), null);
return null;
--- 234,238 ----
// Check that we didn't run out of retries.
if (statusCode == -1) {
! LogService.getInstance().logError(I18n.get("scanner.HttpScanner.error.failed", url), null);
return null;
***************
*** 242,246 ****
/**
! * TODO: DOCUMENT ME!
*
* @author $author$
--- 245,249 ----
/**
! * HttpScanner configuration info
*
* @author $author$
***************
*** 249,253 ****
class HttpScannerInfo extends ScannerWorkerInfo {
/**
! * TODO: DOCUMENT ME!
*
* @return DOCUMENT ME!
--- 252,256 ----
class HttpScannerInfo extends ScannerWorkerInfo {
/**
! * Get the description
*
* @return DOCUMENT ME!
***************
*** 258,262 ****
/**
! * TODO: DOCUMENT ME!
*
* @return DOCUMENT ME!
--- 261,265 ----
/**
! * Get the name of this scanner worker
*
* @return DOCUMENT ME!
***************
*** 267,271 ****
/**
! * TODO: DOCUMENT ME!
*
* @return DOCUMENT ME!
--- 270,274 ----
/**
! * Get the configuration options.
*
* @return DOCUMENT ME!
***************
*** 275,280 ****
//add specific options
! options.add(new ConfigOption(HttpScanner.URI, IConfigOptionType.STRING,
null, true, "URI to getChild the document from"));
return options;
--- 278,298 ----
//add specific options
! options.add(new ConfigOption(HttpScanner.URI, IConfigOptionType.URL,
null, true, "URI to getChild the document from"));
+ options.add(new ConfigOption(HttpScanner.ATTEMPTS, IConfigOptionType.INTEGER,
+ Integer.toString(HttpScanner.DEFAULT_ATTEMPTS), false,
+ "Number of times to attempt to get the document"));
+ options.add(new ConfigOption(HttpScanner.USER, IConfigOptionType.STRING,
+ null, false, "Authenticate with this user name"));
+ options.add(new ConfigOption(HttpScanner.PASSWORD, IConfigOptionType.STRING,
+ null, false, "Authenticate with this password"));
+ options.add(new ConfigOption(HttpScanner.REALM, IConfigOptionType.STRING,
+ null, false, "Authenticate with this realm"));
+ options.add(new ConfigOption(HttpScanner.PROXY_HOST, IConfigOptionType.URL,
+ null, false, "URL of the proxy host"));
+ options.add(new ConfigOption(HttpScanner.PROXY_PORT, IConfigOptionType.INTEGER,
+ Integer.toString(HttpScanner.DEFAULT_PROXYPORT), false, "proxy port"));
+ options.add(new ConfigOption(HttpScanner.TIMEOUT, IConfigOptionType.INTEGER,
+ Integer.toString(HttpScanner.DEFAULT_TIMEOUT), false, "retry timeout"));
return options;
Index: MailboxScanner.java
===================================================================
RCS file: /cvsroot/babeldoc/babeldoc/modules/scanner/src/com/babeldoc/scanner/worker/MailboxScanner.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -C2 -d -r1.21 -r1.22
*** MailboxScanner.java 14 Aug 2003 02:34:21 -0000 1.21
--- MailboxScanner.java 17 Aug 2003 04:12:29 -0000 1.22
***************
*** 118,121 ****
--- 118,123 ----
public static String DEFAULT_PROTOCOL = "pop3";
public static String DEFAULT_FOLDER = "INBOX";
+
+ /** Instance variables */
Folder folder;
Session session;
***************
*** 190,201 ****
*/
public void initialize() throws ScannerConfigurationException {
! host = (String)this.getInfo().getOption(HOST).getValue();
! protocol = (String)this.getInfo().getOption(PROTOCOL).getValue();
! folder_ = (String)this.getInfo().getOption(FOLDER).getValue();
! username = (String)this.getInfo().getOption(USERNAME).getValue();
! password = (String)this.getInfo().getOption(PASSWORD).getValue();
//Dejan 03.10.2002.
! getFrom = (String)this.getInfo().getOption(GET_FROM).getValue();
if (getFrom == null) {
--- 192,203 ----
*/
public void initialize() throws ScannerConfigurationException {
! host = this.getInfo().getStrValue(HOST);
! protocol = this.getInfo().getStrValue(PROTOCOL);
! folder_ = this.getInfo().getStrValue(FOLDER);
! username = this.getInfo().getStrValue(USERNAME);
! password = this.getInfo().getStrValue(PASSWORD);
//Dejan 03.10.2002.
! getFrom = this.getInfo().getStrValue(GET_FROM);
if (getFrom == null) {
***************
*** 215,220 ****
store.connect(host, username, password);
} catch (Exception x) {
! throw new ScannerConfigurationException(I18n.get(
! "scanner.MailboxScanner.error.initialize"), x);
}
}
--- 217,221 ----
store.connect(host, username, password);
} catch (Exception x) {
! throw new ScannerConfigurationException(I18n.get("scanner.MailboxScanner.error.initialize"), x);
}
}
***************
*** 371,375 ****
/**
! * TODO: DOCUMENT ME!
*
* @author $author$
--- 372,376 ----
/**
! * The configuration options for the mailbox scanner.
*
* @author $author$
***************
*** 377,403 ****
*/
class MailboxScannerInfo extends ScannerWorkerInfo {
- /**
- * TODO: DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
public String getDescription() {
return com.babeldoc.core.I18n.get("scanner.MailboxScannerInfo.description");
}
- /**
- * TODO: DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
public String getName() {
return "MailboxScanner";
}
- /**
- * TODO: DOCUMENT ME!
- *
- * @return DOCUMENT ME!
- */
public Collection getTypeSpecificOptions() {
ArrayList options = new ArrayList();
--- 378,389 ----
Index: SqlScanner.java
===================================================================
RCS file: /cvsroot/babeldoc/babeldoc/modules/scanner/src/com/babeldoc/scanner/worker/SqlScanner.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** SqlScanner.java 14 Aug 2003 02:34:21 -0000 1.9
--- SqlScanner.java 17 Aug 2003 04:12:29 -0000 1.10
***************
*** 221,225 ****
*/
public void initialize() throws ScannerConfigurationException {
! resourceName = (String)this.getInfo().getOption(RESOURCE_NAME).getValue();
if (resourceName.equals("")) {
--- 221,225 ----
*/
public void initialize() throws ScannerConfigurationException {
! resourceName = this.getInfo().getStrValue(RESOURCE_NAME);
if (resourceName.equals("")) {
***************
*** 227,231 ****
}
! sqlStatement = (String)this.getInfo().getOption(SQL_STATEMENT).getValue();
if (sqlStatement.equals("")) {
--- 227,231 ----
}
! sqlStatement = this.getInfo().getStrValue(SQL_STATEMENT);
if (sqlStatement.equals("")) {
***************
*** 233,246 ****
}
! documentType = (String)this.getInfo().getOption(DOCUMENT_TYPE).getValue();
if (DOC_TYPE_CSV.equalsIgnoreCase(documentType)) {
//getChild cvs options
! fieldSeparator = (String)this.getInfo().getOption(FIELD_SEPARATOR).getValue();
! rowSeparator = (String)this.getInfo().getOption(ROW_SEPARATOR).getValue();
} else if (DOC_TYPE_XML.equalsIgnoreCase(documentType)) {
//getChild xml options
! headingTag = (String)this.getInfo().getOption(XML_HEADING_TAG).getValue();
! rowTag = (String)this.getInfo().getOption(XML_ROW_TAG).getValue();
}
}
--- 233,246 ----
}
! documentType = this.getInfo().getStrValue(DOCUMENT_TYPE);
if (DOC_TYPE_CSV.equalsIgnoreCase(documentType)) {
//getChild cvs options
! fieldSeparator = this.getInfo().getStrValue(FIELD_SEPARATOR);
! rowSeparator = this.getInfo().getStrValue(ROW_SEPARATOR);
} else if (DOC_TYPE_XML.equalsIgnoreCase(documentType)) {
//getChild xml options
! headingTag = this.getInfo().getStrValue(XML_HEADING_TAG);
! rowTag = this.getInfo().getStrValue(XML_ROW_TAG);
}
}
|
|
From: <tr...@us...> - 2003-08-17 04:12:31
|
Update of /cvsroot/babeldoc/babeldoc/modules/core/src/com/babeldoc/core/option
In directory sc8-pr-cvs1:/tmp/cvs-serv17646/modules/core/src/com/babeldoc/core/option
Modified Files:
ConfigInfo.java
Log Message:
Updates to the scanner code - added the count down option. Updated the I/ConfigInfo object for the getStrValue, getIntValue and the getValue methods for quick and easy access to the option values.
Index: ConfigInfo.java
===================================================================
RCS file: /cvsroot/babeldoc/babeldoc/modules/core/src/com/babeldoc/core/option/ConfigInfo.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** ConfigInfo.java 15 Aug 2003 00:25:29 -0000 1.9
--- ConfigInfo.java 17 Aug 2003 04:12:28 -0000 1.10
***************
*** 68,71 ****
--- 68,72 ----
import com.babeldoc.core.LogService;
import com.babeldoc.core.I18n;
+ import com.babeldoc.core.NameValuePair;
import com.babeldoc.core.pipeline.PipelineStageInfo;
***************
*** 241,247 ****
}
/**
! * Get all the options.
*
* @return
--- 242,272 ----
}
+ /**
+ * Get the names and values of each of the child options of this configuration option
+ * pointed to be the path.
+ *
+ * @param path
+ * @return
+ */
+ public NameValuePair [] getChildValues(String path) {
+ ConfigOption option = getOptionInPath(path);
+ if(option!=null) {
+ Set suboptions = option.getSuboptionNames();
+ if(suboptions!=null&&suboptions.size()>0) {
+ NameValuePair [] pairs = new NameValuePair[suboptions.size()];
+ int counter = 0;
+ for (Iterator iterator = suboptions.iterator(); iterator.hasNext();) {
+ ConfigOption subOption = (ConfigOption) iterator.next();
+ pairs[counter++]=new NameValuePair(subOption.getName(), (String)subOption.getValue());
+ }
+ return pairs;
+ }
+ }
+ return null;
+ }
+
/**
! * Get all the options. This lazily initializes the options instance variable
*
* @return
|
|
From: David G. <dg...@co...> - 2003-08-16 14:02:28
|
Hello to the great and powerful list, My desire is to create examples for the pipeline stages and place them with the descriptions. Why there, you ask? As I create pipelines with Babeldoc, I sit with the manual open to the stage descriptions so that I know what options are available. It is *very* convenient to have the examples at hand with the options so that I know how to implement them. Going to somewhere else in the manual, or to the examples area of the application itself, tend to be distracting (IMHO, of course). Currently the options portion of the manual is auto-generated, with the descriptions and options pulled from the actual classes. To be consistent, the examples should also be pulled from the classes, which would mean adding another attribute to each pipeline stage class (like, oh I don't know, 'examples'...?), and modifying the documentation pipeline to include them, as well. I can do this. However, I'm unclear as to the advantage of the current structure. I understand that there is some advantage in using the properties files so that translations can be easier to maintain, but since the bulk of the manual is in docbook format, it seems that the better solution is to keep everything in the same format for ease of maintenance (and translation). If the concern is that people will add options and forget to update the documentation, then perhaps we can limit the extaction to just the options, and the description can be maintained in the docbook? Or else, as part of the build process, compare extracted options to documented options and flag mis-matches? I guess I don't really see a strong advantage to the current structure, and trying to update it is showing some definite limitations... :-) Can someone let me know if I've missed anything? Thanks, David -- David Glick Transmit Consulting, Inc 619-475-4052 dg...@tr... |
|
From: <tr...@us...> - 2003-08-16 01:39:56
|
Update of /cvsroot/babeldoc/babeldoc/modules/core/config/i18n
In directory sc8-pr-cvs1:/tmp/cvs-serv10999/modules/core/config/i18n
Modified Files:
messages.properties
Log Message:
Made some of the pipeline stage descriptions a whole log more descriptive
Index: messages.properties
===================================================================
RCS file: /cvsroot/babeldoc/babeldoc/modules/core/config/i18n/messages.properties,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -d -r1.20 -r1.21
*** messages.properties 14 Aug 2003 01:33:24 -0000 1.20
--- messages.properties 16 Aug 2003 01:23:27 -0000 1.21
***************
*** 220,223 ****
--- 220,224 ----
100021=Write the "done" file when the document is written. This can act as a flag for other disk scanning processes
100024=Write the document to the FTP host
+ core.pipeline.stage.ftpwriter.desc=Write the document using the FTP protocol to an FTP server. This will enable pipelines to distribute documents on the internet using this well supported protocol
100025=FTP hostname or ip address
100026=FTP username to login with
***************
*** 286,292 ****
100089=default text for alt attribute
100090=JTidy error - see logfile: {0}
! 100100=Null stage
! 100110=Route this document to a number of specified stages
! 100111=Stage name to route to if the script resolves to "true"
100112=If this script resolves to true, then associated stages is routed
100120=Write an item entry to an RSS Channel
--- 287,293 ----
100089=default text for alt attribute
100090=JTidy error - see logfile: {0}
! 100100=Null stage. This do-nothing stage is useful in certain situations like a tracking placeholder or just a placeholder for some future pipeline stage.
! 100110=Route this document to a number of specified stages. This stage would be used to specialize processing based on some criterion very much like an if-else statement. Usually the criteria used would be an attribute on the document like time of processing, filename, etc but could be a script. The nextStage complex parameter must evaluate to the literal 'true'. If more than one of the nextStages resolves to true, then the document is routed to each of those stages. If none of the matches are made, the regular nextStage configuration option is used. This provides the 'else' part.
! 100111=Stage name to route to if the script resolves to 'true'. Each of the matching nextStages will be routed.
100112=If this script resolves to true, then associated stages is routed
100120=Write an item entry to an RSS Channel
***************
*** 305,309 ****
100133=Error writing: {0}
100134=Regenerated RSS file: {0}
! 100140=Email the document using SMTP
100141=The SMTP host to communicate with
100142=The email address of the sender
--- 306,310 ----
100133=Error writing: {0}
100134=Regenerated RSS file: {0}
! 100140=Email the document using the SMTP protocol. This will allow for documents to be transmitted via email to a number of recipients. The document is normally the body of the email but could also be an attachment.
100141=The SMTP host to communicate with
100142=The email address of the sender
***************
*** 323,330 ****
100210=Velocity templatize the document
100211=Error templatizing the document
! 100220=Use XPath expressions to extract attributes from the document
100221=The name of the xpath configuration option is the attribute to assign to the document
100222=The results of the xpath expression is the value to assign to the attribute
! 100230=Split the XML document using xpath expressions. This will result in a number of documents being forwarded to the next stage
100231=Omit the XML PI declaration from the output document
100232=Indent the output document
--- 324,331 ----
100210=Velocity templatize the document
100211=Error templatizing the document
! 100220=Use XPath expressions to extract nodes from the document and store them as attributes on the document. This pipeline stage is widely use when data needs to be extracted from XML documents for router or calculation steps. The extracted attributes can be quickly and easily obtained using velocity $document.get and from the scripting stages. Routing decisions based on the document contents are also possible using this technique.
100221=The name of the xpath configuration option is the attribute to assign to the document
100222=The results of the xpath expression is the value to assign to the attribute
! 100230=Split the XML document using xpath expressions. This will result in a number of documents being forwarded to the next stage. This is useful when each of the split nodes represents a document that needs to be actioned. An example would be splitting out each of the orders from an XML document that is a collection of orders.
100231=Omit the XML PI declaration from the output document
100232=Indent the output document
***************
*** 338,342 ****
100270=Compress the document
100271=Error during decompression
! 100289=Execute script during pipelining
100290=Scripting language
100291=Script to be executed
--- 339,343 ----
100270=Compress the document
100271=Error during decompression
! 100289=Execute a user supplied script. This pipeline stage enables pipeline developers to create and manipulate documents in novel and unforeseen ways.
100290=Scripting language
100291=Script to be executed
|
|
From: Bruce M. <br...@mc...> - 2003-08-16 00:45:37
|
David, PLease add some examples!!! That would be great. Add them to the chapter2.xml file and then it will be generated for you. Take a look at how the other examples are structured (you may need to become familiar with the DocBook DTD). regards, Bruce On Thursday 14 August 2003 08:09 pm, David Glick wrote: > Hi Bruce, > > I'd like to add examples to the Users Guide to cover at the least the > issues that I faced coming up to speed with some of these stages. I'd like > to add the examples in the Pipeline stage types section to keep them with > the stage they illustrate. However, it looks like this section is > auto-generated from the source. How would you recommend I proceed? > > > Thanks, > > David |
|
From: <kg...@us...> - 2003-08-15 22:00:57
|
Update of /cvsroot/babeldoc/babeldoc/readme/sql/postgresql In directory sc8-pr-cvs1:/tmp/cvs-serv11104/readme/sql/postgresql Added Files: journal-tables.sql Log Message: Add PostgreSQL journal implementation. --- NEW FILE: journal-tables.sql --- DROP TABLE journal CASCADE ; CREATE TABLE journal ( jrn_log_id INTEGER NOT NULL, jrn_log_step INTEGER NOT NULL, jrn_data BYTEA, PRIMARY KEY (jrn_log_id, jrn_log_step) ); DROP TABLE journal_data CASCADE ; CREATE TABLE journal_data ( jda_log_id INTEGER NOT NULL, jda_log_step INTEGER NOT NULL, jda_name TEXT, jda_value TEXT, PRIMARY KEY (jda_log_id, jda_log_step, jda_name) ); DROP TABLE log CASCADE ; CREATE TABLE log ( log_id INTEGER NOT NULL, log_step INTEGER NOT NULL, log_operation TEXT NOT NULL, log_datetime BIGINT NOT NULL, log_other_data TEXT, log_pipeline TEXT, log_additional TEXT, PRIMARY KEY (log_id, log_step) ); CREATE SEQUENCE log_seq; |
|
From: <kg...@us...> - 2003-08-15 22:00:43
|
Update of /cvsroot/babeldoc/babeldoc/modules/sql/config/sql
In directory sc8-pr-cvs1:/tmp/cvs-serv11104/modules/sql/config/sql
Modified Files:
query.properties
Log Message:
Add PostgreSQL journal implementation.
Index: query.properties
===================================================================
RCS file: /cvsroot/babeldoc/babeldoc/modules/sql/config/sql/query.properties,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** query.properties 14 Jul 2003 22:43:29 -0000 1.2
--- query.properties 15 Aug 2003 21:22:04 -0000 1.3
***************
*** 2,5 ****
--- 2,6 ----
tableKeyUpdate=update table_key set key_val = ? where key_table_name = ?
tableKeyCreate=insert into table_key values( ? ,0)
+ logKeyGet-postgresql=select nextval('log_seq')
journalLogInsert=insert into log (log_id, log_step, log_datetime, log_operation, log_other_data, log_pipeline, log_additional) values ( ? , ? , ? , ? , ? , ? , ? )
journalLogMaxStep=select max(log_step) from log where log_id=?
|
|
From: <kg...@us...> - 2003-08-15 22:00:42
|
Update of /cvsroot/babeldoc/babeldoc/modules/sql/src/com/babeldoc/sql/journal
In directory sc8-pr-cvs1:/tmp/cvs-serv11104/modules/sql/src/com/babeldoc/sql/journal
Added Files:
PostgreSqlJournal.java
Log Message:
Add PostgreSQL journal implementation.
--- NEW FILE: PostgreSqlJournal.java ---
package com.babeldoc.sql.journal;
import java.io.ByteArrayOutputStream;
import java.io.ObjectOutputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.babeldoc.core.I18n;
import com.babeldoc.core.LogService;
import com.babeldoc.core.journal.IJournalTicket;
import com.babeldoc.core.journal.JournalOperation;
import com.babeldoc.core.journal.JournalTicket;
import com.babeldoc.core.journal.JournalException;
import com.babeldoc.core.journal.query.JournalQuery;
import com.babeldoc.core.pipeline.PipelineDocument;
import com.babeldoc.core.resource.ResourceException;
import com.babeldoc.sql.util.SqlQueryManager;
/**
* PostgreSqlJournal.java
*
*
* Created: Thu May 29 15:50:20 2003
*
* @author <a href="mailto:kg...@ga...">Ken Geis</a>
*/
public class PostgreSqlJournal extends GenericSqlJournal
{
public final static String DELTA_MAKEROW =
"journalAddBlankDataRow-postgresql";
public final static String LOG_KEY_GET = "logKeyGet-postgresql";
/**
* Write a document to the rdbms. Same as in MySqlJournal, but it's
* probably not a good idea to just subclass it.
*
* @param con the connection
* @param id the log id
* @param step the log step
*/
protected void writeDelta (Connection conn, long id, long step,
PipelineDocument doc) throws SQLException
{
String insertStmt = SqlQueryManager.getSqlQuery(DELTA_MAKEROW);
PreparedStatement stmt = null;
ResultSet rs = null;
ByteArrayOutputStream baos = null;
try
{
// Write the document object to an array of bytes
baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(doc);
oos.flush();
byte[] docData = baos.toByteArray();
// Now write the row
stmt = conn.prepareStatement(insertStmt);
stmt.setLong(1, id);
stmt.setLong(2, step);
stmt.setBytes(3, docData);
stmt.execute();
writeExtraData(conn, id, step, doc);
}
catch (Exception e)
{
throw new SQLException(e.toString());
}
finally
{
try
{
if (rs != null) rs.close();
}
catch (Exception ex)
{
LogService.getInstance().logError(I18n.get("sql.403"), ex);
}
try
{
if (stmt != null) stmt.close();
}
catch (Exception ex)
{
LogService.getInstance().logError(I18n.get("sql.403"), ex);
}
try
{
if (baos != null) baos.close();
}
catch (Exception ex)
{
LogService.getInstance().logError(I18n.get("sql.403"), ex);
}
}
}
/**
* getTicketsProcessQueryString concoct the query string from the bits and
* pieces. Calls back to the getTicketsProcess...
*
* @param jQuery
* @return
*/
protected StringBuffer getTicketsProcessQueryString (JournalQuery jQuery)
{
StringBuffer query = super.getTicketsProcessQueryString(jQuery);
// Limit stuff
if (jQuery.getStartIndex() > 0)
{
query.append(" limit " + jQuery.getStartIndex() +
" offset " + jQuery.getNumResults());
// HACK ALERT - need to do this to stop the parent skipping
// on the result set.
//
// The above comment was taken from the MySQL implementation.
// I don't know how it effects PostgreSQL.
jQuery.setStartIndex(0);
}
return query;
}
/**
* Get a ticket for tracking a document. This implementation logs the
* operation to the log file and creates a directory for operations on
* the ticket.
*
* @return
* @throws JournalException
*/
public IJournalTicket newTicket () throws JournalException
{
try
{
//getLog().debug("[PostgreSqlJournal.newTicket] called");
long nextVal = getNewLogID();
IJournalTicket ticket = new JournalTicket(nextVal);
// Log the operation
log(ticket, JournalOperation.newTicket, null, null, null);
return ticket;
}
catch (Exception ex)
{
throw new JournalException("[GenericSqlJournal.newTicket]", ex);
}
}
/**
* Get a ticket for tracking a document. This implementation logs the
* operation to the log file and creates a directory for operations on
* the ticket.
*
* @param parentTicket
* @return
* @throws JournalException
*/
public IJournalTicket forkTicket (IJournalTicket parentTicket)
throws JournalException
{
try
{
long nextVal = getNewLogID();
IJournalTicket ticket = new JournalTicket(nextVal);
// Log the operation
log(ticket, JournalOperation.forkTicket, parentTicket.toString(),
null, null);
return ticket;
} catch (Exception ex) {
throw new JournalException("[GenericSqlJournal.forkTicket]", ex);
}
}
protected long getNewLogID ()
throws SQLException, ResourceException
{
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try
{
String SQL = SqlQueryManager.getSqlQuery(LOG_KEY_GET);
//getLog().debug("[PostgreSqlJournal.newTicket] called");
conn = (Connection) resource.checkOut();
stmt = conn.prepareStatement(SQL);
rs = stmt.executeQuery();
rs.next();
long nextVal = rs.getLong(1);
return nextVal;
}
finally
{
try
{
if (rs != null) rs.close();
}
catch (Exception ex)
{
LogService.getInstance().logError(I18n.get("sql.403"), ex);
}
try
{
if (stmt != null) stmt.close();
}
catch (Exception ex)
{
LogService.getInstance().logError(I18n.get("sql.403"), ex);
}
try
{
if (conn != null) resource.checkIn(conn);
}
catch (Exception ex)
{
LogService.getInstance().logError(I18n.get("sql.403"), ex);
}
}
}
}
|
|
From: <kg...@us...> - 2003-08-15 21:52:07
|
Update of /cvsroot/babeldoc/babeldoc/modules/sql/src/com/babeldoc/sql/pipeline/stage
In directory sc8-pr-cvs1:/tmp/cvs-serv10670/modules/sql/src/com/babeldoc/sql/pipeline/stage
Modified Files:
SqlEnrichPipelineStage.java
Log Message:
Take return clause out of finally block. Would cause exceptions to be ignored.
Index: SqlEnrichPipelineStage.java
===================================================================
RCS file: /cvsroot/babeldoc/babeldoc/modules/sql/src/com/babeldoc/sql/pipeline/stage/SqlEnrichPipelineStage.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -d -r1.15 -r1.16
*** SqlEnrichPipelineStage.java 15 Aug 2003 00:25:30 -0000 1.15
--- SqlEnrichPipelineStage.java 15 Aug 2003 21:19:57 -0000 1.16
***************
*** 360,366 ****
}
}
-
- return result;
}
}
}
--- 360,366 ----
}
}
}
+
+ return result;
}
}
|
|
From: <kg...@us...> - 2003-08-15 21:24:32
|
Update of /cvsroot/babeldoc/babeldoc/modules/sql/config/service In directory sc8-pr-cvs1:/tmp/cvs-serv11104/modules/sql/config/service Modified Files: query.properties Log Message: Add PostgreSQL journal implementation. Index: query.properties =================================================================== RCS file: /cvsroot/babeldoc/babeldoc/modules/sql/config/service/query.properties,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** query.properties 14 Jul 2003 22:43:29 -0000 1.2 --- query.properties 15 Aug 2003 21:22:04 -0000 1.3 *************** *** 5,8 **** --- 5,9 ---- Journal.mysql=com.babeldoc.sql.journal.MySqlJournal Journal.oracle=com.babeldoc.sql.journal.OracleJournal + Journal.postgresql=com.babeldoc.sql.journal.PostgreSqlJournal Resource.jdbc=com.babeldoc.sql.resource.SimpleJdbc |
|
From: David G. <dg...@co...> - 2003-08-15 21:10:45
|
XMLmind couldn't open it, I assume because of the '&chapterxx' strings. Amaya only displayed the first couple of sentences. Bluefish opened it without a problem, but then it's not WYSIWYG... Kxmleditor crashed. Of course, I haven't gotten it to run yet... :-) David On Friday 15 August 2003 1:26 pm, McDonald, Bruce wrote: > What happens if you edit the document from the readme/userguide.xml file? > > -----Original Message----- > From: David Glick [mailto:dg...@co...] > Sent: Friday, August 15, 2003 4:35 PM > To: Dejan Krsmanovic; McDonald, Bruce; > bab...@li... > Subject: Re: [Babeldoc-devel] Using Journal to monitor status...? > > > Ah! That was the clue I needed. I had tried several XML editors, and none > would work with chapter 2. By commenting out the lines beginning with an > '&' as Dejan indicated, all the editors could work with it (note that I > also took Bruce's suggestion of 'vi' in order to comment out the lines...). > > FYI, I'm using XMLmind because it seems to be the closest to a true WYSIWYG > editor. I'll let you know if I change my mind later... > > > David > > On Friday 15 August 2003 1:02 pm, Dejan Krsmanovic wrote: > > Try OpenOffice 1.1. It supports "simplified DocBook". > > However, I could use it with our documents except two > > chapters that conatins generated documentation. You > > should manualy remove &scanners or &stages from the > > file and then you can use OpenOffice. When you finish > > editig just return it back. > > > > Dejan > > > > --- David Glick <dg...@co...> wrote: > > > Thanks, Bruce. Throwing an exception in a Script > > > stage gives me exactly what > > > I need. FYI, it seems that the logic for > > > failOnError is exactly the opposite > > > as described in the Users Guide, in that my testing > > > seems to indicate that it > > > defaults to true unless explicitly set to false. > > > > > > Speaking of the Users Guide, I'm having an > > > interesting time finding something > > > that will allow me to edit the docbook file in a > > > WYSIWYG format. Being new > > > to docbook, can I ask what you use (preferably Java > > > or Linux-based)? > > > > > > > > > Thanks again, > > > > > > David > > > > > > On Friday 15 August 2003 11:12 am, McDonald, Bruce > > > > > > wrote: > > > > All seems good - In in specialized processing like > > > > > > this - The Scripting > > > > > > > stage is your friend. > > > > > > > > > > > > See comments inline: > > > > > > > > 1. I understand that a stage that fails will force > > > > > > a FAIL status. However, > > > > > > > what I'm trying to do is force a FAIL status when > > > > > > a stage completes > > > > > > > successfully, but the application detects an > > > > > > error. For example, in my > > > > > > > case I post SOAP messages, and if the response is > > > > > > a SOAPFAULT, I want to > > > > > > > force an error into the journal and stop the > > > > > > pipeline processing. My > > > > > > > question is: can I do this via a script stage (and > > > > > > if so, how), or must I > > > > > > > create a new stage type to support it? > > > > > > > > > > > > If you throw an exception from the pipelinestage - > > > > > > that stage will write a > > > > > > > failed to the journal. You might need to expand > > > > > > the SoapWriter stage and > > > > > > > add a config option like 'failOnFault' (default > > > > > > false) to do this. <<<< > > > > > > > 2. I also understand about setting the 'tracked' > > > > > > attribute for the stages. > > > > > > > The question I have regards the use of the journal > > > > > > tool. Using it to view > > > > > > > entries, is there any indication that a particular > > > > > > entry in the journal > > > > > > > contains a tracked document? The reason is that, > > > > > > in the case of a failure, > > > > > > > I expect the operator to do the following: > > > > > > > > a. View the journal entries to determine which > > > > > > stage failed. > > > > > > > b. Correct the cause of the failure. > > > > c. Assuming the problem was not due to the > > > > > > document, replay the journal > > > > > > > from the stage that failed. If the particular > > > > > > stage that failed is not > > > > > > > tracking the document, I assume he will need to > > > > > > find the closest previous > > > > > > > stage that has a document associated with it, and > > > > > > replay it from that > > > > > > > point. If this is correct, he'll need some way to > > > > > > determine which stage to > > > > > > > use. If this is not correct, how should I be > > > > > > using the replay > > > > > > > functionality? > > > > > > > > > > > > YOu might need to write a specialized journal view > > > > > > to do this. I am not > > > > > > > sure if the default tools support this. <<<< > > > > > > > > Thanks again for your help, > > > > > > > > David > > > > > > > > On Friday 15 August 2003 12:05 am, Dejan > > > > > > Krsmanovic wrote: > > > > > Hi David, > > > > > > > > > > > Hello to the Great and Powerful List, > > > > > > > > > > > > I would like to use the journal to track all > > > > > > documents through the > > > > > > > > > system. > > > > > > > > > > In > > > > > > > > > > > order to do this, I'll need to do the > > > > > > following: > > > > > > 1. If I encounter an application error, I'd > > > > > > like to force a FAIL status > > > > > > > > into > > > > > > > > > > > the Journal, with an appropriate error > > > > > > message. Is there a way to do > > > > > > > > this? > > > > > > > > > > All pipeline stages by default forces FAIL > > > > > > status in case of error. Also, > > > > > > > > processing > > > > > is stopped in case of error. This can be changed > > > > > > using errorStage and > > > > > > > > failOnError > > > > > config options. I think there is a section about > > > > > > this is User Guide. > > > > > > > > > 2. I'll be using pretty large documents for > > > > > > some of my operations, so I > > > > > > > > don't > > > > > > > > > > > want to track it in every stage; only those > > > > > > stages where it will be > > > > > > > > > transformed in some way. Is there anyway to > > > > > > know from the journal > > > > > > > > > which stages track document? This will > > > > > > simplify things once I turn > > > > > > > > > over > > > > > > > > > > monitoring > > > > > > > > > > > of the system to the client. > > > > > > > > > > By default documents are NOT tracked. If you > > > > > > want to track documents you > > > > > > > > should > > > > > use tracked config option which is false by > > > > > > default > > > > > > > > > 3. Also, is the document tracked on entry to > > > > > > the stage or on exit from > > > > > > > > > it? > > > > > > > > > > In > > > > > > > > > > > other words, is tracking saving the document > > > > > > before any transformation > > > > > > > > > is applied by the stage, or after it's > > > > > > transformed? > > > > > > > > Before. > > > > > > > > > > > 4. I would like to organize pipeline fragments > > > > > > to operate as > > > > > > > > > subroutines > > > > > > > > > > that > > > > > > > > > > > can be called by multiple stages, which I > > > > > > believe that I can now do > > > > > > > > > with > > > > > > > > > > the > > > > > > > > > > > updated CallStage functionality. I would also > > > > > > like to place these > > > > > > > > fragments > > > > > > > > > > > in a separate file so that I can use them in > > > > > > multiple pipeline > > > > > > > > > configurations. Can this be done? > > > > > > > > > > This should be possible now, right Bruce? Bruce > > > > > > and I have discussion > > > > > > > > about that few > > > > > months ago and I think he has implemented it. I > > > > > > havent used it so I am > > > > > > > > not sure if it is working. > > > > > > > > > > > > > > > Dejan > > > > > > > > > > > Thanks, > > > > > > > > > > > > David > > > > > > > > > > > > -- > > > > > > David Glick > > > > > > Transmit Consulting, Inc > > > > > > 619-475-4052 > > > > > > dg...@tr... > > > > === message truncated === > > > > > > __________________________________ > > Do you Yahoo!? > > Yahoo! SiteBuilder - Free, easy-to-use web site design software > > http://sitebuilder.yahoo.com > > > > > > ------------------------------------------------------- > > This SF.Net email sponsored by: Free pre-built ASP.NET sites including > > Data Reports, E-commerce, Portals, and Forums are available now. > > Download today and enter to win an XBOX or Visual Studio .NET. > > http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/ > >01 _______________________________________________ > > Babeldoc-devel mailing list > > Bab...@li... > > https://lists.sourceforge.net/lists/listinfo/babeldoc-devel -- David Glick Transmit Consulting, Inc 619-475-4052 dg...@tr... |
|
From: David G. <dg...@co...> - 2003-08-15 20:59:45
|
I'm using the standard version because I'm just trying it out. If it looks like a keeper, I'll buy the professional version (AFTER I get paid from this project.. 220 USD??!!??). David On Friday 15 August 2003 1:42 pm, McDonald, Bruce wrote: > Are you using the standard or professional versions of XMLMind. XMLMind > professional *claims* to be able to edit "modular" documents but the > standard version (which I downloaded) cannot do this. > > I think this tool is great - it seems to be able to very nicely handle > docbook and really makes a neat job of creating DocBook documentation. I > would recommend others getting this tool: > > http://www.xmlmind.com/xmleditor/ > > regards, > Bruce. > > -----Original Message----- > From: David Glick [mailto:dg...@co...] > Sent: Friday, August 15, 2003 4:50 PM > To: McDonald, Bruce; Dejan Krsmanovic; > bab...@li... > Subject: Re: [Babeldoc-devel] Using Journal to monitor status...? > > > XMLmind couldn't open it, I assume because of the '&chapterxx' strings. > Amaya only displayed the first couple of sentences. > Bluefish opened it without a problem, but then it's not WYSIWYG... > Kxmleditor crashed. Of course, I haven't gotten it to run yet... :-) > > > David > > On Friday 15 August 2003 1:26 pm, McDonald, Bruce wrote: > > What happens if you edit the document from the readme/userguide.xml file? > > > > -----Original Message----- > > From: David Glick [mailto:dg...@co...] > > Sent: Friday, August 15, 2003 4:35 PM > > To: Dejan Krsmanovic; McDonald, Bruce; > > bab...@li... > > Subject: Re: [Babeldoc-devel] Using Journal to monitor status...? > > > > > > Ah! That was the clue I needed. I had tried several XML editors, and > > none would work with chapter 2. By commenting out the lines beginning > > with an '&' as Dejan indicated, all the editors could work with it (note > > that I also took Bruce's suggestion of 'vi' in order to comment out the > > lines...). > > > > FYI, I'm using XMLmind because it seems to be the closest to a true > > WYSIWYG editor. I'll let you know if I change my mind later... > > > > > > David > > > > On Friday 15 August 2003 1:02 pm, Dejan Krsmanovic wrote: > > > Try OpenOffice 1.1. It supports "simplified DocBook". > > > However, I could use it with our documents except two > > > chapters that conatins generated documentation. You > > > should manualy remove &scanners or &stages from the > > > file and then you can use OpenOffice. When you finish > > > editig just return it back. > > > > > > Dejan > > > > > > --- David Glick <dg...@co...> wrote: > > > > Thanks, Bruce. Throwing an exception in a Script > > > > stage gives me exactly what > > > > I need. FYI, it seems that the logic for > > > > failOnError is exactly the opposite > > > > as described in the Users Guide, in that my testing > > > > seems to indicate that it > > > > defaults to true unless explicitly set to false. > > > > > > > > Speaking of the Users Guide, I'm having an > > > > interesting time finding something > > > > that will allow me to edit the docbook file in a > > > > WYSIWYG format. Being new > > > > to docbook, can I ask what you use (preferably Java > > > > or Linux-based)? > > > > > > > > > > > > Thanks again, > > > > > > > > David > > > > > > > > On Friday 15 August 2003 11:12 am, McDonald, Bruce > > > > > > > > wrote: > > > > > All seems good - In in specialized processing like > > > > > > > > this - The Scripting > > > > > > > > > stage is your friend. > > > > > > > > > > > > > > > See comments inline: > > > > > > > > > > 1. I understand that a stage that fails will force > > > > > > > > a FAIL status. However, > > > > > > > > > what I'm trying to do is force a FAIL status when > > > > > > > > a stage completes > > > > > > > > > successfully, but the application detects an > > > > > > > > error. For example, in my > > > > > > > > > case I post SOAP messages, and if the response is > > > > > > > > a SOAPFAULT, I want to > > > > > > > > > force an error into the journal and stop the > > > > > > > > pipeline processing. My > > > > > > > > > question is: can I do this via a script stage (and > > > > > > > > if so, how), or must I > > > > > > > > > create a new stage type to support it? > > > > > > > > > > > > > > > If you throw an exception from the pipelinestage - > > > > > > > > that stage will write a > > > > > > > > > failed to the journal. You might need to expand > > > > > > > > the SoapWriter stage and > > > > > > > > > add a config option like 'failOnFault' (default > > > > > > > > false) to do this. <<<< > > > > > > > > > 2. I also understand about setting the 'tracked' > > > > > > > > attribute for the stages. > > > > > > > > > The question I have regards the use of the journal > > > > > > > > tool. Using it to view > > > > > > > > > entries, is there any indication that a particular > > > > > > > > entry in the journal > > > > > > > > > contains a tracked document? The reason is that, > > > > > > > > in the case of a failure, > > > > > > > > > I expect the operator to do the following: > > > > > > > > > > a. View the journal entries to determine which > > > > > > > > stage failed. > > > > > > > > > b. Correct the cause of the failure. > > > > > c. Assuming the problem was not due to the > > > > > > > > document, replay the journal > > > > > > > > > from the stage that failed. If the particular > > > > > > > > stage that failed is not > > > > > > > > > tracking the document, I assume he will need to > > > > > > > > find the closest previous > > > > > > > > > stage that has a document associated with it, and > > > > > > > > replay it from that > > > > > > > > > point. If this is correct, he'll need some way to > > > > > > > > determine which stage to > > > > > > > > > use. If this is not correct, how should I be > > > > > > > > using the replay > > > > > > > > > functionality? > > > > > > > > > > > > > > > YOu might need to write a specialized journal view > > > > > > > > to do this. I am not > > > > > > > > > sure if the default tools support this. <<<< > > > > > > > > > > Thanks again for your help, > > > > > > > > > > David > > > > > > > > > > On Friday 15 August 2003 12:05 am, Dejan > > > > > > > > Krsmanovic wrote: > > > > > > Hi David, > > > > > > > > > > > > > Hello to the Great and Powerful List, > > > > > > > > > > > > > > I would like to use the journal to track all > > > > > > > > documents through the > > > > > > > > > > > system. > > > > > > > > > > > > In > > > > > > > > > > > > > order to do this, I'll need to do the > > > > > > > > following: > > > > > > > 1. If I encounter an application error, I'd > > > > > > > > like to force a FAIL status > > > > > > > > > > into > > > > > > > > > > > > > the Journal, with an appropriate error > > > > > > > > message. Is there a way to do > > > > > > > > > > this? > > > > > > > > > > > > All pipeline stages by default forces FAIL > > > > > > > > status in case of error. Also, > > > > > > > > > > processing > > > > > > is stopped in case of error. This can be changed > > > > > > > > using errorStage and > > > > > > > > > > failOnError > > > > > > config options. I think there is a section about > > > > > > > > this is User Guide. > > > > > > > > > > > 2. I'll be using pretty large documents for > > > > > > > > some of my operations, so I > > > > > > > > > > don't > > > > > > > > > > > > > want to track it in every stage; only those > > > > > > > > stages where it will be > > > > > > > > > > > transformed in some way. Is there anyway to > > > > > > > > know from the journal > > > > > > > > > > > which stages track document? This will > > > > > > > > simplify things once I turn > > > > > > > > > > > over > > > > > > > > > > > > monitoring > > > > > > > > > > > > > of the system to the client. > > > > > > > > > > > > By default documents are NOT tracked. If you > > > > > > > > want to track documents you > > > > > > > > > > should > > > > > > use tracked config option which is false by > > > > > > > > default > > > > > > > > > > > 3. Also, is the document tracked on entry to > > > > > > > > the stage or on exit from > > > > > > > > > > > it? > > > > > > > > > > > > In > > > > > > > > > > > > > other words, is tracking saving the document > > > > > > > > before any transformation > > > > > > > > > > > is applied by the stage, or after it's > > > > > > > > transformed? > > > > > > > > > > Before. > > > > > > > > > > > > > 4. I would like to organize pipeline fragments > > > > > > > > to operate as > > > > > > > > > > > subroutines > > > > > > > > > > > > that > > > > > > > > > > > > > can be called by multiple stages, which I > > > > > > > > believe that I can now do > > > > > > > > > > > with > > > > > > > > > > > > the > > > > > > > > > > > > > updated CallStage functionality. I would also > > > > > > > > like to place these > > > > > > > > > > fragments > > > > > > > > > > > > > in a separate file so that I can use them in > > > > > > > > multiple pipeline > > > > > > > > > > > configurations. Can this be done? > > > > > > > > > > > > This should be possible now, right Bruce? Bruce > > > > > > > > and I have discussion > > > > > > > > > > about that few > > > > > > months ago and I think he has implemented it. I > > > > > > > > havent used it so I am > > > > > > > > > > not sure if it is working. > > > > > > > > > > > > > > > > > > Dejan > > > > > > > > > > > > > Thanks, > > > > > > > > > > > > > > David > > > > > > > > > > > > > > -- > > > > > > > David Glick > > > > > > > Transmit Consulting, Inc > > > > > > > 619-475-4052 > > > > > > > dg...@tr... > > > > > > === message truncated === > > > > > > > > > __________________________________ > > > Do you Yahoo!? > > > Yahoo! SiteBuilder - Free, easy-to-use web site design software > > > http://sitebuilder.yahoo.com > > > > > > > > > ------------------------------------------------------- > > > This SF.Net email sponsored by: Free pre-built ASP.NET sites including > > > Data Reports, E-commerce, Portals, and Forums are available now. > > > Download today and enter to win an XBOX or Visual Studio .NET. > > > http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_0 > > >1/ 01 _______________________________________________ > > > Babeldoc-devel mailing list > > > Bab...@li... > > > https://lists.sourceforge.net/lists/listinfo/babeldoc-devel -- David Glick Transmit Consulting, Inc 619-475-4052 dg...@tr... |
|
From: McDonald, B. <Bru...@ba...> - 2003-08-15 20:51:13
|
Are you using the standard or professional versions of XMLMind. XMLMind professional *claims* to be able to edit "modular" documents but the standard version (which I downloaded) cannot do this. I think this tool is great - it seems to be able to very nicely handle docbook and really makes a neat job of creating DocBook documentation. I would recommend others getting this tool: http://www.xmlmind.com/xmleditor/ regards, Bruce. -----Original Message----- From: David Glick [mailto:dg...@co...] Sent: Friday, August 15, 2003 4:50 PM To: McDonald, Bruce; Dejan Krsmanovic; bab...@li... Subject: Re: [Babeldoc-devel] Using Journal to monitor status...? XMLmind couldn't open it, I assume because of the '&chapterxx' strings. Amaya only displayed the first couple of sentences. Bluefish opened it without a problem, but then it's not WYSIWYG... Kxmleditor crashed. Of course, I haven't gotten it to run yet... :-) David On Friday 15 August 2003 1:26 pm, McDonald, Bruce wrote: > What happens if you edit the document from the readme/userguide.xml file? > > -----Original Message----- > From: David Glick [mailto:dg...@co...] > Sent: Friday, August 15, 2003 4:35 PM > To: Dejan Krsmanovic; McDonald, Bruce; > bab...@li... > Subject: Re: [Babeldoc-devel] Using Journal to monitor status...? > > > Ah! That was the clue I needed. I had tried several XML editors, and none > would work with chapter 2. By commenting out the lines beginning with an > '&' as Dejan indicated, all the editors could work with it (note that I > also took Bruce's suggestion of 'vi' in order to comment out the lines...). > > FYI, I'm using XMLmind because it seems to be the closest to a true WYSIWYG > editor. I'll let you know if I change my mind later... > > > David > > On Friday 15 August 2003 1:02 pm, Dejan Krsmanovic wrote: > > Try OpenOffice 1.1. It supports "simplified DocBook". > > However, I could use it with our documents except two > > chapters that conatins generated documentation. You > > should manualy remove &scanners or &stages from the > > file and then you can use OpenOffice. When you finish > > editig just return it back. > > > > Dejan > > > > --- David Glick <dg...@co...> wrote: > > > Thanks, Bruce. Throwing an exception in a Script > > > stage gives me exactly what > > > I need. FYI, it seems that the logic for > > > failOnError is exactly the opposite > > > as described in the Users Guide, in that my testing > > > seems to indicate that it > > > defaults to true unless explicitly set to false. > > > > > > Speaking of the Users Guide, I'm having an > > > interesting time finding something > > > that will allow me to edit the docbook file in a > > > WYSIWYG format. Being new > > > to docbook, can I ask what you use (preferably Java > > > or Linux-based)? > > > > > > > > > Thanks again, > > > > > > David > > > > > > On Friday 15 August 2003 11:12 am, McDonald, Bruce > > > > > > wrote: > > > > All seems good - In in specialized processing like > > > > > > this - The Scripting > > > > > > > stage is your friend. > > > > > > > > > > > > See comments inline: > > > > > > > > 1. I understand that a stage that fails will force > > > > > > a FAIL status. However, > > > > > > > what I'm trying to do is force a FAIL status when > > > > > > a stage completes > > > > > > > successfully, but the application detects an > > > > > > error. For example, in my > > > > > > > case I post SOAP messages, and if the response is > > > > > > a SOAPFAULT, I want to > > > > > > > force an error into the journal and stop the > > > > > > pipeline processing. My > > > > > > > question is: can I do this via a script stage (and > > > > > > if so, how), or must I > > > > > > > create a new stage type to support it? > > > > > > > > > > > > If you throw an exception from the pipelinestage - > > > > > > that stage will write a > > > > > > > failed to the journal. You might need to expand > > > > > > the SoapWriter stage and > > > > > > > add a config option like 'failOnFault' (default > > > > > > false) to do this. <<<< > > > > > > > 2. I also understand about setting the 'tracked' > > > > > > attribute for the stages. > > > > > > > The question I have regards the use of the journal > > > > > > tool. Using it to view > > > > > > > entries, is there any indication that a particular > > > > > > entry in the journal > > > > > > > contains a tracked document? The reason is that, > > > > > > in the case of a failure, > > > > > > > I expect the operator to do the following: > > > > > > > > a. View the journal entries to determine which > > > > > > stage failed. > > > > > > > b. Correct the cause of the failure. > > > > c. Assuming the problem was not due to the > > > > > > document, replay the journal > > > > > > > from the stage that failed. If the particular > > > > > > stage that failed is not > > > > > > > tracking the document, I assume he will need to > > > > > > find the closest previous > > > > > > > stage that has a document associated with it, and > > > > > > replay it from that > > > > > > > point. If this is correct, he'll need some way to > > > > > > determine which stage to > > > > > > > use. If this is not correct, how should I be > > > > > > using the replay > > > > > > > functionality? > > > > > > > > > > > > YOu might need to write a specialized journal view > > > > > > to do this. I am not > > > > > > > sure if the default tools support this. <<<< > > > > > > > > Thanks again for your help, > > > > > > > > David > > > > > > > > On Friday 15 August 2003 12:05 am, Dejan > > > > > > Krsmanovic wrote: > > > > > Hi David, > > > > > > > > > > > Hello to the Great and Powerful List, > > > > > > > > > > > > I would like to use the journal to track all > > > > > > documents through the > > > > > > > > > system. > > > > > > > > > > In > > > > > > > > > > > order to do this, I'll need to do the > > > > > > following: > > > > > > 1. If I encounter an application error, I'd > > > > > > like to force a FAIL status > > > > > > > > into > > > > > > > > > > > the Journal, with an appropriate error > > > > > > message. Is there a way to do > > > > > > > > this? > > > > > > > > > > All pipeline stages by default forces FAIL > > > > > > status in case of error. Also, > > > > > > > > processing > > > > > is stopped in case of error. This can be changed > > > > > > using errorStage and > > > > > > > > failOnError > > > > > config options. I think there is a section about > > > > > > this is User Guide. > > > > > > > > > 2. I'll be using pretty large documents for > > > > > > some of my operations, so I > > > > > > > > don't > > > > > > > > > > > want to track it in every stage; only those > > > > > > stages where it will be > > > > > > > > > transformed in some way. Is there anyway to > > > > > > know from the journal > > > > > > > > > which stages track document? This will > > > > > > simplify things once I turn > > > > > > > > > over > > > > > > > > > > monitoring > > > > > > > > > > > of the system to the client. > > > > > > > > > > By default documents are NOT tracked. If you > > > > > > want to track documents you > > > > > > > > should > > > > > use tracked config option which is false by > > > > > > default > > > > > > > > > 3. Also, is the document tracked on entry to > > > > > > the stage or on exit from > > > > > > > > > it? > > > > > > > > > > In > > > > > > > > > > > other words, is tracking saving the document > > > > > > before any transformation > > > > > > > > > is applied by the stage, or after it's > > > > > > transformed? > > > > > > > > Before. > > > > > > > > > > > 4. I would like to organize pipeline fragments > > > > > > to operate as > > > > > > > > > subroutines > > > > > > > > > > that > > > > > > > > > > > can be called by multiple stages, which I > > > > > > believe that I can now do > > > > > > > > > with > > > > > > > > > > the > > > > > > > > > > > updated CallStage functionality. I would also > > > > > > like to place these > > > > > > > > fragments > > > > > > > > > > > in a separate file so that I can use them in > > > > > > multiple pipeline > > > > > > > > > configurations. Can this be done? > > > > > > > > > > This should be possible now, right Bruce? Bruce > > > > > > and I have discussion > > > > > > > > about that few > > > > > months ago and I think he has implemented it. I > > > > > > havent used it so I am > > > > > > > > not sure if it is working. > > > > > > > > > > > > > > > Dejan > > > > > > > > > > > Thanks, > > > > > > > > > > > > David > > > > > > > > > > > > -- > > > > > > David Glick > > > > > > Transmit Consulting, Inc > > > > > > 619-475-4052 > > > > > > dg...@tr... > > > > === message truncated === > > > > > > __________________________________ > > Do you Yahoo!? > > Yahoo! SiteBuilder - Free, easy-to-use web site design software > > http://sitebuilder.yahoo.com > > > > > > ------------------------------------------------------- > > This SF.Net email sponsored by: Free pre-built ASP.NET sites including > > Data Reports, E-commerce, Portals, and Forums are available now. > > Download today and enter to win an XBOX or Visual Studio .NET. > > http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/ > >01 _______________________________________________ > > Babeldoc-devel mailing list > > Bab...@li... > > https://lists.sourceforge.net/lists/listinfo/babeldoc-devel -- David Glick Transmit Consulting, Inc 619-475-4052 dg...@tr... |
|
From: McDonald, B. <Bru...@ba...> - 2003-08-15 20:36:34
|
What happens if you edit the document from the readme/userguide.xml file? -----Original Message----- From: David Glick [mailto:dg...@co...] Sent: Friday, August 15, 2003 4:35 PM To: Dejan Krsmanovic; McDonald, Bruce; bab...@li... Subject: Re: [Babeldoc-devel] Using Journal to monitor status...? Ah! That was the clue I needed. I had tried several XML editors, and none would work with chapter 2. By commenting out the lines beginning with an '&' as Dejan indicated, all the editors could work with it (note that I also took Bruce's suggestion of 'vi' in order to comment out the lines...). FYI, I'm using XMLmind because it seems to be the closest to a true WYSIWYG editor. I'll let you know if I change my mind later... David On Friday 15 August 2003 1:02 pm, Dejan Krsmanovic wrote: > Try OpenOffice 1.1. It supports "simplified DocBook". > However, I could use it with our documents except two > chapters that conatins generated documentation. You > should manualy remove &scanners or &stages from the > file and then you can use OpenOffice. When you finish > editig just return it back. > > Dejan > > --- David Glick <dg...@co...> wrote: > > Thanks, Bruce. Throwing an exception in a Script > > stage gives me exactly what > > I need. FYI, it seems that the logic for > > failOnError is exactly the opposite > > as described in the Users Guide, in that my testing > > seems to indicate that it > > defaults to true unless explicitly set to false. > > > > Speaking of the Users Guide, I'm having an > > interesting time finding something > > that will allow me to edit the docbook file in a > > WYSIWYG format. Being new > > to docbook, can I ask what you use (preferably Java > > or Linux-based)? > > > > > > Thanks again, > > > > David > > > > On Friday 15 August 2003 11:12 am, McDonald, Bruce > > > > wrote: > > > All seems good - In in specialized processing like > > > > this - The Scripting > > > > > stage is your friend. > > > > > > > > > See comments inline: > > > > > > 1. I understand that a stage that fails will force > > > > a FAIL status. However, > > > > > what I'm trying to do is force a FAIL status when > > > > a stage completes > > > > > successfully, but the application detects an > > > > error. For example, in my > > > > > case I post SOAP messages, and if the response is > > > > a SOAPFAULT, I want to > > > > > force an error into the journal and stop the > > > > pipeline processing. My > > > > > question is: can I do this via a script stage (and > > > > if so, how), or must I > > > > > create a new stage type to support it? > > > > > > > > > If you throw an exception from the pipelinestage - > > > > that stage will write a > > > > > failed to the journal. You might need to expand > > > > the SoapWriter stage and > > > > > add a config option like 'failOnFault' (default > > > > false) to do this. <<<< > > > > > 2. I also understand about setting the 'tracked' > > > > attribute for the stages. > > > > > The question I have regards the use of the journal > > > > tool. Using it to view > > > > > entries, is there any indication that a particular > > > > entry in the journal > > > > > contains a tracked document? The reason is that, > > > > in the case of a failure, > > > > > I expect the operator to do the following: > > > > > > a. View the journal entries to determine which > > > > stage failed. > > > > > b. Correct the cause of the failure. > > > c. Assuming the problem was not due to the > > > > document, replay the journal > > > > > from the stage that failed. If the particular > > > > stage that failed is not > > > > > tracking the document, I assume he will need to > > > > find the closest previous > > > > > stage that has a document associated with it, and > > > > replay it from that > > > > > point. If this is correct, he'll need some way to > > > > determine which stage to > > > > > use. If this is not correct, how should I be > > > > using the replay > > > > > functionality? > > > > > > > > > YOu might need to write a specialized journal view > > > > to do this. I am not > > > > > sure if the default tools support this. <<<< > > > > > > Thanks again for your help, > > > > > > David > > > > > > On Friday 15 August 2003 12:05 am, Dejan > > > > Krsmanovic wrote: > > > > Hi David, > > > > > > > > > Hello to the Great and Powerful List, > > > > > > > > > > I would like to use the journal to track all > > > > documents through the > > > > > > > system. > > > > > > > > In > > > > > > > > > order to do this, I'll need to do the > > > > following: > > > > > 1. If I encounter an application error, I'd > > > > like to force a FAIL status > > > > > > into > > > > > > > > > the Journal, with an appropriate error > > > > message. Is there a way to do > > > > > > this? > > > > > > > > All pipeline stages by default forces FAIL > > > > status in case of error. Also, > > > > > > processing > > > > is stopped in case of error. This can be changed > > > > using errorStage and > > > > > > failOnError > > > > config options. I think there is a section about > > > > this is User Guide. > > > > > > > 2. I'll be using pretty large documents for > > > > some of my operations, so I > > > > > > don't > > > > > > > > > want to track it in every stage; only those > > > > stages where it will be > > > > > > > transformed in some way. Is there anyway to > > > > know from the journal > > > > > > > which stages track document? This will > > > > simplify things once I turn > > > > > > > over > > > > > > > > monitoring > > > > > > > > > of the system to the client. > > > > > > > > By default documents are NOT tracked. If you > > > > want to track documents you > > > > > > should > > > > use tracked config option which is false by > > > > default > > > > > > > 3. Also, is the document tracked on entry to > > > > the stage or on exit from > > > > > > > it? > > > > > > > > In > > > > > > > > > other words, is tracking saving the document > > > > before any transformation > > > > > > > is applied by the stage, or after it's > > > > transformed? > > > > > > Before. > > > > > > > > > 4. I would like to organize pipeline fragments > > > > to operate as > > > > > > > subroutines > > > > > > > > that > > > > > > > > > can be called by multiple stages, which I > > > > believe that I can now do > > > > > > > with > > > > > > > > the > > > > > > > > > updated CallStage functionality. I would also > > > > like to place these > > > > > > fragments > > > > > > > > > in a separate file so that I can use them in > > > > multiple pipeline > > > > > > > configurations. Can this be done? > > > > > > > > This should be possible now, right Bruce? Bruce > > > > and I have discussion > > > > > > about that few > > > > months ago and I think he has implemented it. I > > > > havent used it so I am > > > > > > not sure if it is working. > > > > > > > > > > > > Dejan > > > > > > > > > Thanks, > > > > > > > > > > David > > > > > > > > > > -- > > > > > David Glick > > > > > Transmit Consulting, Inc > > > > > 619-475-4052 > > > > > dg...@tr... > > === message truncated === > > > __________________________________ > Do you Yahoo!? > Yahoo! SiteBuilder - Free, easy-to-use web site design software > http://sitebuilder.yahoo.com > > > ------------------------------------------------------- > This SF.Net email sponsored by: Free pre-built ASP.NET sites including > Data Reports, E-commerce, Portals, and Forums are available now. > Download today and enter to win an XBOX or Visual Studio .NET. > http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01 > _______________________________________________ > Babeldoc-devel mailing list > Bab...@li... > https://lists.sourceforge.net/lists/listinfo/babeldoc-devel -- David Glick Transmit Consulting, Inc 619-475-4052 dg...@tr... |