@Scanned public class RegenerateGithubEnterpriseOauthToken extends RegenerateGithubOauthToken { public RegenerateGithubEnterpriseOauthToken(@ComponentImport EventPublisher eventPublisher, OrganizationService organizationService, RepositoryService repositoryService, @ComponentImport ApplicationProperties applicationProperties) { super(applicationProperties, eventPublisher, organizationService, repositoryService); } @Override protected String getRedirectActionAndCommand() { return "RegenerateGithubEnterpriseOauthToken!finish"; } }
@JiraComponent public class JiraVertigoAwareAddonSettingsLock extends VertigoAwareAddonSettingsLock { private final ClusterLock vertigoLock; @Autowired public JiraVertigoAwareAddonSettingsLock(VertigoState vertigoState) { super(vertigoState); this.vertigoLock = ComponentLocator.getComponent(ClusterLockService.class).getLockForName(this.getClass().getName()); } @Override protected ClusterLock getVertigoLock() { return this.vertigoLock; } }
@ConfluenceComponent public class ConfluenceVertigoAwareSettingsLock extends VertigoAwareAddonSettingsLock { private final ClusterLock vertigoLock; @Autowired public ConfluenceVertigoAwareSettingsLock(VertigoState vertigoState) { super(vertigoState); //Because confluence has more than one bean with the same type :( ClusterLockService clusterLockService = ComponentLocator.getComponent(ClusterLockService.class, "clusterManager"); this.vertigoLock = clusterLockService.getLockForName(this.getClass().getName()); } @Override protected Lock getVertigoLock() { return this.vertigoLock; } }
@JiraComponent @ConfluenceComponent public class DatabaseModuleStoragePersister implements ModuleStoragePersister { private static final Logger log = LoggerFactory.getLogger(DatabaseModuleStoragePersister.class);
/** * This ModuleStoragePresister is not Vertigo compliant and will need to be removed for any service that wants to be. * It was built specifically for Refapp so it has an implementation that works. */ @RefappComponent public class RefappInMemoryModuleStoragePersister implements ModuleStoragePersister { private final AtomicReference<Optional<byte[]>> data; public RefappInMemoryModuleStoragePersister() { data = new AtomicReference<>(Optional.empty()); } @Override public Optional<byte[]> getStoredData() { return data.get(); } @Override public boolean updateStoredData(Function<Optional<byte[]>, byte[]> updateFunction) { data.update(input -> Optional.of(updateFunction.apply(input))); return true; } }
@Scanned public class LocationCleanerFilter implements Filter {
@JiraComponent @ConfluenceComponent public class DatabaseAddonPropertyStore implements AddonPropertyStore {
@RefappComponent public class InMemoryAddonPropertyStore implements AddonPropertyStore { private final ConcurrentHashMap<String, String> storage;
@Scanned public class EventAuditLogServlet extends AbstractAuditLogServlet
@Scanned public class RuleConfigServlet extends AbstractAdminServlet
@Scanned public class AdminAuditLogServlet extends AbstractAuditLogServlet
@Scanned public class RulesServlet extends AbstractAdminServlet
@Scanned public class IntroContextProvider implements ContextProvider
@Scanned public class PostSetupAnnouncementsFilter implements Filter
@Scanned public class AutomationConfigServlet extends AbstractAdminServlet
@Scanned public class LoginContextProvider implements ContextProvider
@Scanned public class PostSetupAnnouncementDataProvider implements WebResourceDataProvider
@Scanned public class CommonDvcsConfigurationAction extends JiraWebActionSupport { public static final String DEFAULT_SOURCE = "unknown";
@Scanned public abstract class AbstractAdminServlet extends HttpServlet
@Provider @Scanned // Force atlassian-spring-scanner to include this class; otherwise its @ComponentImport is ignored @Singleton public class WebhookExceptionMapper extends UnhandledExceptionMapper { public WebhookExceptionMapper(@ComponentImport UnhandledExceptionMapperHelper helper) { super(helper); } }