Skip to content

Latest commit

 

History

History
130 lines (84 loc) · 10.6 KB

README.md

File metadata and controls

130 lines (84 loc) · 10.6 KB

Artifactory User Plugins

Note: JFrog Workers is the recommended cloud-native solution for extending the JFrog Platform (including Artifactory). While user plugins are still supported, we recommend using JFrog Workers where possible for better scalability, security, and performance. Learn more about JFrog Workers.

Upgrade Notice: Groovy 4 Compatibility

Artifactory Version: 7.101 (released November 25, 2024 for cloud)

Artifactory has been upgraded to Groovy 4 starting from version 7.101. This includes several important updates, most notably the promotion plugin (JFrog Supported), updated for compatibility with Groovy 4. However, this upgrade may break compatibility with your custom plugins developed for earlier Groovy versions (Groovy 3 or older). To learn the differences between Groovy 3 and 4, refer to Release notes for Groovy 4.0

JFrog Supported Plugins

  • Promotion Plugin

    The promotion plugin has been updated to work with Groovy 4. If you're using this plugin in your environment, redeploy it after upgrading to 7.101 or above.

  • Other Plugins

    Other Plugins (Groovy 3 or older versions) work without redeploying after 7.101 or above upgrade.

Backward Compatibililty: We do not support backward compatibility.

Key Points to Consider

Groovy 4 Compatibility

Starting from Artifactory 7.101, Groovy 4 is the default version.

  • artifactory-user-plugins Branch Compatibility

    • master: Artifactory 7.101 and above

      Note:
      Groovy 3 is no longer supported in the master branch of artifactory-user-plugins. Ensure that your plugins are compatible with Groovy 4.

    • artifactory-groovy-3: Artifactory 7.100 and below

  • JDK 17 Compatibility

    Artifactory versions 7.43 and above have introduced JDK 17 support. This may cause older user plugins to break. Any JFrog-supported deprecated plugins are shown in Deprecated Directory.

    Note
    We recommend not using Deprecated Plugins as we don't test them anymore. If you are still using Deprecated Plugins, test them thoroughly to achieve the desired results.

Custom Plugins

If you have custom plugins developed before Groovy 4, you must update them to ensure compatibility with Groovy 4, as Artifactory version 7.101 (and above) will come bundled with Groovy 4. Plugins written for earlier versions of Groovy (Groovy 3 or older) may no longer work and will require changes and redeployed to work correctly from Artifactory version 7.101 (and above).

Note: Test your plugins thoroughly after upgrading Artifactory to 7.101 (and above).

Migrating to JFrog Workers

Consider migrating your plugins to JFrog Workers for a cloud-native and future-proof solution.

Documentation References

Product feature

Artifactory now has the inbuilt feature for some of the plugins.

User Plugins Product Feature
artifactCleanup Cleanup Policy (supported only for Enterprise Plus licenses), learn more
cleanDockerImages Cleanup Policy (supported only for Enterprise Plus licenses), learn more

Alternatives for Plugins

JFrog Workers are supported only for Enterprise X and Plus licenses. Workers offer an alternative to Artifactory user plugins, enabling you to extend the JFrog Platform using cloud-native, scalable, and secure solutions.

The following are the Worker alternatives for Artifactory plugins:

User Plugins Worker Alternative Other Alternative
artifactCleanup ArtifactCleanup Worker Cleanup Policies
For Enterprise + Customers only
backUpFolder X
promotions X
checksums X X
cleanDockerImages cleanDockerImages Worker Cleanup Policies
For Enterprise + Customers only
deleteByPropertyValue deleteByPropertyValue Worker X
deleteDeprecatedPlugin X X
deleteEmptyDirsPlugin deleteEmptyDirsWorker
mavenSnapshotCleanupWhenRelease X
cleanOldBuilds X X
remoteBackup remoteBackup Worker
repoQuota repoQuota Worker
restrictOverwrite restrictOverwrite Worker
repoStats repoStats Worker
preventUnapproved preventUnapproved
getP2Urls X
getPropertySetsList X
getProxiesList X
getLayoutsList X X
webhook X

Note: For some user plugins, there is no direct worker sample available. You may need to adapt or refactor existing functionality using workers, depending on your specific use case.

Contributing to Artifactory User Plugins

Although JFrog Workers is the preferred approach, we still accept contributions for Artifactory user plugins, particularly for those who cannot migrate to JFrog Workers at the moment. Contributions should follow the guidelines specified in the CONTRIBUTING.md file.

To maintain a consistent and high-quality codebase, we encourage contributions to:

  • Fixing bugs or security issues
  • Refactoring existing functionality for better compatibility with newer Artifactory versions

Migrating from User Plugins to JFrog Workers

If you are planning to migrate from Artifactory user plugins to JFrog Workers, follow the steps below:

  1. Evaluate: Check the list of existing user plugins and identify the functionalities that need to be migrated.
  2. Explore Worker Samples: Review existing worker samples to understand how workers can replace your current plugin logic.
  3. Refactor and Deploy: Migrate the logic to a JFrog Worker and test it in your development or staging environment.
  4. Monitor and Optimize: Once the worker is running in production, monitor its performance and optimize as needed.

Migrating to JFrog Workers allows you to leverage the benefits of cloud-native architecture, including scalability, improved security, and better maintenance.

Additional Resources

  • Artifactory REST API: API documentation
  • JFrog Community Support: For troubleshooting, feature requests, or to engage with other developers using Artifactory and JFrog Workers, visit JFrog Community.

License & Copyright

Copyright © 2024, JFrog Ltd.

This project is licensed under the terms of the Apache 2.0 License, to learn more, refer to LICENSE.