Coder Social home page Coder Social logo

orderofthebee / ootbee-support-tools Goto Github PK

View Code? Open in Web Editor NEW
65.0 28.0 38.0 3.57 MB

OOTBee Support Tools addon to extend set of administrative tools on Repository- and Share-tier

License: Other

FreeMarker 14.37% JavaScript 58.42% CSS 1.96% Java 24.41% Shell 0.42% Batchfile 0.34% Dockerfile 0.08%
addon alfresco admin tools community

ootbee-support-tools's Introduction

Build Status

OOTBee Support Tools

This addon aims to enhance the scope and functionality available to Alfresco administrators via the Repository-tier Admin Console or Share-tier Admin Tools. It contains most of the tools provided with the Alfresco Support Tools addon (by Antonio Soler) without requiring to be run on any specific Alfresco edition as well as about half a dozen custom tools.

The project started as a project at the 2016 Global Virtual Hack-a-thon and has since been transferred to the Order of the Bee in order to make it a fully community-owned and -maintained project.

Compatibility

This project has been built to be compatible with Alfresco Community 5.0.d+ and Alfresco Enterprise 5.1+.

Though it can technically be installed in Alfresco Enterprise 5.0 it will not work properly in that version as the Enterprise Administration Console cannot handle Community Edition tools. The tools will be listed in the navigation but cannot be accessed (result in HTTP 404 errors due to hardcoded URL patterns).

Maven usage

This addon is being build using Alfresco SDK 4. This means we primarily produce a JAR artifact that can be added to an Alfresco installation, though care must be taken to also include all of the third party dependencies required by the OOTBee Support Tools. For users who want a hassle free installation using Alfresco Module Packages (AMPs) we also still produce an AMP for both Repository and Share as we have done in version 1.0.0.0.

Using SNAPSHOT builds

In order to use a pre-built SNAPSHOT artifact published to the Open Source Sonatype Repository Hosting site, the artifact repository may need to be added to the POM, global settings.xml or an artifact repository proxy server. The following is the XML snippet for inclusion in a POM file.

<repositories>
    <repository>
        <id>ossrh</id>
        <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

Repository-tier

Including the AMP artifact into an All-in-One project created from the archetype provided by Alfresco SDK 4, the following dependency must be added to the *-platform-docker sub-module of the generated project:

<dependency>
    <groupId>org.orderofthebee.support-tools</groupId>
    <artifactId>support-tools-repo</artifactId>
    <version>1.1.0.0</version>
    <type>amp</type>
    <classifier>amp</classifier>
    <exclusions>
        <exclusion>
            <groupId>*</groupId>
            <artifactId>*</artifactId>
        </exclusion>
    </exclusions>
</dependency>

Share-tier

The Admin Tools added to the Share user interface are built on Aikau. We recommend that one of the most recent releases of Aikau is used to run the tools for optimal performance, but technically we are compatible and have verified releases as far back as 1.0.67.

Including the AMP artifact into an All-in-One project created from the archetype provided by Alfresco SDK 4, the following dependency must be added to the *-share-docker sub-module of the generated project:

<dependency>
    <groupId>org.orderofthebee.support-tools</groupId>
    <artifactId>support-tools-share</artifactId>
    <version>1.1.0.0</version>
    <type>amp</type>
    <classifier>amp</classifier>
    <exclusions>
        <exclusion>
            <groupId>*</groupId>
            <artifactId>*</artifactId>
        </exclusion>
    </exclusions>
</dependency>

Artifact Repository and Building

Releases of this addon are published to Maven Central so you can use these artifacts in your Maven build without any extra configuration. If you want to use a SNAPSHOT build, clone this project and build it locally using:

mvn install

Contributing

We hope to have lots of collaborators on this project. As such, we have outlined our contribution policies and proceedures in the CONTRIBUTING.md document.

Code of conduct

It is a key goal of our project to foster active participation and collaboration with the greater Alfresco community. To that end we expect folks to conform to our CODE_OF_CONDUCT.md.

License

This addon is licensed under the GNU Lesser General Public License (LGPL) v3 similarily to the original work by Antonio Soler. See LICENSE.md for the full LGPL license.

Alfresco (base software) - Copyright © Alfresco Software Ltd.

This addon contains code forked from the JavaScript Console project developed by Florian Maul, with major contributions from Jens Goldhammer and Axel Faust. The JavaScript Console project is/was licensed under the Apache License, Version 2.0. Based on section 4, item d of the Apache License, the modifications made to JavaScript Console source code / derivative work created as part of this fork are (re-)licensed under the GNU Lesser General Public License (LGPL) as the umbrella license for this addon.

This addon contains / packages the following, unaltered open source libraries in at least some of its distribution artifacts (AMP):

The Contributor Covenant is released under Creative Commons Attribution 4.0 International Public License.

Original authors:

Maintainers:

ootbee-support-tools's People

Contributors

aborroy avatar afaust avatar ahmedowian avatar andreaskring avatar angelborroy avatar angelborroy-ks avatar binduwavell avatar cesarcapillas avatar deas avatar dependabot[bot] avatar douglascrp avatar hi-ko avatar iwkse avatar jgoldhammer avatar loftux avatar luiscolorado avatar mrksjs avatar oboldyreva-faw avatar rschev avatar simonholzapfel avatar yregaieg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ootbee-support-tools's Issues

"Cannot read property "length" from null" -Error when clicking on "Get Transformer Names"

image

Stacktrace:

2016-10-16 13:47:38,805  ERROR [extensions.webscripts.AbstractRuntime] [http-bio-8080-exec-2] Exception from executeScript: 09160004 Wrapped Exception (with status template): 09160012 Failed to execute script 'classpath*:alfresco/templates/webscripts/org/orderofthebee/ootbee-support-tools/admin/support-tools/test-transform-details.get.js': 09160011 TypeError: Cannot read property "length" from null (classpath*:alfresco/templates/webscripts/org/orderofthebee/ootbee-support-tools/admin/support-tools/test-transform-details.get.js#389)
 org.springframework.extensions.webscripts.WebScriptException: 09160004 Wrapped Exception (with status template): 09160012 Failed to execute script 'classpath*:alfresco/templates/webscripts/org/orderofthebee/ootbee-support-tools/admin/support-tools/test-transform-details.get.js': 09160011 TypeError: Cannot read property "length" from null (classpath*:alfresco/templates/webscripts/org/orderofthebee/ootbee-support-tools/admin/support-tools/test-transform-details.get.js#389)
    at org.springframework.extensions.webscripts.AbstractWebScript.createStatusException(AbstractWebScript.java:1138)
    at org.springframework.extensions.webscripts.DeclarativeWebScript.execute(DeclarativeWebScript.java:171)
    at org.alfresco.repo.web.scripts.RepositoryContainer$3.execute(RepositoryContainer.java:512)
    at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:464)
    at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecute(RepositoryContainer.java:587)
    at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecuteAs(RepositoryContainer.java:656)
    at org.alfresco.repo.web.scripts.RepositoryContainer.executeScriptInternal(RepositoryContainer.java:428)
    at org.alfresco.repo.web.scripts.RepositoryContainer.executeScript(RepositoryContainer.java:308)
    at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:399)
    at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:210)
    at org.springframework.extensions.webscripts.servlet.WebScriptServlet.service(WebScriptServlet.java:132)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.alfresco.web.app.servlet.GlobalLocalizationFilter.doFilter(GlobalLocalizationFilter.java:68)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: org.alfresco.scripts.ScriptException: 09160012 Failed to execute script 'classpath*:alfresco/templates/webscripts/org/orderofthebee/ootbee-support-tools/admin/support-tools/test-transform-details.get.js': 09160011 TypeError: Cannot read property "length" from null (classpath*:alfresco/templates/webscripts/org/orderofthebee/ootbee-support-tools/admin/support-tools/test-transform-details.get.js#389)
    at org.alfresco.repo.jscript.RhinoScriptProcessor.execute(RhinoScriptProcessor.java:211)
    at org.alfresco.repo.processor.ScriptServiceImpl.execute(ScriptServiceImpl.java:219)
    at org.alfresco.repo.processor.ScriptServiceImpl.executeScript(ScriptServiceImpl.java:181)
    at org.alfresco.repo.web.scripts.RepositoryScriptProcessor.executeScript(RepositoryScriptProcessor.java:109)
    at org.springframework.extensions.webscripts.AbstractWebScript.executeScript(AbstractWebScript.java:1376)
    at org.springframework.extensions.webscripts.DeclarativeWebScript.execute(DeclarativeWebScript.java:86)
    ... 32 more
Caused by: org.alfresco.error.AlfrescoRuntimeException: 09160011 TypeError: Cannot read property "length" from null (classpath*:alfresco/templates/webscripts/org/orderofthebee/ootbee-support-tools/admin/support-tools/test-transform-details.get.js#389)
    at org.alfresco.repo.jscript.RhinoScriptProcessor.executeScriptImpl(RhinoScriptProcessor.java:533)
    at org.alfresco.repo.jscript.RhinoScriptProcessor.execute(RhinoScriptProcessor.java:207)
    ... 37 more
Caused by: org.mozilla.javascript.EcmaError: TypeError: Cannot read property "length" from null (classpath*:alfresco/templates/webscripts/org/orderofthebee/ootbee-support-tools/admin/support-tools/test-transform-details.get.js#389)
    at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3687)
    at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3665)
    at org.mozilla.javascript.ScriptRuntime.typeError(ScriptRuntime.java:3693)
    at org.mozilla.javascript.ScriptRuntime.typeError2(ScriptRuntime.java:3712)
    at org.mozilla.javascript.ScriptRuntime.undefReadError(ScriptRuntime.java:3725)
    at org.mozilla.javascript.ScriptRuntime.getObjectProp(ScriptRuntime.java:1483)
    at org.mozilla.javascript.gen.classpath__alfresco_templates_webscripts_org_orderofthebee_ootbee_support_tools_admin_support_tools_test_transform_details_get_js_21._c_getTransformerNames_17(classpath*:alfresco/templates/webscripts/org/orderofthebee/ootbee-support-tools/admin/support-tools/test-transform-details.get.js:389)
    at org.mozilla.javascript.gen.classpath__alfresco_templates_webscripts_org_orderofthebee_ootbee_support_tools_admin_support_tools_test_transform_details_get_js_21.call(classpath*:alfresco/templates/webscripts/org/orderofthebee/ootbee-support-tools/admin/support-tools/test-transform-details.get.js)
    at org.mozilla.javascript.optimizer.OptRuntime.call0(OptRuntime.java:23)
    at org.mozilla.javascript.gen.classpath__alfresco_templates_webscripts_org_orderofthebee_ootbee_support_tools_admin_support_tools_test_transform_details_get_js_21._c_script_0(classpath*:alfresco/templates/webscripts/org/orderofthebee/ootbee-support-tools/admin/support-tools/test-transform-details.get.js:660)
    at org.mozilla.javascript.gen.classpath__alfresco_templates_webscripts_org_orderofthebee_ootbee_support_tools_admin_support_tools_test_transform_details_get_js_21.call(classpath*:alfresco/templates/webscripts/org/orderofthebee/ootbee-support-tools/admin/support-tools/test-transform-details.get.js)
    at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
    at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
    at org.mozilla.javascript.gen.classpath__alfresco_templates_webscripts_org_orderofthebee_ootbee_support_tools_admin_support_tools_test_transform_details_get_js_21.call(classpath*:alfresco/templates/webscripts/org/orderofthebee/ootbee-support-tools/admin/support-tools/test-transform-details.get.js)
    at org.mozilla.javascript.gen.classpath__alfresco_templates_webscripts_org_orderofthebee_ootbee_support_tools_admin_support_tools_test_transform_details_get_js_21.exec(classpath*:alfresco/templates/webscripts/org/orderofthebee/ootbee-support-tools/admin/support-tools/test-transform-details.get.js)
    at org.alfresco.repo.jscript.RhinoScriptProcessor.executeScriptImpl(RhinoScriptProcessor.java:509)
    ... 38 more

Add tool for OpenOffice monitoring / management

Since most if not all Community Edition installations use OpenOffice / LibreOffice as a core transformation component and this component is prone to various issues, a special tool should be added allowing proper monitoring and management of that component.

Relevant features:

  • connection check
  • "health" check (using simple test transformation)
  • explicit process start / stop / kill

This tool is not meant as a substitute to existing addons that add watch dog functionality. It merely is meant to provide the administrator with manual access to relevant information / functionality.

Log snapshotting fearure

It would be amazing to be able to temporarily adjust loggers, for all log output to be siphoned off and then with the click of a button to restore the previous loggers and download a copy of the log statements that happened during the temporary adjustment in settings.

Users can use this to increase logging, perform a test and restore logging. The log file they receive will automatically bracket their test.

You could even add a lap timer feature like a stopwatch where the user can click a button to stamp out a log entry like "event 1" the next time they press the button "event 2" would be logged, etc. this way they could use this snapshot feature for a multi segment test and more easily find each part of their test in the log file.

Webscript service for consuming metrics from external sources

Hi:

First of all, thank you for the addon. It is very useful also for monitoring Alfresco Community.
I would like to request for an enhacement. I monitor Alfresco with nagios/icinga and I wonder if it was possible to collect some of the metrics information in a webscript for being consumed in JSON format from external sources:

  • Active database connections
  • Active tickets in Alfresco
  • Logged users
  • CPU used
  • Memory used
  • Number of threads
  • ...

Thanks in advance and best regards.

--C.

Provide Hot Threads and Thread Dump tool in Share-tier Admin Tools

Although most of the business logic will be processed in the Repository-tier as the primary backend, in some instances it may be necessary to view the current state of Share-tier threads, e.g. to investigate a long running page render or data web script. Since we already have a Hot Threads and Thread Dump tool on the Repository-tier something similar could be provided on the Share-tier as well.

Add some screenshots to the README/wiki

It would be great for folks to get some kind of a visual sense of what kinds of tools they will get if they install this add-on.

I found the few images @AFaust posted on twitter quite compelling and they gave me the motivation to download the project and build it and try it out.

Publish to maven repostiory

Can you please publish this to a maven repository so that others are able to include this as a module?

Thanks
Jens

Add log setting filter in Share Log4J Settings

FEATURE / ENHANCEMENT

The Log4J Settings tool within the Share UI currently allows filtering of loggers based on name patterns and the distinction between "has explicit setting" vs. "inherits setting from parent". It might be a usefull enhancement to either add an additional filter for specific log settings or incorporate this with the existing filter for explicit/inherited setting. In the latter case the values could be the potential log levels combined with a set of meta- values, e.g. "All", "All unconfigured", "All configured".

Persist custom log settings over a restart

There are some cases where it would help if the logging specified in support tools persisted over a reboot. This could be to help debugging issues during startup or for less technical folks so they don't need to mess with log4j properties files.

Provide a "JMX Dump" or alike feature

FEATURE / ENHANCEMENT

As mentioned in Bindu's talk at BeeCon it could be beneficial to provide a tool that allows exporting important information about an Alfresco system to a file-based summary. He mentioned that JMX Dump is technically supported in Community as well though it may have way less information included in its output. When the Alfresco Support Tools was ported to support Community Edition we consciously ignored the JMX Dump tool it offers for lack of JMX support in Community. If the Community JMX Dump Bindu mentioned lacks Alfresco specific information (e.g. global properties, information about modules etc) we should consider building a custom export that produces a similar output but uses the direct Java APIs or JS code we already have in other tools to collect the information.

Caches - Fullness Indicators

When caches become full, highlight them in red.
When they become 90% full, highlight them in yellow.
Add a map at the top of the page.

Thread graph in System Performance tool upper bound is fixed

Currently the upper bound of the active threads graph in the System Performance tool is fixed to the "peak number of threads" that have been seen until the page is loaded. This means that especially right after the start of the system when little access to has been made and not many connector threads instantiated, the graph will quickly move beyond the upper bound with no way to see the actual value.
The active threads graph upper bound should not be fixed at all - if possible it should adjust to the data displayed / loaded in the currently visible timeframe.

SyntaxError JSON.parse

Hello,

I have been testing this new tool and I keep getting this popup.

SyntaxError: JSON.parse: unexpected character at line 45 column 1 of the JSON data
200
{

"users": [

{

"username" : "private",

"firstName" : "private",

"lastName" : "private",

"email" : "private"

},

]
##############################################

I've removed the actual data for privacy. It happens while I'm on the Active Sessions tab and I keep the page there for a while. Is this normal?

Improve Applied Patches UI

The Applied Patches tool currently takes up a lot of real estate in a fixed table. Since we already use JQuery-based datatables in other tools we should use one here as well. Specifically the UI could be improved in the following ways:

  • allow sorting and filtering/searching for patches
  • provide human readable, relative dates on mouse over (similar to Scheduled Jobs tool)
  • limit table to display width on displays with at least XXX pixel width

Unit tests / quality assurance

Hi,

how can this project ensure quality, e.g. that everything is working? I have not seen any unittest in the project. Do you have any experience how to test these components?

Thanks
Jens

Enhance caches overview to support dynamic data refresh

FEATURE / ENHANCEMENT

The Caches tool should support reloading the cache statistics dynamically without requiring a full page reload and keeping the current sort ordering in place so that updates (such as relevant for PR #75 cache clearance) can go without messing up the current user view.

Enable all tools for all editions of Alfresco

As discussed in the kick-off session for the OOTBee maintainers on January 6th, we want to enable all tools to be displayed in any edition of Alfresco. We acknowledge the overlap this may produce with the Alfresco Support Tools addon but since a few of the tools have been significantly improved compared to that addon, it would be a shame if the tools cannot be used just due to our reluctance. Maybe we can add a customisation / optional label suffix to visually separate these tools when both addons have been installed at the same time.

Add time scale option to "active sessions" tool

The "system performance" tool includes selection controls for the chart time scale which currently the "active sessions" tool lacks. This should be changed so both charting tools are consistent in terms of usability.

log4j root logger level cannot be changed via log4j settings admin page

the UI changes the level, but switches it back after reload to Error.
The root logger cannot be changed via changeLoggerState method here:

function changeLoggerState(loggerName, level)
{
    var logger = Packages.org.apache.log4j.Logger.getLogger(loggerName);

    if (String(level) === 'UNSET')
    {
        logger.setLevel(null);
    }
    else
    {
        logger.setLevel(Packages.org.apache.log4j.Level.toLevel(level));
    }
}

It must be changed this way:
Logger.getRootLogger().setLevel();

Improve human readable description of configured CRON expressions

We currently include a human readable description generated from job CRON expressions as the cell title for the CRON expression cells in the Scheduled Jobs tool. This description is generated by using the cron-utils library. From some descriptions I have seen while preparing screenshots for the wiki documentation, there is some room for improvement (maybe warranting PRs to the cron-utils project).
E.g. the CRON "0 0 0 ? 1 1 2030" currently results in the description text "at 00:00 at January month at Monday day at 2030 year" - which isn't wrong, just painfully weird/verbose.

Add tool for reviewing and cleaning audit data

This is just a suggestion. However, we often run into situations where it would help to have easy access to some audit data.

I'm thinking from/to date/time selection. The ability to see audit data in this range.

Ideally some ability to filter the audit data in the range. Some regex search capability would be cool. Having a way to target specific nodes/paths could be very helpful.

Some way to see a histogram of the, possibly filtered, audit data.

In the histogram view maybe there is a way to indicate the time scale for the histogram bars.

Maybe a way to prune audit entries data based on the range.

Maybe the ability to enable the job that cleans up orphaned audit property entries when audit entries are pruned.

Browsing and downloading of repository logfiles

Current log page allows to tail log files. It would be cool to manage logfiles via browser.

Possible features:

  • download single files
  • zip files into one node and allow downloading via alfresco webscript
  • delete log files

Add buffer pools to System Performance tool

FEATURE / ENHANCEMENT

Any custom / 3rd party feature added to Alfresco that is based on Java code may at any point make use of Java NIO features for direct memory allocation or mapped byte buffers, which will not be tracked via the current heap monitoring graph. I personally have developed a custom caching solution that supports off-heap storage of cache entries. Memory used by off-heap storage is currently not shown anywhere in the System Performance tool, and even standard monitoring tools may not show it by default (e.g. jvisualvm requires an additional plugin to show buffer pools). Since the information is available via a local MBean we should be able to easily access and display the metrics.

Support resizing for charts

Some charts, e.g. in the Active Sesssions tool, use a canvas with a fixed width for rendering. These charts do not adapt to changes in the viewport size, leading to quite unusable page layout. We should make these pages at least a minimal amount of responsive so that basic resize operations do not break them.

User defined logging sets and presets

It would be awesome to provide a list of presets for all loggers. Say user wants to debug CMIS or Kerberos. It would be amazing to selec from a list of presets and quickly know the right loggers are enabled for the task at hand.

Additionally users may develop their own logging profiles/sets and wish to easily switch between them.

Scheduled jobs tool should show jobs from "all" scheduler instances

Modules and subsystems may create their own job schedulers in addition to the default scheduler. It would be a valueable enhancement if the scheduled jobs tool were to allow viewing and triggering all of the jobs in the system, not just those from the default scheduler.

Add "configure dashboard" action to "user dashboards" and "site manager" tools

Currently we add the ability to completely reset any user or site dashboard to the Share-tier Admin Tools. As an extension of that functionality we should look into adding the ability to (as an admin) configure individual dashboard configurations. Basically the "Customise Dashboard" action that a site manager or user has should be accesible from the Admin Tools.

Add enterprise-only tool that allows for exporting JMX settings in the form of alfresco-global.properties entries

The original support tools add-on has a screen where you can see which JMX values have been overridden and you can restore the values stored in your alfresco-global.properties. It would be awesome if you could export these overridden values in such a way that you could then paste them into your alfresco-global.properties file.

It would also be interesting to be able to import these values and have them post back the the JMX backend.

Artifact net.time4j:time4j-core:jar:3.23 could not be resolved

Hi,
I'm trying to install the modules, compiling the repo one I received this error:

[ERROR] Failed to execute goal on project ootbee-support-tools-repo: Could not resolve dependencies for project org.orderofthebee.addons:ootbee-support-tools-repo:amp:0.0.1.0-SNAPSHOT: The following artifacts could not be resolved: net.time4j:time4j-core:jar:3.23, net.time4j:time4j-i18n:jar:3.23: Could not transfer artifact net.time4j:time4j-core:jar:3.23 from/to central (https://repo.maven.apache.org/maven2): GET request of: net/time4j/time4j-core/3.23/time4j-core-3.23.jar from central failed: Connection reset -> [Help 1]

Do you have idea why?

Nevermind. I find it out. It seems the share module must be compiled before the repo one. Following this order it goes fine

Hot Threads / Thread Dump - Save actions do not work

While creating screenshots for the tool documentation I noticed that the "Save current ..." and "Save All" buttons on both the Hot Threads and Thread Dump tools currently do not work. The browser console shows an error about "TypeError: window.webkitURL is undefined"

Add feature to clear (purge) caches

It can be really useful to be able to purge the content of a cache, either for dev/profiling reasons or when suspecting inconsistent values in the cache.
It is in my understanding that such operation on some caches can break Alfresco, so might be wise to limit this feature to the "safe to clear" caches, or display a disclaimer for confirmation before making the call to clear the cache.

Can't find resource for bundle java.util.PropertyResourceBundle scheduled-jobs.get.js

I'm testing support tools on a 5.0.d server.
When I try to acces the Scheduled Jobs page, I get the error below:

09280001 Wrapped Exception (with status template): 09280202 Failed to execute script 'classpath*:alfresco/templates/webscripts/org/orderofthebee/ootbee-support-tools/admin/support-tools/scheduled-jobs.get.js': Can't find resource for bundle java.util.PropertyResourceBundle, key days
<douglascrp> Exception: java.util.MissingResourceException - Can't find resource for bundle java.util.PropertyResourceBundle, key days

The stacktrace:

2016-10-28 09:59:40,527  ERROR [extensions.webscripts.AbstractRuntime] [http-nio-8080-exec-19] Exception from executeScript - redirecting to status template error: 09280001 Wrapped Exception (with status template): 09280202 Failed to execute script 'classpath*:alfresco/templates/webscripts/org/orderofthebee/ootbee-support-tools/admin/support-tools/scheduled-jobs.get.js': Can't find resource for bundle java.util.PropertyResourceBundle, key days
 org.springframework.extensions.webscripts.WebScriptException: 09280001 Wrapped Exception (with status template): 09280202 Failed to execute script 'classpath*:alfresco/templates/webscripts/org/orderofthebee/ootbee-support-tools/admin/support-tools/scheduled-jobs.get.js': Can't find resource for bundle java.util.PropertyResourceBundle, key days
    at org.springframework.extensions.webscripts.AbstractWebScript.createStatusException(AbstractWebScript.java:1127)
    at org.springframework.extensions.webscripts.DeclarativeWebScript.execute(DeclarativeWebScript.java:171)
    at org.alfresco.repo.web.scripts.RepositoryContainer$3.execute(RepositoryContainer.java:482)
    at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:457)
    at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecute(RepositoryContainer.java:551)
    at org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecuteAs(RepositoryContainer.java:619)
    at org.alfresco.repo.web.scripts.RepositoryContainer.executeScriptInternal(RepositoryContainer.java:399)
    at org.alfresco.repo.web.scripts.RepositoryContainer.executeScript(RepositoryContainer.java:280)
    at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:378)
    at org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:209)
    at org.springframework.extensions.webscripts.servlet.WebScriptServlet.service(WebScriptServlet.java:132)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.alfresco.web.app.servlet.GlobalLocalizationFilter.doFilter(GlobalLocalizationFilter.java:61)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1739)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1698)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
Caused by: org.alfresco.scripts.ScriptException: 09280202 Failed to execute script 'classpath*:alfresco/templates/webscripts/org/orderofthebee/ootbee-support-tools/admin/support-tools/scheduled-jobs.get.js': Can't find resource for bundle java.util.PropertyResourceBundle, key days
    at org.alfresco.repo.jscript.RhinoScriptProcessor.execute(RhinoScriptProcessor.java:204)
    at org.alfresco.repo.processor.ScriptServiceImpl.execute(ScriptServiceImpl.java:212)
    at org.alfresco.repo.processor.ScriptServiceImpl.executeScript(ScriptServiceImpl.java:174)
    at org.alfresco.repo.web.scripts.RepositoryScriptProcessor.executeScript(RepositoryScriptProcessor.java:102)
    at org.springframework.extensions.webscripts.AbstractWebScript.executeScript(AbstractWebScript.java:1364)
    at org.springframework.extensions.webscripts.DeclarativeWebScript.execute(DeclarativeWebScript.java:86)
    ... 33 more
Caused by: java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key days
    at java.util.ResourceBundle.getObject(ResourceBundle.java:450)
    at java.util.ResourceBundle.getString(ResourceBundle.java:407)
    at com.cronutils.descriptor.CronDescriptor.describeDayOfMonth(CronDescriptor.java:92)
    at com.cronutils.descriptor.CronDescriptor.describe(CronDescriptor.java:61)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:126)
    at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:225)
    at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
    at org.mozilla.javascript.gen.classpath__alfresco_templates_webscripts_org_orderofthebee_ootbee_support_tools_admin_support_tools_scheduled_jobs_get_js_111._c_buildScheduledJobsData_8(classpath*:alfresco/templates/webscripts/org/orderofthebee/ootbee-support-tools/admin/support-tools/scheduled-jobs.get.js:244)
    at org.mozilla.javascript.gen.classpath__alfresco_templates_webscripts_org_orderofthebee_ootbee_support_tools_admin_support_tools_scheduled_jobs_get_js_111.call(classpath*:alfresco/templates/webscripts/org/orderofthebee/ootbee-support-tools/admin/support-tools/scheduled-jobs.get.js)
    at org.mozilla.javascript.optimizer.OptRuntime.callName0(OptRuntime.java:74)
    at org.mozilla.javascript.gen.classpath__alfresco_templates_webscripts_org_orderofthebee_ootbee_support_tools_admin_support_tools_scheduled_jobs_get_js_111._c_script_0(classpath*:alfresco/templates/webscripts/org/orderofthebee/ootbee-support-tools/admin/support-tools/scheduled-jobs.get.js:325)
    at org.mozilla.javascript.gen.classpath__alfresco_templates_webscripts_org_orderofthebee_ootbee_support_tools_admin_support_tools_scheduled_jobs_get_js_111.call(classpath*:alfresco/templates/webscripts/org/orderofthebee/ootbee-support-tools/admin/support-tools/scheduled-jobs.get.js)
    at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
    at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
    at org.mozilla.javascript.gen.classpath__alfresco_templates_webscripts_org_orderofthebee_ootbee_support_tools_admin_support_tools_scheduled_jobs_get_js_111.call(classpath*:alfresco/templates/webscripts/org/orderofthebee/ootbee-support-tools/admin/support-tools/scheduled-jobs.get.js)
    at org.mozilla.javascript.gen.classpath__alfresco_templates_webscripts_org_orderofthebee_ootbee_support_tools_admin_support_tools_scheduled_jobs_get_js_111.exec(classpath*:alfresco/templates/webscripts/org/orderofthebee/ootbee-support-tools/admin/support-tools/scheduled-jobs.get.js)
    at org.alfresco.repo.jscript.RhinoScriptProcessor.executeScriptImpl(RhinoScriptProcessor.java:502)
    at org.alfresco.repo.jscript.RhinoScriptProcessor.execute(RhinoScriptProcessor.java:200)
    ... 38 more

This only happens when my browser is configured for Portuguese. It works perfectly when configure for English though.

Support configurable log format for snapshot appender

FEATURE / ENHANCEMENT

As a secondary enhancement to #57 it could be a useful feature if the snapshot appender could be configured with a custom log format. This would enable inclusion of any custom MDC data or just simplify the output. One use case I could think of (which I did in the past) is using the snapshot feature for some SearchService query profiling where the details of the queries were output to CSV format in order to be used for JMeter based benchmarks (basically collecting benchmark data from a live system).
This feature would require the addition of a dialog to the "Start snapshot" action via the client-side admin.js utilities.

Use pagination for listing active user sessions

This task has actually been taken from an Alfresco JIRA ticket regarding inclusion of the original Support Tools addon in Alfresco Enterprise. When many users are logged in the list will be too large to display properly and might take a long time to load. There should be pagination to only load subsets of the list (like we do for the dashboard components / user dashboards on the Share-tier).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.