Commit 9b254e02 authored by LG's avatar LG

Verzeichnisüberwachung: SFTP-Verbindung...

git-svn-id: https://inovat-svn-server:8443/svn/NI-DAUZ-1/trunk@802 8a9b1199-d942-744a-a8b1-ac58f4d8385e
parent 15c764d5
......@@ -297,11 +297,11 @@ public class FTPKommunikation {
if (alleFiles != null) {
for (String dateiName : alleFiles) {
if ((!dateiName.endsWith(".lock")) && (dateiName.endsWith(".bearbeitet"))) {
if ((!dateiName.endsWith(Verzeichnisueberwachung.LOCK_DATEI)) && (dateiName.endsWith(Verzeichnisueberwachung.BEARBEITUNGS_DATEI))) {
if (downloadFileImVerschiebeverzeichnis(dateiName)) {
deleteAlteDatei(dateiName);
}
} else if (!dateiName.endsWith(".lock") && (!dateiName.endsWith("bearbeitet"))) {
} else if (!dateiName.endsWith(Verzeichnisueberwachung.LOCK_DATEI) && (!dateiName.endsWith(Verzeichnisueberwachung.BEARBEITUNGS_DATEI))) {
DavKommunikation davKomm = new DavKommunikation(_typBAStBand);
davKomm.anmeldenDaVSenderFTPVerzeichnisinformation(dateiName);
......
This diff is collapsed.
/*
* Copyright 2008 by inovat, Dipl.-Ing. H. C. Kni
* ALL RIGHTS RESERVED.
*
* 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 inovat OR ITS CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
* OR CONSEQUENTIAL DAMAGES (INCL., 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 (INCL.
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package de.inovat.kex.ftp;
//~ NICHT JDK IMPORTE =========================================================
import com.jcraft.jsch.Session;
import de.bsvrz.sys.funclib.debug.Debug;
import java.util.ArrayList;
import java.util.List;
//~ JDK IMPORTE ===============================================================
//~ KLASSEN ===================================================================
/**
* DOC: Kurzbeschreibung.
* <p/>
* DOC: Langbeschreibung.
*
* @author inovat, innovative systeme - verkehr - tunnel - technik
* @author Liliya Givorgizova (LG)
* @version $Revision: 0 $ / $Date: neu $ / ($Author: HCK $)
*/
public class SFTPKommunikation {
/** DebugLogger fr Debug-Ausgaben. */
private static final Debug debug = Debug.getLogger();
//~ FELDER ================================================================
/** Passwort zum Login auf den SFTP-Server. */
private String _passwd;
/** Port des SFTP-Servers. */
private int _port;
/** Temporre lokale Verzeichnis auf dem die Dateien kurz abgelebt werden. */
private String _tempVerzeichnis;
/** Typ des Systemobjekte fr den BASt-Band Import/Export. */
private String _typBAStBand;
/** Verzeichnis das berwacht wird. */
private String _ueberwachungsVerezichnis;
/** URL des SFTP-Servers. */
private String _url;
/** User fr den Login auf den SFTP-Server. */
private String _user;
/** Verzeichnis in das die Dateien nach erfolgreichem Import verschoben werden. */
private String _verschiebeVerzeichnis;
//~ KONSTRUKTOREN (und vom Konstruktor verwendete Methoden) ==============
/**
* Konstruktor.
*
* @param url URL des SFTP-Servers.
* @param port Port des SFTP-Servers.
* @param user User des SFTP-Servers.
* @param passwd Passwort fr den Login auf den SFTP-Server.
* @param typBAStBand Typ des Systemobjekte fr den BASt-Band Import/Export.
* @param ueberwachungsVerzeichnis das zu berwachende Verzeichnis.
* @param verschiebeVerzeichnis das Verzeichnis, in das die Dateien nach erfolgreichem Import verschoben werden.
* @param tempVerzeichnis temporre Verzeichnis.
*/
public SFTPKommunikation(String url, int port, String user, String passwd, String typBAStBand, String ueberwachungsVerzeichnis, String verschiebeVerzeichnis, String tempVerzeichnis) {
_url = url;
_port = port;
_user = user;
_passwd = passwd;
_typBAStBand = typBAStBand;
_ueberwachungsVerezichnis = ueberwachungsVerzeichnis;
_verschiebeVerzeichnis = verschiebeVerzeichnis;
_tempVerzeichnis = tempVerzeichnis;
// TODO
try {
// aktualisiereVerbindung();
}
catch (Exception e) {
debug.warning("Die Verbindung zum FTP-Server konnte nicht erstellt werden.", e);
}
}
//~ METHODEN ==============================================================
/**
* Die Methode zur berwachung des Verzeichnisses.
*/
public void ueberwacheVerzeichnis() {
// TODO
// Ermittle alle Dateien im berwachungs-Verzeichnis:
//
// Falls Bearbeitungs-Datei:
// Verschiebe die Bearbeitungs-Datei in _verschiebeVerzeichnis:
//
// Falls nicht Bearbeitungs-Datei und nicht Lock-Datei:
// DaV-Eintrag:
//
//
// -----------------------------------------
// Erstelle die SFTP-Verbindung:
// -----------------------------------------
Session session;
try {
session = SFTPFunktionen.verbindeMitSFTPServer(_url, _port, _user, _passwd);
}
catch (Exception e) {
session = null;
debug.warning(String.format("Fehler bei der Verbindung mit dem SFTP-Server:\n%s", e.getLocalizedMessage()), e.getStackTrace());
}
if (session != null) {
// -----------------------------------------
// Ermittle alle Dateien im SFTP-berwachungs-Verzeichnis:
// -----------------------------------------
List<String> alleDateien = SFTPFunktionen.ermittleDateienImSFTPOrdner(session, _ueberwachungsVerezichnis);
if (alleDateien == null) {
debug.warning(String.format("Die Dateien knnen nicht aus dem berwachungsverzeichnis <%s> ermittelt werden", _ueberwachungsVerezichnis));
alleDateien = new ArrayList<String>();
}
// -----------------------------------------
// Bearbeite alle SFTP-Dateien:
// -----------------------------------------
if (alleDateien.size() > 0) {
// -----------------------------------------
// Falls Bearbeitungs-Datei --->
// verschiebe die in SFTP-Verzeichnis _verschiebeVerzeichnis:
// -----------------------------------------
// -----------------------------------------
// -----------------------------------------
// -----------------------------------------
}
// ..
//
// -----------------------------------------
// Terminiere die SFTP-Verbindung:
// -----------------------------------------
session.disconnect();
}
}
}
//~Formatiert mit 'inovat Kodierkonvention' am 13.06.13
......@@ -51,6 +51,12 @@ import de.bsvrz.sys.funclib.debug.Debug;
*/
public class Verzeichnisueberwachung implements Runnable, StandardApplication {
/** Datei in der Bearbeitung. */
protected static final String BEARBEITUNGS_DATEI = ".bearbeitet";
/** Lock-Datei. */
protected static final String LOCK_DATEI = ".lock";
/** DebugLogger fr Debug-Ausgaben */
private static Debug debug = Debug.getLogger();
......@@ -90,6 +96,9 @@ public class Verzeichnisueberwachung implements Runnable, StandardApplication {
*/
private int _pruefZeitRaum;
/** Instanz der Klasse SFTPKommunikation. */
private SFTPKommunikation _sftpKommunikation;
/** Temporre Verzeichnis, in das die zu Importierenden Dateien temporr gespeichert werden. */
private String _tempVerzeichnis;
......@@ -124,8 +133,16 @@ public class Verzeichnisueberwachung implements Runnable, StandardApplication {
// @Override
public void initialize(ClientDavInterface connection) throws Exception {
// TODO
_ftpKommunikation = new FTPKommunikation(_url, _port, _user, _passwd, _ftpPassivModus, _typBAStBand, _zuUeberwachendeVerzeichnis, _verschiebeVerzeichnis, _tempVerzeichnis);
// FTP:
if (_istFtp) {
_ftpKommunikation = new FTPKommunikation(_url, _port, _user, _passwd, _ftpPassivModus, _typBAStBand, _zuUeberwachendeVerzeichnis, _verschiebeVerzeichnis, _tempVerzeichnis);
}
// SFTP:
else {
_sftpKommunikation = new SFTPKommunikation(_url, _port, _user, _passwd, _typBAStBand, _zuUeberwachendeVerzeichnis, _verschiebeVerzeichnis, _tempVerzeichnis);
}
starteThread();
}
......@@ -143,7 +160,6 @@ public class Verzeichnisueberwachung implements Runnable, StandardApplication {
public void parseArguments(ArgumentList argumentList) throws Exception {
debug = Debug.getLogger();
// TODO
boolean istOk = true;
String par;
......@@ -222,6 +238,7 @@ public class Verzeichnisueberwachung implements Runnable, StandardApplication {
// --------------------------------------------------------------------
// Hole den Parameter fr den zu berwachenden Verzeichnis:
// TODO
par = "-verzeichnisUeberwachung";
try {
......@@ -234,6 +251,7 @@ public class Verzeichnisueberwachung implements Runnable, StandardApplication {
// --------------------------------------------------------------------
// Hole den Parameter fr den Verschieben-Verzeichnis:
// TODO
par = "-verschiebeVerzeichnis";
try {
......@@ -258,6 +276,7 @@ public class Verzeichnisueberwachung implements Runnable, StandardApplication {
// --------------------------------------------------------------------
// Hole den Parameter fr den temporelen Verzeichnis:
// TODO
par = "-tempVerzeichnis";
try {
......@@ -299,10 +318,19 @@ public class Verzeichnisueberwachung implements Runnable, StandardApplication {
try {
// TODO
_ftpKommunikation.changeDirektoryFTPServer();
_ftpKommunikation.aktualisiereVerbindung();
_ftpKommunikation.ueberwacheVerzeichnis();
// FTP:
if (_istFtp) {
_ftpKommunikation.changeDirektoryFTPServer();
_ftpKommunikation.aktualisiereVerbindung();
_ftpKommunikation.ueberwacheVerzeichnis();
}
// SFTP:
else {
// TODO
_sftpKommunikation.ueberwacheVerzeichnis();
}
}
catch (Exception e) {
debug.warning("Es sind Probleme im Prozess 'Verzeichnisberwachung' aufgetreten.", e);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment