Skip to content

Commit

Permalink
#1635 - remove WCM Inbox Cleanup functionality (#1643)
Browse files Browse the repository at this point in the history
fixes #1635
  • Loading branch information
justinedelson authored and badvision committed Jan 4, 2019
1 parent a5c3263 commit 436e784
Show file tree
Hide file tree
Showing 4 changed files with 5 additions and 100 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,9 @@ The format is based on [Keep a Changelog](http://keepachangelog.com)
- #1560 - Changing to osgi annotations
- #1634 - Made reference policy option greedy to allow plugging in a custom DispatcherFlusher service

### Removed
- #1635 - Removed WCM Inbox Web Console Plugin

## [3.19.0] - 2018-11-03

### Added
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,102 +52,10 @@
"felix.webconsole.title=WCM Inbox"})
public class WCMInboxWebConsolePlugin extends HttpServlet {

@Reference
private ResourceResolverFactory rrFactory;

private static final String SERVICE_NAME = "wcm-inbox-cleanup";
private static final Map<String, Object> AUTH_INFO;

static {
AUTH_INFO = Collections.singletonMap(ResourceResolverFactory.SUBSERVICE, (Object) SERVICE_NAME);
}

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, -1);
Date yesterday = cal.getTime();

PrintWriter pw = resp.getWriter();

try (ResourceResolver resolver = rrFactory.getServiceResourceResolver(AUTH_INFO)) {

pw.println("<p class='statline ui-state-highlight'>Inbox Notification Configurations</p>");
pw.println("<ul>");

@SuppressWarnings("deprecation")
Iterator<Resource> configured = resolver
.findResources(
"/jcr:root//element(*, rep:User)/wcm/notification/config/subscriptions/element(*)[@channel='inbox']",
Query.XPATH);
while (configured.hasNext()) {
String path = configured.next().getPath();
pw.println("<li>");
pw.printf("<a target='_new' href='/crx/de/index.jsp#%s'>%s</a>", path, path);
pw.println("</li>");
}
pw.println("</ul>");

pw.println("<br/>");

pw.println("<p class='statline ui-state-highlight'>Inbox Notification Sizes</p>");
pw.println("<table class='content'>");
pw.println("<tr><th class='content'>Path</th><th class='content'>Count</th><th class='content'>In Last 24 Hours</th><th></th></tr>");

@SuppressWarnings("deprecation")
Iterator<Resource> inboxes = resolver.findResources(
"/jcr:root//element(*, rep:User)/wcm/notification/inbox", Query.XPATH);
while (inboxes.hasNext()) {
Resource inbox = inboxes.next();
long[] childCount = countChildren(inbox, yesterday);
pw.printf(
"<tr><td class='content'>%s</td><td class='content'>%s</td><td class='content'>%s</td><td><form method='POST' action=''><input type='hidden' name='path' value='%s'><input type='submit' value='Clear'></form></td></tr>%n",
inbox.getPath(), childCount[0], childCount[1], inbox.getPath());
}

pw.println("</table>");

} catch (Exception e) {
throw new ServletException(e);
}
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String path = req.getParameter("path");
if (path != null) {
try (ResourceResolver resolver = rrFactory.getServiceResourceResolver(AUTH_INFO)){
int counter = 0;
Session session = resolver.adaptTo(Session.class);
Node node = session.getNode(path);
NodeIterator it = node.getNodes();
while (it.hasNext()) {
it.nextNode().remove();
counter++;
}
session.save();

resp.getWriter().printf("<p class='statline ui-state-error'>Deleted %s notifications</p>%n", counter);
} catch (Exception e) {
throw new ServletException(e);
}
}
resp.sendRedirect((String) req.getAttribute("felix.webconsole.pluginRoot"));
}

private long[] countChildren(Resource inbox, Date yesterday) {
long counter = 0;
long yesterdayCounter = 0;
Iterator<Resource> children = inbox.listChildren();
while (children.hasNext()) {
Resource child = children.next();
ValueMap map = child.adaptTo(ValueMap.class);
Date date = map.get("modifiedDate", Date.class);
if (date != null && date.after(yesterday)) {
yesterdayCounter++;
}
counter++;
}
return new long[] { counter, yesterdayCounter };
pw.println("This web console plugin has been removed as it is specific to the Classic UI.");
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
jcr:primaryType="sling:OsgiConfig"
user.mapping="[com.adobe.acs.acs-aem-commons-bundle:ensure-oak-index=acs-commons-ensure-oak-index-service,com.adobe.acs.acs-aem-commons-bundle:email-service=acs-commons-email-service,com.adobe.acs.acs-aem-commons-bundle:httpcache-jcr-storage-service=acs-commons-httpcache-jcr-storage-service,com.adobe.acs.acs-aem-commons-bundle:review-task-asset-mover=acs-commons-review-task-asset-mover-service,com.adobe.acs.acs-aem-commons-bundle:error-page-handler=acs-commons-error-page-handler-service,com.adobe.acs.acs-aem-commons-bundle:form-helper=acs-commons-form-helper-service,com.adobe.acs.acs-aem-commons-bundle:dispatcher-flush=acs-commons-dispatcher-flush-service,com.adobe.acs.acs-aem-commons-bundle:package-replication-status-event-listener=acs-commons-package-replication-status-event-service,com.adobe.acs.acs-aem-commons-bundle:component-error-handler=acs-commons-component-error-handler-service,com.adobe.acs.acs-aem-commons-bundle:system-notifications=acs-commons-system-notifications-service,com.adobe.acs.acs-aem-commons-bundle-twitter:twitter-updater=acs-commons-twitter-updater-service,com.adobe.acs.acs-aem-commons-bundle:workflow-remover=acs-commons-workflow-remover-service,com.adobe.acs.acs-aem-commons-bundle:bulk-workflow=acs-commons-bulk-workflow-service,com.adobe.acs.acs-aem-commons-bundle:wcm-inbox-cleanup=acs-commons-wcm-inbox-cleanup-service,com.adobe.acs.acs-aem-commons-bundle:bulk-workflow-runner=workflow-process-service,,com.adobe.acs.acs-aem-commons-bundle:ensure-service-user=acs-commons-ensure-service-user-service,com.adobe.acs.acs-aem-commons-bundle:shared-component-props=acs-commons-shared-component-props-service,com.adobe.acs.acs-aem-commons-bundle:manage-controlled-processes=acs-commons-manage-controlled-processes-service,com.adobe.acs.acs-aem-commons-bundle:automatic-package-replicator=acs-commons-automatic-package-replicator-service,com.adobe.acs.acs-aem-commons-bundle:on-deploy-scripts=acs-commons-on-deploy-scripts-service]"/>
user.mapping="[com.adobe.acs.acs-aem-commons-bundle:ensure-oak-index=acs-commons-ensure-oak-index-service,com.adobe.acs.acs-aem-commons-bundle:email-service=acs-commons-email-service,com.adobe.acs.acs-aem-commons-bundle:httpcache-jcr-storage-service=acs-commons-httpcache-jcr-storage-service,com.adobe.acs.acs-aem-commons-bundle:review-task-asset-mover=acs-commons-review-task-asset-mover-service,com.adobe.acs.acs-aem-commons-bundle:error-page-handler=acs-commons-error-page-handler-service,com.adobe.acs.acs-aem-commons-bundle:form-helper=acs-commons-form-helper-service,com.adobe.acs.acs-aem-commons-bundle:dispatcher-flush=acs-commons-dispatcher-flush-service,com.adobe.acs.acs-aem-commons-bundle:package-replication-status-event-listener=acs-commons-package-replication-status-event-service,com.adobe.acs.acs-aem-commons-bundle:component-error-handler=acs-commons-component-error-handler-service,com.adobe.acs.acs-aem-commons-bundle:system-notifications=acs-commons-system-notifications-service,com.adobe.acs.acs-aem-commons-bundle-twitter:twitter-updater=acs-commons-twitter-updater-service,com.adobe.acs.acs-aem-commons-bundle:workflow-remover=acs-commons-workflow-remover-service,com.adobe.acs.acs-aem-commons-bundle:bulk-workflow=acs-commons-bulk-workflow-service,com.adobe.acs.acs-aem-commons-bundle:bulk-workflow-runner=workflow-process-service,,com.adobe.acs.acs-aem-commons-bundle:ensure-service-user=acs-commons-ensure-service-user-service,com.adobe.acs.acs-aem-commons-bundle:shared-component-props=acs-commons-shared-component-props-service,com.adobe.acs.acs-aem-commons-bundle:manage-controlled-processes=acs-commons-manage-controlled-processes-service,com.adobe.acs.acs-aem-commons-bundle:automatic-package-replicator=acs-commons-automatic-package-replicator-service,com.adobe.acs.acs-aem-commons-bundle:on-deploy-scripts=acs-commons-on-deploy-scripts-service]"/>

This file was deleted.

0 comments on commit 436e784

Please sign in to comment.