
En fase de escritura...
jfts: el paquete de tareas
connection: las conexiones a bases de datos
tasksgroup: las tareas a realizar
filterRegExp: filtro de ficheros (y si se desea directorios también) basado en una expresión regular.
taskDelete: eliminar ficheros y subdirectorios de una ruta. Puede activarse la recursividad, y pueden aplicarse filtros.
taskCopy: copiar ficheros y subdirectorios de una ruta. Puede activarse la recursividad, y pueden aplicarse filtros.
taskMove: mover ficheros y subdirectorios de una ruta. Puede activarse la recursividad, y pueden aplicarse filtros.
taskDeleteFromTable: eliminar los ficheros de una ruta, cuyo nombre aparezca en los campos especificados de una consulta.
taskCopyFromTable: eliminar los ficheros de una ruta, cuyo nombre aparezca en los campos especificados de una consulta.
taskMoveFromTable: eliminar los ficheros de una ruta, cuyo nombre aparezca en los campos especificados de una consulta.
La configuración de jFTS puede realizarse desde un fichero XML y cargarse mediante la clase JFTSLoader.
El siguiente fichero define una conexión y un comando a ejecutar.
<jfts start="task0"> <connection id="conn1"> <class>org.gjt.mm.mysql.Driver</class> <string>jdbc:mysql://localhost/JFTS?user=user&password=pass</string> </connection> </jfts>
jfts
El elemento jfts
simboliza un objeto de la clase JFTS, que es el encargado de gestionar el LOG, las conexiones, y lanzar las diferentes tareas a realizar.
start: (obligatorio) es el nombre de la primera tarea a ejecutar.
connection
El elemento connection
simboliza un objeto de la clase DBConnection, que establece una posible conexión con una base de datos.
id: (obligatorio) es el identificador que se utilizará después para especificar a las tareas en qué base de datos (de cual a cual) deben actuar.
Elemento class: (obligatorio) es el nombre del driver JDBC.
Elemento string: (obligatorio) es la cadena de conexión a la base de datos.
<connection id="conn1"> <class>org.gjt.mm.mysql.Driver</class> <string>jdbc:mysql://localhost/jFTS?user=user&password=pass</string> </connection>
tasksgroup
El elemento tasksgroup
simboliza un objeto de la clase JTSTaskGroup, que se encarga de agrupar tareas concretas, y de gestionar el flujo de ejecución entre grupos de tareas.
Cada grupo de tareas puede agrupar una o varias tareas a realizar cuyo orden de lanzamiento sea irrelevante, y puede determinar cual será la siguiente tarea a lanzar.
id: (obligatorio) es el identificador que se utilizará para referirse a esta tarea.
onSuccess: (opcional) grupo de tareas a realizar si todo se ha ejecutado correctamente.
onError: (opcional) grupo de tareas a ejecutar si ha habido algún error.
onFinish: (opcional) grupo de tareas a ejecutar cuando se finalice la ejecución de todas las tareas.
Elementos task...: las tareas a realizar.
<tasksgroup id="task0"> <taskDelete id="task0d1" recursive="true" leave-empty="true"> <path>C:\filesB</path> </taskDelete> </tasksgroup>
filterRegExp
El subelemento filterRegExp
simboliza un objeto de la clase FTSFileFilterRegExp, que se encarga de filtrar los ficheros y directorios según coincida su nombre con una expresión regular.
exp: (obligatorio) es la expresión regular que se utilizará para las comparaciones con los nombres de ficheros y directorios.
exclude-folders: (opcional) si es true
todos los directorios serán excluidos de ser comparados, y en consecuencia se aceptarán todos.
Solo moverá, manteniendo la estructura de subdirectorios, los ficheros que comiencen por d
con la extensión .txt
y que estén en cualquier subdirectorios.
<tasksgroup id="task0"> <taskMove id="task2d1" recursive="true"> <filterRegExp exp="\d\.txt" exclude-folders="true" /> <path-src>C:\filesB</path-src> <path-trg>C:\filesC</path-trg> </taskMove> </tasksgroup>
taskDelete
El elemento taskDelete
simboliza un objeto de la clase FTSTaskDelete, que se encarga de eliminar los ficheros de una ruta. Se puede especificar si debe actuar recursivamente por sus subdirectorios. Se puede especificar si se desea un filtro basado en una expresión regular. Y se puede especificar si se puede abanodar el directorio vacío si todo su contenido fuera eliminado.
id: (opcional) útil si vas a activar el LOG.
recursive: (opcional) especifica si deben eliminarse ficheros contenidos en subdirectorios, y estos subdirectorios.
leave-empty: (opcional) si es true
no se eliminará el directorio inicial aunque quede vacío despues de eliminar el contenido indicado.
Elemento path: (obligatorio) especifica la ruta a eliminar (puede ser un directorio o un fichero en concreto).
<tasksgroup id="task0"> <taskDelete id="task0d1" recursive="true" leave-empty="true"> <path>C:\filesB</path> </taskDelete> <taskDelete id="task0d1" recursive="true" leave-empty="true"> <path>C:\filesC</path> </taskDelete> </tasksgroup>
taskCopy
El elemento taskCopy
simboliza un objeto de la clase FTSTaskCopy, que se encarga de copiar los ficheros de una ruta. Y se puede especificar si debe actuar recursivamente por sus subdirectorios. Se puede especificar si se desea un filtro basado en una expresión regular.
id: (opcional) útil si vas a activar el LOG.
recursive: (opcional) especifica si deben copiarse ficheros contenidos en subdirectorios, y estos subdirectorios.
Elemento path: (obligatorio) especifica la ruta a copiar (puede ser un directorio o un fichero en concreto).
<tasksgroup id="task0"> <taskCopy id="task1d1" recursive="true"> <path-src>C:\filesA</path-src> <path-trg>C:\filesB</path-trg> </taskCopy> </tasksgroup>
taskMove
El elemento taskMove
simboliza un objeto de la clase FTSTaskMove, que se encarga de mover los ficheros de una ruta. Y se puede especificar si debe actuar recursivamente por sus subdirectorios. Se puede especificar si se desea un filtro basado en una expresión regular.
id: (opcional) útil si vas a activar el LOG.
recursive: (opcional) especifica si deben moverse ficheros contenidos en subdirectorios, y estos subdirectorios.
Elemento path: (obligatorio) especifica la ruta a mover (puede ser un directorio o un fichero en concreto).
<tasksgroup id="task0"> <taskMove id="task1d1" recursive="true"> <path-src>C:\filesA</path-src> <path-trg>C:\filesB</path-trg> </taskMove> </tasksgroup>
taskDeleteFromTable
El elemento taskDeleteFromTable
simboliza un objeto de la clase FTSTaskDeleteFromTable, que se encarga de eliminar los ficheros de una ruta cuyo nombre aparezca en los campos de los registros resultantes de una consulta.
id: (opcional) útil si vas a activar el LOG.
conn: (obligatorio) especifica la conexion dónde ejecutar la consulta.
Elemento query: (obligatorio) consulta a ejecutar.
Elemento fields: (obligatorio) campos cuyos ficheros deben eliminarse.
Elemento path: (obligatorio) ruta dónde deben encontrarse dichos ficheros.
<tasksgroup id="task0"> <taskDeleteFromTable id="task2d1" conn="conn1"> <query>SELECT * FROM t_FilesA</query> <fields>sFileA, sFileB</fields> <path>C:\filesB</path> </taskDeleteFromTable> </tasksgroup>
taskCopyFromTable
El elemento taskCopyFromTable
simboliza un objeto de la clase FTSTaskCopyFromTable, que se encarga de copiar los ficheros de una ruta cuyo nombre aparezca en los campos de los registros resultantes de una consulta.
id: (opcional) útil si vas a activar el LOG.
conn: (obligatorio) especifica la conexion dónde ejecutar la consulta.
Elemento query: (obligatorio) consulta a ejecutar.
Elemento fields: (obligatorio) campos cuyos ficheros deben copiarse.
Elemento path-src: (obligatorio) ruta dónde deben leerse dichos ficheros.
Elemento path-trg: (obligatorio) ruta dónde deben copiarse dichos ficheros.
<tasksgroup id="task0"> <taskCopyFromTable id="task2d1" conn="conn1"> <query>SELECT * FROM t_FilesA</query> <fields>sFileA, sFileB</fields> <path-src>C:\filesB</path> <path-trg>C:\filesC</path> </taskCopyFromTable> </tasksgroup>
taskMoveFromTable
El elemento taskMoveFromTable
simboliza un objeto de la clase FTStaskMoveFromTable, que se encarga de mover los ficheros de una ruta cuyo nombre aparezca en los campos de los registros resultantes de una consulta.
id: (opcional) útil si vas a activar el LOG.
conn: (obligatorio) especifica la conexion dónde ejecutar la consulta.
Elemento query: (obligatorio) consulta a ejecutar.
Elemento fields: (obligatorio) campos cuyos ficheros deben copiarse.
Elemento path-src: (obligatorio) ruta dónde deben leerse dichos ficheros.
Elemento path-trg: (obligatorio) ruta dónde deben moverse dichos ficheros.
<tasksgroup id="task0"> <taskMoveFromTable id="task2d1" conn="conn1"> <query>SELECT * FROM t_FilesA</query> <fields>sFileA, sFileB</fields> <path-src>C:\filesB</path> <path-trg>C:\filesC</path> </taskMoveFromTable> </tasksgroup>