What are the pros and cons to adopting the Java rules engines JESS and Drools?
Use a rule engine if you need to separate the business rules from the application logic. The Does Your Project Need a Rule Engine article has a good example:
For example, a typical storefront system might involve code to calculate a discount:
if (product.quantity > 100 && product.quantity < 500) { product.discount = 2; } else if (product.quantity >= 500 && product.quantity < 2000) { product.discount = 5; } else if (product.quantity >= 2000) { product.discount = 10; }
A rule engine replaces the above with code that looks like this:
ruleEngine.applyRules(product);
Up to you to decide whether putting a rule admin console in the hands of non-technical people is a good thing or not :)
More details in Should I use a Rules Engine?, Why use a Rule Engine?, Some Guidelines For Deciding Whether To Use A Rules Engine and on Google.
Are there any other players?
Other players include JRules, Corticon (JRules is the most famous IMO - which doesn't mean the best).
how do they compare in other areas like ease of use, performance, level of integration with your code?
Can't tell you precisely, I only have a little (positive) experience with Drools. But you'll get some feedback from blog posts like JBoss Drools vs ILog JRules - an anecdotal story (be sure to read it) or Working with Drools from a JRules perspective. I'm sure you can find more of them on Google (but I would give Drools a try).