Tutorials
All Tutorials
UML Tutorials
UML 2.1 Tutorial
UML Tutorial - Part 1 Intro
UML Tutorial - Part 2 Intro
The Business Process Model
The Component Model
The Dynamic Model
The Logical Model
The Physical Model
The Use Case Model
UML Database Modeling
Enterprise Architect Tutorials
Creating Strategic Models
Diagram Filters
BPEL: Step by Step Guide
Resource Management
Testing Management
Traceability
RTF Documentation
Use Case Metrics
Structured Use Case Scenarios
Video Demonstrations
All Videos
Getting Started
Requirements Management
Modeling & Productivity Tools
Code Engineering and the Debug Workbench
Version Control
Integration (Eclipse, Visual Studio, TFS)
UML Tutorial - Structure
UML Tutorial - Behavior
The Business Process Model
Deployment of EA
MDA Overview
Rich-Text (RTF) Reporting
Version Control Integration
Requirements Management
White Papers & E-Books
Roles
Business Analyst
Database Administrator
Deployment & Rollout
Developer
Project Manager
Software Architects
Software Engineer
Technology Developer
Testers
Enterprise Architect User Guide provides tutorials, guidance and reference material to help you use Enterprise Architect in:
Modeling With Enterprise Architect
Model Management
Project Management
Model Auditing
Model Baselining and Differencing
Model User Security
Model Version Control
Code Engineering
Visualization and Analysis of Code Execution
RTF and HTML Document Creation (Reports)
Enterprise Architect User Guide provides tutorials, guidance and reference material to help you use Enterprise Architect in:
Modeling With Enterprise Architect
Model Management
Project Management
Model Auditing
Model Baselining and Differencing
Model User Security
Model Version Control
Code Engineering
Visualization and Analysis of Code Execution
RTF and HTML Document Creation (Reports)
If you are new to modeling and UML as well as Enterprise Architect, or otherwise want a rapid review of the process of modeling with Enterprise Architect, go to the Quickstart Tutorial.
"Bean Validation" specification (aka JSR-303) standardizes an annotation-based validation framework for Java
Flex doesn't provide by itself such framework. The standard way of processing validation is to use Validator subclasses and to bind each validator to each user input (see Validating data). This method is at least time consuming for the developer, source of inconsistancies between the client-side and the server-side validation processes, and source of redundancies in your MXML code.
GraniteDS introduces an ActionsScript3 implementation of the Bean Validation specification and provides code generation tools integration so that your Java constraint annotations are reproduced in your AS3 beans
GraniteDS validation framework provides a set of standard constraints
Constraint
Description
AssertFalse
The annotated element must be false
AssertTrue
The annotated element must be true
DecimalMax
The annotated element must be a number whose value must be lower or equal to the specified maximum
DecimalMin
The annotated element must be a number whose value must be greater or equal to the specified minimum
Digits
The annotated element must be a number whithin accepted range
Future
The annotated element must be a date in the future
Max
The annotated element must be a number whose value must be lower or equal to the specified maximum
Min
The annotated element must be a number whose value must be greater or equal to the specified minimum
NotNull
The annotated element must not be null
Null
The annotated element must be null
Past
The annotated element must be a date in the past
Pattern
The annotated String must match the supplied regular expression
Size
The annotated element size must be between the specified boundaries (included)
Constraint annotations must be placed on public properties, either public variables or public accessors
If caching is enabled and if any authorization data for an account is changed at
runtime, such as adding or removing roles and/or permissions, the subclass implementation should clear the
cached AuthorizationInfo for that account via the
Modes define what SQL syntax MySQL should support and what kind of
data validation checks it should perform
Server SQL Modes
When working with InnoDB tables using the
InnoDB Plugin, consider also the
innodb_strict_mode configuration
option. It enables additional error checks for
InnoDB tables, as listed in
InnoDB Strict Mode
AuthorizationInfo represents a single Subject's stored authorization data (roles, permissions, etc)
used during authorization (access control) checks only
Roles are represented as a Collection of Strings
(Collection<String>)
Permissions are provided in two ways:
A Collection of Strings, where each String can usually be converted into Permission
objects by a Realm's
PermissionResolver
A Collection of Permission objects
most Realms store both sets of data for a Subject
a Realm implementation to utilize an implementation of the
Account interface instead, which is a convenience interface that combines both
AuthenticationInfo and AuthorizationInfo
start with some of the obvious rulesets - just run unusedcode
and fix any unused locals and fields.
Then, run basic and fix all the empty if statements and such-like.
Then peruse the design and
controversial rulesets and use the ones
you like via a custom ruleset
Using PMD within your IDE is much more enjoyable than flipping back and forth
between an HTML report and your IDE
what happens inside Shiro whenever an authorization call is made.
invokes any of the Subject hasRole*, checkRole*, isPermitted*, or checkPermission*
securityManager implements the org.apache.shiro.authz.Authorizer interface
delegates to the application's SecurityManager by calling the securityManager's nearly identical respective hasRole*, checkRole*, isPermitted*, or checkPermission* method variants
relays/delegates to its internal org.apache.shiro.authz.Authorizer instance by calling the authorizer's respective hasRole*, checkRole*, isPermitted*, or checkPermission* method
Realm's own respective hasRole*, checkRole*, isPermitted*, or checkPermission* method is called
An AuthorizingRealm extends the AuthenticatingRealm's capabilities by adding Authorization
(access control) support
perform all role and permission checks automatically (and subclasses do not have to
write this logic) as long as the
getAuthorizationInfo(org.apache.shiro.subject.PrincipalCollection) method returns an
AuthorizationInfo
Baseline Diagram Comparison
Conduct a visual diagram comparison between your current diagram and a previous baseline .
Personal Information Window
See how the Personal Information Window in Enterprise Architect can help you organize your daily tasks and workflow.
Working Sets
As you perform work on your model, you open various windows, diagrams and views. Working Sets allow you to return to these same views in a later work session.
Business Rules
A car rental system is used to illustrate how to generate executable business rules using Enterprise Architect.
Menu Customization
Quickly and easily suppress individual menu items or entire categories of commands to create custom menu layouts.
Floating and Dockable Windows
Save the position and layout of Floating and Dockable Windows using a Working Set in the Personal Information Window.
Build and Debug a Java Application
Set up Enterprise Architect to build and debug a Java Application, using a VEA sample project.
Sequence Diagrams
Learn how to create a simple Sequence diagram. The video also illustrates how to bring your Sequence diagram to life using model simulation.
HTML Report Generation
This brief introduction illustrates how to automatically generate a HTML Report using Enterprise Architect.
Basic Use Case Demonstration
A guide to constructing a Use Case model in under 30 seconds, including use cases, notes and issues.
Traceability within Enterprise Architect
This video examines Traceability and discusses how to use Enterprise Architect to conduct an Impact Analysis.
Requirements Reporting
A brief overview of requirements reporting in Enterprise Architect. Topics include document generation in web and RTF formats, report customization and virtual documents, including Model and Master documents.
Requirements Traceability
An examination of requirements traceability in Enterprise Architect. Topics include traceability views, tracing to external artifacts, conducting an impact analysis, viewing the Relationship Matrix and using Enterprise Architect's Auditing capabilities.
Requirements Modeling
A brief overview of requirements modeling in Enterprise Architect. Topics include requirements capture and definition, custom properties, tabular editing, auto-naming and screen prototypes.
Installing EA
An introductory walk through and discussion of Enterprise Architect in the Software Development Lifecycle.
Enterprise Architect 7.5 Overview
An overview of Enterprise Architect features released with version 7.5.
Introduction to Enterprise Architect
An introductory walk through and discussion of Enterprise Architect in the Software Development Lifecycle.
Brief Overview
The 10 minute guide to Enterprise Architect, from Requirements Management and Business Process Modeling to MDA and Code Engineering.
A Realm is a security component that can access application-specific security entities
such as users, roles, and permissions to determine authentication and authorization operations
security-specific
DAOs
If for some reason you don't want your Realm implementation to perform authentication
duties, you should override the supports(org.apache.shiro.authc.AuthenticationToken) method to always
return false
does not require you to implement or extend any User, Group or Role
interfaces or classes
Shiro tries to maintain a non-intrusive development philosophy
Most users will not implement the Realm interface directly, but will extend one of the subclasses,
AuthenticatingRealm or AuthorizingRealm, greatly reducing the effort requird
to implement a Realm from scratch
Subversion Tagging Plugin
— This plugin automatically performs subversion tagging (technically speaking svn copy) on successful build.
ViewVC Plugin
— This plugin integrates ViewVC browser interface for CVS and Subversion with Hudson.
Source code management
Build Pipeline Plugin
— This plugin creates a pipeline of Hudson\Jenkins jobs and gives a view so that you can visualise it.
Build tools
JBoss Management Plugin
— This plugin allows to manage a JBoss Application Server during build procedure
Maven 2 Project Plugin
— Jenkin's Maven 2 project type
Phing Plugin
— This plugin allows you to use Phing to build PHP projects.
Post build task
— This plugin allows the user to execute a shell/batch task depending on the build log output. Java regular expression are allowed.
Promoted Builds Plugin
— This plugin allows you to distinguish good builds from bad builds by introducing the notion of 'promotion'.
Publish Over SSH Plugin
— Publish files and/or execute commands over SSH (SCP using SFTP)
Selenium AES Plugin
— This plugin is for continuous regression test by Selenium Auto Exec Server (AES).
Vagrant Plugin
— This plugin allows booting of Vagrant virtual machines, provisioning them and also executing scripts inside of them
Unicorn Validation Plugin
— This plugin uses W3C's Unified Validator, which helps improve the quality of Web pages by performing a variety of checks.
Build wrappers
Android Emulator Plugin
— Lets you automatically generate, launch and interact with an Android emulator during a build, with the emulator logs being captured as artifacts.
Artifactory Plugin
— This plugin allows deploying Maven 2, Maven 3, Ivy and Gradle artifacts and build info to the Artifactory artifacts manager.
AWS Cloudformation Plugin
— A plugin that allows for the creation of cloud formation stacks before running the build and the deletion of them after the build is completed.
Build Keeper Plugin
— Select a policy for automatically marking builds as "keep forever" to enable long term analysis trending when discarding old builds - or use to protect logs and artifacts from certain builds
Build Name Setter Plugin
— This plugin sets the display name of a build to something other than #1, #2, #3, ...
SSH plugin
— You can use the SSH Plugin to run shell commands on a remote machine via ssh.
SeleniumRC Plugin
— This plugin allows you to create Selenium server instance for each project build.
Vagrant Plugin
— This plugin allows booting of Vagrant virtual machines, provisioning them and also executing scripts inside of them
Timestamper
— Adds timestamps to the Console Output.
VirtualBox Plugin
— This plugin integrates Jenkins with VirtualBox (version 3, 4.0 and 4.1) virtual machine.
Version Number Plugin
— This plugin creates a new version number and stores it in the environment variable whose name you specify in the configuration.
VMware plugin
— This plugin allows you to start a VMware Virtual Machine before a build and stop it again after the build completes.
AWS Cloudformation Plugin
— A plugin that allows for the creation of cloud formation stacks before running the build and the deletion of them after the build is completed.
Desktop Notifier for Jenkins
— This is useful for those who are looking for a Desktop Notifier for Jenkins builds to automatically notify you about failed builds directly from their desktops.
Email-ext plugin
— This plugin allows you to configure every aspect of email notifications. You can customize when an email is sent, who should receive it, and what the email says.
Google Calendar Plugin
— This plugin publishes build records over to Google Calendar
HTML5 Notifier Plugin
— Provides W3C Web Notifications support for builds.
Jabber Plugin
— Integrates Jenkins with the Jabber/XMPP instant messaging protocol. Note that you also need to install the instant-messaging plugin.
Build reports
Checkstyle Plugin
— This plugin generates the trend report for Checkstyle, an open source static code analysis program.
Clover PHP Plugin
— This plugin allows you to capture code coverage reports from PHPUnit. For more information on how to set up PHP projects with Jenkins have a look at the Template for Jenkins Jobs for PHP Projects.
Crap4J Plugin
— This plugin reads the "crappy methods" report from Crap4J. Hudson will generate the trend report of crap percentage and provide detailed information about changes.
Dependency Analyzer Plugin
— This plugin parses dependency:analyze goal from maven build logs and generates a dependency report
Dependency Graph View Plugin
— Shows a dependency graph of the projects using graphviz. Requires a graphviz installation on the server.
FindBugs Plugin
— This plugin generates the trend report for FindBugs, an open source program which uses static analysis to look for bugs in Java code.
Grinder Plugin
— This plugin reads output result files from Grinder performance tests, and will generate reports showing test results for every build and trend reports showing performance results across builds.
JSUnit plugin
— This plugin allows you publish JSUnit test results
Performance Plugin
— This plugin allows you to capture reports from JMeter and JUnit . Hudson will generate graphic charts with the trend report of performance and robustness.
PerfPublisher Plugin
— This plugin generates global and trend reports for tests results analysis. Based on an open XML tests results format, the plugin parses the generated files and publish statistics, reports and analysis on the current health of the project.
PMD Plugin
— This plugin generates the trend report for PMD, an open source static code analysis program.
Sonar plugin
— Quickly benefit from Sonar, an open-source dashboard based on many analysis tools like Checkstyle, PMD and Cobertura.
testng-plugin
— This plugin allows you to publish TestNG results.
Violations
— This plug-in generates reports static code violation detectors such as checkstyle, pmd, cpd, findbugs, codenarc, fxcop, stylecop and simian.
xUnit Plugin
— This plugin makes it possible to publish the test results of an execution of a testing tool in Jenkins.
Artifact uploaders
ArtifactDeployer Plugin
— This plugin makes it possible to copy artifacts to remote locations.
Artifactory Plugin
— This plugin allows deploying Maven 2, Maven 3, Ivy and Gradle artifacts and build info to the Artifactory artifacts manager.
Confluence Publisher Plugin
— This plugin allows you to publish build artifacts as attachments to an Atlassian Confluence wiki page.
Deploy Plugin
— This plugin takes a war/ear file and deploys that to a running remote application server at the end of a build
FTP-Publisher Plugin
— This plugin can be used to upload project artifacts and whole directories to an ftp server.
HTML Publisher Plugin
Publish Over FTP Plugin
— Publish files over FTP
Publish Over SSH Plugin
— Publish files and/or execute commands over SSH (SCP using SFTP)
S3 Plugin
— Upload build artifacts to Amazon S3
SCP plugin
— This plugin uploads build artifacts to repository sites using SCP (SSH) protocol.
Hudson Helper for Android
— Monitor your CI builds right from your Android device.
Hudson Mobi, the iPhone, iPod and Android client for Hudson CI
— The iPhone, iPod and iPad client for Hudson CI monitoring on the road.
Hudson Monitor for Android
— Monitor and display the status of your builds on your Android™ phone.
External site/tool integrations
Jira Issue Updater Plugin
— This is a Jenkins plugin which updates issues in Atlassian Jira (by changing their status and adding a comment) as part of a Jenkins job.
JIRA Plugin
— This plugin integrates Atlassian JIRA to Jenkins.
ChuckNorris Plugin
— Displays a picture of Chuck Norris (instead of Jenkins the butler) and a random Chuck Norris 'The Programmer' fact on each build page.
UI plugins
Active Directory plugin
— With this plugin, you can configure Jenkins to authenticate the username and the password through Active Directory.
Audit Trail Plugin
— Keep a log of who performed particular Jenkins operations, such as configuring jobs.
JClouds Plugin
— This plugin uses JClouds to provide slave launching on most of the currently usable Cloud infrastructures.
Checkstyle Plugin
— This plugin generates the trend report for Checkstyle, an open source static code analysis program.
FindBugs Plugin
— This plugin generates the trend report for FindBugs, an open source program which uses static analysis to look for bugs in Java code.
JIRA Plugin
— This plugin integrates Atlassian JIRA to Jenkins.
M2 Release Plugin
— This plugin allows you to perform a release build using the maven-release-plugin from within Jenkins.
PMD Plugin
— This plugin generates the trend report for PMD, an open source static code analysis program.
Meme Generator Plugin
— Generate Meme images when a build fails (and returns to stable), and post them on the project page.
best strategies for implementation of equals() and hashcode() in your persistent classes
The general contract is: if you want to store an object in a List, Map or a Set then it is an requirement that equals and hashCode are implemented so they obey the standard contract as specified in the documentation
Why are equals() and hashcode() importantNormally, most Java objects provide a built-in equals() and hashCode() based on the object's identity; so each new() object will be different from all others.
recommend using the "semi"-unique attributes of your persistent class to implement equals() (and hashCode()
The database identifier property should only be an object identifier, and basically should be used by Hibernate only
Instead of using the database identifier for the equality comparison, you should use a set of properties for equals() that identify your individual objects
"name" String and "created" Date, I can use both to implement a good equals() method
Workaround by forcing a save/flush
work around by forcing a save() / flush() after object creation and before insertion into the set
Note that it's highly inefficient and thus not recommended
However, those locks limit concurrency and scalability when
multiple transactions are executing insert statements at the
same time
For INSERT statements where the
number of rows to be inserted is known at the beginning of
processing the statement, InnoDB quickly
allocates the required number of auto-increment values without
taking any lock, but only if there is no concurrent session
already holding the table-level AUTO-INC lock
(because that other statement will be allocating auto-increment
values one-by-one as it proceeds)
obtains
auto-increment values under the control of a mutex (a
light-weight lock) that is not held until
the statement completes, but only for the duration of the
allocation process
recovery scenarios when SQL statements are
replayed from the binary log
Using auto-increment with replication
set
innodb_autoinc_lock_mode to
0 or 1 and use the same value on the master and its slaves
Auto-increment values are not ensured to be the same on the
slaves as on the master if you use
innodb_autoinc_lock_mode =
2 (“interleaved”) or configurations where the
master and slaves do not use the same lock mode