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  {
20      private final PluginController pluginController;
21      private final PluginAccessor pluginAccessor;
22      public static final String V2_KEY = "com.atlassian.plugins.rest.atlassian-rest-refimpl-plugin-v2";
23  
24      public RestartingResource(PluginController pluginController, PluginAccessor pluginAccessor)
25      {
26          this.pluginController = pluginController;
27          this.pluginAccessor = pluginAccessor;
28      }
29  
30      @POST
31      @AnonymousAllowed
32      public Response restartV2Plugin()
33      {
34          if (!pluginAccessor.isPluginEnabled(V2_KEY))
35          {
36              throw new RuntimeException("Plugin isn't enabled");
37          }
38          pluginController.disablePlugin(V2_KEY);
39          if (pluginAccessor.isPluginEnabled(V2_KEY))
40          {
41              throw new RuntimeException("Plugin should be disabled");
42          }
43          pluginController.enablePlugins(V2_KEY);
44          if (!pluginAccessor.isPluginEnabled(V2_KEY))
45          {
46              throw new RuntimeException("Plugin isn't enabled");
47          }
48          return Response.ok().build();
49      }
50  }