Categories
Eclipse oXygen

Build the Docs

  1. Open the *.ditamap file. You must have this file open so that the oXygen XML Editor tools icons appear in the toolbar.
  2. Click Apply Transformation Scenarios icon in the tool bar.

Note: You can freeze your build configuration settings into an Ant script (e.g., build.xml).

Categories
Eclipse oXygen

How to Turn a Dreamweaver Web Page into DITA-based Web Help

The documentation for the 3rdParty SDK was all in one long web page, and it had reached the point where had become unwieldy; the content wasn’t easy to discover. I needed to break it up into several topics, and arrange them in a logical hierarchy. I was currently working in Dreamweaver, and was considering creating a new document based on a template with a TOC on the left. I remembered that I once created a prototype web site that was like that, and I hunted through my hard drive, looking for it, with the intention of copying the look and feel. I ended up stumbling on another doc set that fit the bill, that I created using oXygen XML Editor. I had forgotten about using oXygenXML Editor, and it hadn’t occurred to me that this would actually be a really good approach to use for the 3rdParty SDK docs.

Here what I did to transform the content into a DITA project.

The first thing to remember is you’re actually authoring this content in 3rdParty repo (android_mobile_verification). You’re authoring it in the doc repo. And this (content authoring) will be unusual for that repo.

I think you’ll have to experiment, because this is getting too complicated to be able to predict what you need to do.

Note: Open the oXygen XML perspective to ensure that you get all of the available DITA Map Transforms. Otherwise you won’t see all of the tools, windows, transforms, that come with the oXygen XML Editor Eclipse plugin.

Create a ditamap

  1. In the MobileVerification project (the android_mobile_verification repo, feature/api_doc), add a new folder called “docs”.

  2. With the project folder selected, click File > New, and select oXygen XML Editor > New from Templates. Click Next.

  3. Select Framework templates > DITA Map > map > Map. Click Next.

  4. Set a value for the parent folder: MobileVerification/docs

    1. File: 3rdPartySDK.ditamap
    2. Check Open file for editing when done.
  5. Click Finish.

Add a Topic

I think your doc set falls into the software documentation domain. See: 3.2 Technical Content Elements (http://docs.oasis-open.org/dita/v1.2/os/spec/langRef-technicalContent.html).

  1. With the project folder selected, click File > New, and select oXygen XML Editor > New from Templates. Click Next.

  2. Select Framework templates > DITA > topic > Concept. Click Next.

  3. Set a value for the parent folder: MobileVerification/docs

    1. File: theAutoAuthSDK.dita
    2. Check Open file for editing when done.
  4. Click Finish.

Add content to the topic

Add the TeleSign Logo to the Title Area

For more information on this procedure, see: http://www.oxygenxml.com/doc/ug-editorEclipse/#topics/webhelp-customization-add-image-to-title.html

Copy the file:

C:\Users\Chris\src\python_rest_api\doc\user\v1\source_statictelesign-logo.png

to

C:\opt\eclipse\plugins\com.oxygenxml.editor_16.1.0.\v2014102117\frameworks\dita\DITA-OT\plugins\com.oxygenxml.webhelp\oxygen-webhelp\resourcesimg
Categories
oXygen

Understanding the Build Chain

When you click the Build button, oXygen (or more precisely, the the oXygen plugin for Eclipse) launches the Java runtime environment (java.exe), and passes it a ton of arguments (these can also be passed manually from the command line).

Build Log

When you build the docs, you’ll see a verbose version of the build log displayed in the Text window. Copy it (Ctrl+a, Ctrl+c) to the clipboard, and then paste it into your text editor (EditPad Pro). Save this as a text file, and view it as a “Python Script” (because the color coding makes it easier to discern its parts).

This file contains two functional parts:

Build Command

The first part (labelled “Executing:”) is the Build Command, and oXygen executes it to launch the build process (I think you could run a new build just by pasting this into a command prompt & pressing Enter).

With all of its flags, arguments, and properties (about a paragraph’s worth), this command is huge! Since it appears on one line, you can only see about 2% of it. To see it in its entirely, turn on “Word Wrap.”

The Build Command is easier to study if you copy it into a new file in your text editor. I found it helpful to turn on Auto Indent, and then break the command line up (by introducing paragraph breaks) so that similar parts lined up. I found it helpful to enter a quotation mark into the search field because EditPad Pro highlights all of the quotes, so all you can easily match them up, and then break the line after each end quote.

Building Stage Log

Besides setting Xerces as the XML parser, and passing it a configuration file, launches Ant and passes it the Ant build file (build.xml) to processes; which takes the ditamap as its prime argument.

To generate a particular “flavor” of the docs (e.g., webhelp, pdf, etc.), Ant processes a sequence of targets that are specific to that flavor. Since every doc type is a specialized form of a more rudimentary doc type, execution sequences always start with targets for general tasks, and they always end with the most specialized target for that doc type.

Case in point, the DITA Map XHTML docs are further processed to produce the Webhelp docs.

oXygen uses Ant to guide the build process, and Ant applies particular XSL transformations inside Targets.

Categories
oXygen

oXygen Cookbook

Setup

Environment Variable

OXYGEN_HOME="C:\Program Files\Oxygen XML Editor 17"

Path it

;OXYGEN_HOME

Add Ant_Contrib

Add the Ant_Contrib task library to your system (http://ant-contrib.sourceforge.net/tasks/). You need to do this so oXygen will work properly.

oXygen’s Ant configuration details:

C:\opt\eclipse\plugins\com.oxygenxml.editor_16.1.0.\v2014102117\frameworks\ant\ant.frameworkant
Categories
Eclipse Java

Windows Path Statement

I’ll use my path statement to demonstrate a path statement for a typical Eclipse installation.

%SystemRoot%;%SystemRoot%\system32;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0;C:\Androidsdk\platform-tools;%JDK_HOME%\bin;%JAVA_HOME%\bin;%PYTHON_HOME%;%PYTHON_HOME%\Scripts;C:\Program Files (x86)\Gitcmd;C:\Program Files (x86)\Gitbin;%MinGW_HOME%/bin;%MERGEHOME%\%ANT_HOME%\bin;X:\JGSoft\Tools\HTML Tidy and XML Tidy;C:\Program Files\InteliCLS\Client;C:\Program Files (x86)\InteliCLS\Client;C:\Program Files\Intel\Intel(R) Management Engine Components/DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Windows Kits\8.0\Windows Performance Toolkit;C:\Program Files\Microsoft SQL Server\100\Tools\Binn;C:\Program Files\Microsoft SQL Server\100\DTS\Binn;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn;C:\Program Files (x86)\ATI Technologies\ATI.ACECore-Static;%OXYGEN_HOME%;X:\FCIV;C:\Program Files (x86)\QuickTime\QTSystem;C:\Perl64bin;C:\Perl64\site\bin

 

Categories
Eclipse

Java Path, System, and Environment Variables

Eclipse uses path variables in build configuration scripts to create portable projects.

Environment variables are defined within a hierarchy, which defines each one’s scope of access.

  1. The operating system. These are the current user’s environment variables (UserDomain.UserName). For Example,

    USERNAME = Chris
  2. The Eclipse IDE and the Java Virtual Machine ( referred to as System Properties of the Java Platform). To maximize portability, never refer to an environment variable when the same value is available in a System Property. For example, if the operating system provides a user name, it will always be available in the system property user.name.

  3. The current Workspace in Eclipse.

  4. The current Project within the current workspace. These are the environment variables that the build configuration can access directly. For example,

    Path: /java_3rdParty

To see and create Path Variables for a particular java project:

  1. Right-click the java project in Project Explorer, and click Properties.
  2. Navigate to Resources > Linked Resources > Path Variables.

Use PROJECT_LOC as a starting point, and create

JAVADOC_LOC = ${PROJECT_LOC}\doc LIBRARIES_LOC = ${PROJECT_LOC}\libs SOURCE_LOC = ${PROJECT_LOC}\src

Note: To use these in an Ant script, you have to define and assign equivalent local variables.

Categories
Eclipse

What Eclipse Does to your Project

Eclipse adds /bin folder for compiled Java class files.

Code folding

Under the Source menu.

Collapse Code: Ctrl + -

Uncollapse Code: Ctrl + =

Collapse Code (All): Ctrl + 9

Uncollapse Code (All): Ctrl + 0

Add to dictionary

Ctrl + Shift + Right Click

Show in breadcrumb

Only available in the Java Editor.

Ctrl + Shift + B

Working set

Imagine if the Project Explorer contained a filtered view of resources in your project. I.e., a subset of it. E.g., a view that ignores the Test directory, and everything in it; but includes parts of another project within the workspace. If you could save such a view, it would essentially be a Working Set.

Path Variables

These are just like Environment Variables, but they apply to Eclipse, the Current Workspace, and the Current Project. Here are some examples.

ECLIPSE_HOME: C:\Program Files\eclipse\

WORKSPACE_LOC: A:\Documents\Eclipse\Projects\Practice

PROJECT_LOC: A:\Documents\Eclipse\Projects\Practice\TestSphinxWiz

Workspace

Your workspace is a folder that contains a subfolder called “.metadata”.

Counter to what you might expect, the workspace folder doesn’t physically contain project folders. It contains them by reference.

Categories
Eclipse

Setup a Git-hosted Project in Eclipse

If you’re used to using Visual Studio and Source Depot, then you’re in for a bit of a paradigm shift when you use Eclipse and git.

Note: The location of your Eclipse Workspace, and the location of your source code are mutually exclusive. I.e., you might think that the workspace should encompass your local git repo – but it doesn’t, and actually can’t. For example, I have all of my local repos on the C: drive (in C:\Users\Chris\src\), yet I have my default Workspace on my A: drive (in A:\Documents\Eclipse\Projects\).

Think of it like this: when a multi-media app manages your music collection, it doesn’t move all of your media files into it’s program directory. Instead, it builds a database the contains records for corresponding media files. Each record contains a pointer to the media file, along with all of the details contained in its ID3 tag.

You’re doing something similar when you build an Eclipse Workspace. In the case of Eclipse though, the database is stored in a “Workspace;” a folder on your file system that contains a folder called “.metadata”.

Window > Preferences > Teams > Git

Default Repository Folder (Git_HOME):

${env_var:GITSOURCE}/

Eclipse reads these details straight from your user configuration file (%USERPROFILE%.gitconfig).

The only thing I had customized in this file was my merge tool: “C:\Program Files (x86)\Beyond Compare 4\BCompare.exe”

[user]
name = Chris Boorman email = cboorman@3rdParty.com
[diff]
tool = bc
[difftool “bc”]
path = C:\Program Files (x86)\Beyond Compare 4\BComp.exe
[merge]
tool = bc
[mergetool “bc”]
cmd = “C:\Program Files (x86)\Beyond Compare 4\BComp.exe” “$LOCAL” “$REMOTE” “$BASE” “$MERGED”
[push]
default = simple

To work on Git-hosted projects in Eclipse, you must import them into Eclipse using the Git Project Import Wizard. You can use Import Existing Project.

The procedure differs between projects hosted publicly on GitHub, and projects hosted on 3rdParty’s private repo server.

3rdParty private server

Here’s how to get a local enlistment to the privately hosted 3rdParty REST API Git repository. Before you begin, establish a VPN connection to 3rdParty.

  1. In Eclipse, open the Git perspective.
  2. In the Git Repositories pane, click Clone a Git repository
    The Clone Git Repository dialog appears.
  3. In the Connection Protocol drop-down list, select git.
  4. In the URI field, type the URI of the Git repository, and then click Next.
    git@git.c11.3rdParty.com:python_rest_api.git

    You’re prompted to input your password.

  5. In the Information dialog, type your SSH Passphrase, and then click OK.
    The Branch Selection dialog appears.
  6. Select branches to clone from the remote repository. Remote tracking branches are created to track updates for these branches in the remote repository.
    Click Deselect All, and then check the following branches: develop, feature/api_doc, master, release/current; and then click Next.
    The Local Destination dialog appears.
  7. Set the Initial branch to feature/api_doc, and then click Finish.
  8. In Eclipse, in the Project Explorer, right-click the background, and select Import > Import > Git > Projects from Git > Existing Local Repository.
    The Select a Git Repository dialog appears. Note that the repository you want isn’t in the list! Don’t worry though…
  9. Click Add.
    The Add Git Repositories dialog appears. The new repository is already checked (and in my case – along with the Java repo).
  10. Click FinishNext.
  11. Select Import as a General Project, and click Next.
    The new project folder appears selected: Working Directory – C:\Users|Chris\src\mobile_assets
  12. Accept the suggested project name (mobile_assets), and click Finish.

3rdParty on GitHub

To work on a project hosted on GitHub:

  1. Navigate to that project repo on GitHub.
  2. Click Fork. This creates a copy of the project repository under your account.
  3. Navigate to your new forked project on GitHub, and click Clone. This creates a local copy of the project repository on your hard drive.
Categories
Eclipse

Update Eclipse

The Updater service in Eclipse is based on Equinox p2, the Equinox framework OSGi implementation.

The OSGi (Open Service Gateway initiative) specification describes a modular system and a service platform for the Java programming language that implements a complete and dynamic component model, something that does not exist in standalone Java/VM environments.

When you run Help > Check for Updates, the Updater checks for system and component (addin) updates according to a list of “Available Software Sites” – which are p2 repositories. p2 stand for “Provisioning”.

Preferences > Install/Update > Available Software Sites

In my experience, this mechanism is buggy. You have to manually tweak the list (by adding, deleting, and editing) the items in the list.

http://wiki.eclipse.org/Eclipse_Project_Update_Sites

Here’s a list of URLs that you can visit to find the latest Update URI for a particular component.

<?xml version=”1.0″ encoding=”UTF-8″?>
<bookmarks>

<site url=” https://dl-ssl.google.com/android/eclipse/” selected=”true” name=”ADT Plugin”/>

<site url=” http://download.eclipse.org/webtools/updates” selected=”true” name=”Eclipse Web Tools Platform Repository”/>

<site url=” https://sourceforge.net/projects/eclipsejsonedit/files/update” selected=”true” name=”eclipse-json-editor”/>

<site url=” http://e-p-i-c.sf.net/updates/” selected=”true” name=”EPIC – Perl Editor and IDE for Eclipse”/>

<site url=” http://nextinterfaces.com/http4e/install/” selected=”true” name=”HTTP4e”/>

<site url=” http://download.eclipse.org/mylyn/releases/luna” selected=”true” name=”Mylyn for Eclipse Luna”/>

<site url=” http://www.oxygenxml.com/InstData/Editor/Eclipse/site.xml” selected=”true” name=”oXygen XML Editor Install”/>

<site url=” http://pydev.org/updates/” selected=”true” name=”PyDev Update Site”/>

<site url=” http://resteditor.sourceforge.net/eclipse/” selected=”true” name=”ReST Editor Update Site”/>

<site url=” http://download.eclipse.org/releases/luna/” selected=”true” name=”The Eclipse 4.4 (Luna) Updates”/>

<site url=” http://download.eclipse.org/webtools/repository/luna” selected=”true” name=”The Eclipse Web Tools Platform (WTP) software repository”/>

<site url=”http://www.oxygenxml.com/InstData/Editor/Eclipse” selected=”true” name=”update site:  http://www.oxygenxml.com/InstData/Editor/Eclipse“/>

</bookmarks>

Categories
Eclipse

Customize Eclipse with Addins

You can enhance Eclipse’s standard functionality by adding addins.

Help > Install New Software…

Work with: –All Available Sites–

Peruse the list that appears – and pick out the plugins that you want.

Get for sure

The oXygen XML Editor for Eclipse plugin adds so many useful features to Eclipse, that I bought a license for myself. It gives you a ton of editors (e.g., HTML), and each one runs against the associated DTD or schema to ensure that your code is well formed.

  1. Get the latest version of the oXygen XML Editor for Eclipse by visiting: Download oXygen XML Editor.

    The download landing page is a bit confusing. Scroll up to the top of the page and simply click the Download button.

    Another web page appears, prompting you to fill in a form. Ignore it – the download begins automatically.

    Click Save instead of Open – in case there’s a problem with the download.

    The download takes about ten minutes.

  2. After downloading the corresponding archive, use 7-Zip to extract its content into the “dropins” subfolder of the Eclipse folder.

  3. Restart Eclipse.

    Eclipse discovers the new addin and configures it for you.

Update the oXygen XML editor plugin

Help > Install New Software…

Add the oXygen XML Editor software update endpoint URI: http://www.oxygenxml.com/InstData/Editor/Eclipse/site.xml

Paste this URI into the Work with field, and then click Add. The main window shows the work “Updating…”. When it is done, the list of updates, per Eclipse version displays. Check the box beside the latest version, and then click Next. The updates download and install, and then you must restart Eclipse for the changes to take effect.

Install PyDev from the Eclipse Marketplace

After you install PyDev, you’ll be asked to reboot Eclipse.

Open the PyDev perspective to make sure that it installed properly.

When you reboot Eclipse, Eclipse might discover that PyDev has an incomplete configuration. If it does, then it presents you with choices for configuring it (Auto, Manual, Quick Auto, etc.). Choose Quick Auto.

You need this so you can run Sphinx and rebuild the docs for the 3rdParty REST API docs. You need the ReST Editor to configure a build configuration that will run make.bat.

The ReST Editor is an Eclipse plugin, and it adds a pretty reStructuredText editor to the Eclipse IDE. This is useful for authoring documentation for Python projects, where you use the Sphinx doc builder to automatically generate help builds.

Install it from the Eclipse MarketPlace.

The ReST Editor project is an open source project, and the code is hosted on the project site.

Note: The ADT plugin for Eclipse in no longer the official IDE for Android development; it’s now Android Studio, so you should install it at some point.

Follow the procedure on the “Installing the Eclipse Plugin” web site: http://developer.android.com/sdk/installing/installing-adt.html

Configuration

Target Location for the Android SDK:

%POSIX_HOME%\android-sdks

Add new software

  • eclipse : the Eclipse update site, accessible via the URL : http://resteditor.sourceforge.net/eclipse.

An Addin to Tryout

Modelling > Sphinx SDK (Incubation) Modelling > UML2 Extender SDK Programming Languages > Javascript Development Tools Programming Languages > PHP Development Tools (PDT)