AppJars

Frequently Asked Questions

Everything you need to know about AppJars

General & Architecture

What is the required technology stack?

AppJars are Java libraries for the Spring Boot ecosystem.

  • Java: Requires Java 21 or later.
  • Spring Boot: Requires Spring Boot 4.x.
  • Vaadin: Required for components that include a UI layer; requires Vaadin 25.2 or later. If you are only using the backend or service layer of an AppJar, Vaadin is not required.
Can I use specific AppJars independently, or do I need the full suite?
You can pick and choose. AppJars are designed as independent “building blocks.” For example, you can integrate just the AI Support module or the Issue Tracker without needing the others. They are standalone Maven dependencies.
Does AppJars phone home or send telemetry to your servers?
No. License Keys are validated locally by the AppJars binary using cryptographic primitives embedded in the JAR. There is no network communication required for activation, validation, or operation. See the License Agreement.
Where is the source code?
Each AppJars Component publishes its -sources.jar artifact alongside the binary. You can attach the sources in your IDE for debugging. Use of the source code is governed by the License Agreement (internal debugging, education, and review only; no derivative works for unrelated purposes).

Integration & Database

How do I add an AppJar to my project?
In most cases it’s as simple as adding a dependency to your pom.xml, the same way as any other Java library. Some AppJars require a few additional setup steps — each component has a Getting Started guide at docs.appjars.com that walks you through everything.
How is the database schema managed? Do you provide SQL scripts?
We provide standard JPA Entities. We do not force specific SQL scripts or Liquibase changelogs because naming strategies vary significantly between projects. We recommend configuring your ORM (e.g., Hibernate) to handle the schema generation or validation during your development process based on the provided entities.
Does it support my database engine?
Since we use standard JPA (Java Persistence API), AppJars are database-agnostic. They support any relational database compatible with Hibernate, such as PostgreSQL, MySQL, Oracle, SQL Server, and MariaDB.
Where do I place the license file when deploying my application?

The license file is only needed on the servers where your application runs — not on your build or CI/CD server.

On each deployment server, place the license file in one of the following locations (resolved in order):

  1. The path set in the environment variable APPJARS_LICENSE_FOLDER
  2. The path set in the Java system property com.appjars.license.folder
  3. The default directory ~/.appjars in the home directory of the user running the application

The application reads all license files from that directory at startup. No other configuration is required. A restart is necessary after adding or replacing a license file — it is not re-read at runtime.

If you use multiple AppJars, place all license files in the same directory. One directory can hold license files for any number of AppJars.

Licensing & Pricing

What's the difference between Core, Startup, and Enterprise?
  • Core gives you a Commercial License to use AppJars in your application. No human support, no portal access.
  • Startup adds access to the Customer Portal (including the AI documentation assistant) plus ten (10) hours of human support per year.
  • Enterprise adds eighty (80) hours of human support and issue escalation: one concurrent bug report per license can be pushed to the front of our fix queue.

All three tiers use the same License Agreement. The differences are commercial: who gets human help, how fast, and how much.

Is the license perpetual or subscription-based?
It is a perpetual license. When you purchase an AppJar, you own the right to use that version forever in your application. The annual pricing covers 1 year of maintenance updates and support tiers. After the year ends, you can keep using your current version indefinitely or renew to access new features, security updates, and support hours.
How is the license scoped? Is it per developer?
The license is per application, not per developer. This means you can have unlimited developers working on the project, and you can deploy it to as many environments as you need (Development, QA, Staging, Production) as long as it is for the licensed application.
What happens if I don't renew?

Your subscription simply stops, but the AppJars components you were running don’t. The last release of each licensed Component issued during your active Subscription Term continues to work in production indefinitely — no action required on your part.

What you lose at expiration:

  • New releases: any release issued after your Subscription Term ends will not validate against your License Keys.
  • Human support and access to the Customer Portal (if applicable to your tier).

In short: you keep what you have, forever; you just stop receiving additions.

Can I buy individual modules or do I have to take the bundle?
Both. AppJars sells each Component (module) separately, or as a bundle covering all Components at a discount. Each Component you buy comes with its own License Key. You can mix and match Components per application as you need.
Where can I find pricing?
Pricing is listed on each product page in the Catalog. You can purchase individual Components or a bundle covering all Components at a discount.
Can I cancel mid-year and get a refund?
No. Subscriptions are non-cancellable mid-term and fees are non-refundable. You can disable auto-renewal at any time through the Customer Portal — that stops the renewal but does not refund the active term. Statutory rights granted by mandatory consumer-protection law in your jurisdiction (such as a cooling-off period) are preserved.
Why no refunds?
The License Key we issue is permanent for the release line current at expiration: once you have it, you have perpetual access to that version of AppJars even after the year ends. There is no way for us to “take back” the license. Pricing reflects that the value you receive is delivered upfront.
What if my company is acquired?
Your license stays with the legal entity that purchased it. If the acquiring company wants to use AppJars under the same agreement, the license follows in most ordinary acquisition scenarios — see the License Agreement. Reach out to us if you have a specific scenario you want to discuss.

Trials and Free Tier

Can I try the modules before buying?
Yes. You can add any AppJar to your project and test it in “Restricted Mode” immediately. Once you purchase a license, you simply add the license file to unlock the full functionality—no code changes required. We also provide special trial licenses to unlock all the features for one month. Contact us at appjars.com/contact to find out more.
How do I get a trial?
Trials are available on demand. Contact us at appjars.com/contact and we will issue a Trial License Key for the Component(s) you want to evaluate.
How long does a trial last?
Trials are one month. The exact duration is encoded in the Trial License Key. When the trial period expires, the Components covered by the Trial Key stop validating and stop operating.
Can I use a trial in production?
No. Trial Licenses are for internal evaluation and testing only — see the License Agreement. Production or commercial use under a Trial License is a breach of the agreement.
Is there a free tier?
Yes. If you do not activate any License Key, AppJars runs in feature-restricted mode (the Free Tier). The exact limits (active users, processes, records) are documented at docs.appjars.com and enforced by the binary.
Can I use the Free Tier in production?
Yes, as long as you stay within the documented limits. Exceeding the limits without a valid Commercial License is a material breach of the License Agreement.

License Keys

Can I share my License Key with my team?
Yes, throughout your organization, for the development and operation of the Permitted Application named in the Key. You may not share the Key with third parties — see the License Agreement for the exact rules and the conditions under which a License Key can be provided to an End User for an on-premise installation.
Can I use the same Key in multiple applications?
No. Each License Key is bound to a single Permitted Application. If you want to use the same Component in two applications, you need two separate licenses.
Can I transfer my license to another application?
Yes, once during the life of the license. Contact us through the Customer Portal to request a successor reassignment — see the License Agreement for the conditions.
Can my End Users see the License Key?
Only if your application leaks it, which the License Agreement specifically prohibits. The Key should be stored server-side or in a protected configuration file, never embedded in publicly distributed builds.
What if I lose my License Key?
Contact us at appjars.com/contact and we will re-send your license keys.
Can I use AppJars in a SaaS product I sell to my customers?

Yes. If all of your tenants share the same codebase and the same end-product identity, the entire multi-tenant deployment counts as a single Permitted Application under the License Agreement — one license covers it. You do not need a separate license per tenant or per customer.

If you deliver a distinct, separately branded or deployed application to each client, each of those constitutes its own Permitted Application and requires its own license.

Support & Updates

How do I report a bug or suggest a feature?
We manage issue tracking publicly at github.com/AppJars/appjars. Anyone can file a bug report or suggest a feature — our team reviews submissions regularly and responds there.
What's covered by my Support Hours?
Investigation of suspected defects, integration assistance, documentation clarifications, and other matters directly related to using a licensed Component.
What's not covered?
Custom development, feature work, training on Java/Maven/etc., or debugging your code that does not invoke an AppJars Component. For these kinds of tasks, contact us at appjars.com/contact.
What are the support hours and response times?

Support is available Monday through Friday, from 8:00 AM to 5:00 PM GMT-3, excluding public holidays in Argentina. The Customer Portal and its AI documentation assistant are available 24/7 on Startup and Enterprise tiers.

AppJars aims to acknowledge support requests within one (1) business day for Startup and within four (4) business hours for Enterprise. Response time is not the same as resolution time — resolution depends on the nature of the issue and may require engineering review.

What if I run out of support hours?
You can purchase additional hours. Contact us at appjars.com/contact for more information.
What is 'issue escalation' in the Enterprise tier?

It lets you move one bug report to the front of our fix queue. You request it from the Customer Portal by opening an escalation ticket — never on GitHub, where a comment on an issue has no effect. Escalation applies to bug reports only; feature requests are not eligible. Each license carries one concurrent escalation, and the escalated public issue gets the Prioritized label, which never says who escalated it.

Escalation buys queue position and nothing else: there is no service level, no committed timeframe, and no guarantee that the bug will be fixed — we may propose a workaround instead. Your escalation slot stays occupied until we close the escalation ticket, which happens when the fix ships in a release you can verify and accept, when we decide not to fix it and tell you why, or when the issue was already escalated by another customer — that last case does not consume your slot. A fix that is written but not yet released does not free the slot, and if a released fix regresses, the slot is consumed again.

The full terms are in Section 4.6 of the Subscription & Service Terms.

Can I downgrade or upgrade my tier mid-term?
Upgrades take effect immediately and are pro-rated. Downgrades take effect at the next renewal — there is no mid-term downgrade.
What law governs my subscription?
The laws of the State of Florida, United States. Disputes are litigated exclusively in courts located in Miami-Dade County, Florida. See the License Agreement and Subscription & Service Terms.
Where can I read the actual License Agreement?
At appjars.com/legal/license/v1 or in the LICENSE.txt file inside any AppJars JAR.
Where can I read the actual Subscription & Service Terms?
At appjars.com/legal/service-terms/v1. Previous and current versions are listed in the archive.
How is my personal information handled?