Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
adapt
ace
Commits
9978f961
Commit
9978f961
authored
Apr 04, 2017
by
Michael Ritter
Browse files
Submit a formatter for use from either the csv or bean output
parent
4b45e9d0
Changes
3
Show whitespace changes
Inline
Side-by-side
ace-am/src/main/java/edu/umiacs/ace/stats/StatisticsServlet.java
View file @
9978f961
package
edu.umiacs.ace.stats
;
import
edu.umiacs.ace.util.EntityManagerServlet
;
import
edu.umiacs.ace.util.FileSizeFormatter
;
import
org.apache.log4j.Logger
;
import
javax.persistence.EntityManager
;
...
...
@@ -28,6 +29,7 @@ public class StatisticsServlet extends EntityManagerServlet {
private
static
final
String
AFTER
=
"after"
;
private
static
final
String
BEFORE
=
"before"
;
private
static
final
String
GROUP
=
"group"
;
private
static
final
String
TRUNCATE
=
"truncate"
;
private
static
final
String
COLLECTION
=
"collection"
;
private
static
final
String
CSV
=
"csv"
;
...
...
@@ -53,14 +55,20 @@ public class StatisticsServlet extends EntityManagerServlet {
String
group
=
getParameter
(
request
,
GROUP
,
null
);
String
after
=
getParameter
(
request
,
AFTER
,
null
);
String
before
=
getParameter
(
request
,
BEFORE
,
null
);
String
truncate
=
getParameter
(
request
,
TRUNCATE
,
null
);
String
collection
=
getParameter
(
request
,
COLLECTION
,
null
);
FileSizeFormatter
formatter
=
new
FileSizeFormatter
(
truncate
);
SummaryQuery
q
=
new
SummaryQuery
(
group
,
after
,
before
,
collection
);
// We only output to csv for now, so only check true/false
// Might be better to have a radio w/ json/csv/none or smth
if
(
csv
==
null
)
{
List
<
IngestSummary
>
summary
=
q
.
getSummary
();
// bleghhh
for
(
IngestSummary
ingestSummary
:
summary
)
{
ingestSummary
.
setFormatter
(
formatter
);
}
request
.
setAttribute
(
"summary"
,
summary
);
RequestDispatcher
dispatcher
=
request
.
getRequestDispatcher
(
SERVLET
);
...
...
@@ -70,7 +78,7 @@ public class StatisticsServlet extends EntityManagerServlet {
response
.
setContentType
(
"text/plain"
);
// Download instead of load a page
response
.
setHeader
(
"Content-Disposition"
,
"attachment; filename=ingest-summary.csv"
);
q
.
writeToCsv
(
response
.
getOutputStream
());
q
.
writeToCsv
(
response
.
getOutputStream
()
,
formatter
);
}
catch
(
SQLException
e
)
{
LOG
.
error
(
"Error with statistics query"
,
e
);
}
...
...
ace-am/src/main/java/edu/umiacs/ace/stats/SummaryQuery.java
View file @
9978f961
package
edu.umiacs.ace.stats
;
import
edu.umiacs.ace.util.FileSizeFormatter
;
import
edu.umiacs.ace.util.PersistUtil
;
import
javax.persistence.EntityManager
;
...
...
@@ -85,6 +86,11 @@ public class SummaryQuery {
this
.
collection
=
collection
;
}
/**
* Get the IngestSummary for the SummaryQuery
*
* @return the IngestSummary
*/
public
List
<
IngestSummary
>
getSummary
()
{
List
<
String
>
params
=
new
ArrayList
<>();
EntityManager
em
=
PersistUtil
.
getEntityManager
();
...
...
@@ -102,7 +108,17 @@ public class SummaryQuery {
return
(
List
<
IngestSummary
>)
nq
.
getResultList
();
}
public
void
writeToCsv
(
ServletOutputStream
os
)
throws
SQLException
,
IOException
{
/**
* Write the SummaryQuery to an OutputStream as comma separated values
*
* values are as follows:
* date,collection,group,file_count,total_size
*
* @param os the OutputStream to write to
* @throws SQLException if there's an exception with the sql statement
* @throws IOException if there's an exception writing data
*/
public
void
writeToCsv
(
ServletOutputStream
os
,
FileSizeFormatter
formatter
)
throws
SQLException
,
IOException
{
List
<
String
>
params
=
new
ArrayList
<>();
DataSource
db
=
PersistUtil
.
getDataSource
();
Connection
conn
=
db
.
getConnection
();
...
...
@@ -136,7 +152,7 @@ public class SummaryQuery {
bldr
.
append
(
collection
).
append
(
","
);
bldr
.
append
(
group
).
append
(
","
);
bldr
.
append
(
count
).
append
(
","
);
bldr
.
append
(
size
);
bldr
.
append
(
formatter
.
format
(
size
)
)
;
os
.
write
(
bldr
.
toString
().
getBytes
(
charset
));
os
.
println
();
...
...
ace-am/src/main/java/edu/umiacs/ace/util/FileSizeFormatter.java
View file @
9978f961
...
...
@@ -18,6 +18,7 @@ public class FileSizeFormatter {
}
public
String
format
(
BigDecimal
decimal
)
{
// todo: not sure about the scale, it'll probably be something we want to investigate more
BigDecimal
result
=
decimal
.
divide
(
unit
.
divisor
,
5
,
RoundingMode
.
HALF_UP
);
String
displayUnit
=
unit
==
Unit
.
B
?
""
:
unit
.
name
();
return
result
.
stripTrailingZeros
().
toPlainString
()
+
" "
+
displayUnit
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment