JAVA COMPONENT DEVELOPMENT GUIDE PIPELINE PILOT INTEGRATION COLLECTION 2016

Size: px
Start display at page:

Download "JAVA COMPONENT DEVELOPMENT GUIDE PIPELINE PILOT INTEGRATION COLLECTION 2016"

Transcription

1 JAVA COMPONENT DEVELOPMENT GUIDE PIPELINE PILOT INTEGRATION COLLECTION 2016

2 Copyright Notice 2015 Dassault Systèmes. All rights reserved. 3DEXPERIENCE, the Compass icon and the 3DS logo, CATIA, SOLIDWORKS, ENOVIA, DELMIA, SIMULIA, GEOVIA, EXALEAD, 3D VIA, BIOVIA and NETVIBES are commercial trademarks or registered trademarks of Dassault Systèmes or its subsidiaries in the U.S. and/or other countries. All other trademarks are owned by their respective owners. Use of any Dassault Systèmes or its subsidiaries trademarks is subject to their express written approval. Acknowledgments and References To print photographs or files of computational results (figures and/or data) obtained using BIOVIA software, acknowledge the source in an appropriate format. For example: "Computational results obtained using software programs from Dassault Systèmes BIOVIA. The ab initio calculations were performed with the DMol 3 program, and graphical displays generated with Pipeline Pilot." BIOVIA may grant permission to republish or reprint its copyrighted materials. Requests should be submitted to BIOVIA Support, either through electronic mail to biovia.support@3ds.com, or in writing to: BIOVIA Support 5005 Wateridge Vista Drive, San Diego, CA USA

3 Contents Chapter 1: Java Component Development Overview 1 Who Should Read this Guide 1 Requirements 1 Getting Started with Java Component Development 1 Java Component API 1 Component Interface 2 Supported Objects 2 Additional Information 2 Chapter 2: Creating Java Components 3 Application Package 3 Anatomy of a Java Component 3 Development Requirements 4 Creating a Java Component with Eclipse 4 Creating a Package 4 Creating a Java Project in Eclipse 5 Creating a Project Named "pilotcomponent" 5 Adding the External jar reference to the Build Path 9 Creating a Pilot Component Class 9 Using the Java API to Implement the Component Interface 10 Component Interface 11 Component Categories 11 Saving the Java Code 12 Activating the Package 12 Chapter 3: Testing a Java Component in Pipeline Pilot Client 14 Chapter 4: Adding New Java Components to a Package 16 Saving Components in Package Destinations 16 Chapter 5: Distributing the Package 18 Chapter 6: Debugging a Java Component 19 Writing Additional Properties to the Output 19 Printing Debug Messages 21 Debugging with Eclipse IDE 22 Notes on Debugging 24 Appendices 26 Appendix A: Java VM Environment 26 Appendix B: Using JNI within a Java Component 26 Appendix C: Hash Table Values 26 Creation from a Java Map 27 Values as Java Maps 28 Comment on null values 30 Appendix D: Memory Management 30 Appendix E: Testing 31

4 Chapter 1: Java Component Development Overview The Pipeline Pilot Integration collection includes tools for developing components in the Java programming language for use with protocols. Java is a powerful environment for experienced programmers who need to develop and deliver high-performance capabilities. Java is known for its speed and ability to integrate the capabilities of a pre-existing Java library. If speed is not an issue, it may be easier to use a scripting language such as Perl, Python, or VB. Who Should Read this Guide This guide provides information about how to use the Java component application programming interface (API) to access and modify data objects for developing your own components. It offers the necessary architectural background and technical instructions for creating, testing, and deploying your customized Java components. Requirements To develop components in Java, you need the following: Experience writing code in Java A Java-integrated development environment (IDE), such as Eclipse 3.1 You should also have a basic understanding of how to use Pipeline Pilot Client to design and run protocols Note: This document assumes you are familiar with the Protocol Development Quick Start guide, which explains Component Lifetime Management. Getting Started with Java Component Development The tools available for developing components in Java include: Java-based components, such as Java (on Server) Java API and accompanying API documentation API examples that demonstrate how to design Java components that access the Pipeline Pilot data model to carry out a variety of tasks. A set of template Java Classes to use as a starting point for creating different types of Java components that call the API, such as calculators, manipulators, filters, readers, and writers. This guide includes instructions that walk you through the steps of creating a new component using the Java API, based on the Java (on Server) component that acts as a common "empty vessel" for all Java components. Java Component API The Java Component API provides a convenient way to access and modify the data structures, including the data records that flow through the components, the various parameter settings, and the global properties of the enclosing protocol. Java Component Development Overview Page 1

5 The API is implemented in an object-oriented fashion that reflects the natural syntax and features of the Java programming language. For the API definition, refer to the published Javadocs. Component Interface The Java component interface is com.scitegic.pilot.component. Every Java component implements the following methods, which are detailed in this guide: Component.onInitialize: Executed once before processing the first data record. Component.onProcess: Executed for each data record passed as input or generated by the component. Component.onFinalize: Executed after processing the last data record. The support of this interface is what allows the Java component to plug and play in protocol. Supported Objects The objects implemented by the Java API include: com.scitegic.pilot.datarecord: The data upon which the component operates to implement its function. com.scitegic.pilot.node: An element of the data record and global data hierarchies. com.scitegic.pilot.propertycollection: An ordered set of name/value pairs used to hold the properties assigned to each node and to represent parameter settings. com.scitegic.pilot.property: One of the name/value pairs in a property collection. com.scitegic.pilot.value: A generic value object used to define name/value pairs in a property collection. com.scitegic.pilot.context: Passed to the Component interface methods above, to allow access to component parameters and global properties. Additional Information For more information about the Pipeline Pilot Integration collection and other BIOVIA software products, visit Page 2 Pipeline Pilot Java Component Development Guide

6 Chapter 2: Creating Java Components The following topics are covered: Application Package Anatomy of a Java Component Development Requirements Creating a Java Component with Eclipse Activating the Package Application Package To deploy and run a Java component, you need to work within a named package. A package is a directory structure that holds all files required to deploy an application binaries, component XML, example protocols, example data files, and documentation. All components in Pipeline Pilot are deployed in packages, representing licensed modules. The package approach is particularly important for components that include a separately compiled binary content, such as Java components. IMPORTANT! We recommend that you become familiar with the packaging concept described in the Application Packaging Guide. The "package.conf" file at the top of the package directory structure provides details about how everything is organized in this package and other configuration information. To make a Java component accessible to Pipeline Pilot, define CLASSPATH within java directive in "package.conf", pointing to the location of your classes. <java> CLASSPATH$(package)/ /classes </java> or.jar <java> CLASSPATH$(package)/ /jars/your_component.jar </java> Anatomy of a Java Component When completed, a Java component consists of two parts that reside within a package file structure: A Java class that implements the interface com.scitegic.pilot.component. The jar file (included in the Integration collection) required to build such classes is "<install_ root>/apps/scitegic/integration/bin/lang/java/jars/pilot.jar" An instance of the Java (on Server) component with its JavaClass and Use Package parameters set to refer to the appropriate class and package. This is the XML definition of the interface that is exposed to a protocol designer in the Pipeline Pilot Client. It defines the component parameters, default parameter values, the component icon, and configuration of input and output ports. Creating Java Components Page 3

7 Development Requirements To implement Java components, be sure you have the following resources available: Develop the Java components on a server and write the compiled class files on the same server for testing. We recommend using a dedicated server for developing and debugging Java components. Creating a Java Component with Eclipse This example provides step-by-step instructions on how to create a Java component using Eclipse 3.1 as the Java development environment. IMPORTANT! Before you start, ensure that Eclipse is configured to use Java 5.0 features. From Eclipse, select Window > Preferences > Java > Compiler. Set the Compiler compliance level to "5.0", and enable the flag for Use default compliance settings. To work with this example, use a command window on your server. The example includes the following steps: Creating a package Creating a Java project in Eclipse that implements the Pipeline Pilot component interface and links to the pilot and chemistry jars Implementing a Java class to create a component to change atom element types Activating the package Testing the new Java component Creating a Package 1. In a command prompt window, change directories to "<install_root>/bin" (or "linux_bin" on Linux). 2. Use the "pkgutil -n" command to create a package for product "coolstuff" by company "acme". The command line below will pre-configure the new package with a template file structure for java component development. pkgutil n acme/coolstuff -directive xml directive java Under the new "<install_root>/apps/acme/coolstuff" folder, an appropriate directory structure is created with a specific folder to hold the Java classes and a folder for new components. A "package.conf" file is also created in the new package folder to define the component XML subfolder and to define the package folder location for inclusion in a runtime Java CLASSPATH. This line is initially commented out; uncomment it and fill in the correct jar file name when you have a jar file ready to be used. These package items are located as follows: "<install_root>/apps/acme/coolstuff/bin/lang/java/jars" "<install_root >/apps/acme/coolstuff/xml/components" "<install_root >/apps/acme/coolstuff/package.conf" Page 4 Pipeline Pilot Java Component Development Guide

8 Contents of the package configuration file "package.conf" Creating a Java Project in Eclipse This task involves the following: 1. Creating a project named "pilotcomponent". The source folder is named "pilotcomponent/coolstuff_src" and is linked to the folder "<install_ root>/apps/acme/coolstuff/src/lang/java". For this example we will work with source code within the package file structure, for the sake of simplicity. The default output folder is named "pilotcomponent/coolstuff_build" and is linked to "<install_ root>/apps/acme/coolstuff/bin/lang/java/jars". 2. Adding a reference to the external jar "<install_ root>/apps/scitegic/integration/bin/lang/java/jars/pilot.jar" to the build path. 3. Creating a class com.acme.coolstuff.elementchanger that implements com.scitegic.pilot.component. 4. Adding the Java Component API methods to the class to implement a component to change atom element types. Creating a Project Named "pilotcomponent" To create a project named "pilotcomponent": 1. Start Eclipse and select File > New > Project. The New Java Project dialog opens. 2. Select Java Project, and click Next. 3. At the next dialog, do the following: In Project name, enter "pilotcomponent". Select Create new project in workspace. Select Create separate source and output folders. Click Next. Creating Java Components Page 5

9 4. From the Source tab, select Link Additional Source to Project. Java build settings for pilotcomponent 5. Set up the additional source by doing the following: Click Browse and select the folder "<install_root>/apps/acme/coolstuff/src/lang/java". In Folder name, type "coolstuff_src" and click OK. Set the output folder for the classes. Click Browse. Page 6 Pipeline Pilot Java Component Development Guide

10 Java settings for coolstuff_src Creating Java Components Page 7

11 6. Select the top folder "pilotcomponent" and click Create New Folder. Folder Selection dialog Create New Folder option 7. Click Advanced. It s necessary to create an eclipse folder for the output, which is a link to the file system folder "<install_root>/apps/acme/coolstuff/bin/lang/java/jars". Select Link to folder in the file system. Click Browse and select the folder "<install_root>/apps/acme/coolstuff/bin/lang/java/jars". In Folder name, type "coolstuff_build" and click OK. Select the newly defined coolstuff_build folder and then click OK. You return to the New Java Project window. Page 8 Pipeline Pilot Java Component Development Guide

12 Adding the External jar reference to the Build Path 1. From the Libraries tab, select Add External JARs. 2. Add the JAR file "<install_root>/apps/scitegic/integration/bin/lang/java/jars/pilot.jar". Java settings for coolstuff_build 3. Click Finish. A new project, pilotcomponent, is displayed in the Package Explorer window in Eclipse. 4. If Eclipse prompts you to switch to Java Perspective, select Yes. 5. Remove the folders "bin" and "src" (created by default under pilotcomponent). These folders are not needed. Creating a Pilot Component Class 1. From the Package Explorer window in Eclipse, select the pilotcomponent package. 2. Right-click the folder "coolstuff_src" and select New > Class. 3. Ensure that the Source folder displays the value "pilotcomponent/coolstuff_src". Creating Java Components Page 9

13 4. In the Package field, type "com.acme.coolstuff". 5. In the Name field, type "ElementChanger". 6. To add the interface com.scitegic.pilot.component to the class, click Add. 7. Click Finish. New pilot component class Using the Java API to Implement the Component Interface You now have a class that implements the interface com.scitegic.pilot.component (oninitialize, onprocess and onfinalize methods). Now you need to bulk up the code and add the Java API methods to the class, implementing the behavior that you want. Note: To write Java code that works with the component parameters and data records (and global properties if necessary), refer to the Java API documentation. Page 10 Pipeline Pilot Java Component Development Guide

14 Component Interface The three interface methods to populate are: Component.onInitialize(): Invoked once before any data records arrive. Receives one argument, a com.scitegic.pilot.context object. Must return one of these Component.State values: ReadyForInputData, DoneProcessingData, ReadyForNewData, or ReadyForInputThenNewData. Component.onProcess(): Called once per data record. Receives two arguments (a com.scitegic.pilot.context object and a com.scitegic.pilot.datarecord object) and returns a Component.State value that indicates the component s state after processing the data. Component.onFinalize(): Called when no more data records are available. Receives one argument, a com.scitegic.pilot.context object. Component Categories Different categories of component behavior can be defined (a reader, calculator, manipulator, etc.) based on the component state returned by the oninitialize and onprocess methods. With a few simple states, you can define a wide range of component behaviors. The list below names each of the available component states (the values of the enum com.scitegic.pilot.component.state) and explains their meaning: DoneProcessingData: The component s task is complete. The component requests that the framework does not invoke its Process event again. ReadyForInputData: The component requests that the framework invoke its Process event with any data record that arrives at its input port. ReadyForNewData: The component requests that the framework repeatedly invoke its Process event with a new, empty data record as long as this component state is in force. ReadyForInputThenNewData: The component requests that the framework invoke its Process event with any data record that arrives at its input port. When there are no more input records to process, the framework should repeatedly pass to the component a new, empty data record as long as this component state is in force. Below are some broad categories of components and how they make use of component state. Component Category Calculator Filter Reader or Generator Writer Aggregator Management of Component State Component state is always set to "ReadyForInputData" Component state is always set to "ReadyForInputData" Component state is set to "ReadyForNewData". When the operation is complete, the state is set to "DoneProcessingData". Component state is set to "ReadyForInputData". If a maximum output limit is reached, the state is changed to "DoneProcessingData". Component state is set to "ReadyForInputThenNewData". For each input data record, the component caches the necessary data. When there is no further data on the input port and a new data record is processed, the component starts to output records of aggregated data. Creating Java Components Page 11

15 Saving the Java Code To save the class, enter CTRL-S. Eclipse compiles the code automatically, creating the output in "<install_ root>/apps/acme/coolstuff/bin/lang/java/jars". Eclipse editor Activating the Package The "package.conf" file contains the classpath and library information needed to run the Java component. The "pkgutil n" command with the java directive option generates a "package.conf" file Page 12 Pipeline Pilot Java Component Development Guide

16 that already includes a sample classpath for the components which references the output jars directory, so simply ensure you remove the line comment marker and change the name of the jar file. To active the pacmanagement of Component Statekage: 1. In a command prompt window, change directories to "<install_root>/bin" ("linux_bin" on Linux). 2. Use pkgutil on the command line to activate the "acme/coolstuff" package: pkgutil -i acme/coolstuff Notes: On Linux, first source "ppvars.sh" to set up the environment for loading the binaries ("ppvars.sh"). For details on the pkgutil command, see the Application Packaging Guide. Creating Java Components Page 13

17 Chapter 3: Testing a Java Component in Pipeline Pilot Client 1. In Pipeline Pilot Client, add the Java (on Server) component to a new blank workspace and fill in the parameter values as follows: Parameter Value Notes JavaClass com.acme.coolstuff.elementchanger This is the class you created and built in Eclipse. Use Package acme/coolstuff This is how the component knows what CLASSPATH to use; it gets it from the package's "package.conf" file. This is an array type parameter, so more than one package name can be specified. 2. Parameters required by your Java code must now be added to the component itself: Right-click the component and select Edit. The Edit dialog opens. Use the Interface tab to add new parameters. Click Add Parameter. The Define Parameter dialog opens. Use the Parameter tab to define a parameter name and type. It is good practice to author brief information for each new parameter. Enter the text in the Parameter Help field. You can also set the Required to run protocol flag, if needed. Testing a Java Component in Pipeline Pilot Client Page 14

18 Create new parameters for a component The Parameters tab in the lower-right corner of the Pipeline Pilot Client window exposes your new parameters. From here, you can set values for them before running the protocol. In the example below, the component author added two new parameters (ToElement and ChangeElement) and set their values. New parameters exposed in Parameters tab 3. To test out the component, add other components that flow and view the data when you run the protocol. 4. Run the protocol and see if the behavior is as expected. Page 15 Pipeline Pilot Java Component Development Guide

19 Chapter 4: Adding New Java Components to a Package Before saving a new Java component to its package, complete your component interface to fine-tune its design. To fine-tune your design: 1. In the Pipeline Pilot Client, edit the caption displayed beneath the component icon. Assign meaningful information that conveys what the component is designed to do when used in a protocol. 2. Define the icon, ports and help text to use with your component. Right-click the component and select Edit. The Edit dialog opens. To assign an icon, click the Ports and Icon tab, and select an appropriate icon from the list. The drop-down list displays the icon types you can select and provides a description of its purpose. An enlarged preview of the icon is also displayed on the right. From Input Port, Output Port Pass, and Output Port Fail, set the appropriate port configuration for the function and design of your component. To define help text, click the Help tab. In Summary, enter brief text to use as the flyover help. In Description, enter more details about how to use the component. Your help should describe the component s purpose (what it does and how it can be used). Component-level help provides detailed information about what the component does and how it can be used. Details for setting individual parameters are provided by parameter-level help. Saving Components in Package Destinations Configuring the interface of a component setting parameters, adding or removing ports, adding or removing parameters does not immediately create a new component or establish ownership of the new configuration. A copy of the component created after you save the component. When you save a copy, a new global identifier (GUID) is assigned and registered as a separate element of the protocol database (XMLDB). To create a copy of your Java component that is distinct from the generic Java (on Server) component and is bundled with the underlying Java class: 1. Save the component to your "User Name" tab, assigning it an appropriate name. This is the name it will be known as from now on, so it should be descriptive and as unique as you can make it without being too verbose. Consider that the final location of the component in the Component hierarchy will provide information on the component s type. For example, if it resides in a folder named "Calculators", it is not necessary to repeat the fact that it is a calculator component in the component name. See Component Development Guide. Note: Be sure to save only the component and not the entire protocol. To save a component, right-click the component icon and select Save. 2. Prepare a location in your package to store the Component XML definition. This is within the XML directory (refer back to the <xml> directive in the "package.conf" file). The folder structure that you create determines where the component is exposed in the Components tab in the Explorer hierarchy. For correct tab placement, create a folder named "xml/components", and then build an appropriate folder structure with subfolder names (e.g., "xml/components/coolstuff/manipulators"). Adding New Java Components to a Package Page 16

20 3. To store the XML file in the desired location within your package, export the component from your "User Name" tab. Right-click the component icon in the Explorer window, select Export, and save it to the appropriate path. 4. Delete the component from your "User Name" tab. You do not need it anymore since the component is now a packaged item. Note: It is necessary to export the component (in addition to saving it), to ensure that the component is assigned a unique GUID (global identifier). A simple export of the Java (on Server) component would result in a component with the same GUID as the original Java (on Server) component; which would cause confusion for future upgrades and would not let you track and manage the component effectively. 5. Insert the package component into the XMLDB by reactivating the package. pkgutil -r acme/coolstuff 6. Refresh the Explorer tab to check that the component is now installed where you expect it to be exposed in the Component tab folder hierarchy. 7. Build an example protocol to show the use of the component and store this in your package in the same way. In the case of Protocols, export the protocol XML to a suitable location within the "xml/protocols" folder. Tip: You can add multiple components and example protocols to the package in this way. Page 17 Pipeline Pilot Java Component Development Guide

21 Chapter 5: Distributing the Package It is advantageous to have a package that includes your binaries, components, documentation, and examples. It is easy to compress it in ZIP format and reinstall it on another server. To distribute the package for installation: Place the folder in the same location under the "<install_root>/apps" folder and then activate the package with the pkgutil commands (which should exist on each server). This installs the components and example protocols, and adds your documents and data files to the server infrastructure, exposing it to end users and making it available in the appropriate locations. Distributing the Package Page 18

22 Chapter 6: Debugging a Java Component Various options are available for debugging components, including: Writing additional properties to the component output Using add-in debug messages Connecting with a debugger This chapter takes a closer look at debugging Java components using the Element Changer component. Writing Additional Properties to the Output The Element Changer component writes out the extra "NumAtomsChanged" property. However, it is useful to write out the indexes of each replaced atom to highlight them in the output. This can help for debugging issues with the algorithm. To output the index value of each affected atom: 1. Access your ElementChanger.java source file and make the following additions: 2. Compile your source code. 3. In the Pipeline Pilot Client, update the ChangeElement parameter value from "Cl" to "C" and ToElement from "F" to "S" (to ensure that the component picks up new values). Debugging a Java Component Page 19

23 Element Changer component parameters 4. Add the Highlight Atoms component between the Element Changer and the HTML Molecular Table Viewer, and split the SD Reader output so that two pipes enter the viewer like this: Protocol with newly added Highlight Atoms component 5. Set the component's PropertyName parameter to "ReplacedAtoms" (so your new ReplacedAtoms property is used to select atoms for highlighting), and set Highlight Color to "Green": Highlight Atoms component parameters 6. Run the newly updated protocol. The output should look something like this: Protocol output. The top row in the HTML output shows the original input molecule and the second row shows the changes made by our Element Changer component. Tip: Adding extra parameter values is useful when you need to re-use additional parameters downstream. You can also output debug messages that are only exposed in the Debug Messages console. Page 20 Pipeline Pilot Java Component Development Guide

24 Printing Debug Messages Most Java developers are familiar with debugging by System.out.println() statements. You can print debug messages from Java components directly to Pipeline Pilot. To print debug messages: 1. In the Pipeline Pilot Client, select View > Debug Windows > Debug Messages, and ensure that the Debug Messages option is selected. The debug messages are printed in the Debug Messages window. 2. Return to your ElementChanger.java source file and make the following additions: 3. Compile your source code. 4. To run the original protocols in debug mode in Pipeline Pilot Client, select Tools > Run Protocol with Debugging. 5. When the protocol job runs, the Debug Messages window should display debugging messages like the following: Debugging messages for Java components in Pipeline Pilot Tip: Most debugging problems can be solved with these simple techniques. Occasionally, you might need a full debugger, so the following section explains how to attach a debugger to your component. Debugging a Java Component Page 21

25 Debugging with Eclipse IDE Pipeline Pilot is a multi-process system. Each protocol job executes in a separate process and loads a new JVM. This makes it easy to attach a debugger to your Java components. Note: The following script assumes you are using Eclipse IDE 3.1 or later with the Java perspective open. IMPORTANT! Always develop, test, and debug Java plug-in components on a separate development server. Do not change the JVM settings on a production server. To debug Java components in Eclipse: 1. Open the Element Changer protocol. 2. In Eclipse, select Run > Open Debug. The Debug dialog opens. 3. From the list on the left, right-click Remote Java Application and click New. Debug dialog for Java applications 4. Specify the name of your debug configuration (for example, "pilotcomponent") and browse to the project you want to debug. Page 22 Pipeline Pilot Java Component Development Guide

26 Debug configuration 5. Leave the rest of the settings set to Eclipse's defaults (localhost, 8000) and click Close. 6. Open "$(install_root)\apps\scitegic\core\xml\objects\javaenvironement.xml". Comment out the first "sci:proplist" element, and un-comment the second one, which defines the debug setup. (For more details on the JVM settings, see Appendix A: Java VM Environment.) JavaEnvironement.xml 7. To have a running protocol pause when Java is loaded and wait for you to attach the debugger, change "suspend=n" to "suspend=y". If you are the only person running protocols, this is recommended, as it means you do not have to put a pause construct in your code. 8. In the Pipeline Pilot Client, run the Element Changer protocol (or any protocol containing at least one Java (on Server) component). This starts the Java VM inside the protocol job process. 9. If you set "suspend=y", run the target protocol to debug. Debugging a Java Component Page 23

27 10. In Eclipse, toggle a breakpoint somewhere in the onprocess method body of the ElementChanger.java source file or anywhere in the file to debug. 11. In Eclipse, select Debug <your debug configuration> where "<your debug configuration>" is the name you supplied above (step 4). In this example, use "pilotcomponent" as your configuration name. This attaches the debugger to the running Java VM. If you select "suspend=y", then the debugger should break in the onprocess method and open the Eclipse debug perspective. It should look something like this: Eclipse debug perspective IMPORTANT! Make sure the first line in your component Classpath directory is an open "classes" directory, not a jar directory. This way, you will not have to rebuild and deploy your jars every time you make a code change. Notes on Debugging The process, "scisvr.exe", runs in the background for processes pools, scheduled tasks, and background tasks that keep the server warm. If you configure the "JavaEnvironment.xml" file to use a debug port (such as port 8000), a different process might use the debug port before you launch your protocol for debugging. If you see either of these conditions: "No Server Process" error displays in the Pipeline Pilot Client status bar The Java debugger attaches but does not stop at your breakpoints Page 24 Pipeline Pilot Java Component Development Guide

28 Disable process pooling and warm-up tasks in the Pipeline Pilot Admin Portal: 1. Log onto the Admin Portal. 2. Go to Jobs > Settings. 3. Set Maximum Number of Persistent Daemons per Job Pool to "0". 4. Set Job Readiness Refresh Rate (seconds) "0". Save the job settings configuration. You do not need to re-start the Apache web server. All processes share one configuration, so changing the port in "JavaEnvironment.xml" does not prevent the issue. Debugging a Java Component Page 25

29 Appendices Appendix A: Java VM Environment The file "<install_root>/apps/scitegic/core/xml/objects/javaenvironment.xml" controls the JVM than runs within a protocol. The JVM is a singleton per running protocol. These settings are universal on your server. Therefore use care when developing on a production server. You can adjust the following settings: Setting JVMType Description Windows only: Select client or server JVM. The client JVM loads faster and is best suited for quick running protocols. JVMArgs Parameters that are passed to the JVM when it is loaded; useful for adjusting memory size, debugging, and profiling Java code. For example: <sci:mpropval name="jvmargs" type="stringtype"> <sci:value>-xmx256m</sci:value> <sci:value>-xss2m</sci:value> </sci:mpropval> Appendix B: Using JNI within a Java Component If a Java component needs to load and use a native library, Pipeline Pilot needs to know where to find it. To make a native library accessible to Pipeline Pilot, define a nested jni directive within java directive in "package.conf". Within the jni directive, define CLASSPATH key so it points to the Java class file or jar file that loads the native library, and LIBRARYPATH key so it identifies the location of the native library. <java> CLASSPATH $(package)/ /jars/your_component.jar <jni> CLASSPATH $(package)/ /jars/jni_wrapper.jar LIBRARYPATH $(package)/ /libs </jni> </java> CLASSPATH and LIBRARYPATH keys within the jni directive are used to initialize the JVM. Java classes pointed by CLASSPATH within the jni directive are loaded by the system class loader, whereas Java classes pointed by CLASSPATH within the parent java directive are loaded by a child class loader. This implies that classes defined within the jni directive cannot use classes from the java directive. Hence, it is recommended that classes within the jni directive contain only native method declarations and the code to load native libraries. Appendix C: Hash Table Values Hash table values are exposed in Java via a Value object. Appendices Page 26

30 Creation from a Java Map An object implementing the Java Map interface can be used to define the value of a property. At the time of definition, a copy of the Map is made into a native hash table value contained by a property on the property collection. Native Java data types are reinterpreted into native Pipeline Pilot value types. For example, we can create a HashMap in Java, storing entries using a number of different Java native types. Assigning that Map to a property causes the creation of a HashTableValue with the correct data types: public Component.State onprocess(context context, DataRecord data) Exception { PropertyCollection props = data.getproperties(); HashMap map = new HashMap(); map.put("a", false); map.put("b", 10); map.put("c", 11.11); map.put("d", "DD"); boolean[] e = {false, true}; map.put("e", e); int[] f = {11, 12}; map.put("f", f); double[] g = {11.11, 12.34}; map.put("g", g); String[] i = {"a","b"}; map.put("i", i); props.define("h", map); return Component.State.ReadyForInputData; } Viewing the results in the Data Record Tree Viewer: throws You could now inspect the created HashTableValue downstream to confirm that the item types are indeed as expected from the inputs. (Note that both the simple data types (Boolean, int, double, and String) are supported, as are arrays of those types. To support this flexible use of Object, the Java PropertyCollection "define" method has been extended to accept a generic Object, so you can call "define" with a native Java data type (Boolean, String, String[], Map, etc) typed as an Object, and it will define the appropriate Value type.) Use the HashTableValue "H" as the input object for some of the examples below. Page 27 Pipeline Pilot (Undefined variable: ProductVariables.Product Version) Java Component Development Guide

31 Values as Java Maps A Value created from a property containing a hash table value can be cast to a Java Map, and manipulated with standard Java commands as a native Java object. Note that the Java hash table object is a copy of the HashTableValue you can make changes to it, but it does not change the original Pipeline Pilot object. You will need to use a "define" or "setvalue" call to transfer any of your changes back to Pipeline Pilot. This is analogous to how other Value types are exposed in Java changing them does not change the original value. Since a Value created from a HashTableValue can be cast to the Java Map interface, you can call all the methods of a native Java Map on such a Value. For example, you can call the Map "keyset()" method to iterate over all the keys in the hash table "H" we created in the previous example: public Component.State onprocess(context context, DataRecord data) throws Exception { PropertyCollection props = data.getproperties(); Property prop = props.getbyname("h"); Value hashval = prop.getvalue(); // If the value is a HashTable type, then the return object // from get() can be cast to a Map if (hashval.gettype()!= Value.Type.HashTable) { throw new Exception( Expected a HashTable ); } Map<Object, Object> valmap = (Map<Object, Object>)hashval.get (Value.Type.HashTable); Set keys = valmap.keyset(); Iterator it = keys.iterator(); int count = 1; while (it.hasnext()) { String key = it.next().tostring(); String name = "KEY"; name = name.concat(integer.tostring(count)); props.define(name, key); count += 1; } return Component.State.ReadyForInputData; } The results viewed in the Data Record Tree Viewer looks like: Appendices Page 28

32 Similarly, you could call "entryset()" to iterate over all the entries: public Component.State onprocess(context context, DataRecord data) throws Exception { PropertyCollection props = data.getproperties(); Property prop = props.getbyname("h"); Value hashval = prop.getvalue(); // If the value is a HashTable type, then the return object // from get() can be cast to a Map if (hashval.gettype()!= Value.Type.HashTable) { throw new Exception( Expected a HashTable ); } Map<Object, Object> valmap = (Map<Object, Object>)hashval.get (Value.Type.HashTable); Iterator it = valmap.entryset().iterator(); int count = 0; while (it.hasnext()) { Map.Entry entry = (Map.Entry)it.next(); Object key = entry.getkey(); Object item = entry.getvalue(); } } count += 1; props.define("key" + Integer.toString(count), key); props.define("item" + Integer.toString(count), item); return Component.State.ReadyForInputData; The output looks like: Page 29 Pipeline Pilot (Undefined variable: ProductVariables.Product Version) Java Component Development Guide

33 Both of these examples demonstrate how you can test whether a given value "val" contains a hash table. This is done by testing the return value of gettype(): If (val.gettype() == Value.Type.HashTableValue) { // (perform hash table action on val ) //... } Comment on null values Null values are allowed for either the key or item, but you should be careful in the definition of some of the Map methods, a 'null' return means the entry was not found. If you store nulls in a hash table, you'll have to test for existence of the property using "containskey()" rather than simply testing whether the Value returned by "findkeyitem()" is null. Appendix D: Memory Management By default, Pipeline Pilot manages the memory associated with DataRecords and Nodes in the majority of situations. This includes: Appendices Page 30

34 Existing DataRecords and their Nodes passed in to the onprocess Method New DataRecords passed into the onprocess and when the component has the ReadyForNewData or ReadyForInputThenNewData state You can also create new Nodes or DataRecords within your component by using the instance methods createnode() and createdatarecord() on the Context. You can also clone Nodes using the clone () method on the Node. Note: It is best practice is to relinquish the native memory associated with the returned object as soon as possible by calling the.relinquish() method on the instance. The common places to relinquish memory are: In the oninitialize or onprocess method in which you created the Node or DataRecord if it is only required for the duration of that method. In the onfinalize method once the component has finished its work. Note: The NodeCache class is available if you need to manage a collection of Nodes. There is no need to use a ProtocolShutdownListener registered with the Context to relinquish memory as the framework automatically cleans up memory when the protocol finishes. What happens if I forget to call relinquish? The framework will clean-up at the end of the run. If the protocol is big or memory intensive, this can become a problem, thus it is best practice to use relinquish() within the narrowest scope possible. What happens if I call relinquish on an object I didn't create? The object will continue to exist until the framework releases it. What happens if I cache Nodes? You should not cache nodes yourself. Nodes, Data Records, Property Collections, Properties, and Values are all pointers to native memory owned by the framework. These objects use reference counting and can be freed without your notification unless your code created them. If you need to hold onto Nodes or data for a longer time, either copy it to your memory or use NodeCache to have the framework cache the data. Appendix E: Testing Testing your Java components is best achieved with two complimentary approaches: 1. Test the component using Regressions. 2. Test the logic within your component using JUnit (or Regressions). This approach allows you to take advantage of the testing tools built into Java IDEs while you are developing your logic, but also ensure that your component is going to function correctly in real world protocols across different versions of Pipeline Pilot and Pipeline Pilot. To ease testing, it is recommended that you architect your components to separate the bulk of your logic from the component wrapper needed to interact with Pipeline Pilot. Your classes implementing the logic should know nothing about Pipeline Pilot, but expose an API that can be used by the component wrapper. For example, if your component looks up location details from a zip code, write a class like this: package com.acme.coolstuff; public class Location { public Location(String zipcode) {... Page 31 Pipeline Pilot (Undefined variable: ProductVariables.Product Version) Java Component Development Guide

35 } } public String getcity() {... } public String getstate() {... } This class does not import any com.scitegic.pilot.* classes, which makes it easy to test using standard Java unit testing frameworks such as JUnit. To expose the functionality of the Location class as a component it needs to be wrapped in a class that implements the Component. This is relatively simple with the class extracting the zip code from the DataRecord, creating an instance of the Location class and adding two new properties back onto the DataRecord. To integration test this wrapper class, use a regression (see Component Development Regression Test Guide.) Appendices Page 32

DEVELOPER GUIDE PIPELINE PILOT INTEGRATION COLLECTION 2016

DEVELOPER GUIDE PIPELINE PILOT INTEGRATION COLLECTION 2016 DEVELOPER GUIDE PIPELINE PILOT INTEGRATION COLLECTION 2016 Copyright Notice 2015 Dassault Systèmes. All rights reserved. 3DEXPERIENCE, the Compass icon and the 3DS logo, CATIA, SOLIDWORKS, ENOVIA, DELMIA,

More information

PERL COMPONENT DEVELOPMENT GUIDE PIPELINE PILOT INTEGRATION COLLECTION 2016

PERL COMPONENT DEVELOPMENT GUIDE PIPELINE PILOT INTEGRATION COLLECTION 2016 PERL COMPONENT DEVELOPMENT GUIDE PIPELINE PILOT INTEGRATION COLLECTION 2016 Copyright Notice 2015 Dassault Systèmes. All rights reserved. 3DEXPERIENCE, the Compass icon and the 3DS logo, CATIA, SOLIDWORKS,

More information

INSTALL GUIDE BIOVIA INSIGHT 2.6

INSTALL GUIDE BIOVIA INSIGHT 2.6 INSTALL GUIDE BIOVIA INSIGHT 2.6 Copyright Notice 2015 Dassault Systèmes. All rights reserved. 3DEXPERIENCE, the Compass icon and the 3DS logo, CATIA, SOLIDWORKS, ENOVIA, DELMIA, SIMULIA, GEOVIA, EXALEAD,

More information

QUICK START GUIDE PROTOCOL DEVELOPMENT INTEGRATION COLLECTION 2016

QUICK START GUIDE PROTOCOL DEVELOPMENT INTEGRATION COLLECTION 2016 QUICK START GUIDE PROTOCOL DEVELOPMENT INTEGRATION COLLECTION 2016 Copyright Notice 2015 Dassault Systèmes. All rights reserved. 3DEXPERIENCE, the Compass icon and the 3DS logo, CATIA, SOLIDWORKS, ENOVIA,

More information

INSTALL GUIDE BIOVIA INSIGHT 2016

INSTALL GUIDE BIOVIA INSIGHT 2016 INSTALL GUIDE BIOVIA INSIGHT 2016 Copyright Notice 2015 Dassault Systèmes. All rights reserved. 3DEXPERIENCE, the Compass icon and the 3DS logo, CATIA, SOLIDWORKS, ENOVIA, DELMIA, SIMULIA, GEOVIA, EXALEAD,

More information

GETTING STARTED WITH INSIGHT PLUGINS GUIDE BIOVIA INSIGHT 2018

GETTING STARTED WITH INSIGHT PLUGINS GUIDE BIOVIA INSIGHT 2018 GETTING STARTED WITH INSIGHT PLUGINS GUIDE BIOVIA INSIGHT 2018 Copyright Notice 2017 Dassault Systèmes. All rights reserved. 3DEXPERIENCE, the Compass icon and the 3DS logo, CATIA, SOLIDWORKS, ENOVIA,

More information

CLIENT SYSTEM REQUIREMENTS NOTEBOOK 2018

CLIENT SYSTEM REQUIREMENTS NOTEBOOK 2018 CLIENT SYSTEM REQUIREMENTS NOTEBOOK 2018 Copyright Notice 2017 Dassault Systèmes. All rights reserved. 3DEXPERIENCE, the Compass icon and the 3DS logo, CATIA, SOLIDWORKS, ENOVIA, DELMIA, SIMULIA, GEOVIA,

More information

DATABASE INTEGRATION GUIDE PIPELINE PILOT INTEGRATION COLLECTION 2016

DATABASE INTEGRATION GUIDE PIPELINE PILOT INTEGRATION COLLECTION 2016 DATABASE INTEGRATION GUIDE PIPELINE PILOT INTEGRATION COLLECTION 2016 Copyright Notice 2015 Dassault Systèmes. All rights reserved. 3DEXPERIENCE, the Compass icon and the 3DS logo, CATIA, SOLIDWORKS, ENOVIA,

More information

Sequence Provider DELMIA Apriso 2018 Implementation Guide

Sequence Provider DELMIA Apriso 2018 Implementation Guide Sequence Provider DELMIA Apriso 2018 Implementation Guide 2017 Dassault Systèmes. Apriso, 3DEXPERIENCE, the Compass logo and the 3DS logo, CATIA, SOLIDWORKS, ENOVIA, DELMIA, SIMULIA, GEOVIA, EXALEAD, 3D

More information

Isight Component Development 5.9

Isight Component Development 5.9 Isight Component Development 5.9 About this Course Course objectives Upon completion of this course you will be able to: Understand component requirements Develop component packages for Isight Targeted

More information

PROTOCOL DEVELOPMENT Quick Start Guide

PROTOCOL DEVELOPMENT Quick Start Guide PROTOCOL DEVELOPMENT Quick Start Guide Copyright Notice Copyright 2011 Accelrys Software Inc. All rights reserved. This product (software and/or documentation) is furnished under a License Agreement and

More information

Manufacturing Process Intelligence DELMIA Apriso 2017 Installation Guide

Manufacturing Process Intelligence DELMIA Apriso 2017 Installation Guide Manufacturing Process Intelligence DELMIA Apriso 2017 Installation Guide 2016 Dassault Systèmes. Apriso, 3DEXPERIENCE, the Compass logo and the 3DS logo, CATIA, SOLIDWORKS, ENOVIA, DELMIA, SIMULIA, GEOVIA,

More information

Flat File Decoding DELMIA Apriso 2017 Technical Guide

Flat File Decoding DELMIA Apriso 2017 Technical Guide Flat File Decoding DELMIA Apriso 2017 Technical Guide 2016 Dassault Systèmes. Apriso, 3DEXPERIENCE, the Compass logo and the 3DS logo, CATIA, SOLIDWORKS, ENOVIA, DELMIA, SIMULIA, GEOVIA, EXALEAD, 3D VIA,

More information

DEVELOPER GUIDE PIPELINE PILOT INTEGRATION COLLECTION 2016

DEVELOPER GUIDE PIPELINE PILOT INTEGRATION COLLECTION 2016 DEVELOPER GUIDE PIPELINE PILOT INTEGRATION COLLECTION 2016 Copyright Notice 2015 Dassault Systèmes. All rights reserved. 3DEXPERIENCE, the Compass icon and the 3DS logo, CATIA, SOLIDWORKS, ENOVIA, DELMIA,

More information

CHAPTER 6. Java Project Configuration

CHAPTER 6. Java Project Configuration CHAPTER 6 Java Project Configuration Eclipse includes features such as Content Assist and code templates that enhance rapid development and others that accelerate your navigation and learning of unfamiliar

More information

ADMINISTRATION GUIDE BIOVIA QUERY SERVICE 2018

ADMINISTRATION GUIDE BIOVIA QUERY SERVICE 2018 ADMINISTRATION GUIDE BIOVIA QUERY SERVICE 2018 Copyright Notice 2017 Dassault Systèmes. All rights reserved. 3DEXPERIENCE, the Compass icon and the 3DS logo, CATIA, SOLIDWORKS, ENOVIA, DELMIA, SIMULIA,

More information

At the shell prompt, enter idlde

At the shell prompt, enter idlde IDL Workbench Quick Reference The IDL Workbench is IDL s graphical user interface and integrated development environment. The IDL Workbench is based on the Eclipse framework; if you are already familiar

More information

FlexParts DELMIA Apriso 2018 Implementation Guide

FlexParts DELMIA Apriso 2018 Implementation Guide FlexParts DELMIA Apriso 2018 Implementation Guide 2017 Dassault Systèmes. Apriso, 3DEXPERIENCE, the Compass logo and the 3DS logo, CATIA, SOLIDWORKS, ENOVIA, DELMIA, SIMULIA, GEOVIA, EXALEAD, 3D VIA, BIOVIA,

More information

MEDIA COMPUTATION DRJAVA. Lecture 11.3 November 7, 2008

MEDIA COMPUTATION DRJAVA. Lecture 11.3 November 7, 2008 MEDIA COMPUTATION DRJAVA Lecture 11.3 November 7, 2008 LEARNING GOALS Understand at practical level Where to get DrJava How to start DrJava Dr Java features How to add items to the classpath for DrJava

More information

Infor LN Studio Application Development Guide

Infor LN Studio Application Development Guide Infor LN Studio Application Development Guide Copyright 2016 Infor Important Notices The material contained in this publication (including any supplementary information) constitutes and contains confidential

More information

Just Enough Eclipse What is Eclipse(TM)? Why is it important? What is this tutorial about?

Just Enough Eclipse What is Eclipse(TM)? Why is it important? What is this tutorial about? Just Enough Eclipse What is Eclipse(TM)? Eclipse is a kind of universal tool platform that provides a feature-rich development environment. It is particularly useful for providing the developer with an

More information

Enterprise Architect. User Guide Series. Profiling. Author: Sparx Systems. Date: 10/05/2018. Version: 1.0 CREATED WITH

Enterprise Architect. User Guide Series. Profiling. Author: Sparx Systems. Date: 10/05/2018. Version: 1.0 CREATED WITH Enterprise Architect User Guide Series Profiling Author: Sparx Systems Date: 10/05/2018 Version: 1.0 CREATED WITH Table of Contents Profiling 3 System Requirements 8 Getting Started 9 Call Graph 11 Stack

More information

Enterprise Architect. User Guide Series. Profiling

Enterprise Architect. User Guide Series. Profiling Enterprise Architect User Guide Series Profiling Investigating application performance? The Sparx Systems Enterprise Architect Profiler finds the actions and their functions that are consuming the application,

More information

ActiveSpaces Transactions. Quick Start Guide. Software Release Published May 25, 2015

ActiveSpaces Transactions. Quick Start Guide. Software Release Published May 25, 2015 ActiveSpaces Transactions Quick Start Guide Software Release 2.5.0 Published May 25, 2015 Important Information SOME TIBCO SOFTWARE EMBEDS OR BUNDLES OTHER TIBCO SOFTWARE. USE OF SUCH EMBEDDED OR BUNDLED

More information

Isight Component Development

Isight Component Development Lecture 1 Introduction Workshop 0 Workshop Preliminaries Lecture 2 Basic Component Anatomy Workshop 1 Building a GUI Workshop 2 Executing External Source Code Lecture 3 Building and Testing Components

More information

Database Management (Functional) DELMIA Apriso 2018 Implementation Guide

Database Management (Functional) DELMIA Apriso 2018 Implementation Guide Database Management (Functional) DELMIA Apriso 2018 Implementation Guide 2017 Dassault Systèmes. Apriso, 3DEXPERIENCE, the Compass logo and the 3DS logo, CATIA, SOLIDWORKS, ENOVIA, DELMIA, SIMULIA, GEOVIA,

More information

Orgnazition of This Part

Orgnazition of This Part Orgnazition of This Part Table of Contents Tutorial: Organization of This Part...1 Lesson 1: Starting JReport Enterprise Server and Viewing Reports...3 Introduction...3 Installing JReport Enterprise Server...3

More information

EMC Documentum Composer

EMC Documentum Composer EMC Documentum Composer Version 6.5 SP2 User Guide P/N 300-009-462 A01 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748-9103 1-508-435-1000 www.emc.com Copyright 2008 2009 EMC Corporation. All

More information

Introduction to Computation and Problem Solving

Introduction to Computation and Problem Solving Class 3: The Eclipse IDE Introduction to Computation and Problem Solving Prof. Steven R. Lerman and Dr. V. Judson Harward What is an IDE? An integrated development environment (IDE) is an environment in

More information

1.00 Lecture 2. What s an IDE?

1.00 Lecture 2. What s an IDE? 1.00 Lecture 2 Interactive Development Environment: Eclipse Reading for next time: Big Java: sections 3.1-3.9 (Pretend the method is main() in each example) What s an IDE? An integrated development environment

More information

21 CFR Part 11 Compliance DELMIA Apriso 2018 Implementation Guide

21 CFR Part 11 Compliance DELMIA Apriso 2018 Implementation Guide 21 CFR Part 11 Compliance DELMIA Apriso 2018 Implementation Guide 2017 Dassault Systèmes. Apriso, 3DEXPERIENCE, the Compass logo and the 3DS logo, CATIA, SOLIDWORKS, ENOVIA, DELMIA, SIMULIA, GEOVIA, EXALEAD,

More information

NSIGHT ECLIPSE EDITION

NSIGHT ECLIPSE EDITION NSIGHT ECLIPSE EDITION DG-06450-001 _v7.0 March 2015 Getting Started Guide TABLE OF CONTENTS Chapter 1. Introduction...1 1.1. About...1 Chapter 2. New and Noteworthy... 2 2.1. New in 7.0... 2 2.2. New

More information

Java Programming with Eclipse

Java Programming with Eclipse One Introduction to Java 2 Usage of Java 3 Structure of Java 4 Flexibility of Java Programming 5 Using the Eclipse Software 6 Two Running Java in Eclipse 7 Introduction 8 Using Eclipse 9 Workspace Launcher

More information

SYMYX NOTEBOOK BY ACCELRYS 6.7. Deployment of Update 2

SYMYX NOTEBOOK BY ACCELRYS 6.7. Deployment of Update 2 SYMYX NOTEBOOK BY ACCELRYS 6.7 Deployment of Update 2 LAST UPDATED: JAN. 4, 2013 Copyright Notice Copyright 2013 Accelrys Software Inc. All rights reserved. This product (software and/or documentation)

More information

Java Program Structure and Eclipse. Overview. Eclipse Projects and Project Structure. COMP 210: Object-Oriented Programming Lecture Notes 1

Java Program Structure and Eclipse. Overview. Eclipse Projects and Project Structure. COMP 210: Object-Oriented Programming Lecture Notes 1 COMP 210: Object-Oriented Programming Lecture Notes 1 Java Program Structure and Eclipse Robert Utterback In these notes we talk about the basic structure of Java-based OOP programs and how to setup and

More information

Teiid Designer User Guide 7.5.0

Teiid Designer User Guide 7.5.0 Teiid Designer User Guide 1 7.5.0 1. Introduction... 1 1.1. What is Teiid Designer?... 1 1.2. Why Use Teiid Designer?... 2 1.3. Metadata Overview... 2 1.3.1. What is Metadata... 2 1.3.2. Editing Metadata

More information

Electrical System Functional Definition

Electrical System Functional Definition Electrical System Functional Definition Preface What's New? Getting Started Basic Tasks Advanced Tasks Workbench Description Customizing Glossary Index Dassault Systèmes 1994-2000. All rights reserved.

More information

Drools Tools Reference Guide. Version: CR1

Drools Tools Reference Guide. Version: CR1 Drools Tools Reference Guide Version: 5.0.0.CR1 1. Introduction... 1 1.1. What is Drools?... 1 1.2. Drools Tools Key Features... 1 1.3. Other relevant resources on the topic... 2 2. Creating a New Drools

More information

EMC Documentum Composer

EMC Documentum Composer EMC Documentum Composer Version 6.0 SP1.5 User Guide P/N 300 005 253 A02 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright 2008 EMC Corporation. All

More information

Introduction to Eclipse

Introduction to Eclipse Introduction to Eclipse Ed Gehringer Using (with permission) slides developed by Dwight Deugo (dwight@espirity.com) Nesa Matic (nesa@espirity.com( nesa@espirity.com) Sreekanth Konireddygari (IBM Corp.)

More information

3 Getting Started with Objects

3 Getting Started with Objects 3 Getting Started with Objects If you are an experienced IDE user, you may be able to do this tutorial without having done the previous tutorial, Getting Started. However, at some point you should read

More information

ENOVIA Studio Developer Edition

ENOVIA Studio Developer Edition ENOVIA Studio Developer Edition Product overview ENOVIA Studio Developer Edition provides software code implementation and quality engineering capabilities to more rapidly develop custom applications for

More information

Getting Started with Web Services

Getting Started with Web Services Getting Started with Web Services Getting Started with Web Services A web service is a set of functions packaged into a single entity that is available to other systems on a network. The network can be

More information

Wowza IDE 2. User's Guide

Wowza IDE 2. User's Guide Wowza IDE 2 User's Guide Wowza IDE 2: User's Guide Copyright 2006 2013 Wowza Media Systems, LLC. http://www.wowza.com/ Third-Party Information This document contains links to third-party websites that

More information

Index. Symbols. /**, symbol, 73 >> symbol, 21

Index. Symbols. /**, symbol, 73 >> symbol, 21 17_Carlson_Index_Ads.qxd 1/12/05 1:14 PM Page 281 Index Symbols /**, 73 @ symbol, 73 >> symbol, 21 A Add JARs option, 89 additem() method, 65 agile development, 14 team ownership, 225-226 Agile Manifesto,

More information

Creating a new CDC policy using the Database Administration Console

Creating a new CDC policy using the Database Administration Console Creating a new CDC policy using the Database Administration Console When you start Progress Developer Studio for OpenEdge for the first time, you need to specify a workspace location. A workspace is a

More information

Module 4: Working with MPI

Module 4: Working with MPI Module 4: Working with MPI Objective Learn how to develop, build and launch a parallel (MPI) program on a remote parallel machine Contents Remote project setup Building with Makefiles MPI assistance features

More information

IBM Rational Rhapsody Gateway Add On. User Guide

IBM Rational Rhapsody Gateway Add On. User Guide User Guide Rhapsody IBM Rational Rhapsody Gateway Add On User Guide License Agreement No part of this publication may be reproduced, transmitted, stored in a retrieval system, nor translated into any

More information

Form into function. Getting prepared. Tutorial. Paul Jasper

Form into function. Getting prepared. Tutorial. Paul Jasper Tutorial Paul Jasper TABLE OF CONTENTS 1 Getting prepared 2 Adding a button to the form design 2 Making the button add tasks 3 Sending the XML data 4 Tidying up 5 Next time In the first episode, I showed

More information

Using Command Modeler

Using Command Modeler CHAPTER 5 Command Modeler provides an infrastructure for generating and validating device-independent CLI models. Developers can use the generated device independent CLI models to generate device-specific

More information

NSIGHT ECLIPSE EDITION

NSIGHT ECLIPSE EDITION NSIGHT ECLIPSE EDITION DG-06450-001 _v8.0 September 2016 Getting Started Guide TABLE OF CONTENTS Chapter 1. Introduction...1 1.1. About...1 Chapter 2. New and Noteworthy... 2 2.1. New in 7.5... 2 2.2.

More information

Manage and Generate Reports

Manage and Generate Reports Report Manager, page 1 Generate Reports, page 3 Trust Self-Signed Certificate for Live Data Reports, page 4 Report Viewer, page 4 Save an Existing Stock Report, page 7 Import Reports, page 7 Export Reports,

More information

Teamcenter 11.1 Systems Engineering and Requirements Management

Teamcenter 11.1 Systems Engineering and Requirements Management SIEMENS Teamcenter 11.1 Systems Engineering and Requirements Management Systems Architect/ Requirements Management Project Administrator's Manual REQ00002 U REQ00002 U Project Administrator's Manual 3

More information

WFCE - Build and deployment. WFCE - Deployment to Installed Polarion. WFCE - Execution from Workspace. WFCE - Configuration.

WFCE - Build and deployment. WFCE - Deployment to Installed Polarion. WFCE - Execution from Workspace. WFCE - Configuration. Workflow function and condition Example WFCE - Introduction 1 WFCE - Java API Workspace preparation 1 WFCE - Creating project plugin 1 WFCE - Build and deployment 2 WFCE - Deployment to Installed Polarion

More information

Using Eclipse for Java. Using Eclipse for Java 1 / 1

Using Eclipse for Java. Using Eclipse for Java 1 / 1 Using Eclipse for Java Using Eclipse for Java 1 / 1 Using Eclipse IDE for Java Development Download the latest version of Eclipse (Eclipse for Java Developers or the Standard version) from the website:

More information

Perceptive Connect Runtime

Perceptive Connect Runtime Perceptive Connect Runtime Installation and Setup Guide Version: 1.0.x Compatible with ImageNow: Version 6.7.x or higher Written by: Product Knowledge, R&D Date: August 2016 2015 Perceptive Software. All

More information

FX SERIES. Programmer s Guide. Embedded SDK. MN000540A01 Rev. A

FX SERIES. Programmer s Guide. Embedded SDK. MN000540A01 Rev. A FX SERIES Embedded SDK Programmer s Guide MN000540A01 Rev. A Table of Contents About This Guide Introduction...4 Chapter Descriptions... 4 Notational Conventions...5 Related Documents and Software...5

More information

Mobile Application Workbench. SAP Mobile Platform 3.0 SP02

Mobile Application Workbench. SAP Mobile Platform 3.0 SP02 SAP Mobile Platform 3.0 SP02 DOCUMENT ID: DC-01-0302-01 LAST REVISED: January 2014 Copyright 2014 by SAP AG or an SAP affiliate company. All rights reserved. No part of this publication may be reproduced

More information

CS 315 Software Design Homework 3 Preconditions, Postconditions, Invariants Due: Sept. 29, 11:30 PM

CS 315 Software Design Homework 3 Preconditions, Postconditions, Invariants Due: Sept. 29, 11:30 PM CS 315 Software Design Homework 3 Preconditions, Postconditions, Invariants Due: Sept. 29, 11:30 PM Objectives Defining a wellformed method to check class invariants Using assert statements to check preconditions,

More information

Getting Started with Eclipse/Java

Getting Started with Eclipse/Java Getting Started with Eclipse/Java Overview The Java programming language is based on the Java Virtual Machine. This is a piece of software that Java source code is run through to produce executables. The

More information

Electrical System Functional Definition

Electrical System Functional Definition Electrical System Functional Definition Overview Conventions What's New? Getting Started Creating a New System Creating Equipment Creating Connectors Creating a Signal Connecting Saving Your System User

More information

Audit Trail DELMIA Apriso 2018 Technical Guide

Audit Trail DELMIA Apriso 2018 Technical Guide Audit Trail DELMIA Apriso 2018 Technical Guide 2017 Dassault Systèmes. Apriso, 3DEXPERIENCE, the Compass logo and the 3DS logo, CATIA, SOLIDWORKS, ENOVIA, DELMIA, SIMULIA, GEOVIA, EXALEAD, 3D VIA, BIOVIA,

More information

Eclipse Tutorial. For Introduction to Java Programming By Y. Daniel Liang

Eclipse Tutorial. For Introduction to Java Programming By Y. Daniel Liang Eclipse Tutorial For Introduction to Java Programming By Y. Daniel Liang This supplement covers the following topics: Getting Started with Eclipse Choosing a Perspective Creating a Project Creating a Java

More information

WPS Workbench. user guide. "To help guide you through using the WPS user interface (Workbench) to create, edit and run programs"

WPS Workbench. user guide. To help guide you through using the WPS user interface (Workbench) to create, edit and run programs WPS Workbench user guide "To help guide you through using the WPS user interface (Workbench) to create, edit and run programs" Version: 3.1.7 Copyright 2002-2018 World Programming Limited www.worldprogramming.com

More information

COMP 110/401 APPENDIX: INSTALLING AND USING ECLIPSE. Instructor: Prasun Dewan (FB 150,

COMP 110/401 APPENDIX: INSTALLING AND USING ECLIPSE. Instructor: Prasun Dewan (FB 150, COMP 110/401 APPENDIX: INSTALLING AND USING ECLIPSE Instructor: Prasun Dewan (FB 150, dewan@unc.edu) SCOPE: BASICS AND BEYOND Basic use: CS 1 Beyond basic use: CS2 2 DOWNLOAD FROM WWW.ECLIPSE.ORG Get the

More information

Lab Android Development Environment

Lab Android Development Environment Lab Android Development Environment Setting up the ADT, Creating, Running and Debugging Your First Application Objectives: Familiarize yourself with the Android Development Environment Important Note:

More information

Setting Up Resources in VMware Identity Manager (SaaS) Modified 15 SEP 2017 VMware Identity Manager

Setting Up Resources in VMware Identity Manager (SaaS) Modified 15 SEP 2017 VMware Identity Manager Setting Up Resources in VMware Identity Manager (SaaS) Modified 15 SEP 2017 VMware Identity Manager Setting Up Resources in VMware Identity Manager (SaaS) You can find the most up-to-date technical documentation

More information

A Tutorial on using Code::Blocks with Catalina 3.0.3

A Tutorial on using Code::Blocks with Catalina 3.0.3 A Tutorial on using Code::Blocks with Catalina 3.0.3 BASIC CONCEPTS...2 PREREQUISITES...2 INSTALLING AND CONFIGURING CODE::BLOCKS...3 STEP 1 EXTRACT THE COMPONENTS...3 STEP 2 INSTALL CODE::BLOCKS...3 Windows

More information

CONFIGURED IP MANAGEMENT OBJECTIVE

CONFIGURED IP MANAGEMENT OBJECTIVE CONFIGURED IP MANAGEMENT OBJECTIVE Configured IP Management provides engineers with full control and thorough traceability of modifications made with 3DEXPERIENCE applications for designing and simulating

More information

NSIGHT ECLIPSE EDITION

NSIGHT ECLIPSE EDITION NSIGHT ECLIPSE EDITION DG-06450-001 _v5.0 October 2012 Getting Started Guide TABLE OF CONTENTS Chapter 1. Introduction...1 1.1 About...1 Chapter 2. Using... 2 2.1 Installing... 2 2.1.1 Installing CUDA

More information

SAP Edge Services, cloud edition Edge Services Predictive Analytics Service Guide Version 1803

SAP Edge Services, cloud edition Edge Services Predictive Analytics Service Guide Version 1803 SAP Edge Services, cloud edition Edge Services Predictive Analytics Service Guide Version 1803 Table of Contents MACHINE LEARNING AND PREDICTIVE ANALYTICS... 3 Model Trained with R and Exported as PMML...

More information

Getting Started with Web Services

Getting Started with Web Services Getting Started with Web Services Getting Started with Web Services A web service is a set of functions packaged into a single entity that is available to other systems on a network. The network can be

More information

Zend Studio 3.0. Quick Start Guide

Zend Studio 3.0. Quick Start Guide Zend Studio 3.0 This walks you through the Zend Studio 3.0 major features, helping you to get a general knowledge on the most important capabilities of the application. A more complete Information Center

More information

INSTALLATION AND CONFIGURATION GUIDE R SOFTWARE for PIPELINE PILOT 2016

INSTALLATION AND CONFIGURATION GUIDE R SOFTWARE for PIPELINE PILOT 2016 INSTALLATION AND CONFIGURATION GUIDE R SOFTWARE for PIPELINE PILOT 2016 R Software: Installation and Configuration Guide Page 1 Copyright Notice 2015 Dassault Systèmes. All rights reserved. 3DEXPERIENCE,

More information

AppDev StudioTM 3.2 SAS. Migration Guide

AppDev StudioTM 3.2 SAS. Migration Guide SAS Migration Guide AppDev StudioTM 3.2 The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2006. SAS AppDev TM Studio 3.2: Migration Guide. Cary, NC: SAS Institute Inc.

More information

[ Getting Started with Analyzer, Interactive Reports, and Dashboards ] ]

[ Getting Started with Analyzer, Interactive Reports, and Dashboards ] ] Version 5.3 [ Getting Started with Analyzer, Interactive Reports, and Dashboards ] ] https://help.pentaho.com/draft_content/version_5.3 1/30 Copyright Page This document supports Pentaho Business Analytics

More information

SE - Deployment to Installed Polarion. SE - Execution from Workspace. SE - Configuration.

SE - Deployment to Installed Polarion. SE - Execution from Workspace. SE - Configuration. Servlet Example SE - Introduction 1 SE - Java API Workspace preparation 1 SE - Import of the example 1 SE - Hints to develop your own plug-in 1 SE - Deployment to Installed Polarion 4 SE - Execution from

More information

Document Management System GUI. v6.0 User Guide

Document Management System GUI. v6.0 User Guide Document Management System GUI v6.0 User Guide Copyright Copyright HelpSystems, LLC. All rights reserved. www.helpsystems.com US: +1 952-933-0609 Outside the U.S.: +44 (0) 870 120 3148 IBM, AS/400, OS/400,

More information

SAS Model Manager 2.3

SAS Model Manager 2.3 SAS Model Manager 2.3 Administrator's Guide SAS Documentation The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2010. SAS Model Manager 2.3: Administrator's Guide. Cary,

More information

Marthon User Guide. Page 1 Copyright The Marathon developers. All rights reserved.

Marthon User Guide. Page 1 Copyright The Marathon developers. All rights reserved. 1. Overview Marathon is a general purpose tool for both running and authoring acceptance tests geared at the applications developed using Java and Swing. Included with marathon is a rich suite of components

More information

Getting Started with Cisco UCS Director Open Automation

Getting Started with Cisco UCS Director Open Automation Getting Started with Cisco UCS Director Open Automation Cisco UCS Director Open Automation, page 1 Upgrading Your Connector to the Current Release, page 5 Modules, page 5 Cisco UCS Director Open Automation

More information

CSCI 201 Lab 1 Environment Setup

CSCI 201 Lab 1 Environment Setup CSCI 201 Lab 1 Environment Setup "The journey of a thousand miles begins with one step." - Lao Tzu Introduction This lab document will go over the steps to install and set up Eclipse, which is a Java integrated

More information

Content Module. ActiveModeler Avantage. Managing Enterprise Documentation. Version 1.2, 6 May KAISHA-Tec What does the Content Module do?

Content Module. ActiveModeler Avantage. Managing Enterprise Documentation. Version 1.2, 6 May KAISHA-Tec What does the Content Module do? ActiveModeler Avantage Managing Enterprise Documentation Content Module User Guide Version 1.2, 6 May 2009 ActiveModeler, ActiveFlow and ActiveModeler Avantage are registered trademarks of KAISHA-Tec Co.

More information

IBM EXAM QUESTIONS & ANSWERS

IBM EXAM QUESTIONS & ANSWERS IBM 000-842 EXAM QUESTIONS & ANSWERS Number: 000-842 Passing Score: 800 Time Limit: 120 min File Version: 55.5 http://www.gratisexam.com/ IBM 000-842 EXAM QUESTIONS & ANSWERS Exam Name: Rational Functional

More information

IBM Rational Rhapsody Gateway Add On. User Manual

IBM Rational Rhapsody Gateway Add On. User Manual User Manual Rhapsody IBM Rational Rhapsody Gateway Add On User Manual License Agreement No part of this publication may be reproduced, transmitted, stored in a retrieval system, nor translated into any

More information

Author : Gayle Clark, Business Solutions Analyst, Spescom Software Ltd. Approved by : Ewen Roberts, Software Developer Spescom Software Inc.

Author : Gayle Clark, Business Solutions Analyst, Spescom Software Ltd. Approved by : Ewen Roberts, Software Developer Spescom Software Inc. SPESCOM SOFTWARE User Guide eb Layout Editor User Guide Document Number : SAN03810 Rev 0.2 Release Date : 15 December 2006 Document Status : Not Approved Author : Gayle Clark, Business Solutions Analyst,

More information

i2b2 Workbench Developer s Guide: Eclipse Neon & i2b2 Source Code

i2b2 Workbench Developer s Guide: Eclipse Neon & i2b2 Source Code i2b2 Workbench Developer s Guide: Eclipse Neon & i2b2 Source Code About this guide Informatics for Integrating Biology and the Bedside (i2b2) began as one of the sponsored initiatives of the NIH Roadmap

More information

with TestComplete 12 Desktop, Web, and Mobile Testing Tutorials

with TestComplete 12 Desktop, Web, and Mobile Testing Tutorials with TestComplete 12 Desktop, Web, and Mobile Testing Tutorials 2 About the Tutorial With TestComplete, you can test applications of three major types: desktop, web and mobile: Desktop applications - these

More information

Lab 0 Introduction to the MSP430F5529 Launchpad-based Lab Board and Code Composer Studio

Lab 0 Introduction to the MSP430F5529 Launchpad-based Lab Board and Code Composer Studio ECE2049 Embedded Computing in Engineering Design Lab 0 Introduction to the MSP430F5529 Launchpad-based Lab Board and Code Composer Studio In this lab, you will be introduced to the Code Composer Studio

More information

Version: Copyright World Programming Limited

Version: Copyright World Programming Limited Version: 3.0.7.0.650 Copyright 2002-2017 World Programming Limited www.teamwpc.co.uk Contents Introduction... 5 About This Guide... 5 About WPS...5 Users of SAS Software...6 Getting Started... 8 Workbench

More information

Setting Up the Development Environment

Setting Up the Development Environment CHAPTER 5 Setting Up the Development Environment This chapter tells you how to prepare your development environment for building a ZK Ajax web application. You should follow these steps to set up an environment

More information

SQL Server. Management Studio. Chapter 3. In This Chapter. Management Studio. c Introduction to SQL Server

SQL Server. Management Studio. Chapter 3. In This Chapter. Management Studio. c Introduction to SQL Server Chapter 3 SQL Server Management Studio In This Chapter c Introduction to SQL Server Management Studio c Using SQL Server Management Studio with the Database Engine c Authoring Activities Using SQL Server

More information

The Intel VTune Performance Analyzer: Insights into Converting a GUI from Windows* to Eclipse*

The Intel VTune Performance Analyzer: Insights into Converting a GUI from Windows* to Eclipse* The Intel VTune Performance Analyzer: Insights into Converting a GUI from Windows* to Eclipse* Aaron Levinson Intel Corporation Copyright 2004, Intel Corporation. All rights reserved. Intel, VTune and

More information

User Scripting April 14, 2018

User Scripting April 14, 2018 April 14, 2018 Copyright 2013, 2018, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and

More information

Using Eclipse Europa - A Tutorial

Using Eclipse Europa - A Tutorial Abstract Lars Vogel Version 0.7 Copyright 2007 Lars Vogel 26.10.2007 Eclipse is a powerful, extensible IDE for building general purpose applications. One of the main applications

More information

TECHILA DISTRIBUTED COMPUTING ENGINE BUNDLE GUIDE

TECHILA DISTRIBUTED COMPUTING ENGINE BUNDLE GUIDE ENGINE BUNDLE GUIDE 28 NOVEMBER 2016 2/82 28 NOVEMBER 2016 Disclaimer Techila Technologies Ltd. disclaims any and all warranties, express, implied or statutory regarding this document or the use of thereof

More information

Business Insight Authoring

Business Insight Authoring Business Insight Authoring Getting Started Guide ImageNow Version: 6.7.x Written by: Product Documentation, R&D Date: August 2016 2014 Perceptive Software. All rights reserved CaptureNow, ImageNow, Interact,

More information

CS520 Setting Up the Programming Environment for Windows Suresh Kalathur. For Windows users, download the Java8 SDK as shown below.

CS520 Setting Up the Programming Environment for Windows Suresh Kalathur. For Windows users, download the Java8 SDK as shown below. CS520 Setting Up the Programming Environment for Windows Suresh Kalathur 1. Java8 SDK Java8 SDK (Windows Users) For Windows users, download the Java8 SDK as shown below. The Java Development Kit (JDK)

More information

EMC Documentum Composer

EMC Documentum Composer EMC Documentum Composer Version 6 SP1 User Guide P/N 300 005 253 A01 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright 2008 EMC Corporation. All rights

More information

HPE Security Fortify Plugins for Eclipse

HPE Security Fortify Plugins for Eclipse HPE Security Fortify Plugins for Eclipse Software Version: 17.20 Installation and Usage Guide Document Release Date: November 2017 Software Release Date: November 2017 Legal Notices Warranty The only warranties

More information