{
    "componentChunkName": "component---src-templates-doc-tsx",
    "path": "/docs/3.9.x/en/development/plugins/migrate-plugin-from-v1/",
    "result": {"data":{"navigation":{"nodes":[{"section":"Getting started","entries":[{"frontmatter":{"title":"Installation","subtitle":"Installation of scm-manager","partiallyActive":true},"fields":{"slug":"/docs/3.9.x/en/installation/"}},{"frontmatter":{"title":"First Startup","subtitle":"Administration User Creation","partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/first-startup/"}},{"frontmatter":{"title":"Migrate from v1 to v3","subtitle":"How to use the Migration-Wizard","partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/migrate-scm-manager-from-v1/"}},{"frontmatter":{"title":"Migrate from v2 to v3","subtitle":"Changes in the configuration","partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/migrate-scm-manager-from-v2/"}},{"frontmatter":{"title":"Import existing repositories","subtitle":"How to import existing repositories into SCM-Manager","partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/import/"}},{"frontmatter":{"title":"Frequently Asked Questions","subtitle":null,"partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/faq/"}},{"frontmatter":{"title":"Known Issues","subtitle":null,"partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/known-issues/"}}]},{"section":"User-oriented","entries":[{"frontmatter":{"title":"Repository","subtitle":null,"partiallyActive":true},"fields":{"slug":"/docs/3.9.x/en/user/repo/"}},{"frontmatter":{"title":"User","subtitle":null,"partiallyActive":true},"fields":{"slug":"/docs/3.9.x/en/user/user/"}},{"frontmatter":{"title":"Groups","subtitle":null,"partiallyActive":true},"fields":{"slug":"/docs/3.9.x/en/user/group/"}},{"frontmatter":{"title":"Administration","subtitle":null,"partiallyActive":true},"fields":{"slug":"/docs/3.9.x/en/user/admin/"}},{"frontmatter":{"title":"Profile","subtitle":null,"partiallyActive":true},"fields":{"slug":"/docs/3.9.x/en/user/profile/"}},{"frontmatter":{"title":"Notifications","subtitle":null,"partiallyActive":true},"fields":{"slug":"/docs/3.9.x/en/user/notification/"}},{"frontmatter":{"title":"CLI Client","subtitle":null,"partiallyActive":true},"fields":{"slug":"/docs/3.9.x/en/user/cli/"}},{"frontmatter":{"title":"Shortcuts","subtitle":null,"partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/user/shortcuts/"}}]},{"section":"Administration","entries":[{"frontmatter":{"title":"Base Directory","subtitle":null,"partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/administration/basedirectory/"}},{"frontmatter":{"title":"Logging","subtitle":"Configuration and locations of SCM-Manager logging","partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/administration/logging/"}},{"frontmatter":{"title":"SCM-Server Configuration","subtitle":"Various configuration options for the SCM-Server","partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/administration/scm-server/"}},{"frontmatter":{"title":"Reverse Proxy","subtitle":"How to use SCM-Manager with common reverse proxies","partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/administration/reverse-proxies/"}},{"frontmatter":{"title":"Caching for Working Directories","subtitle":null,"partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/administration/workdir_caching/"}}]},{"section":"Development","entries":[{"frontmatter":{"title":"Intellij IDEA Configuration","subtitle":null,"partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/development/intellij-idea-configuration/"}},{"frontmatter":{"title":"Building SCM-Manager from Source","subtitle":null,"partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/development/build-from-source/"}},{"frontmatter":{"title":"Architecture overview","subtitle":null,"partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/development/architecture-overview/"}},{"frontmatter":{"title":"Common pitfall occurred while developing the SCM V2","subtitle":null,"partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/development/ui-common-pitfall/"}},{"frontmatter":{"title":"Permission Concept","subtitle":"Fine-grained permission for SCM-Manager v2","partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/development/permission-concept/"}},{"frontmatter":{"title":"Decision Table","subtitle":null,"partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/development/decision-table/"}},{"frontmatter":{"title":"Error Handling","subtitle":null,"partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/development/error-handling/"}},{"frontmatter":{"title":"Styleguide","subtitle":null,"partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/development/styleguide/"}},{"frontmatter":{"title":"Testing Guide","subtitle":"Howto write tests for SCM-Manager","partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/development/testing-guide/"}},{"frontmatter":{"title":"Integration Tests","subtitle":"How to run integration tests","partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/development/integration-tests/"}},{"frontmatter":{"title":"UI-Extensions","subtitle":"How to extend the SCM-Manager UI with plugins","partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/development/ui-extensions/"}},{"frontmatter":{"title":"I18n","subtitle":"Howto do internationalization","partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/development/i18n/"}},{"frontmatter":{"title":"Building Forms","subtitle":"Howto build forms for SCM-Manager","partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/development/building-forms/"}},{"frontmatter":{"title":"Javadoc","subtitle":null,"partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/development/javadoc/"}},{"frontmatter":{"title":"CLI Guidelines","subtitle":null,"partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/development/cli-guideline/"}},{"frontmatter":{"title":"Definition of Done","subtitle":null,"partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/development/definition-of-done/"}},{"frontmatter":{"title":"DOD for UI development","subtitle":null,"partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/development/ui-dod/"}}]},{"section":"Plugin Development","entries":[{"frontmatter":{"title":"Create a plugin","subtitle":"Create a new SCM-Manager plugin","partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/development/plugins/create/"}},{"frontmatter":{"title":"Migrate a v1 plugin","subtitle":null,"partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/development/plugins/migrate-plugin-from-v1/"}},{"frontmatter":{"title":"Extension Points","subtitle":null,"partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/development/plugins/extension-points/"}},{"frontmatter":{"title":"i18n for Plugins","subtitle":null,"partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/development/plugins/i18n-for-plugins/"}},{"frontmatter":{"title":"Plugin Descriptor","subtitle":null,"partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/development/plugins/plugin-descriptor/"}},{"frontmatter":{"title":"SCM-Manager v2 Plugin Development","subtitle":null,"partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/development/plugins/plugin-development/"}},{"frontmatter":{"title":"Publish","subtitle":"Publish your Plugin","partiallyActive":null},"fields":{"slug":"/docs/3.9.x/en/development/plugins/publish/"}}]}]},"versions":{"group":[{"fieldValue":"1.0.x"},{"fieldValue":"1.x"},{"fieldValue":"2.0.x"},{"fieldValue":"2.1.x"},{"fieldValue":"2.10.x"},{"fieldValue":"2.11.x"},{"fieldValue":"2.12.x"},{"fieldValue":"2.13.x"},{"fieldValue":"2.14.x"},{"fieldValue":"2.15.x"},{"fieldValue":"2.16.x"},{"fieldValue":"2.17.x"},{"fieldValue":"2.18.x"},{"fieldValue":"2.19.x"},{"fieldValue":"2.2.x"},{"fieldValue":"2.20.x"},{"fieldValue":"2.21.x"},{"fieldValue":"2.22.x"},{"fieldValue":"2.23.x"},{"fieldValue":"2.24.x"},{"fieldValue":"2.25.x"},{"fieldValue":"2.26.x"},{"fieldValue":"2.27.x"},{"fieldValue":"2.28.x"},{"fieldValue":"2.29.x"},{"fieldValue":"2.3.x"},{"fieldValue":"2.30.x"},{"fieldValue":"2.31.x"},{"fieldValue":"2.32.x"},{"fieldValue":"2.33.x"},{"fieldValue":"2.34.x"},{"fieldValue":"2.35.x"},{"fieldValue":"2.36.x"},{"fieldValue":"2.37.x"},{"fieldValue":"2.38.x"},{"fieldValue":"2.39.x"},{"fieldValue":"2.4.x"},{"fieldValue":"2.40.x"},{"fieldValue":"2.41.x"},{"fieldValue":"2.42.x"},{"fieldValue":"2.43.x"},{"fieldValue":"2.44.x"},{"fieldValue":"2.45.x"},{"fieldValue":"2.46.x"},{"fieldValue":"2.47.x"},{"fieldValue":"2.48.x"},{"fieldValue":"2.5.x"},{"fieldValue":"2.6.x"},{"fieldValue":"2.7.x"},{"fieldValue":"2.8.x"},{"fieldValue":"2.9.x"},{"fieldValue":"3.0.x"},{"fieldValue":"3.1.x"},{"fieldValue":"3.10.x"},{"fieldValue":"3.11.x"},{"fieldValue":"3.2.x"},{"fieldValue":"3.3.x"},{"fieldValue":"3.4.x"},{"fieldValue":"3.5.x"},{"fieldValue":"3.6.x"},{"fieldValue":"3.7.x"},{"fieldValue":"3.8.x"},{"fieldValue":"3.9.x"}]},"languages":{"group":[{"fieldValue":"de"},{"fieldValue":"en"}]},"markdownRemark":{"html":"<p>Before starting, make sure to read the <a href=\"../plugin-development\">Plugin Development</a>.</p>\n<p>To migrate an existing SCM-Manager 1.x Plugin, you have to do the following steps:</p>\n<h3 id=\"maven-pomxml\" style=\"position:relative;\"><a href=\"#maven-pomxml\" aria-label=\"maven pomxml permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Maven (pom.xml)</h3>\n<ul>\n<li>create a separate branch for the new version</li>\n<li>It might be helpful to start and review the old version of the plugin via <code class=\"language-text\">mvn scmp:run</code> for later reference.</li>\n<li>Import .gitignore &#x26; .editorconfig from SCMM</li>\n<li>You might run the build once and review and fix SCMMv1 deprecation warnings. SCMMv2 gets rids of all deprecated\nclasses.</li>\n<li>update the version of the parent artifact (sonia.scm.plugins:scm-plugins) to the minimum version of SCM-Manager 2 you\nare planning for your plugin</li>\n<li>change the packaging type of your plugin to smp</li>\n<li>remove the sonia.scm.maven:scm-maven-plugin from the pom</li>\n<li>remove servlet-api from the list of dependencies (not always the case)</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"diff\"><pre class=\"language-diff\"><code class=\"language-diff\">diff -r a988f4cfb7ab pom.xml\n<span class=\"token coord\">--- a/pom.xml   Thu Dec 10 20:32:26 2015 +0100</span>\n<span class=\"token coord\">+++ b/pom.xml   Tue Oct 30 11:49:35 2018 +0100</span>\n<span class=\"token coord\">@@ -6,13 +6,14 @@</span>\n<span class=\"token unchanged\"><span class=\"token prefix unchanged\"> </span>  &lt;parent>\n<span class=\"token prefix unchanged\"> </span>    &lt;artifactId>scm-plugins&lt;/artifactId>\n<span class=\"token prefix unchanged\"> </span>    &lt;groupId>sonia.scm.plugins&lt;/groupId>\n</span><span class=\"token deleted-sign deleted\"><span class=\"token prefix deleted\">-</span>    &lt;version>1.15&lt;/version>\n</span><span class=\"token inserted-sign inserted\"><span class=\"token prefix inserted\">+</span>    &lt;version>2.0.0-rc7&lt;/version>\n</span><span class=\"token unchanged\"><span class=\"token prefix unchanged\"> </span>  &lt;/parent>\n<span class=\"token prefix unchanged\"> </span>\n<span class=\"token prefix unchanged\"> </span>  &lt;groupId>sonia.scm.plugins&lt;/groupId>\n<span class=\"token prefix unchanged\"> </span>  &lt;artifactId>scm-mail-plugin&lt;/artifactId>\n<span class=\"token prefix unchanged\"> </span>  &lt;version>1.6-SNAPSHOT&lt;/version>\n<span class=\"token prefix unchanged\"> </span>  &lt;name>scm-mail-plugin&lt;/name>\n</span><span class=\"token inserted-sign inserted\"><span class=\"token prefix inserted\">+</span>  &lt;packaging>smp&lt;/packaging>\n</span><span class=\"token unchanged\"><span class=\"token prefix unchanged\"> </span>  &lt;url>https://bitbucket.org/sdorra/scm-mail-plugin&lt;/url>\n<span class=\"token prefix unchanged\"> </span>  &lt;description>\n<span class=\"token prefix unchanged\"> </span>    The mail plugin provides an api for sending e-mails. \n</span><span class=\"token coord\">@@ -28,13 +29,6 @@</span>\n<span class=\"token unchanged\"><span class=\"token prefix unchanged\"> </span>  &lt;dependencies>\n<span class=\"token prefix unchanged\"> </span>\n</span><span class=\"token deleted-sign deleted\"><span class=\"token prefix deleted\">-</span>    &lt;dependency>\n<span class=\"token prefix deleted\">-</span>      &lt;groupId>jakarta.servlet&lt;/groupId>\n<span class=\"token prefix deleted\">-</span>      &lt;artifactId>servlet-api&lt;/artifactId>\n<span class=\"token prefix deleted\">-</span>      &lt;version>${servlet.version}&lt;/version>\n<span class=\"token prefix deleted\">-</span>      &lt;scope>provided&lt;/scope>\n<span class=\"token prefix deleted\">-</span>    &lt;/dependency>\n</span><span class=\"token unchanged\"><span class=\"token prefix unchanged\"> </span>\n<span class=\"token prefix unchanged\"> </span>    &lt;dependency>\n<span class=\"token prefix unchanged\"> </span>      &lt;groupId>org.codemonkey.simplejavamail&lt;/groupId>\n<span class=\"token prefix unchanged\"> </span>      &lt;artifactId>simple-java-mail&lt;/artifactId>\n<span class=\"token prefix unchanged\"> </span>      &lt;version>2.4&lt;/version>\n</span><span class=\"token coord\">@@ -52,18 +46,6 @@</span>\n<span class=\"token unchanged\"><span class=\"token prefix unchanged\"> </span>    &lt;jakartamail.version>1.4.7&lt;/jakartamail.version>\n<span class=\"token prefix unchanged\"> </span>  &lt;/properties>\n<span class=\"token prefix unchanged\"> </span>  \n</span><span class=\"token deleted-sign deleted\"><span class=\"token prefix deleted\">-</span>  &lt;build>\n<span class=\"token prefix deleted\">-</span>    &lt;plugins>\n<span class=\"token prefix deleted\">-</span>      \n<span class=\"token prefix deleted\">-</span>      &lt;plugin>\n<span class=\"token prefix deleted\">-</span>        &lt;groupId>sonia.scm.maven&lt;/groupId>\n<span class=\"token prefix deleted\">-</span>        &lt;artifactId>scm-maven-plugin&lt;/artifactId>\n<span class=\"token prefix deleted\">-</span>        &lt;version>1.22&lt;/version>\n<span class=\"token prefix deleted\">-</span>      &lt;/plugin>\n<span class=\"token prefix deleted\">-</span>      \n<span class=\"token prefix deleted\">-</span>    &lt;/plugins>\n<span class=\"token prefix deleted\">-</span>  &lt;/build>\n</span><span class=\"token unchanged\"><span class=\"token prefix unchanged\"> </span>  \n<span class=\"token prefix unchanged\"> </span>  &lt;repositories>\n<span class=\"token prefix unchanged\"> </span>    \n<span class=\"token prefix unchanged\"> </span>    &lt;repository></span></code></pre></div>\n<h3 id=\"plugin-descriptor-srcmainresourcesmeta-infscmpluginxml\" style=\"position:relative;\"><a href=\"#plugin-descriptor-srcmainresourcesmeta-infscmpluginxml\" aria-label=\"plugin descriptor srcmainresourcesmeta infscmpluginxml permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Plugin Descriptor (src/main/resources/META-INF/scm/plugin.xml)</h3>\n<ul>\n<li>add the following dtd to the top of the\nplugin.xml: <code class=\"language-text\">&lt;!DOCTYPE plugin SYSTEM \"https://download.scm-manager.org/dtd/plugin/2.0.0-01.dtd\"></code></li>\n<li>add an scm-version element with the value 2 to the plugin.xml</li>\n<li>remove resources and packages from plugin.xml</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"diff\"><pre class=\"language-diff\"><code class=\"language-diff\">diff -r a988f4cfb7ab src/main/resources/META-INF/scm/plugin.xml\n<span class=\"token coord\">--- a/src/main/resources/META-INF/scm/plugin.xml        Thu Dec 10 20:32:26 2015 +0100</span>\n<span class=\"token coord\">+++ b/src/main/resources/META-INF/scm/plugin.xml        Tue Oct 30 11:55:15 2018 +0100</span>\n<span class=\"token coord\">@@ -1,4 +1,5 @@</span>\n<span class=\"token unchanged\"><span class=\"token prefix unchanged\"> </span>&lt;?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n</span><span class=\"token inserted-sign inserted\"><span class=\"token prefix inserted\">+</span>&lt;!DOCTYPE plugin SYSTEM \"https://download.scm-manager.org/dtd/plugin/2.0.0-01.dtd\">\n</span><span class=\"token unchanged\"><span class=\"token prefix unchanged\"> </span>&lt;!--\n<span class=\"token prefix unchanged\"> </span>\n<span class=\"token prefix unchanged\"> </span>    Copyright (c) 2010, Sebastian Sdorra\n</span><span class=\"token coord\">@@ -34,6 +35,8 @@</span>\n<span class=\"token unchanged\"><span class=\"token prefix unchanged\"> </span>\n<span class=\"token prefix unchanged\"> </span>&lt;plugin>\n<span class=\"token prefix unchanged\"> </span>\n</span><span class=\"token inserted-sign inserted\"><span class=\"token prefix inserted\">+</span>  &lt;scm-version>2&lt;/scm-version>\n<span class=\"token prefix inserted\">+</span>\n</span><span class=\"token unchanged\"><span class=\"token prefix unchanged\"> </span>  &lt;information>\n<span class=\"token prefix unchanged\"> </span>    &lt;author>Sebastian Sdorra&lt;/author>\n<span class=\"token prefix unchanged\"> </span>    &lt;wiki>https://bitbucket.org/sdorra/scm-manager/wiki/mail-plugin&lt;/wiki>\n</span><span class=\"token coord\">@@ -44,12 +47,4 @@</span>\n<span class=\"token unchanged\"><span class=\"token prefix unchanged\"> </span>    &lt;min-version>${project.parent.version}&lt;/min-version>\n<span class=\"token prefix unchanged\"> </span>  &lt;/conditions>\n<span class=\"token prefix unchanged\"> </span>\n</span><span class=\"token deleted-sign deleted\"><span class=\"token prefix deleted\">-</span>  &lt;packages>\n<span class=\"token prefix deleted\">-</span>    &lt;package>sonia.scm.mail&lt;/package>\n<span class=\"token prefix deleted\">-</span>  &lt;/packages>\n<span class=\"token prefix deleted\">-</span>\n<span class=\"token prefix deleted\">-</span>  &lt;resources>\n<span class=\"token prefix deleted\">-</span>    &lt;script>/sonia/scm/mail/sonia.mail.js&lt;/script>\n<span class=\"token prefix deleted\">-</span>  &lt;/resources>\n</span>\n<span class=\"token inserted-sign inserted\"><span class=\"token prefix inserted\">+</span>  &lt;resources>\n<span class=\"token prefix inserted\">+</span>    &lt;script>assets/scm-mail-plugin.bundle.js&lt;/script>\n<span class=\"token prefix inserted\">+</span>  &lt;/resources>\n</span>\n<span class=\"token unchanged\"><span class=\"token prefix unchanged\"> </span>&lt;/plugin></span></code></pre></div>\n<h3 id=\"java-sources-srcmainjava\" style=\"position:relative;\"><a href=\"#java-sources-srcmainjava\" aria-label=\"java sources srcmainjava permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Java sources (src/main/java)</h3>\n<ul>\n<li>try to compile the sources: <code class=\"language-text\">mvn compile</code></li>\n<li>fix problems (TODO more help here)</li>\n<li>Remove XML accept headers from REST Resource classes -> SCMMv2 supports JSON only</li>\n<li>Migrate REST Resources (e.g. <code class=\"language-text\">v2</code>, add to Index Resource, Update Links) - See core plugins Git, Hg, Svn,\ne.g. <a href=\"https://github.com/scm-manager/scm-manager/blob/develop/scm-plugins/scm-git-plugin/src/main/java/sonia/scm/api/v2/resources/GitConfigResource.java\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><code class=\"language-text\">GitConfigResource</code></a></li>\n</ul>\n<h3 id=\"ui-srcmainjs-srcmainwebapp\" style=\"position:relative;\"><a href=\"#ui-srcmainjs-srcmainwebapp\" aria-label=\"ui srcmainjs srcmainwebapp permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>UI (src/main/js, src/main/webapp)</h3>\n<ul>\n<li>remove all SCM-Manager 1.x ui code from resource directory (src/main/resources)</li>\n<li>create <code class=\"language-text\">package.json</code> with the following content (replace name-of-plugin with the name of your plugin):</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"json\"><pre class=\"language-json\"><code class=\"language-json\"><span class=\"token punctuation\">{</span>\n  <span class=\"token property\">\"name\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"@scm-manager/name-of-plugin\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"license\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"AGPL-3.0-only\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"main\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"src/main/js/index.tsx\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"scripts\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token property\">\"build\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"ui-scripts plugin\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"watch\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"ui-scripts plugin-watch\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"postinstall\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"ui-plugins postinstall\"</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"dependencies\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token property\">\"@scm-manager/ui-plugins\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"2.0.0\"</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<ul>\n<li>create a <code class=\"language-text\">tsconfig.json</code> with the following content:</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"json\"><pre class=\"language-json\"><code class=\"language-json\"><span class=\"token punctuation\">{</span>\n  <span class=\"token property\">\"extends\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"@scm-manager/tsconfig\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"include\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span>\n    <span class=\"token string\">\"./src/main/js\"</span>\n  <span class=\"token punctuation\">]</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<ul>\n<li>run <code class=\"language-text\">mvn process-resources</code> to install the required JavaScript libraries</li>\n<li>create new ui at <code class=\"language-text\">src/main/js</code> (for JavaScript code) and <code class=\"language-text\">src/main/webapp</code> (for static files) (TODO more help)</li>\n<li>Start SCM-Manager with the plugin using <code class=\"language-text\">mvn run</code> - features hot reloading of UI &#x26; Java Code.<br>\nIn order for Java classpath resources to be reloaded in IntelliJ, pressing compile is necessary.</li>\n</ul>\n<p>Some more hints:</p>\n<ul>\n<li>For Configuration UIs\nuse <a href=\"https://github.com/scm-manager/scm-manager/blob/develop/scm-ui/ui-components/src/config/ConfigurationBinder.tsx\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><code class=\"language-text\">ConfigurationBinder</code></a>\n<ul>\n<li>See core plugins Git, Hg, Svn,</li>\n</ul>\ne.g. <a href=\"https://github.com/scm-manager/scm-manager/blob/develop/scm-plugins/scm-git-plugin/src/main/js/index.ts\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">scm-git-plugin/index.ts</a>\n.<br>\nNote that <code class=\"language-text\">readOnly</code> property checks if update link is returned by REST resource</li>\n<li>Don't forget <a href=\"../i18n-for-plugins\">i18n for Plugins</a></li>\n</ul>\n<h1 id=\"further-reading\" style=\"position:relative;\"><a href=\"#further-reading\" aria-label=\"further reading permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Further reading</h1>\n<ul>\n<li><a href=\"../../ui-extensions\">UI Extensions</a> - Extend the SCM-Manager UI</li>\n<li><a href=\"https://github.com/scm-manager/scm-manager/tree/develop/scm-ui/ui-components\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">scm-manager/ui-components</a> - Reusable\nUI components within SCM-Manager</li>\n<li><a href=\"https://github.com/scm-manager/smp-maven-plugin\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">smp-maven-plugin</a> - Plugin that facilitates efficient plugin\ndevelopment for SCMM</li>\n</ul>","description":"Before starting, make sure to read the Plugin Development. To migrate an existing SCM-Manager 1.x Plugin, you have to do the following steps: Maven (pom.xml…","tableOfContents":"<ul>\n<li>\n<ul>\n<li>\n<ul>\n<li><a href=\"#maven-pomxml\">Maven (pom.xml)</a></li>\n<li><a href=\"#plugin-descriptor-srcmainresourcesmeta-infscmpluginxml\">Plugin Descriptor (src/main/resources/META-INF/scm/plugin.xml)</a></li>\n<li><a href=\"#java-sources-srcmainjava\">Java sources (src/main/java)</a></li>\n<li><a href=\"#ui-srcmainjs-srcmainwebapp\">UI (src/main/js, src/main/webapp)</a></li>\n</ul>\n</li>\n</ul>\n</li>\n<li>\n<p><a href=\"#further-reading\">Further reading</a></p>\n</li>\n</ul>","frontmatter":{"title":"Migrate a v1 plugin","subtitle":null,"displayToc":null,"description":null,"keywords":null,"image":null}}},"pageContext":{"slug":"/docs/3.9.x/en/development/plugins/migrate-plugin-from-v1/","version":"3.9.x","latestVersion":"3.11.x","latestPageVersion":"3.11.x","language":"en","relativePath":"/development/plugins/migrate-plugin-from-v1/","canonicalPath":"/docs/latest/en/development/plugins/migrate-plugin-from-v1/","latestRootPath":"/docs/3.11.x/en/"}},
    "staticQueryHashes": ["1973669194","2742214048","2956773653","2957019495","698804963"]}