d-wojciechowski / plm-companion

PLM Companion is an extension that allows developers to speed up the process of developing customizations to Large systems remotely. The plugin may be used wherever the execution of custom commands or monitoring site availability may be handy.
https://dwojciechowski.com/plmcompanion/
GNU General Public License v3.0
4 stars 0 forks source link

Copy files tools #55

Open dotrek opened 3 years ago

dotrek commented 3 years ago

I would love to have this plugin with additional functionality of copying compiled/recompiled classes to configured targets. Targets can be configured automatically after putting path to WT_HOME (src -> codebase, codebase -> codebase etc.). Copying should be executed after every compilation action.

d-wojciechowski commented 3 years ago

Hey,

Great idea, but to do that properly it is necessary to implement the following functionalities:

  1. Incremental copy (copy only files that are newer than those on the source system)
  2. Data transfer via the connection with addon (safe, with retry, backpressure, etc)
  3. Selection of which folders/files should be tracked to avoid an unnecessary transfer.
  4. Configuration window/files to control behavior.
  5. On-demand action to trigger copy to the linked system, ideally integrated with OOTB IntelliJ idea shortcuts etc.
  6. Connection with OOTB build.

As presented above, this is a complex request which requires big effort both on the addon side and plugin side.

Till implementation is completed, please take a look at ant script to copy files to file system:

<?xml version="1.0" encoding="UTF-8"?>
<project name="CopyToVmware" default="execAll" basedir=".">

    <property name="targetRoot" value="Y:\app\..." />

    <target name="copyClassToVM">
        <copy todir="${targetRoot}\codebase" verbose="true">
            <fileset dir="build" includes="**/*.class" />
        </copy>
    </target>

     ...

    <target name="execAll">
        <antcall target="copyClassToVM" />
        <antcall target="copyBin" />
          .....
    </target>

</project>

image