Java Persistence API (JPA)
Java Contexts and Dependency Injection (CDI)
Java Authentication and Authorization Service (JAAS)
Java Authorization Contract for Containers (JACC)
JavaMail API
Bean Validation
Enterprise JavaBeans
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.
"HTTP application to use Fiddler?
You can either directly configure the WinHTTP application to point to Fiddler, in code, or you can use the following command at the command prompt to tell WinHTTP to use Fiddler:
On XP or below:
proxycfg -p http=127.0.0.1:8888;https=127.0.0.1:8888
...or this one to force WinHTTP to use WinINET's proxy settings:
proxycfg -u
On Vista or above, use an Elevated (admin) command prompt:
netsh winhttp set proxy 127.0.0.1:8888
Note: On Windows 7 and earlier, netsh is bitness specific, so you may want to run the above command twice: first using the 32bit NETSH and then using the 64bit NETSH. This blog has more information. This issue was fixed in Windows 8; you can call either NetSh just once to set the proxy for both 32bit and 64bit WinHTTP hosts.
Capture traffic from a different account, like ASP.NET on IIS or from a Windows Service?
Trying to capture SOAP calls coming from ASP.NET or some background service process?
By default, Fiddler registers as the proxy only for the current user account (ASP.NET runs in a different user account). To get a background process (like the ASP.NET or IIS process) to use Fiddler, you must configure that process to use Fiddler.
Typically, this is done by editing web.config or machine.config for the ASP.NET installation, or the configuration for the code running within the Windows Service.
Please see http://msdn.microsoft.com/en-us/magazine/cc300743.aspx#S4 or the section on .NET or WinHTTP, depending on which network stack the service is using.
Configure Windows Phone 7 to use Fiddler?
Please see http://blogs.msdn.com/b/fiddler/archive/2011/01/09/debugging-windows-phone-7-device-traffic-with-fiddler.aspx for actual device hardware, or http://blogs.msdn.com/b/fiddler/archive/2010/10/15/fiddler-and-the-windows-phone-emulator.aspx for the emulator.
Configure Google Nexus 7 (Andoid 4.1 Jellybean) to use Fiddler?
Please see this page.
Configure Android Emulator to use Fiddler?
Please see http://au
"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
Spring is controlled by ONE COMPANY. It is not an independent open source organization like Apache. At least with Java EE there are multiple OPEN SOURCE implementations. How long before VMWare decides its $500 million investment needs to be recouped and they start charging for Spring in a big way? Don’t think it can happen? Think again…VMWare is in the same poor position BEA/WLS was against JBoss with Red Hat’s VM/Cloud tech eating away at VMWare’s margins. There is a much higher chance of them scrambling for revenue sources than Red hat ever being acquired by Oracle.
Core JavaServer Faces
JSF 2.0 Cookbook
JavaServer Faces 2.0, The Complete Reference
EJB 3.1 Cookbook
Enterprise JavaBeans 3.1
Beginning Java EE 6 with GlassFish 3
Java EE 6 with GlassFish 3 Application Server
Java EE 6 Development With NetBeans 7
Real World Java EE Patterns Rethinking Best Practices
Real World Java EE Night Hacks Dissecting the Business Tier
if you’ve heard Rod Johnson speak he is always adamant that Spring has replaced Java EE. Its good to see that his rhetoric is utter BS!
Sorry, even Spring MVC sucks as much balls as JSF does.
Java EE wins over Spring
CDI closed API hole
Application server started to get their act together with regards to boot time. It started with Glassfish and ended with JBoss 7. Both of which can boot in a matter of seconds.
Arquillian allows you to run your unit tests in a real environment with real transactions, etc. Personally I always despised mocks because they didn’t test in the environment you were going to run in. I thought they were pointless and to this day, I refuse to use this testing pattern.
I’m glad Rod and company were able to cash out with the VMWare acquisition before Java EE was able to regain its dominance
SpringSource pushed Java EE to innovate and for that I’m very grateful. For Java EE, it was either evolve or die. They evolved, now its time for Spring to die.
Java - Adobe BlazeDS, Adobe LiveCycle Data Services (formerly known as Flex Data Services), Exadel Flamingo, RED 5, Cinnamon, OpenAMF, Pimento, Granite, WebORB for Java
must be unpredictable (random enough) to prevent guessing attacks
good PRNG (Pseudo Random Number Generator) must be used
must provide at least 64 bits of entropy
Session ID Content (or Value)
content (or value) must be meaningless
identifier on the client side
meaning and business or application logic associated to the session ID must be stored on the server side
session objects or in a session management database or repository
create cryptographically strong session IDs through the usage of cryptographic hash functions such as SHA1 (160 bits).
Session Management Implementation
defines the exchange mechanism that will be used between the user and the web application to share and continuously exchange the session ID
token expiration date and time
This is one of the reasons why cookies (RFCs 2109 & 2965 & 6265 [1]) are one of the most extensively used session ID exchange mechanisms, offering advanced capabilities not available in other methods
Transport Layer Security
use an encrypted HTTPS (SSL/TLS) connection for the entire web session
not only for the authentication
process where the user credentials are exchanged.
“Secure” cookie attribute
must be used to ensure the session ID is only exchanged through an encrypted channel
never switch a given session from HTTP to HTTPS, or viceversa
should not mix encrypted and unencrypted contents (HTML pages, images, CSS, Javascript files, etc) on the same host (or even domain - see the “domain” cookie attribute)
should not offer public unencrypted contents and private encrypted contents from the same host
www.example.com over HTTP (unencrypted) for the public contents
secure.example.com over HTTPS (encrypted) for the private and sensitive contents (where sessions exist)
only has port TCP/80 open
only has port TCP/443 open
“HTTP Strict Transport Security (HSTS)” (previously called STS) to enforce HTTPS connections.
Secure Attribute
instructs web browsers to only send the cookie through an encrypted HTTPS (SSL/TLS) connection
HttpOnly Attribute
instructs web browsers not to allow scripts (e.g. JavaScript or VBscript) an ability to access the cookies via the DOM document.cookie object
Domain and Path Attributes
instructs web browsers to only send the cookie to the specified domain and all subdomains
“Domain” cookie attribute
“Path” cookie attribute
instructs web browsers to only send the cookie to the specified directory or subdirectories (or paths or resources) within the web application
vulnerabilities in www.example.com might allow an attacker to get access to the session IDs from secure.example.com
Expire and Max-Age Attributes
“Max-Age”
“Expires” attributes
it will be considered a
persistent cookie
and will be stored on disk by the web browser based until the expiration time
use non-persistent cookies for session management purposes, so that the session ID does not remain on the web client cache for long periods of time, from where an attacker can obtain it.
ie. never? ;)
though then, you end up with 5,932 unread emails in your inbox and 113 angry co-workers!
To combat such interruption, check these tools 3 times a day – when you first get into the office in the morning, around lunch, and before going home for the night – and turn them off otherwise.
There are two basic methods that a developer can use to grant
a SWF file access to assets from sandboxes other than that of the
SWF file:
The Security.allowDomain() method (see Author (developer) controls)
The URL policy file (see Website controls (policy files))
distinction between loading content and extracting or accessing
data
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
for each workspace, in files stored in <workspace>/.metadata/.plugin/org.eclipse.core.runtime/.settings
for each project --for project-level settings -- in files stored in a .settings sub-directory of your project folder
Is there an UML editor for Eclipse?
An Eclipse Modelling project-based UML editor can be installed from the Eclipse update site "Modelling > UML2 Tools SDK". See Creating UML 2 diagrams with Eclipse UML2 Tools - Tutorial for an introduction.
How do I debug Eclipse? How can I see what plug-ins are being started? Why aren't the plug-ins I installed showing up in the UI? How do I start the OSGi console?
Debugging OSGi Bundle Loading Issues
There are a few flags you can pass to Eclipse on the commandline or in your eclipse.ini file that might help:
-consolelog - log everything in workspace/.metadata/.log to the console where you launched Eclipse as well
-debug - more verbose console output
-console - start the Equinox OSGi console to interact with OSGi directly
-noexit - when Eclipse closes, keep the OSGi console running until you type 'exit' or hit CTRL-C so you can keep debugging
See Where Is My Bundle? for an overview of how to use the OSGi console for diagnosing problems.
Debugging Eclipse Using Eclipse
You can also debug an Eclipse instance from another instance through remote debugging:
Start the instance to be debugged with "-vmargs -Xdebug -agentlib:jdwp=transport=dt_socket,server=y,address=8000". You should see a message like "Listening for transport dt_socket at address: 8000"
Open Run → Debug Configurations... and create a Remote Java Application configuration with connection type "Socket Attach" and connecting to the client at port 8000. Set the project to a bundle project with the right dependencies for the bundles that you are trying to debug.
Launch the configuration.
The JDWP agent supports other useful arguments, like "suspend=n" so that the process does not suspend. For more details, see Oracle's Java Debug Wire Protocol (JDWP) connection docs.
I just installed Eclipse on my 64-bit system, but it does not start. What is the problem?
Make sure that you have downloaded the 64-bit version of Eclipse (it should have x86_64 somewhere in its name) and have installed a 64-bit JVM. Likewise, if you run a 32-bit JVM, then you should use the 32-bit version of Eclipse.
When I start Eclipse it says "Workspace in use or cannot be created, choose a different one.", what should I do?
There are a couple of things you can try.
Delete the workspace/.metadata/.lock file.
Check your running processes to make sure there aren't any remaining Java or Eclipse processes running. When in doubt, restart your computer. :)
Try starting Eclipse on a different workspace (from the workspace selection dialog, or by using a command line argument like -data /home/user/tmp-workspace), then switch back to your original workspace.
How do I uninstall a plug-in?
You can view your list of installed software by checking your installation details from about dialog.
Help > About > Installation Details
I'm having memory, heap, or permgen problems, what can I do?
FAQ How do I increase the heap size available to Eclipse?
FAQ How do I increase the permgen size available to Eclipse?
Eclipse seems to be hanging on startup. How can I find out why?
If none of the solutions outlined in this section reveal the problem, then you can try debugging an Eclipse instance as a debug target from another Eclipse instance. This is surprisingly easy:
Start Eclipse in a "new" blank workspace (e.g., C:\TEMP\WS, or /tmp)
Create a new Debug configuration: Run -> Debug Configurations; then click on "Eclipse Applications" and select the New Launch Configuration.
If you believe it's something about a particular workspace, then set the workspace to your normal workspace.
If you believe the hang is caused by a particular plugin, disable the plugin and verify.
Launch and then see.
Using this approach, you can break with the debugger to see where hangs are occurring. You can also change the selection of plugins that the instance is launched with.
I was working on a project and doing something or other does not work. Where should I start?
Try refreshing your projects.
Try cleaning your your projects using the menu item Project/Clean to trigger a rebuild.
Try closing/reopening your projects.
Try restarting Eclipse.
4.2 Where are Eclipse's log files located?
Where are Eclipse's log files located?
<workspace>/.metadata/.log
You can view this workspace log as a view if you have PDE installed on your computer (which you would if you have downloaded the Eclipse SDK). You can open that view via Window -> Show View -> Other -> PDE Runtime -> Error Log.
<eclipse install>/configuration/<sometimestamp>.log
<eclipse install>/configuration/org.eclipse.update/install.log
Where are Eclipse preferences stored?
Where are Eclipse preferences stored?
Where are Eclipse preferences stored?
Where are update site bookmarks stored?
It is within an XML file called <user_home>/.eclipse/org.eclipse.platform_3.1.2/configuration/org.eclipse.update/bookmarks.xml. Your Eclipse version may vary.