Kindling - A standalone collection of utilities to help Ignition users. Features various tools to help work with Ignition's custom data export formats

Related tags

Utility kindling
Overview

Kindling

A standalone collection of utilities to help Ignition users. Features various tools to help work with Ignition's custom data export formats.

Thread Viewer

Parses Ignition thread dump .json files (generated by all Ignition mechanisms since 8.1.10).

Log Viewer

Parses Ignition's system_logs.idb file to display a structured view of logs, and their attached Mapped Diagnostic Context (MDC) keys.

Store and Forward Cache Viewer

Opens the HSQLDB file that contains the Store and Forward disk cache. Attempts to parse the Java-serialized data within into its object representation. If unable to deserialize (e.g. due to a missing class), falls back to a string explanation of the serialized data.

Usage

Download either the installer or portable executable from the releases tab. Once running, you can use Kindling to open various Ignition related files. You can use the 'Choose Files' button in the tab bar to open specific files, or drag and drop files from your OS onto the running window. In addition, Kindling will interpret each command-line argument it receives on startup as a filepath to open, allowing it to be registered as a file handler at the OS level.

Development

Kindling uses Java Swing as a GUI framework, but is written almost exclusively in Kotlin, an alternate JVM language. Gradle is used as the build tool, and will automatically download the appropriate Gradle and Java version (via the Gradle wrapper). Most IDEs (Eclipse, IntelliJ) should figure out the project structure automatically. You can directly run the main class in your IDE (MainPanel), or you can run the application via./gradlew run at the command line.

Contribution

Contributions of any kind (additional tools, polish to existing tools) are welcome.

Releases

./gradlew jpackage will generate a jpackage folder in build/. The outer level support-tools-$version.exe can be used as an installer, or you can zip the support-tools folder and distribute it directly as a portable executable.

Acknowledgements

Disclaimer

This is not an official Inductive Automation product and is not affiliated with, supported by, maintained by, or otherwise associated with Inductive Automation in any way. This software is provided with no warranty.

Comments
  • Machine-readable exports

    Machine-readable exports

    For known/parseable data types, we should have useable export in a format like XML, JSON or even just CSV. This won't be an attempt to match the existing quarantine import/export format, but a totally new format.

    enhancement core 
    opened by paul-griffith 5
  • NoClassDefFoundError on Mint/Linux

    NoClassDefFoundError on Mint/Linux

    WARNING: package com.sun.java.swing.plaf.windows not in java.desktop                 
    Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: com/sun/java/swing/plaf/windows/WindowsLookAndFeel
    

    https://forum.inductiveautomation.com/t/kindling-a-collection-of-tools-to-help-with-ignition/54689/12?u=pgriffith

    Needs investigation; JDK should be JDK but FlatLaf may have implicit dependencies.

    bug 
    opened by paul-griffith 3
  • Escape HTML in details pane

    Escape HTML in details pane

    Came up in a cache dump from a support rep.

    As a related task, should investigate support for com.inductiveautomation.factorysql.groups.storedprocgroup.SPHistoricalData. I tried for a little while to get this class to show up, but the instance from the customer had Jython objects serialized within, which would significantly bloat the download size, which I'd like to avoid. Not sure the best path forward.

    enhancement cache-viewer 
    opened by paul-griffith 2
  • add dark/light theme per OS setting

    add dark/light theme per OS setting

    Changes: Add DarkThemeDetector as companion object val in MainPanel Modify Theme Button constructor to take boolean parameter for instantiation

    Fixes #14

    enhancement core 
    opened by Joshlha 2
  • Update kotlin to v1.8.0

    Update kotlin to v1.8.0

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | org.jetbrains.kotlin.plugin.serialization | 1.7.22 -> 1.8.0 | age | adoption | passing | confidence | | org.jetbrains.kotlin.jvm | 1.7.22 -> 1.8.0 | age | adoption | passing | confidence |


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about these updates again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 1
  • Update flatlaf to v3 (major)

    Update flatlaf to v3 (major)

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | com.formdev:flatlaf-swingx | 2.6 -> 3.0 | age | adoption | passing | confidence | | com.formdev:flatlaf-jide-oss | 2.6 -> 3.0 | age | adoption | passing | confidence | | com.formdev:flatlaf-extras | 2.6 -> 3.0 | age | adoption | passing | confidence | | com.formdev:flatlaf | 2.6 -> 3.0 | age | adoption | passing | confidence |


    Release Notes

    JFormDesigner/FlatLaf

    v3.0

    Compare Source

    New features and improvements
    • macOS light and dark themes: The two new themes FlatMacLightLaf and FlatMacDarkLaf use macOS colors and look similar to native macOS controls. (PRs #​533, #​612 and #​607)
    • Fonts: Packaged some fonts into JARs and provide an easy way to use them with FlatLaf. (PRs #​545, #​614 and #​615) At the moment there are three fonts:
      • Inter (https://rsms.me/inter/) - a typeface carefully crafted & designed for computer screens
      • Roboto (https://fonts.google.com/specimen/Roboto) - default font on Android and recommended for Material Design
      • JetBrains Mono (https://www.jetbrains.com/mono) - a monospaced typeface
    • Rounded selection: Optionally use rounded selection in:
    • Tree: Hide default closed/opened/leaf icons by default. Set UI value Tree.showDefaultIcons to true to show them.
    • ToolBar: Hover effect for button groups. (PR #​534)
    • Icons: New modern rounded outlined icons for JFileChooser, JOptionPane, JPasswordField and JTree. (PR #​577)
    Fixed bugs
    • FileChooser: Fixed layout of (optional) accessory component and fixed too large right margin. (issue #​604; regression since implementing PR #​522 in FlatLaf 2.3)
    • Tree:
      • Fixed missing tree lines (if enabled) for wide-selected rows. (issue #​598)
      • Fixed scaling of tree lines and fixed alignment to expand/collapse arrows.
      • Removed support for dashed tree lines. Tree.lineTypeDashed is now ignored.
    • SwingX: Fonts in JXHeader, JXMonthView, JXTaskPane and JXTitledPanel were not updated when changing default font.

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about these updates again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 1
  • Update actions/setup-java action to v3

    Update actions/setup-java action to v3

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | actions/setup-java | action | major | v1 -> v3 |


    Release Notes

    actions/setup-java

    v3

    Compare Source

    v2

    Compare Source


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 1
  • Update dependency njre to ^0.3.0

    Update dependency njre to ^0.3.0

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | njre (source) | ^0.2.0 -> ^0.3.0 | age | adoption | passing | confidence |


    Release Notes

    nvuillam/njre

    v0.3.0

    Compare Source


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 1
  • IA Javadoc links in thread stack traces.

    IA Javadoc links in thread stack traces.

    • Moved escapeHtml to CacheView and ThreadView. Modules are now responsible for escaping their own Detail strings.
    • Added maps which map a class path to a link in the javadocs. simply reference these maps to get the link.
    • Added String.toHtmlLink method which converts a string to an html anchor tag string.
    • Added Jsoup dependencies in the Core module.
    • Added hyper link listener to DetailsPane.
    opened by Joshlha 1
  • Add legacy thread dump parsing. Add thread pool filter.

    Add legacy thread dump parsing. Add thread pool filter.

    Thread viewer now fully supports all Ignition thread dump formats. Added support for legacy (pre-8.1.10) thread dumps from both the scripting function and web page.

    Also added thread filtering by "pool". Thread names are of the format pool-number and filtering by pool makes searching through threads of a specific type of subsystem quite easy.

    Misc refactoring of Thread dump parsing as well as implemented tests for legacy threads.

    Fixes #45

    thread-viewer 
    opened by Joshlha 1
  • Refactor GWBK viewer UI

    Refactor GWBK viewer UI

    image

    • [ ] Needs padding
    • [ ] Projects shouldn't be treated 'specially' (should be in a tab?)
      • [ ] Project list export action is not discoverable
    • [ ] Full file explorer view would be helpful, even if it does just overlap with any off the shelf zip tool
    enhancement gwbk-viewer 
    opened by paul-griffith 1
  • Update dependency org.jfree:jfreechart to v1.5.4

    Update dependency org.jfree:jfreechart to v1.5.4

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | org.jfree:jfreechart (source) | 1.5.3 -> 1.5.4 | age | adoption | passing | confidence |


    Release Notes

    jfree/jfreechart

    v1.5.4: JFreeChart 1.5.4

    Version 1.5.4 (8 January 2023)
    • add new methods to access maps for datasets, renderers and axes in plots (#​201);
    • add option to truncate item labels and compute contrast colors (PR #​225)
    • add new annotations (PR #​226)
    • add new panel for background rendering of charts (PR #​233)
    • fix tick label font for LogAxis with number format override (#​98);
    • added valueVisible flag to MeterPlot (#​231);
    • added get/setWebFillAlpha() methods to SpiderWebPlot (#​279)
    • add argument checks for annotations (#​223);
    • removed JFreeChartResources.java file (#​239)

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • Threadview fixes

    Threadview fixes

    • Add highlighting to comparison pane for max cpu usage and largest stack trace.
    • Reintroduce clipboard tool compatibility. (Only one Thread Dump can be pasted)
    • Small little bypass for an error that occurs when sorting by a column which is invisible by default and the model changes. We simply check to make sure the column is visible before attempting to sort by it now.
    • CPU usage was showing 0.0% for values that were small. I believe this issue was related to the number foratter used. Changed to a generic decimal formatter and increased precision for more accurate values.
    opened by Joshlha 0
  • Zip tool

    Zip tool

    New:

    • Allow the zip opener to open any tool with its custom tool view.
    • Can open multiple files at once in a MultiTool (logs and threads)
    • S&F caches can only be opened with the Cache tool. Use the zip tool to view the raw files.

    Changed:

    • File tree now only opens on double-click or with a right click option
    • S&F Cache tool will now try to open caches if the .data or .script file is selected as well. Caches no longer need to be zipped, they just need to have all necessary files in the same directory.
    opened by Joshlha 0
  • Dependency Dashboard

    Dependency Dashboard

    This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

    Open

    These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

    Ignored or Blocked

    These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

    Detected dependencies

    github-actions
    .github/workflows/main-build.yml
    • actions/checkout v3
    • actions/setup-java v1
    • gradle/gradle-build-action v2
    • actions/upload-artifact v3
    • actions/upload-artifact v3
    • actions/checkout v3
    • actions/download-artifact v3
    • actions/download-artifact v3
    • actions/download-artifact v3
    • actions/setup-node v3
    .github/workflows/pr-build.yml
    • actions/checkout v3
    • actions/setup-java v1
    • gradle/gradle-build-action v2
    gradle
    gradle.properties
    settings.gradle.kts
    build.gradle.kts
    app/build.gradle.kts
    backup/build.gradle.kts
    buildSrc/settings.gradle.kts
    buildSrc/build.gradle.kts
    cache/build.gradle.kts
    core/build.gradle.kts
    gradle/libs.versions.toml
    • org.jetbrains.kotlinx:kotlinx-coroutines-core 1.6.4
    • org.jetbrains.kotlinx:kotlinx-coroutines-swing 1.6.4
    • org.jetbrains.kotlinx:kotlinx-serialization-json 1.4.1
    • org.xerial:sqlite-jdbc 3.40.0.0
    • ch.qos.logback:logback-classic 1.4.5
    • org.hsqldb:hsqldb 2.7.1
    • net.lingala.zip4j:zip4j 2.11.2
    • io.github.evanrupert:excelkt 1.0.2
    • org.jsoup:jsoup 1.15.3
    • com.miglayout:miglayout-swing 11.0
    • com.formdev:flatlaf 3.0
    • com.formdev:flatlaf-extras 3.0
    • com.formdev:flatlaf-jide-oss 3.0
    • com.formdev:flatlaf-swingx 3.0
    • com.formdev:svgSalamander 1.1.4
    • com.formdev:jide-oss 3.7.12
    • org.swinglabs.swingx:swingx-core 1.6.5-1
    • com.github.Dansoftowner:jSystemThemeDetector 3.8
    • com.fifesoft:rsyntaxtextarea 3.3.1
    • org.jfree:jfreechart 1.5.3
    • com.inductiveautomation.ignition:ia-gson 2.8.5
    • io.kotest:kotest-runner-junit5 5.5.4
    • io.kotest:kotest-assertions-core 5.5.4
    • org.jetbrains.kotlin.jvm 1.8.0
    • org.jetbrains.kotlin.plugin.serialization 1.8.0
    • org.jlleitschuh.gradle.ktlint 11.0.0
    • com.github.johnrengelman.shadow 7.1.2
    • org.beryx.runtime 1.13.0
    idb/build.gradle.kts
    log/build.gradle.kts
    thread/build.gradle.kts
    gradle-wrapper
    gradle/wrapper/gradle-wrapper.properties
    • gradle 7.6
    npm
    package.json
    • jdeploy ^3.1.8
    • njre ^0.2.0
    • shelljs ^0.8.4

    • [ ] Check this box to trigger a request for Renovate to run again on this repository
    opened by renovate[bot] 0
  • Diagnostics bundle handling

    Diagnostics bundle handling

    https://forum.inductiveautomation.com/t/nightly-8-1-changelogs-2022/54636/123

    This would be a big help to support. Might need a new API, for a Tool that opens many tool windows? Or could just open many tools in a sub-tab strip along the top. Will have to experiment.

    opened by paul-griffith 0
  • Logo

    Logo

    It's not a proper open source project without a goofy logo

    Any submissions are welcome

    Should probably stick to the theme without being 'destructive' to the IA/Ignition logos

    enhancement core 
    opened by paul-griffith 0
Releases(0.5.0)
Owner
Paul Griffith
Paul Griffith
Various useful utilities for Android apps development

Android Commons Various useful utilities for Android apps development. API documentation provided as Javadoc. Usage Add dependency to your build.gradl

Alex Vasilkov 112 Nov 14, 2022
Collection of source codes, utilities, templates and snippets for Android development.

Android Templates and Utilities [DEPRECATED] Android Templates and Utilities are deprecated. I started with this project in 2012. Android ecosystem ha

Petr Nohejl 1.1k Nov 30, 2022
FractalUtils - A collection of utility functions and classes, with an emphasis on game related utilities

A collection of utility functions and classes written in Kotlin. There is some emphasis on utilities useful for games (Geometry, Random, Time, Updating, etc).

null 2 Nov 11, 2022
A collection of Android build scripts for various third-party libraries and the tooling to build them

ndkports A collection of Android build scripts for various third-party libraries and the tooling to build them. If you're an Android app developer loo

reSIProcate project 0 Jan 17, 2022
A Telegram bot utilities that help to reduce the code amount

Flume Party A Telegram bot utilities that help to reduce code amount. Real project examples Pull Party Bot: 19% of code has been reduced. Resistance B

pool party 1 Jun 8, 2022
Little utilities for more pleasant immutable data in Kotlin

What can KopyKat do? Mutable copy Nested mutation Nested collections Mapping copyMap copy for sealed hierarchies copy from supertypes copy for type al

KopyKat 193 Dec 19, 2022
Access and process various types of personal data in Android with a set of easy, uniform, and privacy-friendly APIs.

PrivacyStreams PrivacyStreams is an Android library for easy and privacy-friendly personal data access and processing. It offers a functional programm

null 269 Dec 1, 2022
General purpose utilities and hash functions for Android and Java (aka java-common)

Essentials Essentials are a collection of general-purpose classes we found useful in many occasions. Beats standard Java API performance, e.g. LongHas

Markus Junginger 1.4k Dec 29, 2022
Utilities I wish Android had but doesn't

wishlist Library of helpers and utilities that I wish were included in the Android SDK but aren't. If you think something in this library is already h

Kevin Sawicki 386 Nov 21, 2022
Android library that regroup bunch of dateTime utilities

DateTimeUtils This library is a package of functions that let you manipulate objects and or java date string. it combine the most common functions use

Thunder413 98 Nov 16, 2022
General purpose utilities and hash functions for Android and Java (aka java-common)

Essentials Essentials are a collection of general-purpose classes we found useful in many occasions. Beats standard Java API performance, e.g. LongHas

Markus Junginger 1.4k Dec 29, 2022
CreditCardHelper 🖊️ A Jetpack-Compose library providing useful credit card utilities such as card type recognition and TextField ViewTransformations

CreditCardHelper ??️ A Jetpack-Compose library providing useful credit card utilities such as card type recognition and TextField ViewTransformations

Stelios Papamichail 18 Dec 19, 2022
Android Utilities Library build in kotlin Provide user 100 of pre defined method to create advanced native android app.

Android Utilities Library build in kotlin Provide user 100 of pre defined method to create advanced native android app.

Shahid Iqbal 4 Nov 29, 2022
Secure Preference Manager for android. It uses various Encryption to protect your application's Shared Preferences.

Secure-Pref-Manager ##Secure Preference Manager is a simple Library to help you protect your Shared Preferences. Secure Preference Manager for android

Prashant Solanki 72 Nov 25, 2022
Provides custom lint rules developed by Bottle Rocket Studios to help keep our code cleaner

Provides custom lint rules developed by Bottle Rocket Studios to help keep our code cleaner, detect and mitigate possible security issues, and allow us to write rules around best practices and usage as necessary in the future

Bottle Rocket Studios 1 Feb 11, 2022
Some useful tools

JustWeTools - Some useful tools JustWe 现在有哪些模块? View自定义控件 PaintView画图工具(包含重构压感新版) CodeView代码编辑 ExplorerView文件管理器 ReadView小说阅读器 MarkDownView支持MarkDown语

JustWe 700 Dec 29, 2022
Monitor keyboard height tools

Monitor keyboard height tools

Season 29 Nov 19, 2022
A command line utility to help you investigate the sensitive data associated with Macie findings.

Macie Finding Data Reveal This project contains a command line utility to help you investigate the sensitive data associated with Macie findings.

AWS Samples 8 Nov 16, 2022
KmmCaching - An application that illustrates fetching data from remote data source and caching it in local storage

An application that illustrates fetching data from remote data source and caching it in local storage for both IOS and Android platforms using Kotlin Multiplatform Mobile and SqlDelight.

Felix Kariuki 5 Oct 6, 2022