text:
15.18 acres in Greene County with beautiful views of the Appalachian and Great Smoky Mountains, as well as Cherokee National Forest. Lot has road frontage on Hwy 70 and crosses Back Creek before opening up to a large cleared area with portable 14 x 40 metal garage and site of prior mobile home. Property is currently classified as Forest since...15.18 Acres : $99,900
15 Acres With Cleared Site For
Greeneville : Greene Co : TN
RE/MAX Real Estate Ten


text:
If you want to restore back your X-BO Super 1, unroot your phone and go back to Stock Firmware from some custom ROM then this guide is made out for you. Android is great, but sometimes, the version you get with your X-BO Super 1 whether its latest Android version. Your phone will perform well at that time, but after a few months, you can experience freezing or hanging problem on your X-BO Super 1 smartphone. There is some issue that is not going away by clearing cache or even by a factory reset. Flashing stock ROM resolves several software problems or another sort of issues in a smartphone. In this post, we will provide you a detailed guide, which will not only include all the basic flashing details, but also a step-by-step instruction to easily flash Stock Rom on your X-BO Super 1 in few minutes. It is necessary for the Android smartphone to update the firmware in its stock firmware. Restoring or flashing back factory (stock) ROM on your X-BO Super 1 is easy to install a new operating system on your desktop or laptop system. It is also easy when you become familiar with the whole process. You do not need any specialization to do this procedure. We give you all the necessary files in Flash Stock Rom on X-BO Super 1. Before we get started with the step-by-step tutorial, make sure that you have the following tools ready and in place to begin.
Advantage Of Stock ROM
Advantage Of Stock ROM
The stock firmware operating system is the result of many research and testing done by the device manufacturer and/or mobile service carrier. The benefits of updating your X-BO Super 1 device include.
- A set of new features with the latest updates that you might be missing out on.
- Flashing Stock ROM can solve several software issues.
- Essential security patches to keep your X-BO Super 1 device safe and secure.
- Improved hardware and software performance along with optimizations.
- Latest updates are pushed automatically to X-BO Super 1 by the device manufacturer.
- Download the correct stock firmware. You can check your model number by navigating to [To check your device model: Go to Settings >> About phone >> model number].
- This Stock Firmware has to be installed on the X-BO Super 1 only; if tried on another smartphone, your device might get bricked.
- Enable the USB Debugging & OEM unlock of X-BO Super 1. To allow USB debugging Navigate to Setting >> About Phone >> Now Tap on Build Number 7 times until you see a message on the screen like " You Are Now A Developer."
- You need a Laptop or PC & USB cable.
- Your X-BO Super 1 should have at least 60-70 % of battery to perform the flashing process.
- Download all the required files from the below download link and also Install appropriate Android USB Driver for your device.
Download Links:-
Download Links:-
How To Install Stock ROM on X-BO Super 1
How To Install Stock ROM on X-BO Super 1
This process will not only return your X-BO Super 1 to its original firmware, but it is also the very useful procedure if somehow you messed-up your device. you can Unbrick or Fix Bootloop using Stock Firmware. Here's the guide about How to Install Stock firmware on X-BO Super 1.
Thank you for reading this post to install stock ROM on X-BO Super 1 and stay connected to Kbloghub to continue enjoying these types of posts. If you find that we have missed out anything, then please let us know via comments. Also, you can give a call for a dead link to replace it with a new one. If you find this post helpful, please share this post on social media. It will take only a few moments and it will be quite easy and helpful for others.

subset: commoncrawl


text:
Three years ago at the Forum for the Future, Secretary Clinton announced the Civil Society 2.0 initiative, in Marrakech, Morocco. The program was created to help grassroots organizations around the world increase their digital literacy to share their stories, build their memberships and connect to their community of peers around the world. Today, the TechCamp program has become the cornerstone of this initiative by providing hands-on training to more than 1,200 organizations from 84 countries to date.
Three years after the launch of the Civil Society 2.0 Initiative, we returned to Morocco to host TechCamp Morocco. Focused on youths and employment, this TechCamp brought together 90 civil society leaders from Libya, Egypt, Algeria, and Morocco with 20 Moroccan and international tech experts.
The Middle East and North Africa are experiencing substantial population growth. Today, more than 100 million people (30 percent of the population) in North Africa are between the ages of 15 and 29. Increased numbers of youth has had a very positive effect on the rate of digital literacy in the region, but has also led to a great deal of competition in the work force.
Morocco specifically has one of the lowest employment rates in the MENA region. With nearly 22 percent of men and 38 percent of women facing unemployment in Morocco, civil society organizations dedicated to progress and innovation are essential. Increasing the digital literacy of such organizations will dramatically increase their ability to reach larger audiences and affect positive change.
Over the course of two days, participants worked on ways to leverage free or low-cost digital tools to advance their missions. Interactive training sessions focused on topics from online organizing, fundraising, social media tools, mapping, to the use of mobile technology, video streaming, and more.
One group identified the difficulty of connecting local Moroccan artisans to a global market. To address the problem, they proposed to create a website that would connect craftsmen in need of marketing services with local and international companies who specialize in those areas. While there are many websites like this one that are available in the United States, there is not yet a technology that is widely used in North Africa. By displaying products using video and images in way that is visually appealing, craftsmen would be able to market their products to a larger audience. The group hopes to have the site launched by March 2013.
One NGO from Libya, the Electronic Prosthesis Engineering Team (EPET), was concerned with the growing number of people in their country who are need of prosthetic services but do not have access to the information or facilities. This group aims to use social media and SMS technology to collect data about those in need of services, map the locations of those in need and finally, provide that information to relevant stakeholders. This project will help raise awareness about the issue and hopefully link these communities with NGOs, universities, and health providers.
Another group was concerned with the ability of university students to interact, communicate and influence decision making in their communities. Working with technologist Gavin Marshall, the group decided to use Mxit, an Africa-based mobile platform, to engage students. Working with the platform, their goal is to sign up as many students are possible, allowing them to easily share their ideas for change. Mxit has a large online community and would allow students to instantly connect with a diverse local and international audience. As one participant explained it, "This gives a Moroccan solution to a Moroccan need. Moroccan students are putting the information in and helping to influence decision making in our communities."
These stories are only a few examples of the innovative and inspiring ideas shared at TechCamp Morocco. The passion of each and every person who participated made the event a huge success. As Gavin Marshall from Mxit put it, "It was such a treat to be with like-minded people who want to change the world through technology."
We are confident that the powerful connections made at TechCamp will continue to grow and effect positive change in the months and years ahead. To learn more about TechCamp Morocco, you can view the video, here, and more photos from the event on Flickr. Please stay connected to the program at TechCampGlobal.org.
Editor's Note: Secretary of State Hillary Rodham Clinton will travel to Morocco, Tunisia, and the United Arab Emirates, December 11-14. She will co-host the 9th Forum for the Future Ministerial with the Government of Tunisia on December 13.
Louis I. in California writes:
Excellent program. Thank you for your service. It's very important to examine as many avenues of communication as we can.
Simmou M. in Morocco writes:
Tres bonne initiative!
Younes C. in Morocco writes:
It was a great experience thanks to all of you


text:
Every student at SCU has the potential to do something extraordinary.
A Santa Clara education gives you more than a degree—it transforms the way you see the world and your place in it. Grounded in ethics and social justice, it empowers you to help find solutions to global problems and effect change in your own community.
You'll take classes from professors who are as dedicated to teaching as they are to their own research and scholarship. You'll learn from experience through community-based coursework, internships, and independent research, all while being immersed in the innovation, energy, and opportunity of Silicon Valley.
We offer more than 50 majors, minors, and special programs for law, medicine, and teaching. Our graduate programs span business, engineering, education, counseling psychology, law, theology, and pastoral ministries.
Taste for Yourself
Taste for yourself what flavors Cuban food on the island. Listen to stories from the street. Walk the rows of a farm. You might learn a few things that textbooks and statistics and crafted political messages don't reveal.
Walk Across California
An epic journey whereby one foot is put in front of the other to discover, up close and personal, who and what and where is the Golden State.


text:
My Haynes Story!
This is the story of my accidental find on my Haynes family! My youngest son, James, was working on his Division Two of the 4-H Genealogy Project that required photos of tombstones for his ancestors and other relatives. Since most were buried in Kentucky in about 6 counties, it seemed wise to plan a route to go from cemetery to cemetery and to know who we wanted to get a photo of their grave marker. Best way to do that was to go to Willard Library and check the "Cemetery Inscription" books. These generally had the name of the cemetery with location and listed everyone's information on their personal little monument. I sent James back to get the Christian County books while I got out our charts & records of who we were looking for.
Odd that someone had left a book on the table instead of placing it on the cart as requested by the library. Coincidentally, it was a cemetery inscription book for Ohio County, KY. I didn't know the library had this book... they only had one book for this county for years - a marriage record book. This marriage book listed the marriage of my ancestors William Allen Kimble to Hannah Haynes 25 Aug 1825. According to the census records, they lived in Grayson County, Ky adjoining Ohio Co. to the east. So, while I had this cemetery book in my hand, I checked for Kimble's in the index. To my amazement there were many listed! Quickly, I looked for Haynes... there were even more! I found the cemetery that William & Hannah were buried. This book is what some call "annotated" version which meant (to me) that it was a notable work (possibly blessed by a Priest or Rabbi) or that it contained notes appended thereof. I think the latter is correct! ;) The note for Hannah stated she was the daughter of John Barton Haynes & Rhoda Huff. RHODA?!!!? So, that is where the name "Rhoda" came from! The daughter of Hannah & William Kimble was Rhoda Kimble who married William Wood (my great-great grandparents).
Of course, I needed to prove all of this. I visited the graves of all those I just mentioned and the library in Fordsville. They suggested that I go to the Grayson Co. Library in Leitchfield where I found a booklet on the Haynes of Grayson, Ohio & Breckinridge Counties of Kentucky. Information from the census & the John Barton Haynes Bible listed all of his children including Hannah married to William Kimble. Now, this library suggested going to the one in Owensboro. There I came out with close to 300 pages of copied data documenting this Haynes/Huff family costing about $40! And it was worth every penny... I had discovered five new generations and eight new surnames of direct ancestors. Incredible find!
I remembered seeing in the TSGS 5-Generation Book that someone else had Haynes in Kentucky. It was Joan Parker (former Special Collections Librarian for Willard Library & currently at the Newburgh Public Library) and her ancestors were John Barton Haynes & Rhoda Huff, too!!! Later, I learned that the late Sam McDowell descended from this family of Haynes. Sam published a lot of genealogical books for Kentucky researchers and attended most of the TSGS Seminars as a vendor. We had become friends over the years through these seminars.
I want to add this little story to this. After I learned that Joan & I had the same ancestors, we exchanged information each had. And I was surprised at all that she had that was different than what I had found! I went by the old Newburgh Library by the river to give Joan copies of what I had. I was telling her that it just seemed like we could just pick up any file, folder or book and get more information. I reached out grabbing a book off of the shelf we happened to be near and stated: "I could pick up any book look in the index and find our Haynes family" (while turning to the index). To my surprise there was John Barton Haynes!!! Joan did not believe me when I said I just picked this book at random. Becky was there and said that I had not looked at any books, we were just standing there waiting for Joan to show up after she was called to meet us! And, that is the truth!
- Written by JGWest
This blog was originally set-up for the Tri-State Genealogical Society. Under the new leadership, this blog and the original web site are no longer officially recognized by the society; however, it is continuing to be maintained by its creator, John G. West.
Wednesday, October 20, 2010
"Looking for One Thing, But Found Another!"
Labels: Becky West, Cemeteries, Genealogy 4-H Project, Haynes Family, James West, JGWest, Joan Elliott Parker, Kimble Family, Newburgh Library, Willard Library
2 comments:
- Claudette (Ricketts) Pfingston said...
Wow, John, Great "find"!! Don't you just LOVE genealogy??!!
- October 22, 2010 at 1:43 PM
- Claudette (Ricketts) Pfingston said...
WOW! John, What a "find"!!
Don't you just love genealogy??!!
- October 22, 2010 at 1:46 PM
Subscribe to: Post Comments (Atom)


text:
full size
Product Details
Inspired by traditional British riding jackets, our wear-with-all third piece features a longer, leaner silhouette with a nipped-in waist for a flattering effect. Crafted in one of our favorite menswear-inspired herringbones in completely crush-worthy colors, it's the kind of jacket you'll wear—and love—for seasons to come (we're wearing ours riding subways, bicycles and, of course, horses).Online only.
Size & Fit Details


text: "The father of Ridge Barden spoke with NewsChannel 9, remembering the varsity player who passed away after suffering head injuries during a Friday night football game. Saturday morning, he issued this statement: 'I have no words right now, my world has been devastated. But I want to say thank you to all of you that have written me and are sending your prayers to me. October 14th will go down as the worst day of my life. I don't know what I'm going to do without you Ridge, I love you so much, and cannot even grasp that you are not here.'" [9WSYR; The Post-Standard] (H/T Jared)


text:
By now you should know that Hummus is an amazing infact the best source of protein and iron. This dish is a proof that some of the best tasting things in life are the simplest to make and requires no cooking. Read more…
All posts tagged how to make tahini
Quick and Easy Hummus Recipe
May 18, 2016
Comments: 0 Posted by: Fariha Baloch Categories: All Posts, Food Tags: 2 minute recipes, 5 minute hummus recipe, badass recipe, chickpeas recipes, easy hummus, eat healthy live healthy, fariha baloch, fashion blogger, fashion stylist, food blogger, healthy diet, healthy diet recipe, healthy living, healthy olive oil diet, how to make hummus, how to make tahini, hummus and pita bread, hummus nutritional facts, hummus recipe, iron rich, middle eastern diet, no cook recipes, pakistani blogger, perfec hummus, protein diet, protein rich diet, quick and easy recipe, roasted sesame seed dip, sesame seeds, stay chic, stay healthy, tahini dip for salads


text:
Reliable Supply Chains: An Answer to Competitiveness and Growth Challenges
In today's interconnected world economy, efficient, reliable and cost-effective supply chains have become necessities in global trade. Trading in a timely manner with minimal transaction costs allows a country to expand to overseas markets and improve its overall economic competitiveness. For many countries, however, identifying bottlenecks along a supply chain and then determining which logistics procedures and infrastructure to upgrade can be a challenging feat.


text:
The purpose of this guide is to document only those changes that are needed to successfully run and deploy AS 5 applications on WildFly 8.It provides information on to resolve deployment and runtime problems and how to prevent changes in application behaviour. This is the first step in moving to the new platform. Once the application is successfully deployed and running on the new platform, plans can be made to upgrade individual components to use the new functions and features of WildFly.
Migration Overview
WildFly 8 is structured differently from previous versions of JBoss AS, so you may want do a little research before you attempt to migrate your application. Getting Started with WildFly in the Getting Started Guide has a lot of useful information, including a table that lists the Java Enterprise Edition 6 Web Profile features that are supported in WildFly. If your application uses features that go beyond the Web Profile specification, you must use release WildFly 8 or later as it supports the EE6 Full Profile. You should also read Getting started with WildFly for helpful information about how to install and run the application server.
The rest of this document describes some of the changes you might need to make to your application to successfully deploy and run it on WildFly.
Before making any modifications to your application, make sure to create a backup copy.
Update Application Dependencies Due to Class Loading Changes
Modular class loading overview
Class loading in WildFly is considerably different than in previous versions of JBoss AS. Class loading is now based on the JBoss Modules project. Instead of the more familiar hierarchical class loading environment, WildFly's class loading is based on modules that have to define explicit dependencies on other modules. Deployments in WildFly are also modules, and do not have access to classes that are defined in jars in the application server unless an explicit dependency on those classes is defined.
While WildFly modules are isolated by default, as part of the deployment process some dependencies on modules defined by the application server are set up for you automatically. For instance, if you are deploying a Java EE application, a dependency on the Java EE API's will be added to your module automatically. Similarly if your module contains a beans.xml file, a dependency on Weld will be added automatically, along with any supporting modules that weld needs to operate. For a complete list of the automatic dependencies that are added see Implicit module dependencies for deployments.
Understand module dependencies
The deployers within the server "implicitly" add some commonly used module dependencies, like the javax.api and sun.jdk, to the deployment so that the classes are visible to the deployment at runtime. This way the application developer doesn't have to worry about adding them explicitly. How and when these implicit dependencies are added is explained in Implicit module dependencies for deployments.
For some classes, the modules must be specified explicitly in the MANIFEST.MF as Dependencies: or "Class-Path:" entries or in the jboss-deployment-structure.xml. Otherwise you may see ClassNotFoundExceptions, NoClassDefFoundErrors, or ClassCastExceptions. Tattletale is an excellent tool that can help you identify module dependencies in your application. Tattletale is described later in this document here: Use Tattletale to find application dependencies.
You may also see runtime errors and page redirects to the JBoss Seam Debug Page. Manifest entries are explained in more detail here: Class Loading in WildFly.
How to Package EARs and WARs
When you migrate your application, you may have to change the packaging structure of your EAR or WAR due to the class loading changes.
A WAR is a single module and all classes in the WAR are loaded with the same class loader. This means classes packaged in the WEB-INF/lib are treated the same as classes in WEB-INF/classes.
An EAR is different in that it consists of multiple modules. The EAR/lib directory is a single module, and every WAR or EJB jar deployment is also a separate module. Classes will not necessarily have access to other classes in the EAR unless explicit dependencies have been defined.
For more information on EAR and WAR packaging, see "WAR Class Loading" and "EAR Class Loading" in Class Loading in WildFly.
If you are using maven configure defaultLibBundleDir property to lib directory:
Create or modify files that control class loading in WildFly
If you have defined a class-loading element, you need to remove it. The behaviour that this provokes in EAP 5 is now the default class-loading behaviour in WildFly, so it is no longer necessary. If you do not remove this element, you will see a ParseError and XMLStreamException in your server log:
MANIFEST.MF file
Manually edited MANIFEST files
Depending on which components your application uses, you may need to add one or more dependencies to this file. There is more information about these dependencies in the following paragraphs.
The following is an example of MANIFEST.MF file that has been modified to contain dependencies and classpath entries:
|If you modify the MANIFEST.MF file, make sure to include a newline character at the end of the file.
How to define MANIFEST.MF file dependencies if you use Maven
If you use Maven, you may need to modify your pom.xml file to generate the dependencies for the MANIFEST.MF file.
If your application uses EJB 3.0, you may have a section in the pom.xml file that looks like the following:
If the EJB 3.0 code uses org.apache.commons.log, you will need to add that dependency to the MANIFEST.MF file. To do that, you will need to modify the plugin element in the pom.xml file as follows:
In the above example, the src/main/resources/MANIFEST.MF file only needs to contain the dependency entry:
Maven will generate the complete MANIFEST.MF file:
This file is a JBoss specific deployment descriptor that can be used to control class loading in a fine grained manner. Like the MANIFEST.MF, this file can be used to add dependencies. If can also prevent automatic dependencies from being added, define additional modules, change an EAR deployment's isolated class loading behaviour, and add additional resource roots to a module.
For additional information, see jboss-deployment-structure.xml.
In previous versions of JBoss AS, you controlled the order of deployments within an EAR through the use of the jboss-app.xml file. This is no longer the case. The Java EE6 spec provides the <initialize-in-order> element in the application.xml which allows control of the order in which the Java EE modules within an EAR are deployed.
In most cases you do not need to specify deployment order. If your application uses dependency injections and resource-refs to refer to components in external modules, in most cases the <initialize-in-order> element is not required because the application server is able to implicitly determine the correct and optimal way of ordering the components.
Assume you have an application that contains a myBeans.jar and a myApp.war within a myApp.ear. A servlet in the myApp.war @EJB injects a bean from myBeans.jar. In this case, the application server has the appropriate knowledge to make sure that the EJB component is available before the servlet is started and you do not have to use the <initialize-in-order> element.
However, if that servlet uses legacy JNDI lookup style remote references like the following to access the bean, you may need to specify module order.
In this case, the server is not able to determine that that EJB component is in the myBeans.jar and you need to enforce that the components in the myBeans.jar are initialized and started before the components in myApp.war. To do this, you set the <initialize-in-order> element to true and specify the order of the myBeans.jar and myApp.war modules in the application.xml file.
The following is an example that uses the <initialize-in-order> element to control deployment order. The myBeans.jar is deployed before the myApp.war.
The schema for the application.xml file can be found here at http://java.sun.com/xml/ns/javaee/application_6.xsd.
|You should be aware that setting <initialize-in-order> to true slows down deployment. It is preferable to define proper dependencies using dependency injections or resource-refs since it allows the container more flexibility in optimizing deployments.
Change ResourceBundle location
In previous versions of AS, the JBOSS_HOME/server/<servername>/conf/ was available in the classpath. Hence the properties files in that location were available in the classpath of the application.
In WildFly 8, to get those properties available in the classpath, package them within your application. For example, if you are deploying a .war then package those properties in WAR WEB-INF/classes/ folder. If you want those properties accessible to all components in a .ear, then package them at the root of some .jar and place that jar in EAR lib/ folder.
Where to Find Additional Information
For more information about the class loading changes in WildFly 8, see Class Loading in WildFly 8.
For more information about modular class loading, see the Module Compatible Classloading Guide.
For information about deployment module dependencies, see Deployment Module Dependencies.
Update the DataSource Configuration
In previous versions of the application server, the JCA data source configuration was defined in a file with a suffix of *-ds.xml. This file was then deployed in the server's deploy directory. The JDBC driver was copied to the server lib/ directory or packaged in the application's WEB-INF/lib/ directory.
In AS7, this has all changed. You will no longer package the JDBC driver with the application or in the server/lib directory. The *-ds.xml file is now obsolete and the datasource configuration information is now defined in the standalone/configuration/standalone.xml or in the domain/configuration/domain.xml file. The IronJacamar distribution features a migration tool that can help you convert your previous datasource configuration file into the new format. You can find more information about the tool here: IronJacamar Datasource and Resource Adapter Migration Tool .
A JDBC 4-compliant driver can be installed as a deployment or as a core module. A driver that is JDBC 4-compliant contains a META-INF/services/java.sql.Driver file that specifies the driver class name. A driver that is not JDBC 4-compliant requires additional steps, as noted below.
Define the datasource
In WildFly 8, a datasource is configured in the server configuration file. If you are running in domain mode, the configuration file is the domain/configuration/domain.xml file. If you are running in standalone mode, you will configure the datasource in the standalone/configuration/standalone.xml file. Schema reference information, which is the same for both modes, can be found here: Datasource Descriptors.
First, you will need to create a datasource element and a driver element for your JDBC driver and datasource information in the standalone.xml or domain.xml file. You will use some of the same information that was previously defined in the *-ds.xml file.
The following is an example of a MySQL datasource element:
A JAR that is JDBC 4-compliant contains a META-INF/services/java.sql.Driver file that specifies the driver class name. This is used by the server to find name of the class(es) of the Drivers which exist in that JAR.
This is an example of the driver element for a JDBC 4-compliant MySQL driver.
This is an example of the driver element for driver that is not JDBC 4-compliant. The driver-class must be specified since it there is no META-INF/services/java.sql.Driver file that specifies the driver class name.
For more information on how to add a MySQL driver, see Adding a MySQL datasource to JBoss AS 7.
Install the JDBC driver
The JDBC driver can be installed into the container in one of two ways: either as a deployment or as a core module. There are pros and cons to each approach, which will be outlined below. For a detailed explanation how to deploy JDBC 4-compliant driver jar, please refer to the DataSources chapter of the Admin Guide.
Install the JDBC driver as a deployment
When you install the JDBC driver as a deployment, it is deployed as a regular JAR. This is the recommended way to install the driver. When you run your application server in domain mode, deployments are automatically propagated to all servers to which the deployment applies; thus distribution of the driver JAR is one less thing for administrators to worry about.
Any JDBC 4-compliant driver will automatically be recognized and installed into the system by name and version. A JDBC 4-compliant JAR is identified using the Java service provider mechanism. It contains a text a file named "META-INF/services/java.sql.Driver", which contains the name of the class(es) of the Drivers which exist in that JAR. If your JDBC driver JAR is not JDBC 4-compliant, it can be made deployable by adding the java.sql.Driver file to the JAR or by deploying the JAR with an overlay. More information on that topic can be found here: Installing a JDBC Driver as a Deployment.
In WildFly 8 standalone mode, you simply copy the JDBC 4-compliant JAR into the AS7_HOME/standalone/deployments directory. Here is an example of a MySQL JDBC driver installed as a deployment:
|If the JDBC driver consists of more than one JAR, for example a JAR with the driver and a dependent license JAR, you can not install the driver as a deployment. You must install the JDBC driver as a core module.
Install the JDBC driver as a core module
To install the driver as a module, you will need to create a directory structure under the modules folder. This structure will contain the driver and a module.xml file to define the module.
For example, using the MySQL JDBC driver above, you would create a directory structure as follows:
In the main directory, you then create the following module.xml file:
The module name, "com.mysql", matches the directory structure for this module. Under dependencies, you specify the module's dependencies on other modules. In this case, as the case with all JDBC data sources, it is dependent on the Java JDBC APIs which are defined in another module named javax.api that is located under modules/javax/api/main.
|Make sure you do NOT have a space at the beginning of module.xml file or you will get a "New missing/unsatisfied dependencies" error for this driver.
Configure the datasource for Hibernate or JPA
If your application uses JPA and currently bundles the Hibernate JARs, you may want to use the Hibernate that is included with WildFly 8. You should remove the Hibernate jars from your application. You should also remove the "hibernate.transaction.manager_lookup_class" property from your persistence.xml as this is not needed.
Where to Find Additional Information
DataSource Configuration in WildFly 8
DataSource Descriptors
Admin Guide - DataSource Configuration
How to create and manage datasources in WildFly 8
Adding a MySQL datasource to WildFly 8.
Update the Resource Adapter Configuration
TODO: The following section on Resource adapters needs to be reviewed
In previous versions of the application server, the resource adapter configuration was defined in a file with a suffix of *-ds.xml.
In WildFly 8, a resource adapter is configured in the server configuration file. If you are running in domain mode, the configuration file is the domain/configuration/domain.xml file. If you are running in standalone mode, you will configure the resource adapter in the standalone/configuration/standalone.xml file. Schema reference information, which is the same for both modes, can be found here: Resource adapter descriptors. The IronJacamar distribution features a migration tool that can help you convert your previous datasource configuration file into the new format. You can find more information about the tool here: IronJacamar Datasource and Resource Adapter Migration Tool .
Define the resource adapter
The resource adapter descriptor information is defined under the <subsystem xmlns="urn:jboss:domain:resource-adapters:1.0"/> element in the server configuration file. You will use some of the same information that was previously defined in the *-ds.xml file.
The following is an example of a resource adapter element in the server configuration file:
TODO: The above section on Resource adapters needs to be reviewed
Update application JNDI namespace names
EJB 3.1 introduced a standardized global JNDI namespace and a series of related namespaces that map to the various scopes of a Java EE application. The three JNDI namespaces used for portable JNDI lookups are java:global, java:module, and java:app. If you use JNDI lookups in your application, you will need to change them to follow the new standardized JNDI namespace convention.
To conform to the new portable JNDI namespace rules, you will need to review the JNDI namespace rules and modify the application code to follow these rules.
Review the JNDI Namespace Rules
WildFly 8 has tightened up on JNDI namespace names to provide predictable and consistent rules for every name bound in the application server and to prevent future compatibility issues. This means you might run into issues with the current namespaces in your application if they don't follow the new rules.
Namespaces should follow these rules:
- Unqualified relative names like "ExampleDS" or "jdbc/ExampleDS"
should be qualified relative to "java:comp/env", "java:module/env", or
"java:jboss/env", depending on the context.
- Unqualified "absolute" names like "/jdbc/ExampleDS" should be
qualified relative to a "java:jboss/root" name.
- Qualified "absolute" names like "java:/jdbc/ExampleDS" should be
qualified the same way as #2.
- The special "java:jboss" namespace is shared across the entire AS
server instance.
- Any "relative" name with a "java:" lead-in must be in one of the five
namespaces: "comp", "module", "app", "global", or our proprietary
"jboss". Any name starting with "java:xxx" where "xxx" is a name which
is not equal to one of the above five would result in an invalid name error.
Modify your application code to follow the new JNDI namespace rules
Here's an example of a JNDI lookup in EAP 5.1. This code is usually found in an initialization method. Note the lookup name is: "OrderManagerApp/ProductManagerBean/local".
Here is an example of how the same lookup would be coded in WildFly 8. This code is defined as member variables. The lookup name now uses the new portable java:app JNDI namespace: "java:app/OrderManagerEJB/ProductManagerBean!services.ejb.ProductManager"
Examples of JNDI mappings in previous releases and how they might look now
(This needs input!)
|Previous Namespace
|New Namespaces
|java:module/ProductManagerBean!services.ejb.ProductManager (EE6 standard binding, only accessible within the same module)
|java:app/OrderManagerEJB/ProductManagerBean!services.ejb.ProductManager (EE6 standard binding, only accessible within the same application)
|java:global/OrderManagerApp/OrderManagerEJB/ProductManagerBean!services.ejb.ProductManager (EE6 standard binding, globally accessible)
|java:comp/UserTransaction (This will not be accessible for non EE threads, e.g. Threads your application directly creates)
|java:jboss/UserTransaction (Globally accessible, use this if java:comp/UserTransaction is not available)
Where to Find Additional Information
Java EE6 Tutorial - Portable JNDI Syntax
Application-specified Portable JNDI Names
Migrate remote EJB clients to the WildFly 8 client API
TODO: complete this section
Migrate EAP 5 Deployed Applications That Make Remote Invocations to WildFly 8
In WildFly 8, there are two ways to make remote invocations to the server:
- You can use the new JBoss specific EJB client API to do the invocation.
- You can use JNDI to lookup a proxy for your bean and invoke on that returned proxy.
This section covers option 2: coding changes required for clients that use JNDI.
In EAP 5, the EJB remote interface was bound in JNDI, by default, under the name "ejbName/local" for local interfaces, and "ejbName/remote" for the remote interfaces. The client application then looked up the stateful bean using "ejbName/remote".
In AS 7, you use the ejb: namespace for remote access to EJBs with the following syntax:
For stateless beans:
For stateful beans:
The values to be substituted in the above syntax are:
- <app-name> - the application name of the deployed EJBs. This is typically the ear name without the .ear suffix, however, the name can be overridden in the application.xml file. If the application is not deployed as a .ear, this value is an empty string. Assume this example was not deployed as an EAR.
- <module-name> - the module name of the deployed EJBs on the server. This is typically the jar name of the EJB deployment, without the .jar suffix, but can be overridden via the ejb-jar.xml. In this example, assume the EJBs were deployed in a jboss-as-ejb-remote-app.jar, so the module name is jboss-as-ejb-remote-app.
- <distinct-name> - an optional distinct name for the EJB. This example doesn't use a distinct name, so it uses an empty string.
- <bean-name> - by default, is the simple class name of the bean implementation class.
- <fully-qualified-classname-of-the-remote-interface> - the remote view fully qualified class name.
Update the Client Code
Assume you have deployed the following stateless EJB to an AS 7 server. Note that it exposes a remote view for the bean.
In EAP 5, the client EJB lookup and invocation was coded something like this:
In AS 7, using the information described above, the client lookup and invocation is coded like this:
If your client is accessing a stateful EJB, you must append "?stateful" to the end of the context lookup like this:
A complete working example, including both server and client code, can be found at the github repo here https://github.com/jbossas/quickstart/tree/master/ejb-remote.
For more information on remote invocations using JNDI, see EJB invocations from a remote client using JNDI.
Modify logging dependencies
JBoss LogManager supports front ends for all logging frameworks, so you can keep your current logging code or move to the new JBoss logging infrastructure. Regardless of your decision, because of the modular class loading changes, you will probably need to modify your application to add the required dependencies.
Update your application code for third-party logging frameworks
As of WildFly 8, logging dependencies are added by default. There is one caveat to this. If you're using log4j and you don't want to use the logging subsystem to configure your handlers (appenders), then you need to exclude the server copy of log4j. See the logging documentation
Modify code to use the New JBoss Logging Framework
To use the new framework, you will need the change your imports and code as follows to achieve the same results as above:
The JAR containing the JBoss Logging classes is located in the module named "org.jboss.logging". Your MANIFEST-MF file will look like this:
Dependencies: org.jboss.logging
For more information on how to find the module dependency, please see "How to Resolve ClassNotFoundExceptions" under the "Modular Class Loading" above.
Where to Find Additional Information
WildFly 8 Logging
JBoss Logging Tooling
Configure changes for applications that use Hibernate and JPA
If your application contains a persistence.xml file or the code uses @PersistenceContext or @PersistenceUnit, WildFly 8 will detect this during deployment and assume the application uses JPA. It will implicitly add Hibernate 4 and a few other dependencies to your application classpath.
If your application currently uses Hibernate 3 libraries, in most cases, this will not be a problem. You will be able to deploy and run successfully using Hibernate 4. However, if you see a ClassNotFoundExceptions when deploying your application you can try one of two following approaches:
- You may be able to resolve the issue by copying the specific Hibernate 3 JARs containing those classes into the application "/lib" directory or by adding them to the classpath using some other method. In some cases this may result in ClassCastExceptions or other class loading issues due to the mixed use of the Hibernate versions, so you will need to use the second approach.
- You need to tell the server to use only the Hibernate 3 libraries and you will need to add exclusions for the Hibernate 4 libraries. Details on how to do this are described here: JPA Reference Guide.
For more information on Hibernate and JPA, see JPA Reference Guide.
Update your Hibernate 3 application to use Hibernate 4
Changes for Hibernate 3.3 applications
- Hibernate "text" type now maps to JDBC LONGVARCHAR
In pre-3.5 versions of Hibernate, text type were mapped to JDBC CLOB. A new Hibernate type, "materialized_clob", was added to map Java String properties to JDBC CLOB. If an application has properties configured as type="text" that are intended to be mapped to JDBC CLOB, they should be changed to type="materialized_clob" in hbm mapping files, or, if using annotations, @Type(type = "text") should be replaced by @Lob.
- Numeric aggregate Criteria projections now return the same value type as their HQL counterparts. As a result, the return type from the following projections in org.hibernate.criterion have changed:
- "count" and "count distinct" projections now return a Long value (due to changes in CountProjection, Projections.rowCount(), Projections.count( propertyName ), and Projections.countDistinct( propertyName )).
- "sum" projections return a value type that depends on the property type due to changes in Projections.sum( propertyName ). Failure to modify your application code may result in a java.lang.ClassCastException.
- for properties mapped as Long, Short, Integer, or primitive integer types, a Long value is returned;
- for properties mapped as Float, Double, or primitive floating point types, a Double value is returned.
Changes for Hibernate 3.5 applications
- AnnotationConfigration must be merged into Configuration
Aside from the fact that AnnotationConfiguration is now deprecated, this usually is not of concern. However, if you are still using an hbm.xml file, you should be aware that WildFly 8 now uses the org.hibernate.cfg.EJB3NamingStrategy in AnnotationConfigration instead of the older org.hibernate.cfg.DefaultNamingStrategy that was previously used in Configuration. This can result in naming mismatches. If you rely on the naming strategy to default the name of a association (many-to-many and collections of elements) table, you may see this issue. To resolve it, you can tell Hibernate to use the the legacy org.hibernate.cfg.DefaultNamingStrategy by calling Configuration#setNamingStrategy and passing it org.hibernate.cfg.DefaultNamingStrategy#INSTANCE
- The namespaces for the Hibernate DTD files have changed.
- If you are using Oracle, the global environment variable "hibernate.jdbc.use_streams_for_binary" must be set to true if you are using "materialized_clob" or "materialized_blob" properties.
- If you are using PostgreSQL, the global environment variable "hibernate.jdbc.use_streams_for_binary" must be set to false if you are using CLOB or BLOB properties.
General Changes when migrating to Hibernate 4
In Hibernate 4.0 there is a new IdentifierGenerator implementations.
Hibernate 4.0 supplies a property that is called hibernate.id.new_generator_mappings and hibernate documentation states that it defaults to false for backward compatibility reasons - however in AS 7.1 this value defaults to true.
consider setting the value to false in persistence.xml in case you don't see the behaviour you had in your app in previous versions.
for more information - read about 5.1.2 Identifiers in general and about 18.104.22.168. Identifier generator more specifically* *here
Changes in JPA container managed behaviour
To comply with the JPA 2.0 specification section 126.96.36.199 requirements for persistence context propagation, jira AS7-1663 (An extended persistence context should not be propagated if there is no JTA transaction) was fixed in WildFly 8. If a SFSB with an extended persistence context, invokes another bean (not in an active JTA transaction) and the other bean uses a transactional entity manager. The extended persistence context will not be propagated to the transactional entity manager (propagation will occur if invoked with an active JTA transaction). If your application expects the extended persistence context to be propagated to the bean with the transactional entity manager, you need to change your app to do the invocation with an active JTA transaction.
Infinispan as Second Level Cache
JBoss Cache has been replaced by Infinispan for 2nd level cache (even for non-clustered use). This requires a change to the persistence.xml file. The syntax is slightly different, depending on if you're using JPA or Hibernate APIs. These examples assume you are using JPA.
Infinispan second-level cache settings
Here's an example of the persistence.xml file in EAP 5.1:
Here is what is needed to configure the same thing for a JPA application using Infinispan with WildFly 8:
Here is what is needed to configure the same thing for a native Hibernate application using Infinispan with WildFly 8:
Since JPA applications use Infinispan by default, fewer properties are needed to be specified. For native Hibernate applications you need to:
- Select the correct Hibernate transaction factory using the hibernate.transaction.factory_class property.
- Select the correct Hibernate transaction manager lookup class using the hibernate.transaction.manager_lookup_class property.
- Configure the Infinispan cache region factory using one of the two options below:
- If the Infinispan CacheManager is bound to JNDI, select JndiInfinispanRegionFactory as the cache region factory and add the cache manager's JNDI name
- If running JPA/Hibernate and Infinispan standalone or within third party application server, select InfinispanRegionFactory as the cache region factory
Migrate to Hibernate 4 Validator
Migrating from Hibernate Validator 3.x to 4.x means switching to a completely new code base and new API - the JSR 303 (Bean Validation). The good news is that this migration should be straight forward. Let's have a look at the different parts which needs updating.
Accessing the default ValidatorFactory
WildFly 8 binds a default ValidatorFactory to the JNDI context under the name java:comp/ValidatorFactory.
Life cycle triggered validation
When used in combination with Hibernate 4 life-cycle based validation will be automatically enabled by Hibernate Core. Validation will occur on entity INSERT, UPDATE and DELETE operations. You can configure the groups to be validated per event type using the properties javax.persistence.validation.group.pre-persist, javax.persistence.validation.group.pre-update, and javax.persistence.validation.group.pre-remove. The values of these properties are the comma-separated, fully specified class names of the groups to validate. The validation groups feature is part of the Bean Validation specification and it is recommended you get familiar with this new functionality. For a pure migration however, you can ignore groups as Hibernate Validator 3 did not have such a feature.
You can also disable life-cycle based validation by setting the javax.persistence.validation.mode to none. Other values are auto, callback and ddl, where auto is the default.
Manual validation
In case you want to manually validate, you need to create a Validator instance from the ValidatorFactory via ValidatorFactory.getValidator. or get Validator injected in your EJB, CDI bean or any other Java EE injectable resource. You can customize your Validator instance by using a fluent API starting with ValidatorFactory.usingContext. Using this API you can configure a custom MessageInterpolator, TraverableResolver and ConstraintValidatorFactory. All these interfaces are new to Hibernate Validator and are specified in the Bean Validation specification.
Once you have your Validator instance, use the validate methods to either validate your whole entity or just a single property. A call to any validate method will return a set of ConstraintViolation instances (in contrast to an array of InvalidValue instances in Validator 3). An empty set indicates a successful validation without any constraint violations.
Using the new Bean Validation constraints
This is the most visible change fro Hibernate Validator 3 constraints in your code base. To upgrade to Hibernate Validator 4 you have to use the constraints in the javax.validation.constraints and org.hibernate.validator.constraints packages. The former contains the standardized Bean Validation constraints whereas the latter contains some Hibernate Validator specific constraints. All constraints which existed in Validator 3 are available in Validator 4. You just need to import the right class and in some cases change the name and/or type of a constraint parameter.
Custom constraints
In Validator 3 a custom constraint needed to implement org.hibernate.validator.Validator. In Validator 4 the interface to implement is javax.validation.ConstraintValidator which contains the same methods as the old interface, namely initialize and isValid. Only the method signature is slightly different. Note that support for DDL alteration is no longer part of Hibernate Validator 4 but very few users made use of this feature.
Where to Find Additional Information
Using Infinspan as JPA/Hibernate Second Level Cache Provider
HIBERNATE - RelationalPersistence for Idiomatic Java
Changes you need to make for Security
Configure Security for Basic Authentication
The UsersRolesLoginModule has always looked for the properties files in the classpath. In previous versions of AS, files in the JBOSS_HOME/server/SERVER_NAME/conf directory were on classpath so you could put your properties files there. In WildFly 8 the directory structure has changed, so you need to package the properties within the application to make them available in the classpath.
To configure security for basic authentication, add a new security domain under security-domains to your standalone.xml configuration file :
| <security-domain name="example">
<login-module code="UsersRoles" flag="required">
<module-option name="usersProperties" value="${jboss.server.config.dir}/example-users.properties"/>
<module-option name="rolesProperties" value="${jboss.server.config.dir}/example-roles.properties"/>
If you are running in standalone mode, ${jboss.server.config.dir} refers to JBOSS_HOME/standalone/configuration/
A list of available login modules can be found in the admin guide.
Modify security domain names
In WildFly 8 security domains no longer use the prefix java:/jaas/ in their names. Remove this prefix from the security domain configurations in jboss-web.xml for web applications and jboss.xml for enterprise applications.
Configure JAX-RS / Resteasy changes
WildFly 8 sets up Resteasy for you, so there is no need to set it up yourself.
You should remove all of the resteasy configuration from your web.xml and replace it with one of the following three options:
- Subclass javax.ws.rs.core.Application and use @ApplicationPath
This is the easiest way and does not require any xml configuration. Simply include a subclass of javax.ws.rs.core.Application in your application, and annotate it with the path that you want your JAX-RS classes to be available. For example:
This will make your JAX-RS resources available under /mywebappcontext/mypath.
|Note that that the path is /mypath not /mypath/*
- Subclass javax.ws.rs.core.Application and use web.xml
If you do not wish to use @ApplicationPath but still need to subclass Application you can set up the JAX-RS mapping in web.xml:
This will make your JAX-RS resources available under /mywebappcontext/hello.
|You can also use this approach to override an application path set with the @ApplicationPath annotation.
- Modify web.xml
If you don't want to subclass Application you can set the JAX-RS mapping in web.xml as follows:
This will make your JAX-RS resources available under /mywebappcontext/hello.
Note that you only have to add the mapping, not the corresponding servlet. The server is responsible for adding the corresponding servlet automatically.
For more information, see the JAX-RS Reference Guide.
Configure LDAP security realm changes
In previous releases of JBoss AS, the LDAP realm was configured as an application-policy in the login-config.xml file. The following is an example of configuration in a previous release:
In WildFly 8, the LDAP realm is configured as a security-domain in the standalone/configuration/standalone.xml file if you are running a standalone server or in the domain/configuration/domain.xml file if you are running your server in a managed domain. The following is an example of configuration in WildFly 8:
|The XML parser has also changed in WildFly 8. In previous releases, you specified the module options as element content like this:
In WildFly 8, the module options must be specified as element attributes with "value=" as follows:
Migrate from JBoss Messaging to HornetQ
JBoss Messaging will no longer be included in EAP 6. If your application uses JBoss Messaging as the messaging provider, you will need to make changes to your application to use HornetQ.
Before you start
- Shut down the client and server.
- Make a backup of any JBoss Messaging data. Message data is stored in a database, and the tables are prefixed with "JBM_". Backup these tables as necessary.
Transfer configurations
Transfer the existing JBoss Messaging configurations to the WildFly 8 configuration. These configurations are located in deployment descriptors on the server running JBoss Messaging. This includes the following configurations:
- Connection Factory service configuration files - these files contain JMS connection factories deployed with JBoss Messaging. JBoss Messaging stores these files in a file called connection-factories-service.xml in the deploy/messaging directory of your application server.
- Destination service configurations - these files contain JMS queues and topics deployed with JBoss Messaging. By default, these are stored in a destinations-service.xml in the deploy/messaging directory of your application server.
- Message bridge service configurations - these files contain bridge services deployed with JBoss Messaging. No bridges are deployed by default, so the name of the deployment file will vary, depending on your JBoss Messaging installation. Note: WildFly 8 doesn't currently support JMS bridges configured in standalone*.xml. This will change in a future version.
Refer to Messaging configuration for details on HornetQ configurations.
Modify application code
If the application code uses standard JMS, no code changes are required. However, if the application will be connecting to a cluster (which is outside the scope of the JMS specification) please carefully review the HornetQ documentation on clustering semantics as HornetQ and JBoss Messaging have taken substantially different approaches in their respective implementations of clustering functionality.
If the application code uses features specific to JBoss Messaging, modify the code to use equivalent features available in HornetQ (if available).
Migrate existing messages
Move any messages in the JBoss Messaging database to the HornetQ journal via a JMS bridge. Instructions for this are available here.
For more information on HornetQ, see HornetQ Project Documentation and the HornetQ homepage.
Changes you need to make for Clustering
Starting WildFly 8 with clustering enabled
To enable clustering in AS5 and AS6, you needed to start your server instances using the "all" profile (or some derivation of it).
$ ./bin/run.sh -c all
In WildFly 8, the method of enabling clustering depends on whether your servers are started via the domain controller, or as standalone servers.
To enable clustering for servers started via the domain controller, update your domain.xml and designate a server group to use the "ha" profile and "ha-sockets" socket binding group:
To enable clustering for standalone servers, start the server using the appropriate configuration file:
$ ./bin/standalone.sh --server-config=standalone-ha.xml -Djboss.node.name=UNIQUE_NODE_NAME
Specifying the bind address
In AS5 and AS6, you would typically indicate the bind address used for clustering via the "-b" command line argument.
$ ./bin/run.sh -c all -b 192.168.0.2
In WildFly 8, bind addresses are explicitly defined by the relevant socket bindings within the WildFly 8 configuration files. For servers started via the domain controller, bind addresses are specified within domain/configuration/host.xml. For standalone servers, bind addresses are specified within the standalone-ha.xml:
In the example above, the "public" interface is specified as the default interface for all sockets within the "ha-sockets" socket binding group.
Configure jvmRoute to support mod_jk and mod_proxy
In previous releases, the web server jvmRoute was configured using a property in the server.xml file. In AS 7, the jvmRoute attribute is configured in the web subsystem of the server configuration file using the instance-id attribute as follows:
The JVM_ROUTE_SERVER above should be replaced by the jvmRoute server ID.
Specifying multicast address/port
In AS5 and AS6, you could specify the multicast address and port used for intra-cluster communication using the command line arguments "-u" and "-m", respectively.
./bin/run.sh -c all -u 184.108.40.206 -m 45688
In WildFly 8, the multicast address and port used for intra-cluster communication are defined by the socket-binding referenced by the relevant JGroups protocol stack.
If you prefer to specify the multicast address and port in the command line, you can define the multicast address and ports as system properties and then use those properties on the command line when you start the server. In the following example, "jboss.mcast.addr" is the variable for the multicast address and "jboss.mcast.port" is the variable for the port.
You can then start your server using the following command line arguments:
$ ./bin/domain.sh -Djboss.mcast.addr=22.214.171.124 -Djboss.mcast.port=45688
Using an alternate protocol stack
In AS5 & AS6, you could manipulate the default protocol stack used for all clustering services via the "jboss.default.jgroups.stack" system property.
./bin/run.sh -c all -Djboss.default.jgroups.stack=tcp
In WildFly 8, the default protocol stack is defined by the JGroups subsystem within domain.xml or standalone-ha.xml.
HA Singleton Deployment
TODO: This topic needs content
Additional changes you may need to make
Change Maven plugin name
The jboss-maven-plugin has not been updated and does not work In WildFly 8. You must use org.jboss.as.plugins:jboss-as-maven-plugin to deploy to the correct directory.
Update Applications That Use Service-style Deployments
Although AS 7 no longer uses service-style descriptors, the container supports these service-style deployments without change where possible. This means that if you used jboss-service.xml or jboss-beans.xml deployment descriptors in your AS5/AS6 application, they should run with little or no modification in AS 7. You can continue to package the files in the EAR or SAR, or you can place the files directly in the deployments directory. If you are running a standalone server, the deployments directory is located here: JBOSS_HOME/standalone/deployments/.
Debug and Resolve Migration Issues
Debug and resolve ClassNotFoundExceptions and NoCLassDefFoundErrors
ClassNotFoundExceptions can occur due to application packaging issues, unresolved dependencies, or missing archives. If the class specified is a class you have created in your application, the problem is mostly likely a packaging issue. If the class is is external to your project, you may need to explicitly define the dependencies on other modules or possibly copy an archive from a previous framework.
Change the application structure to find classes within the application
If the class specified in the exception is a class written specifically for the application, for example, a business class, you may need to change the packaging of the application. Due to modular class loading changes, your application may no longer be able to find classes within the EAR or WAR. In his case, you may need to move JARs to a different location within the application archive or modify class-path information so classes can be found. For more information on EAR and WAR packaging, see "WAR Class Loading" and "EAR Class Loading" in Class Loading in AS7.
How to find the JBoss module dependency
For other classes, to resolve the dependency you will find the JAR that contains the class specified by the ClassNotFoundException by looking in the JBoss WildFly 8 modules directory. If you find a module for the class, you must add a dependency to the manifest entry.
For example, if you see this ClassNotFoundException trace in the log:
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.Log from [Module "deployment.TopicIndex.war:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:188)
Find the JBoss module containing this class by doing one of the following:
- You can use Tattletale to find the JBoss module name. See the section: Use Tattletale to find application dependencies.
- You can manually find the module dependencies.
- First determine if there is an obvious module for the class
- Navigate to the JBOSS_HOME/modules directory and look for the module path.
- in this case, under modules, there is org/apache/commons/logging
- Open the JBOSS_HOME/modules/org/apache/commons/logging/main/module.xml file and find the module name.
- Add the module name to the Dependencies in the MANIFEST.MF file:
- If there is no obvious module path for the class
- Determine which JAR contains the class.
- Find the module containing the JAR in the JBOSS_HOME/modules directory and determine the module name.
- The module name to the Dependencies in the MANIFEST.MF file
- First determine if there is an obvious module for the class
How to find the JAR in previous install
If the class is not found in a JAR packaged in a module defined by the WildFly 8 server, find the JAR in your EAP 5.x install or your prior server's lib directory and copy it to your application's lib/ directory.
For example, when you migrate the Seam Booking application from EAP 5.1, you see this ClassNotFoundException in the log:
Caused by: java.lang.NoClassDefFoundError: org/hibernate/validator/ClassValidator
at java.lang.Class.getDeclaredMethods0(Native Method) [:1.6.0_25]
- Open a terminal and navigate to the EAP5_HOME/ directory.
- Issue the command:
- You should see this (one of many) for the result: Binary file ./jboss-eap-5.1/seam/lib/hibernate-validator.jar matches
- Copy this JAR to the application's lib/ directory.
- Rebuild and redeploy the application
Debug and resolve ClassCastExceptions
This usually happens because the class is being loaded by a different class loader than the class it extends. It can also be a result of the same class existing in multiple JARs.
Remove any unnecessary JARs from the Application archive
First find the JAR that contains the class and determine how it is being loaded. Often you need to find and remove the JAR from the application's WAR or EAR. Then you must find the dependent JBoss module containing the class, and explicitly define the dependency in the MANIFEST.MF file.
Exclude any conflicting dependencies using the jboss-deployment-structure.xml file
There are cases where you will need to copy in older JARs for your applcation. If the newer JARs are loaded as automatic dependencies in WildFly 8, you may see ClassCastExceptions and need to exclude the conflicting module dependencies. This will prevent the server from adding the dependencies. This is an example of the exclusions element in the jboss-deployment-structure.xml file:
Debug and resolve class loading issues
If you are not able to figure out how the classes are loaded, you can often resolve the problem by printing class loader information to the log. For example, if you see the following ClassCastException in the log:
In your code, print the class loader information by logging
The ModuleClassLoader information in the log will show which modules are loading the classes and, based on your application, you will need to determine the best approach to resolve the issue. You might have to remove or move a conflicting JARs, add dependencies through the MANIFEST.MF or jboss-deployment-structure.xml file or excluding dependencies in the jboss-deployment-structure.xml file.
Debug and resolve NoSuchMethodExceptions
A NoSuchMethodException indicates a class version mismatch between JAR files. It indicates your application's calling class was compiled using a different version of the JAR than the one used by the application server runtime. This can occur when you package different versions of common libraries your application, for example Hibernate. This can also happen if you migrate between versions of JBoss EAP and do not recompile your application against the updated EAP jars. To resolve this problem, remove any common JARs from your application archive, add any dependencies as described above, recompile and deploy your application.
Debug and resolve DuplicateServiceExceptions
If you get a DuplicateServiceException for a subdeployment of a JAR or a message that the WAR application has already been installed when you deploy your EAR in WildFly 8, it may be due to the way JBoss WS handles the deployment. In AS6, JBossWS introduced a Context Root Mapping Algorithm or rules for servlet based endpoints to allow it to become seamlessly compatible with TCK6. This means that if you have a WAR and a JAR with the same name within an EAR, it may create a web context with the same name as the JAR which will conflict with the WAR context. You can resolve this issue in one of the following ways:
- Rename the JAR file to a name that is different than the WAR.
- Provide a <context-root> element in the in jboss-web.xml file.
- Provide a <context-root> element in the in jboss-webservices.xml file.
- Customize the <context-root> for the WAR in the application.xml file.
Debug and resolve JBoss Seam debug page errors.
Usually the root cause of the exception can be found in one of the links on this page, for example, under the Component org.jboss.seam.caughtException. Use the same technique above under "How to Resolve ClassNotFoundExceptions or NoCLassDefFoundErrors" to resolve the dependencies.
EJB 2.x Support
As 7.1 provides support for EJB 2.1, however, you need to make a few code modifications and must start the server with the full profile.
Modify the Code to Use the New JNDI Namespace Rules
Like EJB 3.0, you must use the full JNDI prefix with EJB 2.1. For more information on the new JNDI namespace rules and code examples, see the section 'Update application JNDI namespace names' above.
Replace JBoss AOP Interceptors
JBoss AOP (Aspect Oriented Programming) is no longer included in WildFly. In previous releases, JBoss AOP was used by the EJB container. However, in AS 7, the EJB container uses a new mechanism. If your application uses JBoss AOP, you need modify your application code as follows.
- Standard EJB3 configurations that were made in the ejb3-interceptors-aop.xml file are now done in the server configuration file. For a standalone server, this is the standalone/configuration/standalone.xml file. If you are running your server in a managed domain, this is the domain/configuration/domain.xml file.
- Applications that integrate AOP interceptors into the EJB layer must be redesigned to use EJB3 interceptors and CDI. Server side interceptors can be changed to EJB3 interceptors, but there is no client side interceptor in AS 7.
Modify the jboss-web.xml File Descriptor
Modify the <jndi-name> for each <ejb-ref> to use the new JNDI fully qualified lookup format.
Replace the jboss.xml deployment descriptor file
The jboss-ejb3.xml deployment descriptor replaces the jboss.xml deployment descriptor to override and add to the features provided by the Java Enterprise Edition (EE) defined ejb3-jar.xml deployment descriptor. The new file is incompatible with jboss.xml, and the jboss.xml is now ignored in deployments.
Start the Server with the Full Profiles
EJB 2.1 requires the Java Enterprise Edition 6 Full Profile. To start AS 7 with the full profile, pass the argument "-c standalone-full.xml" on the command line when you start the server.
Migration required for other components
ToDo: Conplete this section
How to migrate Seam 2 archives to WildFly 8
When you migrate a Seam 2 application, you will follow the steps outlined in the migration guide. You will need to configure the datasource as noted above. You will need to specify any module dependencies. You will also need to determine if the application has any dependencies on archives that do not ship with AS7 and copy any dependent JARs into the application lib/ directory.
Update the datasource configuration
Some Seam 2 examples use a default JDBC datasource named java:/ExampleDS. The easiest way is to define this datasource is to add the following datasource definition to the JBOSS_HOME/standalone/configuration/standalone.xml file the :
This definition is a copy of the default HSQL datasource defined in WildFly.
You can also add the datasource using the jboss-cli command line interface:
$ JBOSS_HOME/bin/jboss-cli.sh --connect [standalone@localhost:9999 /] data-source add --name=ExampleDS --jndi-name=java:/ExampleDS --connection-url=jdbc:h2:mem:test;DB_CLOSE_DELAY=-1 --driver-name=h2 --user-name=sa --password=sa
Add any required dependencies
Since Seam 2 applications use JSF 1.2, you will need to add dependencies for the JSF 1.2 modules and exclude the JSF 2.0 modules. You will need to create a jboss-deployment-structure.xml file in the EAR META-INF/ directory that contains the following data:
If your application uses any third-party logging frameworks you will need add dependencies as described in that section of the migration guide.
Copy dependent archives from outside frameworks or other locations
Even if your Seam 2 application uses Hibernate 3, you may still be able to run with the Hibernate 4 module packaged in WildFly. Some hibernate classes are no longer available and you may need to copy one or more of the older hibernate JARs into the /lib directory. If you end up with ClassNotFoundExceptions or ClassCastExceptions involving hibernate classes, you may have to exclude the hibernate module in the deployments section of the META-INF/jboss-deployment-structure.xml
Seam 2 JPA example deployment on WildFly
- Remove the jboss-web.xml file from the jboss-seam-jpa.war/WEB-INF/ directory - Defined class loading in jboss-web.xml is now default behaviour.
- Comment or remove hibernate property in jboss-seam-jpa.war/WEB-INF/classes/META-INF/persistence.xml:
<!-- <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/> -->
- Add the following dependencies from seam distribution (seam/lib directory) into
jboss-seam-jpa.war/WEB-INF/lib directory, which were in JBoss AS 5/6 and are upgraded in WildFly to higher major version:
- slf4j-api.jar
- slf4j-log4j12.jar
- hibernate-entitymanager.jar
- hibernate-core.jar
- hibernate-annotations.jar
- hibernate-commons-annotations.jar
- hibernate-validator.jar
- Add jboss-deployment-structure.xml to jboss-seam-jpa.war/WEB-INF/ with the following content in it:
How to debug and resolve Seam 2 JNDI errors
When you migrate a Seam 2 application, you may see javax.naming.NameNotFoundException errors in the log like the following:
javax.naming.NameNotFoundException: Name 'jboss-seam-booking' not found in context ''
If you don't want to modify JNDI lookups throughout the code, you can modify the application's components.xml file.
- First, you will need to replace the existing core-init element as follows:
- Next, find the JNDI binding INFO messages that are printed in the server log when the application is deployed. The JNDI binding messages should look similar to this:
15:01:16,138 INFO [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-1) JNDI bindings for session bean
named AuthenticatorAction in deployment unit subdeployment "jboss-seam-booking.jar" of deployment "jboss-seam-booking.ear" are as follows:
- For each JNDI binding INFO message in the log, add a matching component element to the components.xml file:
Running Seam 3 archives on WildFly
ToDo: Complete this section
Migrating Spring applications
For information on how to migrate Spring applications, see details at the Spring applications development and migration guide.
Tools That Can Assist with Migration
Use Tattletale to find application dependencies
Due to the modular class loading changes, you might run into ClassNotFoundExceptions or ClassCastExceptions when you migrate your application. To resolve these dependencies, you will need to find the JARs that contain the classes specified by the exceptions.
Tattletale is an excellent tool that recursively scans your application and provides detailed reports about its contents. Tattletale 1.2.0.Beta2 or later contains additional support to help with the new JBoss Modules class loading used in WildFly. Tattletale's "jbossas7" report can be used to to automatically identify and specify dependent module names in your application's jboss-deployment-structure.xml file.
Install Tattletale
- Download Tattletale version 1.2.0.Beta2 or newer from http://sourceforge.net/projects/jboss/files/JBoss%20Tattletale/.
- Unzip the file into the directory of your choice.
- Modify the TATTLETALE_HOME/jboss-tattletale.properties file by adding jbossas7 to the "profiles" property.
- Uncomment scan and reports in the properties file.
Create and review the Tattletale report
- Create the Tattletale report by issuing the command:
For example:
- In a browser, open the OUTPUT_DIRECTORY/index.html file and click on "JBoss A7" under the "Reports" section.
- The column on the left lists the archives used by the application. Click on the ARCHIVE_NAME link to view details about the archive, such as its location, manifest information, and classes it contains.
- The jboss-deployment-structure.xml link in the column on the right shows how to specify the module dependency for the archive in the left column. Click on this link to see how to define the deployment dependency module information for this archive.
|Tattletale will only find dependencies on the application classes. It will not find dependencies that may be required by classes your application calls or by classes in other JARs included under your application's WEB-INF/lib directory. To identify external dependencies, you will need to look at the "Depends On" report.
IronJacamar Datasource and Resource Adapter Migration Tool
In previous versions of the application server, datasources and resource adapters were configured and deployed using a file with a suffix of *-ds.xml. The IronJacamar 1.1 distribution contains a migration tool that can be used to convert the datasource and resource adapter configuration files from previous releases into the configuration format expected by the WildFly server. The tool parses the source configuration file from the previous release, then creates and writes an XML snippet in the appropriate format that can be copied and pasted under the correct subsystem in the server configuration file.
Download and install IronJacamar
- Download IronJacamar 1.1 from here: http://www.jboss.org/ironjacamar/downloads/ .
- Unzip the file into a directory of your choice.
- The converter script can be found in the IRONJACAMAR distribution in the following locations:
- Linux script: IRONJACAMAR_HOME/doc/as/converter.sh
- Windows batch file: IRONJACAMAR_HOME/doc/as/converter.bat
|The tool will do a best effort to convert all old attributes and elements to the new format. It will be necessary to make additional changes to the generated file. In the following examples, we will need to make a few changes to the resulting XML. Please, consult this documentation for additional information.
Use the IronJacamar Migration Tool to convert a datasource configuration file.
- Open a terminal or command prompt and CD to the IRONJACAMAR_HOME/docs/as/ directory.
- For Linux, run the converter script by typing the following command in the terminal:
For Windows, type:
- Copy the XML snippet from the target file into the server configuration file under the subsystem xmlns="urn:jboss:domain:datasources:1.0" datasources element.
- If you are running in domain mode, you need to copy the XML snippet into the domain/configuration/domain.xml file.
- If you are running in standalone mode, you need to copy the XML snippet into the standalone/configuration/standalone.xml file.
The tool generates the datasources and datasource element. If you have existing datasources, you need only copy the datasource element into the configuration file.
Here is an example of the datasource configuration file for the Seam Booking example that shipped with EAP 5.x:
The generated file will contain a driver-class element. The preferred way to define the driver class is using a drivers element. Here is the converted XML with the driver-class and drivers modifications as configured in the WildFly configuration file:
Use the IronJacamar Migration Tool to convert a resource adapter configuration file.
- Open a terminal or command prompt and CD to the IRONJACAMAR_HOME/docs/as/ directory.
- For Linux, run the converter script by typing the following command in the terminal:
For Windows, type:
- Copy the XML snippet from the target file into the server configuration file under the subsystem xmlns="urn:jboss:domain:resource-adapters:1.0" element.
- If you are running in domain mode, you need to copy the XML snippet into the domain/configuration/domain.xml file.
- If you are running in standalone mode, you need to copy the XML snippet into the standalone/configuration/standalone.xml file.
The tool generates the resource-adapters and resource-adapter element. If you have existing resource-adapters, you need to copy only the resource-adapter element into the configuration file.
Here is an example of the mttestadapter-ds.xml resource-adapter configuration file from the EAP-5.x TestSuite.:
You will need to replace the class-name attribute "FIXME_MCF_CLASS_NAME" in the generated XML snippet with the class name of the managed connection factory, in this case, "org.jboss.test.jca.adapter.TestManagedConnectionFactory". Here is the server configuration file with the newly generated and edited configuration data:
For more information about this migration tool, go to IronJacamar Migration Tool .
Jan 30, 2012
Moved to more appropriate place.
Jun 23, 2013
Check out and contribute to automatic AS config migration tool:


text: On Mon, Feb 24, 2003 at 02:11:03PM -0500, Marc Cozzi wrote: > > Has anyone used the new SMC Tiger Gigabit switch for > clustering? Think it?s a model 8624T. > This is a non-blocking 24 port managed layer 2 switch that > supports trunking and jumbo frames. Are there any problem > with SMC 1Gb nicks like the 9552TX? It seems like a very > good deal at the prices listed. We have three of them, but have only begun to work with them; we're working on the next generation of our cluster using Intel SE750xWV2 boards in the Intel SR1300 chassis. These boards have dual Intel gigabit interfaces onboard, and we've done some rudamentary testing using those to blast traffic over the SMC switches. I asked the guys who are doing the grunt work of putting this all together, this was the response: * i wish i had more specific information, but * we're just not doing anything all that sexy as of * yet. basically, we've set up VLANs, jumbo frames, * and i've testing trunking. it all seems to work * as advertised. N.B. the last four 10/100/100 * ports share a controller with the mini-GBIC * ports, so if you plan on using any or all of * the GBICs, you'll only get 20 copper ports. * not an issue with us, but worth mentioning. * * i suspect we really won't know if these devices * are ``too good to be true'' until we start * passing frames at a much higher rate, but so far, * so good. [...] * * also, the vendor where we got these switches gave * us a bunch of the 9552-TX cards with it. although * since our beowulf machine comes with 10/100/1000 * ports, we've yet to do anything but peripherally * test these cards. BTW, as I reported previously [1], these switches use Broadcom chips. FWIW. --Bob Drzyzgula [1] http://www.beowulf.org/pipermail/beowulf/2002-December/005517.html


text:
Jean Monet on his Hobby Horse painting (1872) by Claude Monet at Metropolitan Museum of Art. New York, NY.
Photo by Jim Steinhart © 2012, all rights reserved. (Ref: NYMDMO11)
Click an index below to see this photo among related images:
Claude Monet Art
Metropolitan Museum of Art - Impressionist & Modern Painting Collection
Captions List for Art Museums of New York City


text:
The bomb blast between the Gate Nos.4 and 5 of the Delhi high court on the 7th September, 2011, in which 11 persons died and more that 60 were seriously injured is yet another grim reminder that our security and intelligence system is not delivering and requires serious efforts to improve our capabilities for countering terrorism. There is a need for serious reflection both by policy makers and by citizens as the latter are invariably the targets of such terror attacks.
This time the Home Minister admitted that a report on 21st July, 2011 indicated the possibility of a terrorist attack in New Delhi. This leads us to two questions. Whether some efforts were made to develop this input to obtain further details? And whether this input was taken seriously by the Delhi Police? The first question assumes importance as now in daily briefings of Home Minister all inputs are shared. Obviously this input must have been shared but perhaps afterwards no further efforts were made to develop this information. One cannot blame the Home Minister for this. Such efforts can only be expected if there is sharing of information under a professional who understands the functioning of intelligence agencies and can direct the agencies for quick development of leads for taking preventive action. We have Multi Agency Centre where inputs are shared but it has not proved very effective in the absence of an overall coordinator for intelligence. Intelligence sharing remains an important problem. When this was realized by the US after 9/11 attacks, a position of Director of National Intelligence (DNI) was created along with up gradation of Terrorist Threat Integration Centres, which had been working under the CIA, as National Counter Terrorist Centre, which were placed under the DNI. This US did despite opposition from the then heads of US intelligence agencies. Today the DNI remains responsible for all acts of intelligence agencies as well as their failures. It may be recalled that Admiral Blair the previous DNI was made to resign for failure to put Abdul Muttalib, who tried to blow the flight to Detroit, on the 'no-fly list'. The need for such a position is acutely felt not only to ensure proper intelligence sharing and developing intelligence leads into actionable intelligence but also to plan national intelligence programmes and to take decisions on strategic intelligence operations requiring the resources of more than one agency.
The second issue has been discussed several times and the present Home Minister soon after 26/11 in 2008 had himself admitted in the parliament that the responsibility for taking appropriate action by the security forces or police is diffused. Unfortunately, this remains the problem even today. This requires clearly defining the responsibilities of both the intelligence collection agencies and security/police forces and ensuring that they jointly take decisions for this purpose. This should be done at the earliest. The most surprising aspect is that after this report and a bomb blast in high court complex on 25th May, 2011 no efforts were made for parameter security by placing CCTV and scanners. If there would have been a system for joint planning of preventive action, these steps would have been taken and several lives could have been saved.
The continuing attacks by terrorists reflect that the present system is not adequately geared to deal with the growing incidence of terrorism. This underlines the need for reforming the system. The most important question, which readers and my friends raised after reading my article on 13/7 Mumbai blasts, is whether there is political will to introduce reforms or not. The answer to this must be examined professionally. To be fair, political leaders have often talked about it and in the past committees and task forces were created to make recommendations. While some recommendations pertaining to creation of more posts, providing them with better equipment and improving the mobility of the forces have indeed been implemented that improved the functioning to some extent, the capacity to pre-empt or prevent terrorist threat has not been significantly enhanced. The important recommendations have remained only in the files. While the NARGRID has not been seen in the context larger national security needs of connecting them with lower formations, the much talked about National Counter Terrorism is still waiting to get the approval. The turf wars among the agencies whose number has increased of late continue to create problems in coordination. The need for all agencies to work as one force is being acutely felt. They at present act as autonomous bodies only loosely connected.
The restructuring of security structure at the top is urgently needed. However the intelligence agencies are usually very reluctant in accepting the need for reforms. The arguments like 'do not rock the boat' or 'it is not possible to check all the terrorist attacks' are put forward. The political leadership gets advice from the current heads of agencies. And therefore it becomes difficult to take bold decisions. This can happen only if there are informed debates among citizens and they compel the political leaders to initiate reforms. Both USA and UK had introduced reforms which have significantly improved their capabilities to deal with terrorism. In both the cases there was strong support from the citizens of these countries. In our country it is all the more necessary as very few political leaders are aware of complexities of functioning of security and intelligence agencies.
In addition, unfortunately some of our political leaders have in the past politicised terrorism. Instead of ensuring that we reach to the persons responsible for such heinous acts, terrorism was used to blame opponent political parties. This often creates problems for the intelligence agencies and police. They start placing limited resources in spheres which are not required. Politicisation of terrorism has to be avoided at all costs. The agencies must explain as to why they reach to different conclusions at different times. As an example we can take up the case relating to the Samjhauta Express. Soon after the blasts, the agencies pointed out that the Pakistani based groups were involved. Now they have come to the conclusion that this was the work of Hindu right wing group. Obviously the agencies were wrong at one time. Intelligence agencies need to be objective in their tasks otherwise they can reach to wrong conclusion. The lack of focus of agencies on objective intelligence assessment is up to a great extent responsible for this kind conclusion. A system of strict audit of agencies performance is needed to be put in place.
The need to involve the common citizens in our effort to counter terrorism can hardly be underestimated. If they are made aware of how to look out for "Terrorist Pre-Attack Indicators" and a system for continuous interaction between the residents of the area and the concerned intelligence officials is established, it would be possible to thwart most attempts of terrorists. This has been emphasised by experts several times but so far no concrete action has been taken. Obviously the political leadership is not encouraging to have citizens' intelligence network.
One reason for continuing terrorist attacks is that there is a growing perception that India is a soft state and under pressure it can be made to yield to any demand. This perception needs to be removed. For this the responsibility mainly rests with the political leaders. Our strategic interests should guide their decision and not any other consideration. Indian State should be seen capable of taking action against those who are creating problem for us anywhere they are located. For this, real capabilities need to be built. Unless the terrorists and their supporters know that Indian State is capable to inflict unacceptable damage to them, they would continue to launch attacks.
The changes that are suggested are well known and have been adopted by other countries. We should not be hesitant in adopting the best practices of other countries. The different organizations dealing with security and intelligence would have to be made accountable and therefore they have to be prepared to accept supervision not only of parliament but also some professional body. And this has to be done despite opposition from the agencies. This certainly requires sound and strong leadership at the political level.


text:
NSA director defends surveillance
Controversial surveillance practices that spilled into public view through a series of dramatic leaks last week have helped to avert "dozens of terrorist events" in recent years, National Security Agency Director Keith Alexander told a Senate committee Wednesday.
However, the longer the NSA director spoke before the Senate Appropriations Committee, the less clear it became just which surveillance programs he was crediting for those successes.
Story Continued Below
His answer came in response to a question from Sen. Patrick Leahy (D-Vt.) about call-tracking surveillance conducted under Patriot Act Section 215.
( PHOTOS: Pols, pundits weigh in on NSA report)
Alexander said it was difficult to segregate information obtained under that provision from another practice disclosed by leak last week: a system that gathers bulk data from internet providers, e-mail services and social media sites. That system is aimed at foreigners outside the United States, though it sometimes data from Americans or foreigners on U.S. soil is swept in as well.
"These authorities complement each other. The reality is, they work together," said Alexander.
It was also not clear whether Alexander was attributing the prevention of dozens of terrorist events to the phone-call tracking program or to the use of Section 215 more generally. Beyond the mass collection of phone records revealed last week, that provision can be used to acquire a variety of business records.
"Clearly, this authority is being used for something more than phone records," Sen. Dick Durbin (D-Ill.) said.
However, Alexander made it clear there are limits to the NSA's surveillance
Sen. Susan Collins (R-Maine) asked whether it was true that the NSA had the ability to tap into Americans' phone calls and electronic communications.
"False. I know of no way to do that," Alexander responded.
The NSA chief, who is also a four-star Army general who oversees the U.S. Cyber Command, said he is pressing to declassify information on how often the information has been useful. "I'm pushing for that," he said. "We do want to get this right and it has to be vetted across the community so what we give you, you know, is accurate."
Leahy complained that the intelligence community has been dismissive of past congressional efforts to rein in the practices.
The "intelligence community has told us we obviously don't have the ability as simple senators to know things as well as you do," Leahy said, paraphrasing what he's been told about NSA's programs as: "Congress shouldn't tinker with it at all. We should simply trust you."
The Senate hearing was called to address efforts to protect Americans from cyber attacks, but it took less than an hour for senators to turn their focus to the question of government surveillance.
At the outset of the session, Senate Appropriations Committee Chairwoman Barbara Mikulski (D-Md.) encouraged her colleagues to put off questions about the hot surveillance issues to other hearings to take place in the future. Multiple times she interrupted their questions of Alexander about domestic surveillance to plead with them to put off questions on the phone records programs.
"In the last several days, many intelligence issues have been in the press…I understand that these are issues that are very much on the public's mind and members of the Senate," Mikulski said. "That's not today. That's for another day."
However, Mikulski was clearly sensitive to suggestions she was trying to steer the hearing away from the surveillance issues that have dominated the news in recent days. She publicly took exception to a BuzzFeed reporter's tweet saying Mikulski was "trying hard" to keep other senators from delving into the data mining issue
"There is no attempt here to muzzle — stifle any senator from asking any line of question," Mikulski insisted.
While he wasn't immediately asked about the revelations of phone-call tracking and Web surveillance aimed at foreigners, Alexander used part of his opening statement to defend his workforce as respectful of privacy.


text:
On Wednesday morning, Buccaneers coach Greg Schiano opted to give Jets cornerback Darrelle Revis the Voldemort treatment. Later in the day, Tampa G.M. Mark Dominik was slightly less careful.
Appearing with Tim Ryan and Pat Kirwan on SiriusXM NFL Radio, Dominik was asked whether Revis is on the trade market.
"I don't know if he really is, honestly," Dominik said, via JoeBucsFan.com. "That is a tough question for me to answer. You have to get [Jets general manager] John Idzik on here Pat and grill him about that."
It has been widely reported — and contradicted publicly nor privately by neither team — that the Bucs have been trying to acquire Revis from the Jets. The thinking is that the Jets want at least a 2013 first-round pick, but the Bucs want to give up at most a first-rounder in 2014, which under the loose NFL system of valuing picks equates to a second-round selection now.
Against that backdrop, Dominik's words could be interpreted as a not-so-subtle suggestion that the Jets' demands translate to a lack of desire to do the deal.


text:
Two fitness instructors are suing New York-based David Barton Gym on the grounds of a hostile work environment based on sexual orientation and gender discrimination.
Deborah Cooke and Christina Rodino claim they were fired by the company on Dec. 2 after complaining about rude comments and innuendos about their sexual orientation that occurred at the club. Cooke and Rodino are homosexual, according to the complaint filed last Tuesday in the U.S. District Court, Southern District of New York in Manhattan.
David Barton Gym says it terminated the instructors because they were training outside clients. Cooke, who was making $100,000 a year, and Rodino, who was making $60,000 a year, say that they were replaced by heterosexual trainers with fewer professional qualifications and that straight employees who train non-members were not disciplined, according to the complaint.
Cooke, who was a training manager and part-time director of education at the gym, and Rodino, who was a Pilates instructor at the gym, also claim that owner David Barton has engaged in "molesting female staff members." Barton's lawyer, Brian Haskel, says it is the gym's policy not to comment on ongoing litigation.
"Our client prides itself on its commitment to diversity, freedom of expression and tolerance, and it plans to vigorously defend itself against these claims," Haskel told the New York Post.
There are three David Barton Gyms in New York and one each in Chicago, Miami and Seattle.