use of com.walmartlabs.concord.plugins.s3.Result in project anyline by anylineorg.
the class TemplateResult method doExecute.
public void doExecute(String finalLocation, ActionInvocation invocation) throws Exception {
// 内容页path
this.contentPage = finalLocation;
Result result = invocation.getResult();
if (!contentPage.startsWith("/")) {
// 相对目录
String dir = (String) invocation.getStack().findValue("dir");
if (null != dir) {
if (!dir.endsWith("/")) {
dir = dir + "/";
}
contentPage = dir + contentPage;
}
}
HttpServletRequest request = ServletActionContext.getRequest();
String template = (String) request.getAttribute(Constant.REQUEST_ATTR_TEMPLATE_LAYOUT_PATH);
// action中设置模板
if (null != template) {
if (template.startsWith("/")) {
// 从根目录开始
} else {
// 根据内容页相对目录
int idx = contentPage.indexOf("/page/");
if (idx > 0) {
template = contentPage.substring(0, idx) + "/template/layout/" + template;
}
}
}
// 根据内容页构建模板path
if (null == template) {
int idx = contentPage.indexOf("/page/");
if (idx > 0) {
template = contentPage.substring(0, idx) + "/template/layout/default.jsp";
}
}
// 根据配置文件读取固定模板path
if (null == template) {
template = ConfigTable.getString("TEMPLET_FILE_PATH_WEB");
if (WebUtil.isWap(request)) {
template = ConfigTable.getString("TEMPLET_FILE_PATH_WAP");
}
if (null == template) {
template = ConfigTable.getString("TEMPLET_FILE_PATH");
}
}
PageContext pageContext = ServletActionContext.getPageContext();
if (pageContext != null) {
pageContext.include(template);
} else {
HttpServletResponse response = ServletActionContext.getResponse();
RequestDispatcher dispatcher = request.getRequestDispatcher(template);
request.setAttribute("content_page", contentPage);
request.setAttribute("anyline_content_page", contentPage);
if (dispatcher == null) {
response.sendError(404, (new StringBuilder()).append("result '").append(template).append("' not found").toString());
return;
}
if (!response.isCommitted() && request.getAttribute("javax.servlet.include.servlet_path") == null) {
request.setAttribute("struts.view_uri", template);
request.setAttribute("struts.request_uri", request.getRequestURI());
dispatcher.forward(request, response);
} else {
dispatcher.include(request, response);
}
}
}
use of com.walmartlabs.concord.plugins.s3.Result in project oracle-db-examples by oracle.
the class RowPublisherOperationTest method rowSubscriber.
@Test
public void rowSubscriber() throws Exception {
System.out.println("rowSubscriber");
System.out.println("=============");
String sql = "select id, name from forum_user";
CompletableFuture<List<String>> result = new CompletableFuture<>();
CompletionStage<List<String>> cs;
Flow.Subscriber<Result.RowColumn> subscriber = getSubscriber(result, false);
try (Session session = getSession()) {
cs = session.<List<String>>rowPublisherOperation(sql).subscribe(subscriber, result).onError(e -> fail(e.getMessage())).submit().getCompletionStage();
}
cs.toCompletableFuture().get(getTimeout().toMillis(), TimeUnit.MILLISECONDS);
List<String> names = result.get(getTimeout().toMillis(), TimeUnit.MILLISECONDS);
;
assertNotNull(names);
assertFalse(names.isEmpty());
assertEquals(14, names.size());
}
use of com.walmartlabs.concord.plugins.s3.Result in project oracle-db-examples by oracle.
the class SessionOperationGroupTest method testCollect.
/**
* Verify basic functionality of
* {@link Session#collect(java.util.stream.Collector)}
* @throws java.lang.Exception
*/
@Test
public void testCollect() throws Exception {
Submission<Object> seSubmission = null;
try (DataSource ds = TestConfig.getDataSource();
Session se = ds.builder().build()) {
Collector<Object, ?, Object> co = new ObjectCollector();
se.attachOperation().timeout(getTimeout()).submit();
se.collect(co).localOperation().onExecution(() -> 99).submit();
se.rowOperation("SELECT COUNT(*) FROM " + TABLE).collect(Collectors.summingInt(row -> row.at(1).get(Integer.class))).timeout(getTimeout()).submit();
se.endTransactionOperation(se.transactionCompletion()).submit();
seSubmission = se.submit();
}
// se.closeOperation().submit() // 5
assertNotNull(seSubmission);
@SuppressWarnings("unchecked") List<Integer> result = (List<Integer>) seSubmission.getCompletionStage().toCompletableFuture().get(getTimeout().toMillis(), TimeUnit.MILLISECONDS);
assertNotNull(result);
// Note the inline comments which count each submit (1, 2, 3...). This is
// the expected count of accumulated results.
assertEquals(5, result.size());
// Attach operation
assertNull(result.get(0));
// Local operation
assertEquals(99, result.get(1).intValue());
// Row operation
assertEquals(0, result.get(2).intValue());
assertEquals(TransactionOutcome.COMMIT, // Transaction operation
result.get(3));
// Close operation
assertNull(result.get(4));
}
use of com.walmartlabs.concord.plugins.s3.Result in project oracle-db-examples by oracle.
the class MultiOperationTest method multiRowOperationWithRowHandler.
/**
* Execute a query returning a single result.
*/
@Test
public void multiRowOperationWithRowHandler() {
fail("TODO: Fix this test");
Properties props = new Properties();
DataSourceFactory factory = DataSourceFactory.newFactory(FACTORY_NAME);
try (DataSource ds = factory.builder().url(URL).username(USER).password(PASSWORD).sessionProperty(JDBC_CONNECTION_PROPERTIES, props).build();
Session session = ds.getSession(t -> fail("ERROR: " + t.getMessage()))) {
assertNotNull(session);
MultiOperation multiOp = session.multiOperation("select * from forum_user").onError(t -> {
fail(t.toString());
});
BiConsumer<Integer, RowOperation<Integer>> rowHandler = (resNum, rowOp) -> {
assertTrue(resNum > 0);
rowOp.collect(Collector.<Result.RowColumn, int[], Integer>of(() -> new int[1], (int[] a, Result.RowColumn r) -> {
a[0] = a[0] + r.at("sal").get(Integer.class);
}, (l, r) -> l, a -> (Integer) a[0])).onError(t -> {
fail(t.toString());
}).submit().getCompletionStage().thenAccept(n -> {
assertTrue((long) n > 0);
}).toCompletableFuture();
};
multiOp.onRows(rowHandler).submit().getCompletionStage().toCompletableFuture().get(TestConfig.getTimeout().toMillis(), TimeUnit.MILLISECONDS);
} catch (Exception e) {
fail(e.getMessage());
}
}
use of com.walmartlabs.concord.plugins.s3.Result in project ipt by gbif.
the class RedirectMessageInterceptor method after.
/**
* If the result is a redirect then store error and messages in the session.
*/
protected void after(ActionInvocation invocation, BaseAction action) throws Exception {
Result result = invocation.getResult();
if (result != null && (result instanceof ServletRedirectResult || result instanceof ServletActionRedirectResult)) {
Map<String, Object> session = invocation.getInvocationContext().getSession();
Collection<String> actionWarnings = action.getWarnings();
if (actionWarnings != null && !actionWarnings.isEmpty()) {
session.put(ACTION_WARNINGS_KEY, actionWarnings);
}
Collection<String> actionErrors = action.getActionErrors();
if (actionErrors != null && !actionErrors.isEmpty()) {
session.put(ACTION_ERRORS_KEY, actionErrors);
}
Collection<String> actionMessages = action.getActionMessages();
if (actionMessages != null && !actionMessages.isEmpty()) {
session.put(ACTION_MESSAGES_KEY, actionMessages);
}
Map<String, List<String>> fieldErrors = action.getFieldErrors();
if (fieldErrors != null && !fieldErrors.isEmpty()) {
session.put(FIELD_ERRORS_KEY, fieldErrors);
}
}
}
Aggregations