Common Questions • Getting Help • Troubleshooting
Manifold fully supports all LTS versions since JDK 8, which includes 8, 11, 17, and 21. Additionally, manifold works with the latest non-LTS version. Manifold also fully supports the Java Platform Module System (JPMS).
Unlikely. Java internal APIs can and do change from version to version, sometimes dramatically, however Manifold always adjusts to changes ahead of Java releases. To date, Manifold has adapted to eight major Java versions since its debut, always well in advance of Oracle’s official release schedule.
No. While there are bits of overlap such as properties, Kotlin does not have most of Manifold’s features. Notably,
it does not offer anything similar to Manifold’s core feature, the type manifold, which is the basis for manifold-sql
,
manifold-json
, manifold-graphql
, manifold-xml
, and a multitude of others. In addition, most of manifold’s extensions
to the Java language are not present in Kotlin, these include:
Importantly, Kotlin is an entirely separate language from Java, while Manifold is a compiler plugin that supplements Java with new features. Add Manifold to any Java project and incorporate features of your choosing.
Yes, the Manifold project is open source and publicly available on github, free for use via Apache License 2.0.
The Manifold plugins for IntelliJ and Android Studio are also open source and freely available.
Yes. Please refer to the Maven and Gradle sections of the Setup instructions detailed in the subproject[s] you are using.
Yes. The Manifold plugin provides comprehensive support for IntelliJ IDEA and Android Studio.
Download / Update the plugin directly from within the IDE:
Settings ➜ Plugins ➜ Marketplace ➜ search: Manifold
Note: The IDE notifies you within 24 hours when an update is available and gives you the opportunity to sync.
No. The plugin is no longer commercial and is available for free from JetBrains Marketplace.
Add the manifold-fill-in-blank dependency[s] to your project along with the -Xplugin:Manifold
javac argument, the
setup is sensitive to the version of Java you are using, generally whether you are using Java 8 or 9+. See the
Setup docs within the manifold-fill-in-the-blank subproject for
complete instructions.
Discussions Join our Discord server to start a discussion, ask questions, provide feedback, etc.
Report A Bug The Manifold project uses github issues to track bugs, features, and other requests. If you discover a bug, have a feature request, or an idea go here and let it be known. Expect a response within 24 hours.
Private E-mail If your question or issue is more pressing or confidential, don’t hesitate to send an email to info@manifold.systems.
Links to recently published Manifold articles are available on the Articles page. There is always another article on the way, check back for more.
You probably need to update your project dependencies to use the latest manifold release. If your project’s dependencies are out of sync, the plugin tells you which version of manifold you need with in a warning message when you load your project. You can find the latest releases here.
Important: If you are using Maven or Gradle, you must update your build files – do not change the Module dependencies from IntelliJ’s UI. Please refer to the Maven and Gradle sections of the Setup instructions detailed in the subproject[s] you are using.
Please make some noise if you can’t get it working, chances are you’re not alone and help will arrive soon.
The module with your extension methods must declare that it should be processed for extension methods. Do that with the
Contains-Sources
JAR manifest entry. For instance, from Maven:
<manifestEntries>
<!--class files as source must be available for extension method classes-->
<Contains-Sources>java,class</Contains-Sources>
</manifestEntries>
Please see the documentation for making extension libraries.
Sometimes IntelliJ’s cache is out of sync with extensions. Generally, whenever IntelliJ’s editor displays an error for legal usage of a manifold feature, you can often remedy the problem by making a small change at the use site and then undoing the change. Failing that, it is best to close and reload the project. Please report errors of this nature as issues on manifold’s github repo.
A sampling of companies currently using manifold: