View Javadoc

1   package com.atlassian.plugins.rest.restart;
2   
3   import com.atlassian.plugin.PluginAccessor;
4   import com.atlassian.plugin.PluginController;
5   import com.atlassian.plugins.rest.autowiring.SomeService;
6   import com.atlassian.plugins.rest.common.security.AnonymousAllowed;
7   import org.apache.commons.lang.Validate;
8   
9   import javax.ws.rs.GET;
10  import javax.ws.rs.POST;
11  import javax.ws.rs.Path;
12  import javax.ws.rs.Produces;
13  import javax.ws.rs.core.MediaType;
14  import javax.ws.rs.core.Response;
15  
16  @Path("/restart")
17  @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
18  public class RestartingResource {
19      private final PluginController pluginController;
20      private final PluginAccessor pluginAccessor;
21      public static final String V2_KEY = "com.atlassian.plugins.rest.atlassian-rest-refimpl-plugin-v2";
22  
23      public RestartingResource(PluginController pluginController, PluginAccessor pluginAccessor) {
24          this.pluginController = pluginController;
25          this.pluginAccessor = pluginAccessor;
26      }
27  
28      @POST
29      @AnonymousAllowed
30      public Response restartV2Plugin() {
31          if (!pluginAccessor.isPluginEnabled(V2_KEY)) {
32              throw new RuntimeException("Plugin isn't enabled");
33          }
34          pluginController.disablePlugin(V2_KEY);
35          if (pluginAccessor.isPluginEnabled(V2_KEY)) {
36              throw new RuntimeException("Plugin should be disabled");
37          }
38          pluginController.enablePlugins(V2_KEY);
39          if (!pluginAccessor.isPluginEnabled(V2_KEY)) {
40              throw new RuntimeException("Plugin isn't enabled");
41          }
42          return Response.ok().build();
43      }
44  }