*/
package fr.gouv.finances.dgfip.xemelios.batch.exports.postProcessors;
-import fr.gouv.finances.dgfip.xemelios.batch.PostProcessor;
-import fr.gouv.finances.dgfip.xemelios.data.impl.pool.PoolManager;
-import fr.gouv.finances.dgfip.xemelios.export.ExportJob;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.sql.SQLException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
+
import org.apache.log4j.Logger;
+import fr.gouv.finances.dgfip.xemelios.batch.PostProcessor;
+import fr.gouv.finances.dgfip.xemelios.data.impl.pool.PoolManager;
+import fr.gouv.finances.dgfip.xemelios.export.ExportJob;
+
/**
- *
+ *
* @author Christophe Marchand <christophe.marchand@axyus.com>
*/
public class Zipper implements PostProcessor {
- private static final Logger logger = Logger.getLogger(Zipper.class);
- private ExportJob job=null;
+ private static final Logger logger = Logger.getLogger(Zipper.class);
+ private ExportJob job = null;
- public Zipper() {
- super();
- }
+ public Zipper() {
+ super();
+ }
- public void setConfigData(Object data) {
- this.job=(ExportJob)data;
- }
+ @Override
+ public void setConfigData(final Object data) {
+ this.job = (ExportJob) data;
+ }
- public void postProcess() throws Exception {
- if(job==null) throw new Exception("Job is null !");
- File generatedFile = new File(job.getGeneratedFileName());
- File directory = generatedFile.getParentFile();
- final String fileName = generatedFile.getName().concat(".zip");
- File zipFile = new File(directory,fileName);
- ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFile));
- File[] files = directory.listFiles(new FilenameFilter() {
- public boolean accept(File dir, String name) {
- return !name.equals(fileName);
- }
- });
- zos.setLevel(9);
- for(File f:files) {
- if(!f.isDirectory()) {
- ZipEntry ze = new ZipEntry(f.getName());
- zos.putNextEntry(ze);
- byte[] buffer = new byte[1024*8];
- FileInputStream fis = new FileInputStream(f);
- int read = 0;
- while((read=fis.read(buffer)) > 0) {
- zos.write(buffer, 0, read);
- }
- fis.close();
- zos.closeEntry();
- }
- }
- zos.close();
-// zos.finish();
- Connection con = null;
- try {
- con = PoolManager.getInstance().getConnection();
- String sql = "UPDATE EXPORT_JOBS SET GENERATED_FILE_NAME=? WHERE EXPORT_ID=? AND UTI_LOGIN=?";
- PreparedStatement ps = con.prepareStatement(sql);
- ps.setString(1,zipFile.getAbsolutePath());
- ps.setLong(2,job.getIdExport());
- ps.setString(3,job.getOwner());
- ps.executeUpdate();
- PoolManager.getInstance().releaseConnection(con); con=null;
- job.setGeneratedFileName(zipFile.getAbsolutePath());
- for(File f:files) f.delete();
- } catch(SQLException sqlEx) {
- logger.error("while changing name generated file",sqlEx);
- } finally {
- if(con!=null) PoolManager.getInstance().releaseConnection(con);
- }
- }
+ @Override
+ public void postProcess() throws Exception {
+ if (this.job == null) {
+ throw new Exception("Job is null !");
+ }
+ final File generatedFile = new File(this.job.getGeneratedFileName());
+ final File directory = generatedFile.getParentFile();
+ final String fileName = generatedFile.getName().concat(".zip");
+ final File zipFile = new File(directory, fileName);
+ final ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFile));
+ final File[] files = directory.listFiles(new FilenameFilter() {
+ @Override
+ public boolean accept(final File dir, final String name) {
+ return !name.equals(fileName);
+ }
+ });
+ zos.setLevel(9);
+ for (final File f : files) {
+ if (!f.isDirectory()) {
+ final ZipEntry ze = new ZipEntry(f.getName());
+ zos.putNextEntry(ze);
+ final byte[] buffer = new byte[1024 * 8];
+ final FileInputStream fis = new FileInputStream(f);
+ int read = 0;
+ while ((read = fis.read(buffer)) > 0) {
+ zos.write(buffer, 0, read);
+ }
+ fis.close();
+ zos.closeEntry();
+ }
+ }
+ zos.close();
+ // zos.finish();
+ Connection con = null;
+ try {
+ con = PoolManager.getInstance().getConnection();
+ final String sql = "UPDATE EXPORT_JOBS SET GENERATED_FILE_NAME=? WHERE EXPORT_ID=? AND UTI_LOGIN=?";
+ final PreparedStatement ps = con.prepareStatement(sql);
+ ps.setString(1, zipFile.getAbsolutePath());
+ ps.setLong(2, this.job.getIdExport());
+ ps.setString(3, this.job.getOwner());
+ ps.executeUpdate();
+ PoolManager.getInstance().releaseConnection(con);
+ con = null;
+ this.job.setGeneratedFileName(zipFile.getAbsolutePath());
+ for (final File f : files) {
+ f.delete();
+ }
+ } catch (final SQLException sqlEx) {
+ logger.error("while changing name generated file", sqlEx);
+ } finally {
+ if (con != null) {
+ PoolManager.getInstance().releaseConnection(con);
+ }
+ }
+ }
}