Project

General

Profile

« Previous | Next » 

Revision 786696e3

Added by Andreas Müller over 10 years ago

merge trunk into cdm3.3 branch

View differences:

cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/csv/CsvExportController.java
12 12
import java.io.ByteArrayOutputStream;
13 13
import java.io.File;
14 14
import java.io.InputStreamReader;
15
import java.io.PrintWriter;
15 16
import java.util.ArrayList;
16 17
import java.util.Arrays;
17 18
import java.util.HashSet;
......
35 36
import org.springframework.web.bind.annotation.RequestMethod;
36 37
import org.springframework.web.bind.annotation.RequestParam;
37 38

  
39
import eu.etaxonomy.cdm.api.service.IService;
38 40
import eu.etaxonomy.cdm.api.service.ITermService;
39 41
import eu.etaxonomy.cdm.io.common.CdmApplicationAwareDefaultExport;
40 42
import eu.etaxonomy.cdm.io.csv.redlist.out.CsvTaxExportConfiguratorRedlist;
......
42 44
import eu.etaxonomy.cdm.model.location.NamedArea;
43 45
import eu.etaxonomy.cdm.model.taxon.Classification;
44 46
import eu.etaxonomy.cdm.model.taxon.Taxon;
47
import eu.etaxonomy.cdm.remote.controller.AbstractController;
45 48
import eu.etaxonomy.cdm.remote.controller.ProgressMonitorController;
46 49
import eu.etaxonomy.cdm.remote.editor.NamedAreaPropertyEditor;
47 50
import eu.etaxonomy.cdm.remote.editor.UUIDListPropertyEditor;
......
54 57
 */
55 58
@Controller
56 59
@RequestMapping(value = { "/csv" })
57
public class CsvExportController{
60
public class CsvExportController extends AbstractController{
58 61

  
59 62
	/**
60 63
	 * 
......
101 104
		CsvTaxExportConfiguratorRedlist config = setTaxExportConfigurator(classificationUUID, featureUuids, areas, byteArrayOutputStream);
102 105
		CdmApplicationAwareDefaultExport<?> defaultExport = (CdmApplicationAwareDefaultExport<?>) appContext.getBean("defaultExport");
103 106
		logger.info("Start export...");
107
		logger.info("doExportRedlist()" + requestPathAndQuery(request));
104 108
		defaultExport.invoke(config);
105 109
		try {
106 110
			/*
......
110 114
			 *  
111 115
			 *  HTPP Error Break
112 116
			 */
113
			ByteArrayInputStream bais = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
114
			InputStreamReader isr = new InputStreamReader(bais, "UTF-8");
115
			ServletOutputStream sos = response.getOutputStream();
117
			ByteArrayInputStream bais = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());//byteArrayOutputStream.toByteArray()
118
			InputStreamReader isr = new InputStreamReader(bais);
116 119
			Cookie progressCookie = new Cookie("fileDownloadToken", downloadTokenValueId);
117 120
			progressCookie.setPath("/");
118 121
			progressCookie.setMaxAge(60);
119 122
			response.addCookie(progressCookie);
120 123
			response.setContentType("text/csv; charset=utf-8");
121 124
			response.setHeader("Content-Disposition", "attachment; filename=\""+config.getClassificationTitleCache()+".txt\"");
125
			PrintWriter printWriter = response.getWriter();
122 126

  
123 127
			int i;
124 128
			while((i = isr.read())!= -1){
125
				sos.write(i);
129
				printWriter.write(i);
126 130
			}
127 131
			byteArrayOutputStream.flush();
128 132
			isr.close();
129 133
			byteArrayOutputStream.close();
130
			sos.flush();
131
			sos.close();
134
			printWriter.flush();
135
			printWriter.close();
132 136
		} catch (Exception e) {
133 137
			logger.error("error generating feed", e);
134 138
		}
......
172 176
        config.setNamedAreas(selectedAreas);
173 177
		return config;
174 178
	}
179
	
180
	/* (non-Javadoc)
181
	 * @see eu.etaxonomy.cdm.remote.controller.AbstractController#setService(eu.etaxonomy.cdm.api.service.IService)
182
	 */
183
	@Override
184
	public void setService(IService service) {
185
		// TODO Auto-generated method stub
186
		
187
	}
188
	
175 189
}

Also available in: Unified diff