mdsBuild

Generates an artifact jar (MDSObjects.jar) from exported code. You must checkout or export code from SCM prior to running this operation. Checkout or Export can be easily done if you configure project with Source details.

Generated MDSObjects.jar artifact file will have folder structure as per exported code, checkout folder & project properties configuration, see project properties section for more details. When artifact is deployed, it will be deployed under specific namespace configured on Project properties.

There are no special requirements for the Endpoint where this operation will execute.

This operation also supports partial build. Partial build creates a build artifact containing file(s) and folder(s) selected on the Project Files tab of a project. When using partial build, the plugin will generate a zip file named {{FD_PROJECT_NAME}}.zip . Note that the structure of this file will match the folder structure from SCM, even if the TARGET attribute is set to a different path. This is so the user can easily change the target and redeploy to MDS to update the file path inside of MDS without having to rebuild the entire project. 

Environment/Instance Properties

Property Name

Property Code

Required

Description





Project Properties

Property Name

Property Code

Required

Description

MDS Base Object Path

FDMDS_BASE_OBJ_DIR

No

The relative directory path from where MDS objects will be included in artifact. If you want all files from configured Project Sources including checkout folder, then you can leave this property empty.

See Special Considerations below for more details.

Inputs

Input Name

Input Code

Required

Description





Outputs

Output Name

Required

Description




Project File Attributes

The following properties are Project File Attributes. They are only available on Partial Deployment projects.

Attribute Name

Attribute Code

Required

Description

Target PathTARGET

Yes

The path in MDS where the file should be placed. Default value is the SCM file path.

Property ReplacementPROPERTY_REPLACEMENTYes

Whether or not to perform property replacement on individual files. Defaults to the value of FDMDS_PROPERTY_REPLACEMENT. 

The target path should not contain the namespace folder, however, if the target path starts with the namespace, the plugin will ignore the namespace on the beginning of the target path. For example, if FDMDS_NAME_SPACE is "apps", and the target path is /Schemas/customer.xsd, the path inside of MDS will be /apps/Schemas/customer.xsd. 

Artifacts

This operation produces a jar or zip file that contains a variety of objects that will be stored in the artifacts repository, such as an xsd, xslt or wsdl.

Endpoint Selection

This operation will select all available endpoints associated to the environment/instance.

Endpoint Execution

This operation will execute on any one of the selected endpoints and will be random in the determination of which one.

Special Considerations

If your MDS objects are in separate SCM folders, then everything will be easy to build and deploy, but if you have one single SCM folder, but would like to create more than one FlexDeploy projects, you need to utilize MDS Base Object Path and Checkout Folder to control what gets included in artifacts jar file. For example:

Git Example

  • Git Folder structure
    • /MDS/apps/order/order.xsd
    • /MDS/apps/customer/customer.xsd
  • If you want both of the objects
    • Use "MDS/apps" for sparse checkout folder script. You can use anything for checkout folder script.
    • Use apps for MDS Name Space.
    • Leave MDS Base Object Path as empty and all objects will be included in artifact jar file and it will have proper structure i.e. order/order.xsd and customer/customer.xsd.
    • At deploy time both files will deploy to apps folder.
    • This option should work for partial deployment project as well.
  • If you want only customer objects
    • Use "MDS/apps/customer" for sparse checkout folder script. You can use anything for checkout folder script.
    • Leave MDS Base Object Path as empty.
    • So we have only checked out objects necessary for our project.
    • Use apps/customer for MDS Name Space.
  • Configurations for sparse folder and checkout folder is done on Source Configurations for project and SCM plugins will automatically utilize that information.

Subversion Example

For SCM other than Git and CVS, it is best to setup MDS Base Object Path to indicate what is included in the artifact in accordance with checkout folder setting.

  • Subversion Folder structure
    • /trunk/apps/order/order.xsd
    • /trunk/apps/customer/customer.xsd
  • If you want both objects
    • Configure /trunk/apps on Project Source.
    • Option 1
      • Set Checkout folder and MDS Base Object Path set to Project Name.
    • Option 2
      • Do not set anything for Checkout folder and MDS Base Object Path.
    • For both options, both objects will be included in artifact jar file and it will have proper structure i.e. order/order.xsd and customer/customer.xsd.
    • Configure namespace on Project Properties as apps.
  • If you want only customer objects
    • Make sure you only checkout /trunk/apps/customer folder only as we are only interested in customer objects here.
    • Use apps/customer as checkout folder as we still want to maintain structure of objects.
    • Set apps as MDS Base Object Path.
    • So we have only checked out objects necessary for our project, so only customer folder related objects will be included in artifact jar file, but it will still have proper structure, i.e. customer/customer.xsd.
    • Configure namespace on Project Properties as apps.
  • Configurations for what should be checked out and checkout folder is done on Source Configurations for project and SCM plugins will automatically utilize that information.