Atlassian Connect is a platform for developers to build add-ons to integrate with Atlassian’s cloud offerings. An add-on could be an integration with another existing service, new features for the Atlassian application, or even a new product that runs within the Atlassian application.
This repository contains atlassian-connect-plugin
, the implementation of Atlassian Connect for a subset of the
products based on atlassian-plugins
: JIRA and Confluence.
NOTE: Atlassian developers, see the internal developer's guide for more details.
- JDK 8
- Maven 3.3.9
To build and run an Atlassian product with the development version of Atlassian Connect:
mvn clean install
mvn -pl plugin amps:debug -Dproduct=<jira|confluence>
To run an Atlassian product with a recent release of Atlassian Connect, see Release notes in the developer documentation.
To run with Universal Plugin Manager able to connect to Atlassian Marketplace, append the following parameter to the command.
-Djvmargs='-Datlassian.upm.on.demand=true'
See Getting help in the developer documentation or raise an issue in the AC project on Atlassian Ecosystem JIRA.
Contributions are encouraged!
- Create an issue in one of the following Atlassian Ecosystem JIRA projects.
- Create your feature branch, e.g.
feature/AC-1-create-project
- The prefix
feature/
is required for branch builds to run (without passing builds, you cannot merge your pull request) - Include your issue key and a short description
- The prefix
- Push your changes, prefixing each commit message with the issue key
- Create a pull request against this repository
bin
- utility scriptscomponents
- the shared components of the pluginapi
- a draft application programming interface for the plugincore
- the core cross-product implementationcore-extensions
- cross-product extensions for web fragments, webhooks etc.extension-spi
- a draft service provider interface defining components that the host application or plugin can provide in order to extend Connecthost-spi
- a draft service provider interface defining components that a host application needs to provide in order to support Connectmodules
- bean representations of add-on JSON descriptor elementsreference-plugin
- a cross-product reference implementation of some SPI interfaces
confluence
- the parent of all Confluence-specific modulesconfluence-integration-tests
- Confluence-specific integration tests for the pluginconfluence-reference-plugin
- a reference implementation of some SPI interfaces for Confluenceconfluence-support
- support for Atlassian Connect in Confluence
crowd-support
- support for Atlassian Connect in products that use Atlassian Crowddocs
- a Node.js project for generating the developer documentationjira
- the parent of all JIRA-specific modulesjira-integration-tests
- JIRA-specific integration tests for the pluginjira-reference-plugin
- a reference implementation of some SPI interfaces for JIRAjira-support
- support for Atlassian Connect in JIRA
jsapi
- builds the JavaScript API based onatlassian-connect-js
plugin
- groups the other modules into a plugintests
- the parent of all non-product-specific test modulescore-integration-tests
- integration tests for the plugin's core functionalitydescriptor-validation-tests
- JSON schema validation of all public add-ons for JIRA and Confluence on Atlassian Marketplaceintegration-tests-support
- classes and utilities useful to both core and product-specific integration test modulesmarketplace-support
- utilities for working with Atlassian Marketplace in testsplugin-lifecycle-tests
- wired tests for the plugin lifecycle, requiring plugin uninstallationtest-support-plugin
- a collection of test utility classeswired-tests
- wired tests for the plugin
This repository uses the git flow branching workflow.
master
- contains the latest releasedevelop
- contains the stable development version
To build the plugin:
mvn clean install
To speed up subsequent builds, the -
prefix can be used with the -pl
option to exclude specific modules,
e.g. the jsapi
module which invokes a time-consuming Node.js build.
mvn -pl -jsapi clean install
Conversely, once the project has been built, it can be rebuilt with changes only from specific modules:
mvn -pl jsapi,plugin clean install
Most functionality in Atlassian Connect is provided through the service provider interface for extensions.
See the README in the extension-spi
for more details.
This repository contains extensions to the cross-product functionality provided by atlassian-connect-js
.
See the README in the jsapi
directory for more details.
To generate the developer documentation:
mvn clean install site
See the README in the docs
directory for more details.
To run unit tests:
mvn test
To run JavaScript unit tests:
mvn -pl jsapi test -Pkarma-tests
Before running integration tests, build the plugin.
To speed up local development, all integration test modules are excluded by default. For these modules to be included
in the build, such as when running mvn clean
or mvn verify
, a specific profile must be activated manually. See the
commands below for the name of each profile.
To run wired tests:
mvn -pl tests/wired-tests verify -Pwired -DskipITs=false
To run plug-in lifecycle tests:
mvn -pl tests/plugin-lifecycle-tests verify -PpluginLifecycle -DskipITs=false
To run core integration tests:
mvn -pl tests/core-integration-tests verify -Pit [-DtestGroups=...] -DskipITs=false
To run JIRA integration tests:
mvn -pl jira/jira-integration-tests verify -Pit [-DtestGroups=...] -DskipITs=false
To run Confluence integration tests:
mvn -pl confluence/confluence-integration-tests verify -Pit [-DtestGroups=...] -DskipITs=false
To run add-on descriptor validation tests:
mvn -pl tests/descriptor-validation-tests verify -PdescriptorValidation -DskipTests -DskipITs=false
This project is licensed under the Apache License, Version 2.0.