1 package com.atlassian.plugins.codegen.modules.common.licensing;
2
3 import com.atlassian.plugins.codegen.ComponentDeclaration;
4 import com.atlassian.plugins.codegen.PluginProjectChangeset;
5 import com.atlassian.plugins.codegen.annotations.BambooPluginModuleCreator;
6 import com.atlassian.plugins.codegen.annotations.ConfluencePluginModuleCreator;
7 import com.atlassian.plugins.codegen.annotations.CrowdPluginModuleCreator;
8 import com.atlassian.plugins.codegen.annotations.FeCruPluginModuleCreator;
9 import com.atlassian.plugins.codegen.annotations.JiraPluginModuleCreator;
10 import com.atlassian.plugins.codegen.annotations.RefAppPluginModuleCreator;
11 import com.atlassian.plugins.codegen.modules.AbstractPluginModuleCreator;
12
13 import com.google.common.collect.ImmutableMap;
14
15 import static com.atlassian.fugue.Option.some;
16 import static com.atlassian.plugins.codegen.ArtifactDependency.dependency;
17 import static com.atlassian.plugins.codegen.ArtifactDependency.Scope.PROVIDED;
18 import static com.atlassian.plugins.codegen.ClassId.fullyQualified;
19 import static com.atlassian.plugins.codegen.ComponentImport.componentImport;
20
21
22
23
24 @RefAppPluginModuleCreator
25 @JiraPluginModuleCreator
26 @ConfluencePluginModuleCreator
27 @BambooPluginModuleCreator
28 @FeCruPluginModuleCreator
29 @CrowdPluginModuleCreator
30 public class LicensingUpm2ModuleCreator extends AbstractPluginModuleCreator<LicensingProperties>
31 {
32 public static final String MODULE_NAME = "License Management (UPM 2 API)";
33
34 public static final String LICENSE_CHECKER_DESCRIPTION = "Atlassian license management module";
35 public static final String LICENSE_CHECKER_CLASS_TEMPLATE = "templates/common/licensing/LicenseChecker.java.vtl";
36
37 @Override
38 public PluginProjectChangeset createModule(LicensingProperties props) throws Exception
39 {
40 ComponentDeclaration licensingComponent = ComponentDeclaration.builder(props.getClassId(), props.getModuleKey())
41 .description(some(LICENSE_CHECKER_DESCRIPTION))
42 .build();
43 return new PluginProjectChangeset()
44 .withDependencies(dependency("com.atlassian.upm", "licensing-api", "2.0", "upm.api.version", PROVIDED),
45 dependency("com.atlassian.upm", "upm-api", "2.0", "upm.api.version", PROVIDED),
46 dependency("com.atlassian.plugins", "atlassian-plugins-core", "2.9.0", PROVIDED),
47 dependency("com.atlassian.sal", "sal-api", "2.6.0", PROVIDED))
48 .withPluginParameters(ImmutableMap.of("atlassian-licensing-enabled", "true"))
49 .withComponentImports(componentImport(fullyQualified("com.atlassian.upm.api.license.PluginLicenseManager")),
50 componentImport(fullyQualified("com.atlassian.upm.api.license.PluginLicenseEventRegistry")),
51 componentImport(fullyQualified("com.atlassian.plugin.PluginController")))
52 .withComponentDeclarations(licensingComponent)
53 .with(createClass(props, LICENSE_CHECKER_CLASS_TEMPLATE));
54 }
55
56 @Override
57 public String getModuleName()
58 {
59 return MODULE_NAME;
60 }
61 }