Refactored internal api
This commit is contained in:
parent
3f31bb8a3a
commit
6ccd763d1f
361 changed files with 23049 additions and 4498 deletions
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue