diff --git a/plugins/pom.xml b/plugins/pom.xml index be00d5a3a9..5432cb862f 100644 --- a/plugins/pom.xml +++ b/plugins/pom.xml @@ -19,7 +19,6 @@ scm-hg-plugin scm-svn-plugin scm-git-plugin - scm-graph-plugin scm-activedirectory-auth-plugin scm-bzr-plugin scm-auth-ldap-plugin diff --git a/plugins/scm-graph-plugin/pom.xml b/plugins/scm-graph-plugin/pom.xml deleted file mode 100644 index 50de29879d..0000000000 --- a/plugins/scm-graph-plugin/pom.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - 4.0.0 - - - scm-plugins - sonia.scm.plugins - 1.5-SNAPSHOT - - - sonia.scm.plugins - scm-graph-plugin - 1.5-SNAPSHOT - scm-graph-plugin - Creates an Google Guice injection graph - https://bitbucket.org/sdorra/scm-manager - - - - - javax.servlet - servlet-api - ${servlet.version} - provided - - - - com.google.inject.extensions - guice-grapher - ${guice.version} - - - - - diff --git a/plugins/scm-graph-plugin/src/main/java/sonia/scm/graph/GraphServlet.java b/plugins/scm-graph-plugin/src/main/java/sonia/scm/graph/GraphServlet.java deleted file mode 100644 index 5477df8b88..0000000000 --- a/plugins/scm-graph-plugin/src/main/java/sonia/scm/graph/GraphServlet.java +++ /dev/null @@ -1,183 +0,0 @@ -/** - * Copyright (c) 2010, Sebastian Sdorra - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. Neither the name of SCM-Manager; nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * http://bitbucket.org/sdorra/scm-manager - * - */ - - - -package sonia.scm.graph; - -//~--- non-JDK imports -------------------------------------------------------- - -import com.google.inject.Guice; -import com.google.inject.Inject; -import com.google.inject.Injector; -import com.google.inject.Provider; -import com.google.inject.Singleton; -import com.google.inject.grapher.GrapherModule; -import com.google.inject.grapher.InjectorGrapher; -import com.google.inject.grapher.graphviz.GraphvizModule; -import com.google.inject.grapher.graphviz.GraphvizRenderer; - -import sonia.scm.util.IOUtil; -import sonia.scm.util.SecurityUtil; -import sonia.scm.web.security.WebSecurityContext; - -//~--- JDK imports ------------------------------------------------------------ - -import java.io.IOException; -import java.io.PrintWriter; -import java.io.StringWriter; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -/** - * - * @author Sebastian Sdorra - */ -@Singleton -public class GraphServlet extends HttpServlet -{ - - /** Field description */ - public static final String CONTENT_TYPE = "application/octet-stream"; - - /** Field description */ - private static final long serialVersionUID = 2733077353390468391L; - - //~--- constructors --------------------------------------------------------- - - /** - * Constructs ... - * - * - * - * @param securityContextProvider - * @param injector - */ - @Inject - public GraphServlet(Provider securityContextProvider, - Injector injector) - { - this.securityContextProvider = securityContextProvider; - this.injector = injector; - } - - //~--- methods -------------------------------------------------------------- - - /** - * Method description - * - * - * @param request - * @param response - * - * @throws IOException - * @throws ServletException - */ - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException - { - processRequest(response); - } - - /** - * Method description - * - * - * @param request - * @param response - * - * @throws IOException - * @throws ServletException - */ - @Override - protected void doPost(HttpServletRequest request, - HttpServletResponse response) - throws ServletException, IOException - { - processRequest(response); - } - - /** - * Method description - * - * - * @param response - * - * @throws IOException - * @throws ServletException - */ - private void processRequest(HttpServletResponse response) - throws ServletException, IOException - { - SecurityUtil.assertIsAdmin(securityContextProvider); - - PrintWriter writer = null; - PrintWriter bufferWriter = null; - - try - { - response.setContentType(CONTENT_TYPE); - - Injector grapherInjector = Guice.createInjector(new GrapherModule(), - new GraphvizModule()); - GraphvizRenderer renderer = - grapherInjector.getInstance(GraphvizRenderer.class); - StringWriter buffer = new StringWriter(); - - bufferWriter = new PrintWriter(buffer); - renderer.setOut(bufferWriter).setRankdir("TB"); - grapherInjector.getInstance(InjectorGrapher.class).of(injector).graph(); - bufferWriter.flush(); - writer = response.getWriter(); - - String graphString = buffer.toString(); - - writer.print(graphString.replaceAll("invis", "solid")); - } - finally - { - IOUtil.close(writer); - IOUtil.close(bufferWriter); - } - } - - //~--- fields --------------------------------------------------------------- - - /** Field description */ - private Injector injector; - - /** Field description */ - private Provider securityContextProvider; -} diff --git a/plugins/scm-graph-plugin/src/main/java/sonia/scm/graph/GraphServletModule.java b/plugins/scm-graph-plugin/src/main/java/sonia/scm/graph/GraphServletModule.java deleted file mode 100644 index 55ac58a9e5..0000000000 --- a/plugins/scm-graph-plugin/src/main/java/sonia/scm/graph/GraphServletModule.java +++ /dev/null @@ -1,64 +0,0 @@ -/** - * Copyright (c) 2010, Sebastian Sdorra - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. Neither the name of SCM-Manager; nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * http://bitbucket.org/sdorra/scm-manager - * - */ - - - -package sonia.scm.graph; - -//~--- non-JDK imports -------------------------------------------------------- - -import com.google.inject.servlet.ServletModule; - -import sonia.scm.plugin.ext.Extension; - -/** - * - * @author Sebastian Sdorra - */ -@Extension -public class GraphServletModule extends ServletModule -{ - - /** Field description */ - public static final String GRAPHSERVLET_PATTERN = "/graph.dot"; - - //~--- methods -------------------------------------------------------------- - - /** - * Method description - * - */ - @Override - protected void configureServlets() - { - serve(GRAPHSERVLET_PATTERN).with(GraphServlet.class); - } -} diff --git a/plugins/scm-graph-plugin/src/main/resources/META-INF/scm/plugin.xml b/plugins/scm-graph-plugin/src/main/resources/META-INF/scm/plugin.xml deleted file mode 100644 index 131fc005d0..0000000000 --- a/plugins/scm-graph-plugin/src/main/resources/META-INF/scm/plugin.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - ${project.groupId} - ${project.artifactId} - ${project.version} - ${project.name} - ${project.description} - Sebastian Sdorra - ${project.url} - - - - - - - diff --git a/plugins/scm-graph-plugin/src/main/resources/sonia/scm/graph/sonia.graph.js b/plugins/scm-graph-plugin/src/main/resources/sonia/scm/graph/sonia.graph.js deleted file mode 100644 index 5a1afd8710..0000000000 --- a/plugins/scm-graph-plugin/src/main/resources/sonia/scm/graph/sonia.graph.js +++ /dev/null @@ -1,45 +0,0 @@ -/* * - * Copyright (c) 2010, Sebastian Sdorra - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. Neither the name of SCM-Manager; nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * http://bitbucket.org/sdorra/scm-manager - * - */ -loginCallbacks.push(function(){ - if (admin){ - var navPanel = Ext.getCmp('navigationPanel'); - var count = navPanel.count() - 1; - navPanel.insertSection(count, { - title: 'Development', - links: [{ - label: 'Injection Graph', - fn: function(){ - window.open('graph.dot'); - } - }] - }); - } -}); \ No newline at end of file