Commit 625a7b32 authored by LG's avatar LG

Verzeichnisüberwachung: SFTP-Kommunikation...

git-svn-id: https://inovat-svn-server:8443/svn/NI-DAUZ-1/trunk@805 8a9b1199-d942-744a-a8b1-ac58f4d8385e
parent 8f33aa32
This diff is collapsed.
......@@ -148,22 +148,6 @@ public class FTPKommunikation {
}
}
/**
* Die Methode bestimmt das BASt-Band Format.
* @return integer Zahl die das Format repräsentiert. Return Wert von 0 entspricht dem BASt-Band Format 2004,
* Return Wert von 5 entspricht dem BASt-Band Format VerkehrGeschwindigkeit2007. Sollten beide
* Formate nicht mit dem übergebenem übereinstimmten wird -1 retuniert.
*/
private int bestimmeBastFormat() {
if (_ueberwachungsVerezichnis.contains("Verkehr_Menge_2004")) {
return 0;
} else if (_ueberwachungsVerezichnis.contains("Verkehr_Geschwindigkeit_2007")) {
return 5;
} else {
return -1;
}
}
/**
* Die Methode wechselt in das Exportverzeichnis fr den gestarteten Export.
*/
......@@ -293,29 +277,37 @@ public class FTPKommunikation {
public void ueberwacheVerzeichnis() {
if (_ftpClient.isConnected()) {
try {
// ---------------------------------------------------------------
// Ermittle alle Dateien im FTP-berwachungs-Verzeichnis:
// ---------------------------------------------------------------
String[] alleFiles = _ftpClient.listNames();
if (alleFiles != null) {
// ---------------------------------------------------------------
// Bearbeite alle FTP-Dateien:
// ---------------------------------------------------------------
for (String dateiName : alleFiles) {
if ((!dateiName.endsWith(Verzeichnisueberwachung.LOCK_DATEI)) && (dateiName.endsWith(Verzeichnisueberwachung.BEARBEITUNGS_DATEI))) {
// ---------------------------------------------------------------
// Falls Bearbeitungs-Datei --->
// verschiebe die in FTP-Verzeichnis _verschiebeVerzeichnis:
// ---------------------------------------------------------------
if (dateiName.endsWith(Verzeichnisueberwachung.BEARBEITUNGS_DATEI)) {
if (downloadFileImVerschiebeverzeichnis(dateiName)) {
deleteAlteDatei(dateiName);
}
} else if (!dateiName.endsWith(Verzeichnisueberwachung.LOCK_DATEI) && (!dateiName.endsWith(Verzeichnisueberwachung.BEARBEITUNGS_DATEI))) {
DavKommunikation davKomm = new DavKommunikation(_typBAStBand);
davKomm.anmeldenDaVSenderFTPVerzeichnisinformation(dateiName);
int bastFormat = bestimmeBastFormat();
}
if (bastFormat == -1) {
String infoText = "Das Überwachungsverzeichnis ist nicht korrekt, bitte überprüfen Sie ihre Angaben.";
// ---------------------------------------------------------------
// Falls nicht Bearbeitungs-Datei und nicht Lock-Datei --->
// Sende berwachungsdaten fr die Datei an DaV:
// ---------------------------------------------------------------
else if (!dateiName.endsWith(Verzeichnisueberwachung.LOCK_DATEI) && (!dateiName.endsWith(Verzeichnisueberwachung.BEARBEITUNGS_DATEI))) {
DavKommunikation davKomm = new DavKommunikation(_typBAStBand);
debug.error(infoText);
} else {
davKomm.sendeVerzeichnisUeberwachungsDatenDaV(dateiName, _url, _user, _passwd, _ftpPassivModus, bastFormat);
davKomm.abmeldenDaVSenderBAStStatus();
}
davKomm.sendeVerzeichnisUeberwachungsDaVDaten(dateiName, _ueberwachungsVerezichnis, _url, _user, _passwd, _ftpPassivModus);
}
}
}
......@@ -368,4 +360,4 @@ public class FTPKommunikation {
}
//~Formatiert mit 'inovat Kodierkonvention' am 13.06.13
//~Formatiert mit 'inovat Kodierkonvention' am 14.06.13
......@@ -32,9 +32,7 @@ import java.util.List;
//~ KLASSEN ===================================================================
/**
* DOC: Kurzbeschreibung.
* <p/>
* DOC: Langbeschreibung.
* Die Klasse dient zur Verwaltung der gesamten SFTP Kommunikation.
*
* @author inovat, innovative systeme - verkehr - tunnel - technik
* @author Liliya Givorgizova (LG)
......@@ -56,9 +54,6 @@ public class SFTPKommunikation {
/** 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;
......@@ -86,9 +81,8 @@ public class SFTPKommunikation {
* @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) {
public SFTPKommunikation(String url, int port, String user, String passwd, String typBAStBand, String ueberwachungsVerzeichnis, String verschiebeVerzeichnis) {
_url = url;
_port = port;
_user = user;
......@@ -96,16 +90,7 @@ public class SFTPKommunikation {
_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 ==============================================================
......@@ -136,9 +121,9 @@ public class SFTPKommunikation {
public void ueberwacheVerzeichnis() {
// TODO
// -----------------------------------------
// ---------------------------------------------------------------
// Erstelle die SFTP-Verbindung:
// -----------------------------------------
// ---------------------------------------------------------------
Session session;
try {
......@@ -151,9 +136,9 @@ public class SFTPKommunikation {
if (session != null) {
// -----------------------------------------
// ---------------------------------------------------------------
// Ermittle alle Dateien im SFTP-berwachungs-Verzeichnis:
// -----------------------------------------
// ---------------------------------------------------------------
List<String> alleDateien = SFTPFunktionen.ermittleDateienImSFTPOrdner(session, _ueberwachungsVerezichnis);
if (alleDateien == null) {
......@@ -161,47 +146,45 @@ public class SFTPKommunikation {
alleDateien = new ArrayList<String>();
}
// -----------------------------------------
// ---------------------------------------------------------------
// Bearbeite alle SFTP-Dateien:
// -----------------------------------------
// ---------------------------------------------------------------
for (String dateiSftp : alleDateien) {
String dateiSftpMitPfad = ermittleSftpDateiPfad(dateiSftp, _ueberwachungsVerezichnis);
// -----------------------------------------
// ---------------------------------------------------------------
// Falls Bearbeitungs-Datei --->
// verschiebe die in SFTP-Verzeichnis _verschiebeVerzeichnis:
// -----------------------------------------
// ---------------------------------------------------------------
if (dateiSftp.endsWith(Verzeichnisueberwachung.BEARBEITUNGS_DATEI)) {
String alt = ermittleSftpDateiPfad(dateiSftp, _ueberwachungsVerezichnis);
String neu = ermittleSftpDateiPfad(dateiSftp, _verschiebeVerzeichnis);
Exception e = SFTPFunktionen.verschiebeSFTPDatei(session, alt, neu);
Exception e = SFTPFunktionen.verschiebeSFTPDatei(session, dateiSftpMitPfad, neu);
if (e != null) {
debug.warning(String.format("Datei <%s> kann nicht in %s verschiebt bzw. umbenannt werden:\n%s", alt, neu, e.getLocalizedMessage()), e.getStackTrace());
debug.warning(String.format("Datei <%s> kann nicht in %s verschiebt bzw. umbenannt werden:\n%s", dateiSftpMitPfad, neu, e.getLocalizedMessage()), e.getStackTrace());
}
}
// -----------------------------------------
// ---------------------------------------------------------------
// Falls nicht Bearbeitungs-Datei und nicht Lock-Datei --->
// TODO
// DaV-Eintrag:
// -----------------------------------------
// Sende berwachungsdaten fr die Datei an DaV:
// ---------------------------------------------------------------
else if (!dateiSftp.endsWith(Verzeichnisueberwachung.LOCK_DATEI)) {
//
}
// TODO testen (mit/ohne Pfad):
DavKommunikation davKomm = new DavKommunikation(_typBAStBand);
// -----------------------------------------
davKomm.sendeVerzeichnisUeberwachungsDaVDaten(dateiSftpMitPfad, _ueberwachungsVerezichnis, _url, _user, _passwd, false);
}
}
// ..
//
// -----------------------------------------
// ---------------------------------------------------------------
// Terminiere die SFTP-Verbindung:
// -----------------------------------------
// ---------------------------------------------------------------
session.disconnect();
}
}
}
//~Formatiert mit 'inovat Kodierkonvention' am 13.06.13
//~Formatiert mit 'inovat Kodierkonvention' am 14.06.13
......@@ -140,7 +140,7 @@ public class Verzeichnisueberwachung implements Runnable, StandardApplication {
// SFTP:
else {
_sftpKommunikation = new SFTPKommunikation(_url, _port, _user, _passwd, _typBAStBand, _zuUeberwachendeVerzeichnis, _verschiebeVerzeichnis, _tempVerzeichnis);
_sftpKommunikation = new SFTPKommunikation(_url, _port, _user, _passwd, _typBAStBand, _zuUeberwachendeVerzeichnis, _verschiebeVerzeichnis);
}
starteThread();
......@@ -327,8 +327,6 @@ public class Verzeichnisueberwachung implements Runnable, StandardApplication {
// SFTP:
else {
// TODO
_sftpKommunikation.ueberwacheVerzeichnis();
}
}
......@@ -368,4 +366,4 @@ public class Verzeichnisueberwachung implements Runnable, StandardApplication {
}
//~Formatiert mit 'inovat Kodierkonvention' am 13.06.13
//~Formatiert mit 'inovat Kodierkonvention' am 14.06.13
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