Beruflich Dokumente
Kultur Dokumente
January 2018
Note: The following is intended to outline our general
product direction. It is intended for information purposes
only, and may not be incorporated into any contract. It is not
a commitment to deliver any material, code, or functionality,
and should not be relied upon in making purchasing
decisions. The development, release, and timing of any
features or functionality described for Oracle’s products
remains at the sole discretion of Oracle.
Contents
Preface ............................................................................................................................... 1
Acknowledgements ................................................................................................................ 1
Intended Audience ................................................................................................................. 1
Scope ......................................................................................................................................... 1
Conventions ............................................................................................................................. 1
Overview ............................................................................................................................ 2
Build Processes Overview...................................................................................................... 2
Lifecycle ............................................................................................................................ 2
Continuous Integration ................................................................................................... 2
Builds ................................................................................................................................. 3
Application Installation .................................................................................................. 4
Automated Testing .......................................................................................................... 4
1
Component Installation .................................................................................................... 6
Prerequisites ............................................................................................................................ 6
Required 3rd Party Components ............................................................................................ 6
Configuration of Components .............................................................................................. 6
Required Xstore Components ............................................................................................... 6
Components Installation ........................................................................................................ 7
Java JDK - Install and Configure.................................................................................... 7
ANT - Install and Configure......................................................................................... 13
OpenSSL - Install and Configure ................................................................................. 15
Apache HTTP Server - Install and Configure ............................................................ 15
Hudson - Install and Configure ................................................................................... 16
Subversion – Install and Configure ............................................................................. 27
Connecting Subversion with Hudson ......................................................................... 33
2
Component Configuration ............................................................................................. 35
SVN Repository Project Setup ............................................................................................. 35
Hudson Build Job Setup ....................................................................................................... 36
Create a New Build Job ................................................................................................. 36
Run the new Build Job, Build Now ............................................................................. 37
4
Developer Setup .............................................................................................................. 39
Eclipse IDE Setup .................................................................................................................. 39
5
Security and Maintenance .............................................................................................. 40
Network Access and Securing Build Systems ................................................................... 40
System Maintenance and Backup Procedures .................................................................. 40
References ....................................................................................................................... 41
Books and Articles ................................................................................................................ 41
Websites ................................................................................................................................. 41
Trademarks ............................................................................................................................ 41
iii
Preface
Acknowledgements
Portions of this document are a compilation of information originally produced for
training and reference for the purpose of supporting the Oracle Retail Xstore Point of
Service (POS) and Oracle Retail Xstore Office application build processes.
Intended Audience
This document is intended for the technical staff responsible for setting up and
maintaining build processes for “System Integrators” software implementations. Users
should have a working knowledge of the Xstore POS and Xstore Office applications and
source code.
Scope
The Scope of this document is to describe and support the build processes necessary to
compile the Oracle Retail Xstore POS and Oracle Retail Xstore Office applications. This
document does not cover the prerequisite software modifications required to meet
implementation needs and does not cover the installation of the resulting software
application artifacts. Additional training and documentation may be required to support
those activities outside the scope of this document.
Conventions
This document will cover the installation and configuration of the Xstore suite build
processes and related systems. All examples and details provided will reference a
Microsoft Windows Platform which you may translate to a Linux platform as needed.
Preface 1
Build Processes Overview
Overview
The Oracle Retail Xstore POS and Oracle Retail Xstore Office suite of products are
compiled as part of an interrelated process supported by a variety of software
applications and utilities.
Check
out
3
n
1 ck i Version Control System
Developers Che
(SVN)
Build Servers
(Hudson)
Publi
Developers 4
sh to
A Q
us
at
St
CI
5
CI Status
Notifications
Published Builds
CI Feedback
Notifications
Team Leads, testers,
clients, management,
developers, etc.
For example, Developers and Implementation Consultants make their changes to source
code and configurations and commit that work to a particular SVN repository. Then a
build is executed using one of several methods; on-demand, daily, or a continuous
integration pattern. Regardless of the method, this process produces a resulting set of
build artifacts for the application that can be used to install or update the software in
quality assurance (QA) and/or in production in the field.
Continuous Integration
Martin Fowler and Kent Beck are largely credited with the first use of the term
"Continuous Integration" as applied to software development with Beck’s seminal 1999
book Extreme Programming Explained
The idea, put simply, is that software development efforts are much easier to manage
when test failures and other bugs can be identified closer to the time they were
introduced into a complex system.
Builds
Types of Builds
On-Demand builds may be run on-demand
directly from the Hudson build server
webpage.
Daily builds may be scheduled to run daily at
regular times each day, or to react to commits
to the SVN server.
Continuous Integration (CI) builds are run
multiple times in a given day to ensure a
successful result at the end of the day.
A basic CI build cycle might start with an afternoon “trial” build to validate the state of
the applications in the build. An email can be sent automatically by the build server
(Hudson) to the development team (including developers, Implementation Consultants,
team leads and managers) announcing the state of the current codebase. A subsequent
build would run later (for example, at midnight) as a QA delivery candidate build. In the
event that the afternoon build fails, it provides the team with the opportunity to fix the
build before the more significant nightly build runs.
Build Tools
Apache ANT is a Java library and command-line toolset used for the purpose of
automating the application build process. The use of Build files, Targets and extensions
facilitates the compilation and organization of the build artifacts. ANT is essentially
MAKE for Java.
SVN Subversion is a revision control system for use by Developers and Implementation
Consultants. The SVN SCM tool, released as free software under the Apache License,
controls the source code change management process. SVN is also integrated with the
Eclipse IDE that is referenced in this document.
Since SVN is a free and open platform, a vast amount of information is available online
regarding the setup and use of this tool.
For more details on SVN visit the Apache Subversion website
(https://subversion.apache.org/).
Hudson is a powerful and widely used open source Continuous Integration server (CI)
used for software application development. Hudson supports the SVN SCM tool and it
provides development teams with a reliable way to monitor changes in source control
and trigger a variety of builds.
For more details on Hudson configuration and job setup please refer to the document
HudsonIntro (http://hudson-ci.org/docs/HudsonIntro.pdf).
You may also read the Hudson Book here (http://wiki.eclipse.org/The_Hudson_Book).
Overview 3
Build Processes Overview
Application Installation
InstallX is used to build and install builds of the Xstore POS application and some
associated server-based components. This installation application is used to package,
install and configure the Xstore POS application, associated server-based components,
and utilities. InstallX is customer, operating system, and database platform independent;
however the artifacts are specifically targeted.
Each InstallX Installer is packaged as an executable jar file and can be run from the
command line. It may optionally be run with a GUI Wizard to prompt the user for
installation parameters.
The distribution file name will indicate the version, customer, component, and
installation type contained in the installer.
Automated Testing
Xunit is an automated testing engine used to
perform end user testing of the Xstore
application without requiring user interaction.
Test scripts contained in XML configuration
files are loaded into the test harness, which
then pushes “events” to Xstore, simulating
user input. Test results are determined by the
validity of test events based on the current
system state and data assertions evaluated
against the Xstore database, memory, and file
system.
Script maintenance – Test cases are factored into libraries of reusable components.
When a change is made to the application, a single corresponding change to the test
script library can accommodate all test cases relevant to the Xstore functional area.
Cost – Xunit is currently provided as part of the core Xstore deliverable; no
additional product or license needs to be purchased.
Overview 5
Prerequisites
1
Component Installation
Prerequisites
This document will reference and assume that you are using either the documented or
latest versions of the 3rd Party Tools and Xstore components listed below.
Configuration of Components
1. SVN
2. Hudson
3. Eclipse 4.4.2 or latest for development purposes
Components Installation
The installation order of the following components is important because some
installations are dependent on others. In addition, some configurations will require that
other components exists.
Component Installation 7
Components Installation
c. When prompted to begin the install wizard. Click the Next Button.
d. For a standard install accept the default options (you may wish to make
adjustments). Click the Next Button.
e. Accept the default when prompted for the installation location (you may
change this). Click the Next button.
f. When you get the message stating that you have successfully Installed the
Java SDK, click the Close Button.
2. Setup the JAVA_HOME entry in the Windows OS System Properties at the system
level:
Component Installation 9
Components Installation
Component Installation 11
Components Installation
3. Next you must add the ANT_HOME (Apache ANT folder reference) that was
created above to your Windows System Path.
a. Set up an ANT_HOME reference in the Windows OS System Properties at
the system level:
i. Add ANT_HOME/bin to the system path.
ii. From the Windows System Properties configuration screen. Click the
Environment Variables button.
Component Installation 13
Components Installation
4. You may now test your ANT install by executing the command ant –help from a
Command prompt. A detailed command explaination should be displayed as
pictured below if your installation was successful.
Component Installation 15
Components Installation
Component Installation 17
Components Installation
3. Perform the following configuration steps from your web browser. Navigate to
http://localhost:8080 to access the Hudson setup console.
4. Add the Hudson subversion plugin from the first page of the setup screen. Check the
box next to the “Hudson Subversion Plug-in” option.
5. Scroll to the bottom of the webpage and click the Install button to continue.
Component Installation 19
Components Installation
This is the screen you should see when Hudson has completed this process
8. This is now a basic Hudson install that will require additional setup. Start by
selecting the Manage Hudson menu option on the left side of the screen (for
example, http://Localhost:8080/manage)
a. Configure Security:
i. Enable Security
ii. Use Hudson’s own database (by default unless otherwise desired).
Component Installation 21
Components Installation
3. Add all privileges to the HUDSON user e.g. make this user
an Administrator
Component Installation 23
Components Installation
iii. Click the Save Button at the bottom of the Settings web page
c. Click Install as a Windows Service from the Manage Hudson web page.
Component Installation 25
Components Installation
ii. Place the .keystore file in the Hudson folder created in step 8.c.i.
e. Edit the Hudson.xml file to tell Hudson to use the new key:
i. Edit the arguments tags to set the following;
–httpskeystore=c:/Hudson/Hudson.keystore
–httpskeystorepassowrd=allgoodthings
(must match password entered earlier)
Component Installation 27
Components Installation
4. When prompted for information, review the information and click the Next button.
5. When prompted to choose an Apache version, xelect Modules for Apache 2.4.x and
click the Next button.
6. When prompted for the Destination Folder, click the Next button.
Component Installation 29
Components Installation
Component Installation 31
Components Installation
ii. At the end of the file add an extra location for the subversion
repository location, more can be added if needed. Be sure that your
SVNPath matches what you selected for your actual repository
location above.
<Location /svn>
DAV svn
SVNPath C:/svnrepo
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile “htdocs/.htpasswd”
AuthzSVNAccessFile C:/svnrepo/conf/svn-acl-conf
Require valid-user
</Location>
[groups]
Component Installation 33
Components Installation
dev = svnuser
admin – svnadmin
#repo root
[/]
* = #e.g. everyone by default has no access
@dev = r #read access
@dev = rw #read/write access
2
Component Configuration
SVN Repository Project Setup
Load the necessary source code files to the repository that you setup during the SVN
install.
Using the provided files from Oracle Retail for POS, Mobile and Office:
1. The BASE FOLDER contains an export of the Base projects in the
Base\tags\{version} \
2. C:\{BASE FOLDER}>svn import . https://localhost/svn --message “Initial
Import”
a. Result will be something like “error validating server certificate…”
b. (R)eject, accept (t)emporarily or accept (p)ermenently
c. Select P for permanent
d. Username svnadmin
e. Enter password
f. This step will take several minutes since it is importing (“Adding”) many
files
3. Check SVN repo
a. https://localhost/svn
b. Check for REPO
Component Configuration 35
Hudson Build Job Setup
Alternatively, if you click on the Job Name (for example, myClient-Xstore-7.1.-1.0.0) you
have the Build Now link to run a job also. Both options queue the job to be run when
resources become available on the server, this is based on other jobs that may be queued.
This build will fail on the first run, because the artifacts must be created and configured.
It may also fail on the ANT install. The normal Build Failure message statement explains
that it cannot find the directory c:\hudson\releases\X.X.X.X (where X.X.X.X is your
specific version of Hudson).
1. Create the missing folder from the Build Failure message.
For example, c:\hudson\releases\X.X.X.X where X.X.X.X is your specific version
of Hudson.
2. Move the provided archive files to the c:\hudson\release\X.X.X.X folder.
Component Configuration 37
Hudson Build Job Setup
4
Developer Setup
Eclipse IDE Setup
The development process is managed locally using the Eclipse IDE. This IDE has support
for Java software development with integrated run and debugging capabilities. Eclipse
also supports specific editors for various file types, such as XML documents and Java
files. It provides integration with SVN and ANT. Additionally, many plugins exist for the
Eclipse IDE. Although other IDE’s may be used, Xstore development is standardized on
the Eclipse platform.
For more information on the Eclipse IDE visit the Eclipse Website (https://eclipse.org/).
Developer Setup 39
Network Access and Securing Build Systems
5
Security and Maintenance
Your organization should establish and maintain good security and maintenance
procedures for these mission critical systems.
References
Books and Articles
Beck, Kent. Extreme Programming Explained: Embrace Change. Boston: Addison-
Wesley, 2000.
Xstore Implementation Guide: A guide outlining Xstore product architecture and
instructions necessary to install or upgrade Xstore components: Xstore Release 7.1:
Copyright © 2015 Oracle, Inc.
Xstore Technical Guide Release 7.1, Doc Ver 06: Copyright © 2015 Oracle, Inc.
Xunit Customer Training: Document Version 2.0: Copyright © 2015 Oracle, Inc.
Websites
apache.org
ant.apache.org
subversion.apache.org
tomcat.apache.org
eclipse.org
eclipse.org/Hudson
www.micros-retail.com/category/Products/POS-
Software/Xstore/pc/833/sc/851/860.uts
www.oracle.com
Trademarks
"Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be
trademarks of their respective owners."
Apache ANT, Apache Subversion SVN, Eclipse, Tomcat, Jetty and the logos are all Registered
Trademarks of their respective organizations.
Apache®, Apache Hadoop, Hadoop®, and the yellow elephant logo are either registered
trademarks or trademarks of the Apache Software Foundation in the United States and/or other
countries.
"‘Eclipse’, ‘Built on Eclipse’ and ‘Eclipse Ready’, ‘BIRT’, ‘Higgins’ are trademarks of Eclipse
Foundation, Inc."
Microsoft Visual C++is either registered trademarks or trademarks of Microsoft Corporation in
the United States and/or other countries.
References 41
Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065
U.S.A.
Worldwide Inquiries:
Phone: +1.650.506.7000
Fax: +1.650.506.7200
oracle.com
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.
Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of
SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered
trademark of The Open Group.