001/* 002 * jPOS Project [http://jpos.org] 003 * Copyright (C) 2000-2026 jPOS Software SRL 004 * 005 * This program is free software: you can redistribute it and/or modify 006 * it under the terms of the GNU Affero General Public License as 007 * published by the Free Software Foundation, either version 3 of the 008 * License, or (at your option) any later version. 009 * 010 * This program is distributed in the hope that it will be useful, 011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 013 * GNU Affero General Public License for more details. 014 * 015 * You should have received a copy of the GNU Affero General Public License 016 * along with this program. If not, see <http://www.gnu.org/licenses/>. 017 */ 018 019package org.jpos.q2.cli.deploy; 020 021import java.io.File; 022import org.jpos.q2.CLICommand; 023import org.jpos.q2.CLIContext; 024/** 025* CLI implementation - Deploy subsystem 026* 027* @author Felipph Calado - luizfelipph@gmail.com 028*/ 029public class ENABLE implements CLICommand { 030 /** Default constructor; no instance state to initialise. */ 031 public ENABLE() {} 032 033 @Override 034 public void exec(CLIContext ctx, String[] args) throws Exception { 035 if (args.length < 2) { 036 ctx.println("Usage: enable <xml_file(no extension)>"); 037 return; 038 } 039 File deployDir = ctx.getCLI().getQ2().getDeployDir(); 040 File deploy = new File(deployDir, args[1] + ".xml.off").getCanonicalFile(); 041 File dest = new File(deployDir, args[1] + ".xml").getCanonicalFile(); 042 if (!deploy.toPath().startsWith(deployDir.getCanonicalFile().toPath())) { 043 ctx.println("Invalid path: " + args[1]); 044 return; 045 } 046 if (deploy.exists() && deploy.isFile()) { 047 deploy.renameTo(dest); 048 ctx.println("ENABLED: " + args[1]); 049 return; 050 } 051 if (dest.exists()) { 052 ctx.println("Already enabled: " + args[1]); 053 return; 054 } 055 ctx.println("Can't find the bean descriptor: " + args[1]); 056 } 057}