Plugin.bat .. pluginid=?

Hi all,

I am making some progress,

I have an issue in specifying the pluginid in my circumstance, code is:


Plugin -project c:/IctEngineer/Projects/ictmanager.vpp -pluginid ImportSourceAction

my plugin.xml:

<plugin
	id="IctEngineer"
	name="ICTTools"
	description="ICT Tools."
	provider="Imas-ICT Turnhout"
	class="com.blabla.ictengineer.visualparadigm.plugin.ICTSetupControl">
        
	<actionSets>
	
		<actionSet id="ICTActionSet"> 
			<toolbar id="mainToolbar" orientation="north" index="last"/>
 			<menu id="imasMenu" label="Imas-ICT Tools" mnemonic="I" menuPath="Tools/Report">
 			</menu>
		
			<action id="CreateRequestStructureController" actionType="generalAction"
				label="Create Request Model Structure..."
				style="normal"
				menuPath="Tools/imasMenu/#">
					<actionController class="com.blabla.ictengineer.visualparadigm.plugin.actions.CreateRequestStructureController"/>
			</action>
			
			<action id="CreateProjectStructureController" actionType="generalAction"
				label="Create Project Model Structure..."
				style="normal"
				menuPath="Tools/imasMenu/#">
					<actionController class="com.blabla.ictengineer.visualparadigm.plugin.actions.CreateProjectStructureController"/>
			</action>

			<action id="ImportSourceActionController" actionType="generalAction"
				label="Import Source..."
				style="normal"
				menuPath="Tools/imasMenu/#">
					<actionController class="com.blabla.ictengineer.visualparadigm.plugin.actions.ImportSourceController"/>
			</action>
			
			<action id="ShowChangesController" actionType="generalAction"
				label="Show recent changes..."
				style="normal"
				menuPath="Tools/imasMenu/#">
					<actionController  class="com.blabla.ictengineer.visualparadigm.plugin.actions.ShowChangesController"/>
			</action>
	
		<action id="ImportSourceAction" actionType="generalAction">
				<actionController class="com.blabla.ictengineer.visualparadigm.plugin.actions.ImportSourceAction"/>
			</action>
		
		</actionSet>
		
		<contextSensitiveActionSet id="ContextControllerID">
			<contextTypes all="true"/>
				<action id="ContextController" 
					menuPath="OpenSpecification" 
					label="Create Diagram..." 
					style="normal"> 
					<actionController class="com.blabla.ictengineer.visualparadigm.plugin.actions.ContextController"/> 
				</action> 
		</contextSensitiveActionSet>

		
	</actionSets>
	
</plugin>

All the above do function, except for the bat plugin. I get a plugin not found.

My plugin folder looks like:

plugins
-IctEngineer
–classses
—com
----blabla
-----ictengineer
------visualparadigm
-------actions
-------classes
-------models
-------plugin
--------actions <=plugin is in this folder
--------dialogs

Hi all,

My understanding of the system increases daily. Clearly I needed a totally separate plugin definition. I resolved it as follows and added some parameters specified control.

The plugin source:


package icte.batch;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import com.blabla.system.ictengineer.FileHelpers;
import com.blabla.system.ictengineer.ICTENGINEER;
import com.blabla.system.ictengineer.visualparadigm.actions.ImportSourcesEngine;
import com.vp.plugin.ApplicationManager;
import com.vp.plugin.VPPlugin;
import com.vp.plugin.VPPluginCommandLineSupport;
import com.vp.plugin.VPPluginInfo;
import com.vp.plugin.model.IProject;

public class select implements VPPlugin, VPPluginCommandLineSupport {

	/**
	 * 
	 */
	@Override
	public void loaded(VPPluginInfo arg0) {
		System.console().writer().println("loaded() - Howdy");
	}

	/**
	 * 
	 */
	@Override
	public void unloaded() {
		System.console().writer().println("unloaded() - Bye");
	}

	/**
	 * 
	 */
	public void invoke(String[] arg0) {

		System.console().writer().println("invoke() - Ready");

		if (arg0 == null) {
			System.console().writer()
					.println("invoke() - No parameters found!");
			return;
		}

		for (String str : arg0)
			System.console().writer().println("parm - " + str);

		String ictProcess = null;
		String ictProject = null;

		if (arg0 != null)
			ictProcess = arg0[0];

		try {

			ictProject = arg0[1];

		} catch (Exception ex) {

			System.console().writer()
					.println("invoke() - No project specified. Using default.");
			IProject project = ApplicationManager.instance()
					.getProjectManager().getProject();
			ictProject = project.getName().replace(".vpp", "");

		}

		if (!processRunner(ictProcess, ictProject))
			System.console().writer()
					.println("invoke() - Invalid process specified");

	}

	/**
	 * 
	 * @param ictProcess
	 * @param ictProject
	 * @return
	 */
	private boolean processRunner(String ictProcess, String ictProject) {
		
		if (ictProcess.toUpperCase().equals("IMPORT")) {
			System.console().writer()
					.println("validateParameter() - OK -" + ictProcess);
			batchImport(ictProject);
			return true;
			
		} else if (ictProcess.toUpperCase().equals("CRCUPDATE")){
			
			
			String path = ICTENGINEER.ICTENGINEER_ROOT+"\\"+ ICTENGINEER.ICTENGINEER_WORKSPACE+"\\"+ ICTENGINEER.ICTENGINEER_MODELPATH+"\\"; 
			
			System.console().writer()
			.println("validateParameter() - OK -" + ictProcess);
			
			FileHelpers.updateCRCs(path,path);
			
			return true;
			
		} else {
			System.console()
					.writer()
					.println(
							"validateParameter() - Invalid parameter -"
									+ ictProcess);
		}
		return false;
	}

	/**
	 * 
	 * @param ictProject
	 */
	private void batchImport(String ictProject) {

		String fileName = ICTENGINEER.ICTENGINEER_ROOT + "/"
				+ ICTENGINEER.ICTENGINEER_WORKSPACE + "/" + ictProject + ".txt";

		List<File> filestodo = new ArrayList<File>();

		BufferedReader reader = null;

		try {
			reader = new BufferedReader(new FileReader(fileName));
		} catch (FileNotFoundException e2) {
			System.console().writer()
					.println("batchImport() - File not found: " + fileName);
		}

		String line = null;

		try {
			while ((line = reader.readLine()) != null) {
				filestodo.add(new File(line));
				System.console().writer()
						.println("batchImport() - Input: " + line);

			}
		} catch (IOException e1) {
			e1.printStackTrace();
			System.console().writer()
					.println("batchImport() - Cannot read file.");
		}

		File[] files = filestodo.toArray(new File[filestodo.size()]);

		ImportSourcesEngine importer = new ImportSourcesEngine(true);

		try {

			importer.importSourceElement(files);

		} catch (IOException e) {
			System.console().writer().println("batchImport() - ***FAILED***");

		}
	}
}

plugin.xml:


<plugin
	id="icte.batch"
	name="ICTTools"
	description="ICT Tools."
	provider="Imas-ICT Turnhout"
	class="icte.batch.select">
	<runtime> 
		<library path="../IctEngineer/classes" relativePath="true"/>
 	</runtime>
</plugin>

I include the libary path of the related system to have access to various methods.

Execution batch file:


@echo on
call Plugin -project c:/IctEngineer/Projects/article.vpp -pluginid icte.batch -pluginargs "import"

Note the pluginargs

I created a VP project called $$Runner$$ so that the plugin can run without a ‘real’ project, as below:


@echo on
call Plugin -project c:/IctEngineer/Projects/$$Runner$$.vpp  -pluginid icte.batch -pluginargs "crcupdate"

I hopes this helps someone …