Download CODIGO FUENTE Actualizador Automatico

Document related concepts
no text concepts found
Transcript
TyS
Código Fuente
Actualizador Automático
2015-1
Actualizador
Automático
Código Fuente
Página 1 de 11
14 de Dic. de 15
TyS
Código Fuente
Actualizador Automático
2015-1
INDICE
1
CÓDIGO DE FUENTE ................................................................................................................................... 3
1.1
ftp.java : .............................................................................................................................................. 3
1.2
ClasesGlobales.java: ........................................................................................................................... 6
Página 2 de 11
14 de Dic. de 15
TyS
Código Fuente
Actualizador Automático
2015-1
1 CÓDIGO DE FUENTE
1.1 FTP.JAVA :
public void descargarVersion(){
boolean val= false;
try {
String path="",path2="";
// crear directorio TEMP en TYS
crearDirectorioTEMP();
// obtener arquitectura
int sistema = obtenerArquitecturaSistema();
if (sistema == 64) {
path = "c:/Program Files (x86)/Tecnologia y Servicios/TEMP/";
path2 = "c:/Program Files (x86)/Tecnologia y Servicios/";
} else {
path = "c:/Program Files/Tecnologia y Servicios/TEMP/";
path2 = "c:/Program Files/Tecnologia y Servicios/";
}
// descargando archivos actualizador
FTPClient ftpClient = new FTPClient();
ftpClient.connect(servidor, Integer.parseInt(puerto));
ftpClient.login(usuario, clave);
ftpClient.enterLocalPassiveMode();
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
//descargando BAT INSTALADOR DE DOCFLOW
String remoteFile = "VERSION/Version.dat";
Página 3 de 11
14 de Dic. de 15
TyS
Código Fuente
Actualizador Automático
2015-1
File downloadFile = new File(path+"VERSION/Version.dat");
OutputStream outputStream = new BufferedOutputStream(new
FileOutputStream(downloadFile));
boolean success = ftpClient.retrieveFile(remoteFile, outputStream);
outputStream.close();
if (success) {
val = revisarVersion(path+"VERSION/Version.dat", path2+"Docflow 5/Version.dat");
if (val) {
descargarActualizador();
frmLauncher.btnIniciar.setEnabled(true);
}else{
}
} else {
}
frmLauncher.pbProgreso.setString("Docflow instalado correctamente. ");
frmLauncher.btnIniciar.setEnabled(true);
} catch (Exception e) {
frmLauncher.pbProgreso.setString("ERROR. No se ha logrado conectar al servidor.");
}
}
public int obtenerArquitecturaSistema(){
int sistema = 0;
File carpeta64 = new File("c:\\Program Files (x86)");
File carpeta32 = new File("c:\\Program Files");
Página 4 de 11
14 de Dic. de 15
TyS
Código Fuente
Actualizador Automático
2015-1
if (carpeta64.exists()) {
sistema = 64;
} else {
sistema = 32;
}
return sistema;
}
public void crearDirectorioTYS(){
int sistema = obtenerArquitecturaSistema();
if (sistema == 64) {
File folder = new File("c:\\Program Files (x86)\\Tecnologia y Servicios");
folder.mkdir();
}else {
File folder = new File("c:\\Program Files\\Tecnologia y Servicios");
folder.mkdir();
}
}
Página 5 de 11
14 de Dic. de 15
TyS
Código Fuente
Actualizador Automático
2015-1
1.2 CLASESGLOBALES.JAVA:
public void descargarDocflow(){
try {
frmLauncher.pbProgreso.setValue(contador+10);
frmLauncher.pbProgreso.setString("Descargando instalador DocFlow.
"+(contador+10)+"%");
String path="";
// crear directorio TEMP en TYS
crearDirectorioTEMP();
// obtener arquitectura
int sistema = obtenerArquitecturaSistema();
if (sistema == 64) {
path = "c:/Program Files (x86)/Tecnologia y Servicios/TEMP/";
} else {
path = "c:/Program Files/Tecnologia y Servicios/TEMP/";
}
// descargando archivos actualizador
FTPClient ftpClient = new FTPClient();
ftpClient.connect(servidor, Integer.parseInt(puerto));
ftpClient.login(usuario, clave);
ftpClient.enterLocalPassiveMode();
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
//descargando BAT INSTALADOR DE DOCFLOW
Página 6 de 11
14 de Dic. de 15
TyS
Código Fuente
Actualizador Automático
2015-1
String remoteFile = "INSTALADOR/instaladorDOCFLOW64.bat";
File downloadFile = new File(path+"INSTALADOR/instaladorDOCFLOW64.bat");
OutputStream outputStream = new BufferedOutputStream(new
FileOutputStream(downloadFile));
boolean success = ftpClient.retrieveFile(remoteFile, outputStream);
outputStream.close();
frmLauncher.pbProgreso.setValue(contador+20);
frmLauncher.pbProgreso.setString("Descargando instalador DocFlow. "+(contador+20)+"%");
//descargando BAT INSTALADOR DE DOCFLOW
String remoteFile3 = "INSTALADOR/instaladorDOCFLOW32.bat";
File downloadFile3 = new File(path+"INSTALADOR/instaladorDOCFLOW32.bat");
OutputStream outputStream3 = new BufferedOutputStream(new
FileOutputStream(downloadFile3));
boolean success3 = ftpClient.retrieveFile(remoteFile3, outputStream3);
outputStream3.close();
frmLauncher.pbProgreso.setValue(contador+10);
frmLauncher.pbProgreso.setString("Descargando instalador DocFlow. "+(contador+10)+"%");
//descargando ZIP CON ARCHIVOS DE INSTALACION
String remoteFile0 = "INSTALADOR/archivosInstaladorDOCFLOW.zip";
File downloadFile0 = new File(path+"INSTALADOR/archivosInstaladorDOCFLOW.zip");
OutputStream outputStream0 = new BufferedOutputStream(new
FileOutputStream(downloadFile0));
boolean success0 = ftpClient.retrieveFile(remoteFile0, outputStream0);
outputStream0.close();
Página 7 de 11
14 de Dic. de 15
TyS
Código Fuente
Actualizador Automático
2015-1
frmLauncher.pbProgreso.setValue(contador+10);
frmLauncher.pbProgreso.setString("Descargando ejecutable DocFlow.
"+(contador+10)+"%");
//descargando copiador de ejecutable a 64
String remoteFile4 = "VERSION/Version.dat";
File downloadFile4 = new File(path+"VERSION/Version.dat");
OutputStream outputStream4 = new BufferedOutputStream(new
FileOutputStream(downloadFile4));
boolean success4 = ftpClient.retrieveFile(remoteFile4, outputStream4);
outputStream4.close();
frmLauncher.pbProgreso.setValue(contador+20);
frmLauncher.pbProgreso.setString("Descargando instalador DocFlow.
"+(contador+20)+"%");
descomprimir(path+"INSTALADOR/archivosInstaladorDOCFLOW.zip",path+"INSTALADOR/");
if (success0) {
if (sistema==64) {
Runtime aplicacion2 = Runtime.getRuntime();
try{
// aplicacion2.exec("cmd /c c:/Program Files (x86)/Tecnologia y
Servicios/TEMP/INSTALADOR/instaladorDOCFLOW64.bat");
frmLauncher.pbProgreso.setString("Instalando DOCFLOW, favor esperar");
File objetofile = new File ("c:/Program Files (x86)/Tecnologia y
Servicios/TEMP/INSTALADOR/instaladorDOCFLOW64.bat");
Desktop.getDesktop().open(objetofile);
// objetofile = new File ("c:/Program Files (x86)/Tecnologia y
Servicios/TEMP/INSTALADOR/copiar64.bat");
Página 8 de 11
14 de Dic. de 15
TyS
Código Fuente
Actualizador Automático
2015-1
// Desktop.getDesktop().open(objetofile);
}
catch(IOException e)
{
System.out.println(e.getMessage());
}
} else {
Runtime aplicacion2 = Runtime.getRuntime();
try{
File objetofile = new File ("c:/Program Files/Tecnologia y
Servicios/TEMP/INSTALADOR/instaladorDOCFLOW32.bat");
Desktop.getDesktop().open(objetofile);
// objetofile = new File ("c:/Program Files/Tecnologia y
Servicios/TEMP/INSTALADOR/copiar32.bat");
// Desktop.getDesktop().open(objetofile);
}
catch(Exception e)
{
System.out.println(e);
}
}
} else {
}
frmLauncher.pbProgreso.setString("Docflow instalado correctamente. ");
frmLauncher.btnIniciar.setEnabled(true);
Página 9 de 11
14 de Dic. de 15
TyS
Código Fuente
Actualizador Automático
2015-1
} catch (Exception e) {
frmLauncher.pbProgreso.setString("ERROR. Favor revisar CONFIGURACIÓN/CONEXION");
}
}
public boolean revisarVersion(String rutaArchivo, String rutaArchivoDocflow){
System.out.println(rutaArchivo);
System.out.println(rutaArchivoDocflow);
BufferedReader fd = null, fd1=null;
String linea = "", linea1="";
try {
fd = new BufferedReader (new FileReader (rutaArchivo));
}
catch (FileNotFoundException e) {
System.out.println ("No pude abrir el archivo");
}
try {
while ((linea = fd.readLine ()) != null)
//COMPARANDO VERSION
if (!linea.isEmpty()) {
try {
fd1 = new BufferedReader (new FileReader (rutaArchivoDocflow));
while ((linea1 = fd1.readLine ()) != null)
if (!linea.equals(linea1)) {
System.out.println("version nueva");
return true;
} else {
System.out.println("version igual");
Página 10 de 11
14 de Dic. de 15
TyS
Código Fuente
Actualizador Automático
2015-1
return false;
}
}catch (IOException e) {
System.out.println ("Error al leer");
}
} else {
return false;
}
//System.out.println (linea);
fd.close ();
}
catch (IOException e) {
System.out.println ("Error al leer");
}
return false;
}
Fig 1-1
Página 11 de 11
14 de Dic. de 15