|
From: <mic...@us...> - 2003-11-18 01:29:31
|
Update of /cvsroot/babeldoc/babeldoc/modules/scanner/src/com/babeldoc/scanner
In directory sc8-pr-cvs1:/tmp/cvs-serv27504/modules/scanner/src/com/babeldoc/scanner
Modified Files:
Tag: TEMP_MIKEA
Scanner.java ScannerFactory.java
Log Message:
Added the ability to refresh the scanner configuration without stopping the application container.
Index: Scanner.java
===================================================================
RCS file: /cvsroot/babeldoc/babeldoc/modules/scanner/src/com/babeldoc/scanner/Scanner.java,v
retrieving revision 1.30
retrieving revision 1.30.2.1
diff -C2 -d -r1.30 -r1.30.2.1
*** Scanner.java 30 Sep 2003 14:30:47 -0000 1.30
--- Scanner.java 18 Nov 2003 01:29:28 -0000 1.30.2.1
***************
*** 96,101 ****
private ScannerWorkerScheduler scheduler;
public static final String SCANNER_FEEDER = "scanner";
! public String scannerConfig;
/**
--- 96,107 ----
private ScannerWorkerScheduler scheduler;
+ public static final int STATE_STOPPED = 0;
+ public static final int STATE_STARTED = 1;
+ public static final String stateDescriptions[] = new String[] {"scanner.002", "scanner.001"};
+
public static final String SCANNER_FEEDER = "scanner";
! private String scannerConfig;
!
! private int status = STATE_STOPPED;
/**
***************
*** 114,120 ****
*/
public void execute(CommandLine commandLine) {
- //super.execute(commandLine);
- // otherwise, continue with normal execution path
if (commandLine.hasOption('s')) {
scannerConfig = commandLine.getOptionValue('s');
--- 120,124 ----
***************
*** 217,223 ****
public void start() throws ScannerException {
factory = ScannerFactory.getInstance(scannerConfig);
- // log.logInfo("Starting feeder...");
- // feeder = new AsynchronousFeeder(queue);
try {
setFeeder(FeederFactory.getInstance().getFeeder(SCANNER_FEEDER));
--- 221,225 ----
***************
*** 242,246 ****
e);
sw[i].stop();
- //stop();
}
}
--- 244,247 ----
***************
*** 249,252 ****
--- 250,254 ----
stop();
}
+ status = Scanner.STATE_STARTED;
}
***************
*** 277,282 ****
getLog().logInfo("Stopping feeder");
}
!
!
}
--- 279,283 ----
getLog().logInfo("Stopping feeder");
}
! status = Scanner.STATE_STOPPED;
}
***************
*** 340,343 ****
--- 341,352 ----
public void setFeeder(IFeeder feeder) {
this.feeder = feeder;
+ }
+
+ public void refreshConfig() {
+ log.logInfo("Refreshing configuration");
+ log.logInfo("Status: " + I18n.get(stateDescriptions[status]));
+ if (status == Scanner.STATE_STOPPED) {
+ factory.flushConfig();
+ }
}
}
Index: ScannerFactory.java
===================================================================
RCS file: /cvsroot/babeldoc/babeldoc/modules/scanner/src/com/babeldoc/scanner/ScannerFactory.java,v
retrieving revision 1.11
retrieving revision 1.11.2.1
diff -C2 -d -r1.11 -r1.11.2.1
*** ScannerFactory.java 17 Sep 2003 21:58:58 -0000 1.11
--- ScannerFactory.java 18 Nov 2003 01:29:28 -0000 1.11.2.1
***************
*** 71,74 ****
--- 71,75 ----
import java.util.HashMap;
+ import com.babeldoc.core.config.ConfigService;
import com.babeldoc.core.I18n;
import com.babeldoc.core.LogService;
***************
*** 106,111 ****
*/
private ScannerFactory(String scannerConfigName) {
! log.logDebug("Creating ScannerFactory for scanner configuration " +
! scannerConfigName);
//load worker configuration
--- 107,111 ----
*/
private ScannerFactory(String scannerConfigName) {
! log.logDebug("Creating ScannerFactory for scanner configuration " + scannerConfigName);
//load worker configuration
***************
*** 253,256 ****
--- 253,268 ----
}
}
+ }
+
+ public void flushConfig() {
+ //factories.clear();
+ Iterator i = factories.keySet().iterator();
+ while (i.hasNext()) {
+ String removal = (String) i.next();
+ log.logInfo("Flushing " + removal);
+ factories.remove(removal);
+ ConfigService.clearCache(removal);
+ }
+ //factories.remove(configData.getName());
}
}
|