From a8855399ee3d60473ad1cec72226b96cf3ef020e Mon Sep 17 00:00:00 2001 From: Clebert Suconic Date: Fri, 16 Dec 2016 10:23:48 -0500 Subject: [PATCH] NO-JIRA: adding Migrate1X into CLI --- artemis-cli/pom.xml | 5 ++ .../apache/activemq/artemis/cli/Artemis.java | 2 + .../cli/commands/migration1x/Migrate1X.java | 47 +++++++++++++++++++ .../artemis/tools/migrate/config/Main.java | 1 + 4 files changed, 55 insertions(+) create mode 100644 artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/migration1x/Migrate1X.java diff --git a/artemis-cli/pom.xml b/artemis-cli/pom.xml index 0a2702ab9f..06b173182c 100644 --- a/artemis-cli/pom.xml +++ b/artemis-cli/pom.xml @@ -43,6 +43,11 @@ artemis-jms-server ${project.version} + + org.apache.activemq + artemis-tools + ${project.version} + org.apache.activemq artemis-dto diff --git a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/Artemis.java b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/Artemis.java index 0f320ec33e..6d5354c527 100644 --- a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/Artemis.java +++ b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/Artemis.java @@ -36,6 +36,7 @@ import org.apache.activemq.artemis.cli.commands.address.DeleteAddress; import org.apache.activemq.artemis.cli.commands.address.HelpAddress; import org.apache.activemq.artemis.cli.commands.address.ShowAddress; import org.apache.activemq.artemis.cli.commands.address.UpdateAddress; +import org.apache.activemq.artemis.cli.commands.migration1x.Migrate1X; import org.apache.activemq.artemis.cli.commands.queue.CreateQueue; import org.apache.activemq.artemis.cli.commands.queue.DeleteQueue; import org.apache.activemq.artemis.cli.commands.queue.HelpQueue; @@ -154,6 +155,7 @@ public class Artemis { builder.withGroup("data").withDescription("data tools group (print) (example ./artemis data print)"). withDefaultCommand(HelpData.class).withCommands(PrintData.class); builder = builder.withCommand(Create.class); + builder = builder.withCommand(Migrate1X.class); } return builder; diff --git a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/migration1x/Migrate1X.java b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/migration1x/Migrate1X.java new file mode 100644 index 0000000000..7d0453819d --- /dev/null +++ b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/migration1x/Migrate1X.java @@ -0,0 +1,47 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.activemq.artemis.cli.commands.migration1x; + +import java.io.File; + +import io.airlift.airline.Arguments; +import io.airlift.airline.Command; +import org.apache.activemq.artemis.cli.commands.ActionAbstract; +import org.apache.activemq.artemis.cli.commands.ActionContext; +import org.apache.activemq.artemis.tools.migrate.config.Main; + +@Command(name = "migrate1x", description = "Migrates the configuration of a 1.x Artemis Broker") +public class Migrate1X extends ActionAbstract { + + @Arguments(description = "The instance directory to hold the broker's configuration and data. Path must be writable.", required = true) + File directory; + + @Override + public Object execute(ActionContext context) throws Exception { + if (!directory.exists()) { + throw new RuntimeException(String.format("The path '%s' does not exist.", directory)); + } + super.execute(context); + return run(context); + } + + public Object run(ActionContext context) throws Exception { + Main.scanAndTransform(directory); + return null; + } + +} diff --git a/artemis-tools/src/main/java/org/apache/activemq/artemis/tools/migrate/config/Main.java b/artemis-tools/src/main/java/org/apache/activemq/artemis/tools/migrate/config/Main.java index 94d4d53802..754dc15694 100644 --- a/artemis-tools/src/main/java/org/apache/activemq/artemis/tools/migrate/config/Main.java +++ b/artemis-tools/src/main/java/org/apache/activemq/artemis/tools/migrate/config/Main.java @@ -65,6 +65,7 @@ public class Main { File r = new File(f.getAbsolutePath()); f.renameTo(new File(f.getAbsolutePath() + ".bk")); file.renameTo(r); + System.out.println(f + " converted, old file renamed as " + f.getAbsolutePath() + ".bk"); } } } catch (Exception e) {