2
0
Fork 0

Refactored internal api

This commit is contained in:
Willem Cazander 2012-06-04 22:49:12 +02:00
parent 3f31bb8a3a
commit 6ccd763d1f
361 changed files with 23049 additions and 4498 deletions

View file

@ -24,7 +24,7 @@
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<version>${servlet-api.version}</version>
<type>jar</type>
<scope>provided</scope>
</dependency>

View file

@ -35,6 +35,7 @@ import javax.servlet.http.HttpServletResponse;
import net.forwardfire.vasc.core.VascController;
import net.forwardfire.vasc.core.VascControllerProvider;
import net.forwardfire.vasc.core.VascEntry;
import net.forwardfire.vasc.core.VascEntryLocal;
import net.forwardfire.vasc.core.VascException;
import net.forwardfire.vasc.core.entry.VascEntryExporter;
@ -49,7 +50,7 @@ public class VascExportServlet extends HttpServlet {
private Logger logger = Logger.getLogger(VascExportServlet.class.getName());
private static final long serialVersionUID = 6165530418422144322L;
private VascControllerProvider vascControllerProvider = null;
private boolean exportTree = false;
private boolean forceTree = false;
/**
* @see javax.servlet.GenericServlet#init()
@ -61,9 +62,15 @@ public class VascExportServlet extends HttpServlet {
if (className==null) {
throw new ServletException("Can't start with null vascControllerProvider init parameter.");
}
String exportTreeStr = getInitParameter("exportTree");
String exportTreeStr = getInitParameter("forceTree");
if (exportTreeStr!=null && "true".equalsIgnoreCase(exportTreeStr)) {
exportTree = true;
forceTree = true;
}
String classArgument = null;
int atIndex = className.indexOf('@');
if (atIndex > 0) {
classArgument = className.substring(0,atIndex);
className = className.substring(atIndex+1);
}
try {
ClassLoader cl = Thread.currentThread().getContextClassLoader();
@ -71,11 +78,15 @@ public class VascExportServlet extends HttpServlet {
cl = className.getClass().getClassLoader();
}
Class<?> clazz = cl.loadClass(className);
vascControllerProvider = (VascControllerProvider)clazz.newInstance();
if (classArgument==null) {
vascControllerProvider = (VascControllerProvider)clazz.newInstance();
} else {
vascControllerProvider = (VascControllerProvider)clazz.getConstructor(String.class).newInstance(classArgument);
}
} catch (Exception e) {
throw new ServletException("Could not create VascControllerProvider: "+e.getMessage(),e);
}
logger.info("Export servlet started. (exportTree: "+exportTree+")");
logger.info("Export servlet started with forceTree: "+forceTree+" prov: "+classArgument+"@"+className);
}
/**
@ -102,8 +113,13 @@ public class VascExportServlet extends HttpServlet {
String entryId = null;
String exportId = null;
if (exportTree) {
int index = path.indexOf("/");
int index = path.indexOf("/");
if (forceTree && index<0) {
response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Only tree request allowed.");
return;
}
if (index>0) {
String actionString = null;
if (index>0) {
actionString = path.substring(index+1);
@ -135,16 +151,33 @@ public class VascExportServlet extends HttpServlet {
exportId = request.getParameter("et");
}
if (entryId==null) {
response.sendError(HttpServletResponse.SC_BAD_REQUEST, "No entry given");
return;
}
if (entryId.isEmpty()) {
response.sendError(HttpServletResponse.SC_BAD_REQUEST, "No entry given");
return;
}
if (exportId==null) {
response.sendError(HttpServletResponse.SC_BAD_REQUEST, "No export type given");
return;
}
if (exportId.isEmpty()) {
response.sendError(HttpServletResponse.SC_BAD_REQUEST, "No export type given");
return;
}
//out = new PrintWriter(new OutputStreamWriter(response.getOutputStream(), response.getCharacterEncoding()), true);
OutputStream out = response.getOutputStream();
try {
VascController vc = vascControllerProvider.getVascController();
VascEntry ve = vc.getVascEntryConfigController().configVascEntry(vc, entryId);
vc.getVascEntryConfigController().configVascFrontendData(vc, ve, new Locale("en"));
VascEntryLocal ve = (VascEntryLocal)vc.getVascEntryConfigController().configVascEntry(vc, entryId);
vc.getVascEntryConfigController().configVascFrontendController(vc, ve);
// Update total every time first
Long total = ve.getVascFrontendData().getVascEntryState().getVascBackend().fetchTotalExecuteSize(ve.getVascFrontendData().getVascEntryState().getVascBackendState());
ve.getVascFrontendData().getVascEntryState().setTotalBackendRecords(total);
Long total = ve.getVascFrontendController().getVascEntryState().getVascBackend().fetchTotalExecuteSize(ve.getVascFrontendController().getVascEntryState().getVascBackendState());
ve.getVascFrontendController().getVascEntryState().setTotalBackendRecords(total);
VascEntryExporter ex = vc.getVascEntryConfigController().getVascEntryExporterById(exportId);
String filename = entryId+"-export."+ex.getFileType();