Skip to content

Commit

Permalink
Corrette classi per residui di axis2
Browse files Browse the repository at this point in the history
  • Loading branch information
gifracr committed Sep 20, 2016
1 parent 62b3e2f commit 786d229
Show file tree
Hide file tree
Showing 3 changed files with 183 additions and 80 deletions.
Expand Up @@ -3,23 +3,53 @@
* Date 25/02/2015
*/
package it.cnr.contab.docamm00.fatturapa.bulk;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.lang.reflect.InvocationTargetException;
import java.math.BigInteger;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.ejb.EJBException;
import javax.mail.AuthenticationFailedException;
import javax.mail.BodyPart;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.xml.bind.JAXBElement;
import javax.xml.transform.stream.StreamResult;

import org.apache.chemistry.opencmis.client.api.Folder;
import org.apache.chemistry.opencmis.commons.PropertyIds;
import org.apache.chemistry.opencmis.commons.exceptions.CmisContentAlreadyExistsException;
import org.apache.commons.lang.NotImplementedException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk;
import it.cnr.contab.anagraf00.core.bulk.AnagraficoHome;
import it.cnr.contab.anagraf00.core.bulk.TerzoBulk;
import it.cnr.contab.anagraf00.core.bulk.TerzoHome;
import it.cnr.contab.cmis.service.CMISPath;
import it.cnr.contab.cmis.service.SiglaCMISService;
import it.cnr.contab.config00.bulk.Configurazione_cnrBulk;
import it.cnr.contab.config00.sto.bulk.Tipo_unita_organizzativaHome;
import it.cnr.contab.config00.sto.bulk.UnitaOrganizzativaPecBulk;
import it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk;
import it.cnr.contab.docamm00.cmis.CMISDocAmmAspect;
import it.cnr.contab.docamm00.service.FatturaPassivaElettronicaService;
import it.cnr.contab.pdd.ws.client.FatturazioneElettronicaClient;
import it.cnr.contab.service.SpringUtil;
import it.cnr.contab.util.StringEncrypter;
import it.cnr.contab.util.Utility;
import it.cnr.contab.util.StringEncrypter.EncryptionException;
import it.cnr.contab.util.Utility;
import it.cnr.jada.UserContext;
import it.cnr.jada.bulk.BulkHome;
import it.cnr.jada.bulk.OggettoBulk;
Expand All @@ -35,34 +65,6 @@
import it.gov.fatturapa.sdi.messaggi.v1.RiferimentoFatturaType;
import it.gov.fatturapa.sdi.ws.ricezione.v1_0.types.FileSdIType;
import it.gov.fatturapa.sdi.ws.ricezione.v1_0.types.ObjectFactory;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.math.BigInteger;
import java.rmi.RemoteException;
import java.sql.Connection;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.activation.DataHandler;
import javax.ejb.EJBException;
import javax.mail.AuthenticationFailedException;
import javax.mail.PasswordAuthentication;
import javax.xml.bind.JAXBElement;
import javax.xml.transform.stream.StreamResult;

import org.apache.axis2.builder.unknowncontent.InputStreamDataSource;
import org.apache.chemistry.opencmis.client.api.Folder;
import org.apache.chemistry.opencmis.commons.PropertyIds;
import org.apache.chemistry.opencmis.commons.exceptions.CmisContentAlreadyExistsException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class DocumentoEleTestataHome extends BulkHome {
private transient final static Logger logger = LoggerFactory.getLogger(DocumentoEleTestataHome.class);

Expand Down Expand Up @@ -251,7 +253,8 @@ public void notificaEsito(UserContext userContext, TipoIntegrazioneSDI tipoInteg
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
client.getMarshaller().marshal(notificaEsitoCommittenteType, new StreamResult(outputStream));
ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
fileSdIType.setFile(new DataHandler(new InputStreamDataSource(inputStream)));
DataSource ds = new UploadedFileDataSource(inputStream);
fileSdIType.setFile(new DataHandler(ds));
JAXBElement<FileSdIType> notificaEsito = obj.createNotificaEsito(fileSdIType);
ByteArrayOutputStream outputStreamNotificaEsito = new ByteArrayOutputStream();
client.getMarshaller().marshal(notificaEsito, new StreamResult(outputStreamNotificaEsito));
Expand All @@ -260,6 +263,34 @@ public void notificaEsito(UserContext userContext, TipoIntegrazioneSDI tipoInteg
CMISDocAmmAspect.SIGLA_FATTURE_ATTACHMENT_ESITO_RIFIUTATO.value():
CMISDocAmmAspect.SIGLA_FATTURE_ATTACHMENT_ESITO_ACCETTATO.value());
}

}

class UploadedFileDataSource implements DataSource {

private InputStream inputStream;

public UploadedFileDataSource(InputStream inputStream) {
this.inputStream = inputStream;
}

@Override
public OutputStream getOutputStream() throws IOException {
throw new NotImplementedException("datasource file non implementato" );
}

@Override
public String getName() {
throw new NotImplementedException("nome file non implementato" );
}

@Override
public InputStream getInputStream() throws IOException {
return inputStream;
}

@Override
public String getContentType() {
throw new NotImplementedException("content type file non implementato" );
}
}
}
Expand Up @@ -3,49 +3,10 @@
* Date 25/02/2015
*/
package it.cnr.contab.docamm00.fatturapa.bulk;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.math.BigInteger;
import java.sql.Connection;
import java.util.Arrays;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.activation.DataHandler;
import javax.mail.PasswordAuthentication;
import javax.xml.bind.JAXBElement;
import javax.xml.transform.stream.StreamResult;

import org.apache.axis2.builder.unknowncontent.InputStreamDataSource;
import org.apache.chemistry.opencmis.client.api.Folder;
import org.apache.chemistry.opencmis.commons.PropertyIds;

import it.cnr.contab.anagraf00.core.bulk.TerzoBulk;
import it.cnr.contab.anagraf00.core.bulk.TerzoHome;
import it.cnr.contab.cmis.service.CMISPath;
import it.cnr.contab.cmis.service.SiglaCMISService;
import it.cnr.contab.config00.sto.bulk.Tipo_unita_organizzativaHome;
import it.cnr.contab.config00.sto.bulk.UnitaOrganizzativaPecBulk;
import it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk;
import it.cnr.contab.docamm00.cmis.CMISDocAmmAspect;
import it.cnr.contab.pdd.ws.client.FatturazioneElettronicaClient;
import it.cnr.contab.service.SpringUtil;
import it.cnr.jada.UserContext;
import it.cnr.jada.bulk.BulkHome;
import it.cnr.jada.comp.ApplicationException;
import it.cnr.jada.comp.ComponentException;
import it.cnr.jada.persistency.PersistencyException;
import it.cnr.jada.persistency.PersistentCache;
import it.cnr.jada.persistency.sql.FindClause;
import it.cnr.jada.persistency.sql.SQLBuilder;
import it.gov.fatturapa.sdi.messaggi.v1.EsitoCommittenteType;
import it.gov.fatturapa.sdi.messaggi.v1.NotificaEsitoCommittenteType;
import it.gov.fatturapa.sdi.messaggi.v1.RiferimentoFatturaType;
import it.gov.fatturapa.sdi.ws.ricezione.v1_0.types.FileSdIType;
import it.gov.fatturapa.sdi.ws.ricezione.v1_0.types.ObjectFactory;
public class DocumentoEleTrasmissioneHome extends BulkHome {
public DocumentoEleTrasmissioneHome(Connection conn) {
super(DocumentoEleTrasmissioneBulk.class, conn);
Expand Down
Expand Up @@ -17,11 +17,13 @@
import it.cnr.jada.util.DateUtils;
import it.cnr.jada.util.SendMail;
import it.cnr.jada.util.mail.SimplePECMail;
import it.cnr.jada.util.upload.UploadedFile;
import it.gov.fatturapa.sdi.messaggi.v1.MetadatiInvioFileType;
import it.gov.fatturapa.sdi.messaggi.v1.NotificaEsitoCommittenteType;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
Expand All @@ -36,6 +38,7 @@
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

import javax.activation.DataSource;
import javax.activation.DataHandler;
import javax.activation.MimetypesFileTypeMap;
import javax.mail.Address;
Expand Down Expand Up @@ -64,8 +67,8 @@
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;

import org.apache.axiom.attachments.ByteArrayDataSource;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.NotImplementedException;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
Expand Down Expand Up @@ -271,15 +274,15 @@ private void riceviFattura(Message message, String userName) throws ComponentExc
unmarshal(new StreamSource(bodyPartMetadati.getInputStream())));
String replyTo = getReplyTo(message);
if (!fatturaElettronicaPassivaComponentSession.existsIdentificativo(userContext, metadatiInvioFileType.getValue().getIdentificativoSdI().longValue())) {
DataSource byteArrayDataSourceFattura = new UploadedFileDataSource(bodyPartFattura);
DataSource byteArrayDataSourceMetadati = new UploadedFileDataSource(bodyPartMetadati);
ricezioneFattureService.riceviFatturaSIGLA(
metadatiInvioFileType.getValue().getIdentificativoSdI(),
bodyPartFattura.getFileName(),
replyTo,
new DataHandler(new ByteArrayDataSource(
IOUtils.toByteArray(bodyPartFattura.getInputStream()),bodyPartFattura.getContentType())),
new DataHandler(byteArrayDataSourceFattura),
bodyPartMetadati.getFileName(),
new DataHandler(new ByteArrayDataSource(
IOUtils.toByteArray(bodyPartMetadati.getInputStream()), bodyPartMetadati.getContentType())));
new DataHandler(byteArrayDataSourceMetadati));
}
} else {
logger.warn("Il messaggio con id:"+message.getMessageNumber()+" recuperato dalla casella PEC:"+userName + " è stato precessato ma gli allegati presenti non sono conformi.");
Expand Down Expand Up @@ -715,12 +718,14 @@ private void notificaFatturaAttivaDecorrenzaTermini(Message message) throws Comp

private DataHandler createDataHandler(BodyPart bodyPart)
throws IOException, MessagingException {
return new DataHandler(new ByteArrayDataSource(IOUtils.toByteArray(bodyPart.getInputStream()),bodyPart.getContentType()));
DataSource byteArrayDataSource = new UploadedFileDataSource(bodyPart);
return new DataHandler(byteArrayDataSource);
}

private DataHandler createDataHandler(InputStream stream, String contentType)
throws IOException, MessagingException {
return new DataHandler(new ByteArrayDataSource(IOUtils.toByteArray(stream),contentType));
DataSource byteArrayDataSource = new UploadedFileDataSourceStream(stream, contentType);
return new DataHandler(byteArrayDataSource);
}

private void notificaFatturaAttivaEsito(Message message) throws ComponentException {
Expand Down Expand Up @@ -837,7 +842,8 @@ public void notificaEsito(String userName, String password, DocumentoEleTestataB
// add the attachment
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
fatturazioneElettronicaClient.getMarshaller().marshal(notificaEsitoCommittenteType, new StreamResult(outputStream));
email.attach(new ByteArrayDataSource(outputStream.toByteArray()), bulk.getNomeFile("EC"), "", EmailAttachment.ATTACHMENT);
DataSource byteArrayDataSource = new UploadedFileDataSourceOutputStream(outputStream);
email.attach(byteArrayDataSource, bulk.getNomeFile("EC"), "", EmailAttachment.ATTACHMENT);
// send the email
email.send();
logger.info("Inviata notifica di esito per IdentificativoSdi:"+bulk.getIdentificativoSdi());
Expand Down Expand Up @@ -919,4 +925,109 @@ public void afterPropertiesSet() throws Exception {
new Integer(java.util.Calendar.getInstance().get(java.util.Calendar.YEAR)),
null,null,null);
}

class UploadedFileDataSourceStream implements DataSource {

private InputStream inputStream;
private String contentType;

public UploadedFileDataSourceStream(InputStream inputStream, String contentType) {
this.inputStream = inputStream;
this.contentType = contentType;
}

@Override
public OutputStream getOutputStream() throws IOException {
throw new NotImplementedException("datasource file non implementato Stream");
}

@Override
public String getName() {
throw new NotImplementedException("Nome non implementato Stream");
}

@Override
public InputStream getInputStream() throws IOException {
return inputStream;
}

@Override
public String getContentType() {
return contentType;
}
}
class UploadedFileDataSourceOutputStream implements DataSource {

private OutputStream outputStream;

public UploadedFileDataSourceOutputStream(OutputStream outputStream) {
this.outputStream = outputStream;
}

@Override
public OutputStream getOutputStream() throws IOException {
return outputStream;
}

@Override
public String getName() {
throw new NotImplementedException("Nome non implementato Output Stream");
}

@Override
public InputStream getInputStream() throws IOException {
throw new NotImplementedException("Nome non implementato Output Stream");
}

@Override
public String getContentType() {
throw new NotImplementedException("Nome non implementato Output Stream");
}
}
class UploadedFileDataSource implements DataSource {

private BodyPart bodypart;

public UploadedFileDataSource(BodyPart bodypart) {
this.bodypart = bodypart;
}

@Override
public OutputStream getOutputStream() throws IOException {
throw new NotImplementedException("datasource file non implementato" + bodypart.toString());
}

@Override
public String getName() {
try {
return bodypart.getFileName();
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}

@Override
public InputStream getInputStream() throws IOException {
try {
return bodypart.getInputStream();
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}

@Override
public String getContentType() {
try {
return bodypart.getContentType();
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
}

0 comments on commit 786d229

Please sign in to comment.