Giter Site home page Giter Site logo

rennurapps / awareim-resources Goto Github PK

View Code? Open in Web Editor NEW
4.0 3.0 0.0 878 KB

Aware IM Application Stack

Home Page: https://github.com/RennurApps/AwareIM-resources

app-development tomcat application-server awareim aware-im low-code application-stack app-framework

awareim-resources's Introduction

Aware IM Server v9.0 Stack

Application Server, Database Servers, Components, Frameworks, Dependencies, Microservices and other resources


Aware IM is a rapid low-code application development tool that lets you create powerful aesthetically appealing web applications quickly.

Changelog

✔️ v9.0 build 3254 - 16 April, 2024.

  • New Features and improvements in version 9.0
    • 3254 - Grouping now calculates summaries correctly even for big data sets
    • 3254 - Support for group direction
    • 3254 - Support for displaying group summaries in the group header column
    • 3254 - Query preview is now supported for queries with grouping
    • 3254 - Support for aggregates for all group levels
    • 3254 - Ability to initially collapse any group
    • 3254 - Ability to hide aggregates in column headers when a group is expanded
    • 3254 - Auto refresh didn't work when calendar events were moved or resized
    • 3254 - Left menu toggle command didn't work correctly when the top menu ran across the entire screen
    • 3249 - New library for rendering HTML inside a PDF
    • 3249 - Scaling image option for tags representing images in the Report Designer
    • 3249 - Changing size and orientation of the report is now visually supported.
    • 3246 - Date, time and duration widgets support mobile rendering
    • 3246 - Multi-selection calendar widget - Demo
    • 3246 - CREATE FOR EACH DATE IN …
    • 3243 - Custom row filter now supports attributes with dynamic choices
    • 3243 - Placeholders for Line Icons PRO font
    • 3241 - Support for alignment in tiles
    • 3241 - Minor improvements of dialogs on a Mac
    • 3241 - It should now be possible to explicitly indicate if a visual perspective can be used as a URL parameter
    • 3237 - Tile dialog has better layout and supports Preview
    • 3237 - Tree queries support paging (multi-column only)
    • 3237 - Custom queries support paging options
    • 3232 - 9.0 New Release - 28 Jan 2024.

Application Server

Apache Tomcat

Caution: Installing Aware IM update (Setup.exe), overwrites and resets Tomcat & JDK folders back to default. In fact, all files are replaced during update. Always keep all new and amended files incl. images separately and copy+paste them back once the install is complete.

  • Tomcat 9.0.44 32bit is the default version packaged in the Aware IM 8.6 and above server installation.
  • Tomcat 8.5.58 32bit is the default version packaged in the Aware IM 8.5 server installation.
  • Tomcat 8.5.24 32bit is the default version packaged in the Aware IM 8.4 and below server installation.

⚠️ Tomcat 10.1.23 - 16 April, 2024. Tomcat 10 is designed to run on Java SE 11 or later

⚠️Tomcat output:
SEVERE: Servlet [action] in web application [/AwareIM] threw load() exception java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet

✔️ Tomcat 9.0.88 - 9 April, 2024. Tomcat 9 is designed to run on Java SE 8 or later

  • Download Tomcat v9

  • Installation

    Microsoft Windows Based Systems
    • IMPORTANT: Ensure any prior modification of existing web.xml and server.xml configurations are not overwritten with the new version. There are configuration changes in the latest version of Tomcat relating to those two files.
    • Installation Steps - Windows
      • Stop the Aware IM server before updating Tomcat. Do not delete your current C:\AwareIM\Tomcat folder.
        1. Extract the archive and open the folder.
        1. Open the extracted Tomcat folder.
        1. Select all files and folders and press Crl+c to copy
        1. Open you AwareIM v9.0 installation Tomcat folder C:\AwareIM\Tomcat
        1. Press Ctrl+v to paste and replace all files and folders.
        1. Rename or delete ROOT folder - This is optional. You can use this folder to store your own favicon.ico, error pages and other HTML/CSS/JS home page files.

Java JDK

Java Servlets

  • ✔️ Jakarta Mail 1.6.7 - April 8, 2021 Final Release. (formerly JavaMail)

    • Download jakarta.mail-1.6.7.jar
      • Installation
        • In Aware IM v8.3 and above, rename jakarta.mail-x.x.x.jar to mail.jar and replace the one in C:\AwareIM\lib
        • In Aware IM v8.2 and below, rename jakarta.mail-x.x.x.jar to mail.jar and replace the one in C:\AwareIM\Tomcat\lib
        • Restart Aware IM server
    • 📉 JavaMail 1.6.2 - August 30, 2018 Final Release. (superseded by JakartaMail)
  • Apache ActiveMQ™ - The most popular and powerful open source messaging and Integration Patterns server. Apache ActiveMQ is an open source message broker written in Java together with a full Java Message Service (JMS) client.

    📉 ActiveMQ 5.8.0 (06/02/2013) packaged with Aware IM.

    • 📉 Latest version of ActiveMQ that works with out-of-box installation of Aware IM is 5.12.1 (13 Oct 2015).
    • Releases:
      • ⚠️ 6.1.1 Release - 5 April, 2024. Java 17+ required.
      • ⚠️ 5.18.3 Release - 25 October, 2023. Java 11+ required.
      • ⚠️ 5.17.6 Release - 25 October, 2023. Java 11+ required.
      • ⚠️ 5.12.2+ Problem - Inconsistent vector internals Aware IM error.
        • ERROR:
          • org.openadaptor.adaptor.jms.JMSListener - onMessage: JMSException: [javax.jms.JMSException: Failed to build body from bytes. Reason: java.io.StreamCorruptedException: Inconsistent vector internals [java.io.StreamCorruptedException: Inconsistent vector internals]]
        • Changelog
          • This release enables ActiveMQ client TLS hostname validation by default which can cause a client connection failure for server certificates that do not match the server hostname. Please refer to SSL Transport Reference for configuration and AMQ-7047 for more information.
          • Java 8 Required - The minimum Java version has been upgraded to Java 8.
          • This release affects applications using ObjectMessages.
      • ✔️ 5.12.1 Release
        • Installation
          • In v8.3 and above, extract, rename activemq-all-x.xx.x.jar to activemq-all-5.8.0.jar and replace the one in C:\AwareIM\lib
      • 📉 5.8.0 Release - Default version packaged with the server installation.
  • Java Service Wrapper - - 32bit v3.5.56 64-bit Windows versions of the Java Service Wrapper are not currently being made available in the Community Edition.

  • Apache Axis2/Java - Apache Axis2 Web Services JSON / SOAP / WSDL engine.

Database Servers

Database Connectors

Web Application Framework

Front-end open source toolkit

Icons

Out-of-the-box Features

  • Integration with Stripe Multi-Payment - Stripe is a very well-known payment platform and it supports multi-party payments.

  • Electronic Signature Capture - For Aware IM 5.9 - 9.x

    • Signature Pad - Implement and store electronic signatures out-of-the-box with Aware IM. HTML5 canvas based and works in all modern desktop and mobile browsers.
    • DEMO - Github
    • ✔️ Signature Pad v1.5.3 - Tested and working in all versions 5.9 - 9.x
    • Installation:
      • Replace ../AwareIM/signature/signature_pad.js with the new version.
    • Options - Edit signature_pad.js found in C:\AwareIM\Tomcat\webapps\AwareIM\signature
      • dotSize - (float or function) Radius of a single dot.
      • minWidth - (float) Minimum width of a line. Defaults to 0.5.
      • maxWidth - (float) Maximum width of a line. Defaults to 2.5.
      • backgroundColor - (string) Color used to clear the background. Can be any color format accepted by context.fillStyle. Defaults to rgba(0,0,0,0) (transparent black).
        • I prefer a white background rgb(255,255,255) for the signatures since there are issues with transparent images in the Report Designer and PDF document export.
      • penColor - (string) Color used to draw the lines. Can be any color format accepted by context.fillStyle. Defaults to "black".
      • velocityFilterWeight - (float) Weight used to modify new velocity based on the previous velocity. Defaults to 0.7.
      • onBegin - (function) Callback when stroke begin.
      • onEnd - (function) Callback when stroke end.
    • Video Tutorial (approx. 3min) - from 00:38min

Interoperability: Integrations, custom components, connected apps and plugins

Developers can integrate any application with Aware IM by writing a plugin, as long as the application offers an API.

  • ✔️ wkhtmltopdf - wkhtmltopdf is a command line tool to render HTML into PDF using the QT Webkit rendering engine. These run entirely "headless" and do not require a display or display service.

    • Requires Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017, 2019, and 2022
    • Download wkhtmltopdf:
      • Download wkhtmltopdf Windows (MSVC) - v0.12.6 released on June 11, 2020 for Windows, Linux and OS X.
        • v0.12.6 Final Tested and working in Aware IM 6.0+. Released June 11, 2020. Archived.
    • Install wkhtmltopdf
      • Windows OS
        • Extract *.exe file to a folder (you can use 7-Zip), copy+paste wkhtmltopdf folder to c:/AwareIM/
    • Aware IM Process Rules
      • Step 1 - Export Aware IM HTML Document to a HTML file
        • EXPORT DOCUMENT 'Your HTML Document' TO FILE 'C:/YourFileLocation/<<myBO.Name>>_No<<myBO.ID>>.html'
      • Step 2 - Convert exported HTML file to PDF
        • EXECUTE PROGRAM 'C:\AwareIM\wkhtmltopdf\bin\wkhtmltopdf.exe file:///C:/YourFileLocation/<<myBO.Name>>_No<<myBO.ID>>.html C:/YourFileLocation/<<myBO.Name>>_No<<myBO.ID>>.pdf'
      • Step 3 - Import PDF document to your myBO.DocumentPDF attribute
        • IMPORT DOCUMENT myBO.DocumentPDF FROM 'C:/YourFileLocation/<<myBO.Name>>_No<<myBO.ID>>.pdf'
      • Optional - Delete exported HTML file
        • DELETE FILE 'C:/YourFileLocation/<<myBO.Name>>_No<<myBO.ID>>.html'
    • Some alternatives to wkhtmltopdf:
  • Business Intelligence, Report Writer/Server

awareim-resources's People

Contributors

mariohmura avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

awareim-resources's Issues

Form cell parameter Label position ignored when set to Above control

Form cell Label position parameter: Above control ignored in the browser

To Reproduce
In the CRM demo BSV, Customer BO > Personal detail FORM:

  1. Group FirstName and LastName
  2. Set Label position to Above control
  3. Show preview.

Expected behavior
Labels above the attribute.

Screenshot
labelsabovecontrol

Version

  • 8.1 build 2468, Windows

Tomcat 10 Compatibility with Aware IM 8.8 - 9.0

19/02/24:
Tomcat Output:
SEVERE: Servlet [action] in web application [/AwareIM] threw load() exception java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1353)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1165)
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1027)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2352)
at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:800)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1317)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1165)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:491)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:473)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:143)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:865)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:805)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4617)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4910)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:683)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:658)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:712)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1138)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1983)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1048)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:430)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1661)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:114)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:345)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:893)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:845)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1332)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1322)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:240)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:433)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:917)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:171)
at org.apache.catalina.startup.Catalina.start(Catalina.java:795)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:347)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:478)

22/09/23:
Testing Aware IM 8.8 produced a "HTTP Status 500 – Internal Server Error" when trying to load the login url (http://localhost:8080/AwareIM/logonAdmin.jsp).

Active processes not timing out, fills the EXECUTION_CONTEXT table

There are processes that appear in the active processes table that are either not timed out or killed by the system. These processes are stored in execution_context database table.

As reported by some developers, this may be the cause various system issues from application performance to a complete server halt.

Forum posts reporting this:

ActiveMQ ObjectMessage - Changes starting with versions 5.12.2 and 5.13.0.

Default version of ActiveMQ middleware is 5.8.0.
Security update in versions 5.12.2 and above makes Aware IM server unable to start up.

Aware IM Server Output: testing ActiveMQ v5.15.0:

ERROR: org.openadaptor.adaptor.jms.JMSListener - onMessage: JMSException: [javax.jms.JMSException: Failed to build body from content. Serializable class not available to broker. Reason: java.lang.ClassNotFoundException: Forbidden class org.openadaptor.dataobjects.SimpleDataObject! This class is not trusted to be serialized as ObjectMessage payload. Please take a look at http://activemq.apache.org/objectmessage.html for more information on how to configure trusted classes. [java.lang.ClassNotFoundException: Forbidden class org.openadaptor.dataobjects.SimpleDataObject! This class is not trusted to be serialized as ObjectMessage payload. Please take a look at http://activemq.apache.org/objectmessage.html for more information on how to configure trusted classes.]]

Photo album uploads without displaying images when using file-system storage

When using the file system to store images In the Photo Album sample app, the image is not shown in the album.

Reproduce:

  • New sample BSV Photo Album
  • Add FileSystem attribute in Photo BO
  • Change DisplayPhoto attribute to store in File System
  • Create Update Rule:
  • If Photo.DisplayPhoto IS DEFINED AND Photo.FileSystem IS UNDEFINED Then Photo.FileSystem='C:/Photos/'+FILE_NAME(Photo.DisplayPhoto)+'.'+FILE_EXTENSION(Photo.DisplayPhoto)
  • Initialise: log in as admin
  • Login as author
  • UPLOAD Photo

TWO ERRORS:

  1. ERROR viewing Photos (existing database stored photos require FileSystem path. (Works if filepath is defined for the database stored images)
  2. Newly uploaded Photo has no image in the Album

Ability to capture the whole JSON body of a HTTP webhook request

Aware IM currently captures JSON body variables if specified in the business object (BO) attributes.
It does this by reading the JSON payload body and matching it to corresponding attributes.

Request is to have the ability to capture the entire JSON payload body and store it in a separate BO attribute. Preferably in a document type.

Inconsistent vector internals - ActiveMQ 5.15+

Server Output:
ERROR: org.openadaptor.adaptor.jms.JMSListener - onMessage: JMSException: [javax.jms.JMSException: Failed to build body from bytes. Reason: java.io.StreamCorruptedException: Inconsistent vector internals [java.io.StreamCorruptedException: Inconsistent vector internals]]

Application wont start; Tomcat logs JMSListener - onMessage error

From the Tomcat log:

ERROR: org.openadaptor.adaptor.jms.JMSListener - onMessage: JMSException: [javax.jms.JMSException: Failed to build body from bytes. Reason: java.io.InvalidClassException: com.bas.shared.domain.configuration.elements.EntityAttributeType; local class incompatible: stream classdesc serialVersionUID = -5293839609179748471, local class serialVersionUID = -4879230575028420537 [java.io.InvalidClassException: com.bas.shared.domain.configuration.elements.EntityAttributeType; local class incompatible: stream classdesc serialVersionUID = -5293839609179748471, local class serialVersionUID = -4879230575028420537]]

ActiveMQ 5.16.x component is causing Inconsistent vector internals error

The Aware IM 8.2+ control panel server and Tomcat startup fine.
Starting the configuration tool the server throws an internal error:

ERROR: org.openadaptor.adaptor.jms.JMSListener - onMessage: JMSException: [javax.jms.JMSException: Failed to build body from bytes. Reason: java.io.StreamCorruptedException: Inconsistent vector internals [java.io.StreamCorruptedException: Inconsistent vector internals]]

The app won't load in the browser for the same reason.

Similar issues with other software:

This error could be related to the ObjectMessage changes in ActiveMQ starting with versions 5.12.2 and 5.13.0. Please refer to http://activemq.apache.org/objectmessage.html and AMQ-6013 for more information.

REST Services in Aware IM: Pagination, Offset & Limit parameters

Currently there is a limit of how many items can be exposed by the Service at one time. This can range form anywhere between 10, 25 up to 100 usually.

Aware IM can expose up to 1000 records at a time. This can be set by the the TAKE BEST parameter.
If your database has more than 1000 items, the service will not expose all of the them to the outside.

This is where the pagination feature is required. Expose the items in chunks of 100 for example.

Examples:
https://support.smartbear.com/qacomplete/docs/developer/api/rest/api/reference/paging.html

RESTful API Design: can your API give developers just the information they need?

REST API Design: Filtering, Sorting, and Pagination

Parameter Type Description
limit int If a limit count is given, no more than that many rows will be returned (but possibly less, if the query itself yields fewer rows).
page int This parameter says to skip that many rows before beginning to return rows. If both *page *and *limit *appear, then page rows are skipped before starting to count the limit rows that are returned. The default value is 1.
orderBy string This parameter is used to order your results. If an order is not given, the default order modifiedAt:desc will be applied.
offset int

OpenJDK 16 server error

Oracle OpenJDK 16: Aware IM 8.5 build 2836 server error:

      Server unknown error javax/activation/DataSource exiting...
       java.lang.NoClassDefFoundError: javax/activation/DataSource
       	at com.bas.basserver.channels.ChannelManager.startupEntity(Unknown Source)
           at com.bas.basserver.domainmanager.DomainManager.A(Unknown Source)
           at com.bas.basserver.domainmanager.DomainManager.<init>(Unknown Source)
           at com.bas.basserver.bsmanager.E.A(Unknown Source)
           at com.bas.newcp.ServerStarterECP.K(Unknown Source)
           at com.bas.newcp.ServerStarterECP.main(Unknown Source)
       Caused by: java.lang.ClassNotFoundException: javax.activation.DataSource
           at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:636)
          at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182)
          at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
   	    ... 6 more

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.