Sunday, April 21, 2013

How to capture/Allow Program Input using Jdeveloper

Usecase : How to accept/capture/allow Program Input using Jdeveloper


Solution
 - Right click on project - Project Properties - Choose 'Run/Debug/Profile'  - Choose 'Default' and click on 'Edit' button - Choose 'Tool Settings' - Check 'Allow Program Input' - Click 'ok' button


Wednesday, April 17, 2013

Java/J2EE Workshop Assignments for Beginers



- Create a simple HelloWorld java class, Print ‘Hello World”.


- Create a MathUtil class to perform below operations

- add(int,int) ;

- multiply(int,int);

- divide(int,int);

- subtract(int,int);

- Override all the above methods for rest of data types (float,double,long)


- Create a CustomStringUtil class to perform below operations

- reverseString(String) - Reverste the given string and display

- determineLength(String) - Returns the length of the string

- characterAtIndex(String,int) - Returns the character at a specified index in a given String

- checkGivenCharExistsInString(String,char) - return true if the given character exists in a given String else false.

- convertToInteger(String) - if given input String is Numeric then only convert to Integer otherwise display a message saying “Invalid Input parameter”


- Max of four

- Write a method which accepts four values with different data types (int,float,double,long,String (Eg : “45”,”34.45”) for each method, and return the maximum value out of given two values.

Note : For string values, you have to typecast and apply mathematical operators


- Min of four

- Write a method which accepts five values with different data types (int,float,double,long,String (Eg : “45”,”34.45”) for each method, and return the minimum value out of given two values.

Note : For string values, you have to typecast and apply mathematical operators


- Max of five

- Write a method which accepts three values with different data types (int,float,double,long,String (Eg : “45”,”34.45”,”66”) for each method, and return the maximum value out of given five values.

Note : For string values, you have to typecast and apply mathematical operators


- Min of five

- Write a method which accepts five values with different data types (int,float,double,long,String (Eg : “45”,”34.45”,”343”) for each method, and return the minimum value out of given five values.


Note : For string values, you have to typecast and apply mathematical operators


- Random Number Generation

- Write a method, which accept an integer and return the number of random generated values between 1 to 1000 as an Array - Don't use any java provided api's such as Random class to generate , Use core java features and apply some logic.


- Greet Message - Using Switch & Case

- Write a method, which accept integers from 1- 10 , Based upon value print a message as shown below

10 -”Exceptional”

9 - “ Excellent”
8 - “ Very good”
7 - “ Good”
6 - “ Average”
5 - “ Work Hard”
4 - “  Poor”
3 - “ Very Poor”
2 - “ Rejected”
1 - “ Disqualified”
- Sum & Product of given number
-  Write two methods, which accept an integer value and perform as below
- Eg : if “5” is given then sum of the given number means : 5+4+3+2+1
- Eg : if “5” is given then product of the given number means : 5*4*3*2*1

- Factorial of given Number
- Write a method , which accept an integer and return the factorial value of given number

- Reverse a Number
- Write a method, which accepts an integer and return the ‘Reverse of the given Number”
- For eg : if “124” is given , then return 421

- Reverse a String
- Write a method , which accepts a String value then return the ‘Reverse of the Given String”
- Eg : if “ABC” is given, then return “CBA”

- Sum of all the integers between given two numbers, which are divisible by 3
- Write a method, which accept two integers ( Lower limit and upper limit) , and return the sum of all the integers between given range which are divisible by 3

- Concatenate
- Write a method, which accept an integer, and the result is String as shown below example
Eg : Input : 5 , Output : “5 - 4 - 3 - 2 - 1”

- Multiplication Table :
- Write a method, which accept an integer, print the Multiplication table for given input as shown below
Eg : If input is 7, Then result is : 7 X 1= 7
       7 X 2 = 14, etc... 7 X 10 = 70

-  Determine Year, Month, Days
- Write a method, accept an integer , then display a String with years, months and days as shown below
Eg : If input is 69 , then result should be : 69 days = 2 Month and 9 days

- Inverse Triangle
-  Write a method, which accepts an integer, and displays the result as shown below
Eg :   Input - 5
  Output :
 5 5 5 5 5
 4 4 4 4
 3 3 3
 2 2
 1

- Prime Number, Even, Odd
- Write three different methods, accepts an integer and return true corresponding to each method to check whether the given number is Prime Number or not , Even or not , Odd or not.

- Display Positions
- Write a method, which accepts an integer and returns the string as shown below example
Eg : Input : 125 , Result is : “ One Hundred Twenty Five”  - Similarly for any number which is less than or equal to 1 million.

- Print Triangle
- Write a method, which accepts an integer and return the output as shown below
Eg :
   1
   2 4
   3 6 9
   4 8 12 16 ... N (indicates no. of Rows) */
    

- Extract Number from a String
- Write a java method, which accepts a string and returns numeric value
- For eg : If input is " <=12" , then return only 12
If input is " >= 12.34" , then return only 12.34
---------------------------------------------------------------------------------------------------

- Arrays


     - Write a java utility method, which stores the numbers 1 to 100 into an int array and print these values

     - Write a java utility method, which stores the numbers 1.1,1.2,1.3 to 100.00 into an float array and print these values

     - Write a java utility method, which stores the 10 different names into String array and print these values

    

      - Create a PersonDTO class with name,age,sal,dob attributes with setter & getter methods, and implement below functionality

              - Write a utility method, which accepts an integer number(n) and returns Array of n ‘PersonDTO’ objects.

- Construct Array of ‘PersonDTO’  with different set of data for name,age,sal & dob fields (at least 5 different PersonDTO objects) , and implement below functionality

          -  Write a method, which accepts name, then iterate through the array, return the corresponding array of PersonDTO object which match with the given input Name.

          -  Write a method, which accepts age, then iterate through the array, return the corresponding array of PersonDTO objects where age <= given input age value.


- Write a method, which accepts three parameters, lower limit(integer), upper limit(integer)   , and numberType(String) , then returns the Array of numbers based on below conditions

     - Eg : If lower limit is 0, Upper limit is 100 , numberType is ‘Even’ then should return array of even numbers from 0 to 100

     - Eg : If lower limit is 0, Upper limit is 100 , numberType is Odd then should return array of odd numbers from 0 to 100

     - Eg : If lower limit is 0, Upper limit is 100 , numberType is ‘Prime’ then should return array of prime numbers from 0 to 100

     - Eg : If lower limit is 0, Upper limit is 100 , numberType is ‘Fibonacci’ then should return array of fibonacci numbers from 0 to 100

     - Eg : If lower limit is 0, Upper limit is 100 , numberType is null or blank then should return array of  numbers from 0 to 100


- Write a utility method, which accepts array of integers, returns the array of integers in ascending order

- Write a utility method, which accepts array of integers, returns the array of integers in descending order


- Write a utility method, which accepts array of float values, returns the array of float numbers in ascending order

- Write a utility method, which accepts array of float values, returns the array of float numbers in descending order


- Write a utility method, which accepts array of long numbers, returns the array of long numbers in ascending order

- Write a utility method, which accepts array of long numbers, returns the array of long numbers in descending order


- Write a utility method, which accepts array of String values, returns the array of String values in ascending order
- Write a utility method, which accepts array of String values, returns the array of String values in descending order


- Write a method, which accepts an integer array and return an integer array with below implementation

- Reverse the elements of given integer array and return the result array. For eg : If input is [0,1,2,3,4,5] , then result is {5,4,3,2,1,0]

- Write a method, which accepts an float array and return an integer array with below implementation

- Reverse the elements of given float array and return the result array.

- Write a method, which accepts and double array and return an integer array with below implementation

- Reverse the elements of given double array and return the result array.

- Write a method, which accepts an long array and return an integer array with below implementation

- Reverse the elements of given long array and return the result array.

- Write a method, which accepts an Integer array and return an integer array with below implementation

- Reverse the elements of given Integer array and return the result array.

- Write a method, which accepts an Float (Wrapper) array and return an integer array with below implementation

- Reverse the elements of given Float (Wrapper)array and return the result array.

- Write a method, which accepts an String array and return an integer array with below implementation

- Reverse the elements of given String array and return the result array.

- Write a method, which accepts Double array and return an integer array with below implementation
- Reverse the elements of given Double array and return the result array.


--------------------------------------------------------------------------------------------------------------

File API

-   Create a FileUtil class with below methods
- Write a method, which accepts directory path (String) as input, return true if it successfully creates the directory , otherwise return false (For eg : If “ \temp\office\employee” , then should create a directory under C:\temp\..

- Write a method, which accepts fileName, fileContent , Create the file as per given name and content , Return true upon successful creation of file, otherwise return false.

- Write a method, which accepts fileName as input parameter, delete the given file if exists and return true, otherwise return false.

- Write a method, which accepts two file names as srcFileName,tgtFileName, then copy the contents of srcFileName to tgtFileName, Return true upon successful copy otherwise return false.
- Write a method, which accepts fileName , fileContent, Append the fileContent to the existing file , return true upon successful update to the file otherwise return false.


- Create a employee.txt  file with at least 10 rows having below kind of data(FName,LName,Age,Dob,Company,Address)

      Steve||Jobs||23||12-12-1965||Apple||Address1||Address2||City||State||Country||Postal

- Create a EmployeeDTO class with fName,lName,age,dob,company,address1,address2,city,state,country and postal attributes & setter & getter method for each attribute

      Perform below implementation using above two steps.

- Write a method, Which accepts a first Name & last Name , Read the file content and if you find any match with the given first name and last name in file content, then read the line from the file, Delimit the line using ‘||’ pipe operator, populate first Name, lastName, age, date of birth and rest of the data to EmployeeDTO object and return the object.

- Write a method, which accepts ‘EmployeeDTO’ object, If this object is not null, then read each attribute, construct a String object with each attribute from EmployeeDTO object seperated by
||’ pipe operator, and append this string to employee.txt file.


-  Write a program which reads data stream from keyboard char by char.And read the data stream and exit the

  reading when it encounters the letter Q.

Hints: say the data stream is  abc1234Qefg

          While reading, it print will be  abcq123 only.



- Write a program which reads the directory,identifies whether its directory or a file.If it is a directory enter into the directory and count the number of directories and files available in that directory.



-  Write an example that counts the number of times a particular character, such as e, appears in a file.

Hints: say the file content is: “the java is oops launguage


-  Write an example that counts the number of times a particular word, such as “The”, appears in a file.

Hints: say the file content is: “The java is as good as the good programmer is ”


- Write a Program which opens a file,reads the file and counts the number of words available in that file.

- Write a method with below functionality - Prepare .txt file
- Accept table name as input parameter
- If the provided table exist in database, read the contents of the table, write the contents of the table into .txt file by comma separated.
- If table name doesn't exists, write a error message " Table doesn't exist" to console and return false.
- If successfully able to write into file and create, return true otherwise return false.

- Write a method with below functionality - PREPARE CSV file
- Accept table name as input parameter
- If the provided table exist in database, read the contents of the table, write the contents of the table into .csv file by comma separated.
- If table name doesn't exists, write a error message " Table doesn't exist" to console and return false.
- If successfully able to write into file and create, return true otherwise return false.

- Write a method with below functionality - - Return Array of file contents
- Accept table name as input parameter
- If the provided table exist in database, read the contents of the table, Prepare table content into two dimensional array and return
- If table name doesn't exists, write a error message " Table doesn't exist" to console and return null.
- If successfully able to write into file and create, return String[][] otherwise return null.
- Eg : If Employee table has two rows with content as Ravi,23 & Ron 24, output should be as below
[Ravi,23]
[Ron,24]

- Write a method with below functionality - - Return List of Array file content
- Accept table name as input parameter
- If the provided table exist in database, read the contents of the table, Prepare table content into List<String[]> and return it
- If table name doesn't exists, write a error message " Table doesn't exist" to console and return null.
- If successfully able to write into file and create, return List<String[]> otherwise return null.
- Eg : If Employee table has two rows with content as Ravi,23 & Ron 24, output should be as below
List<String[]>

------------------------------------------------------------------------------------------------------------------------------
JDBC related

- Write a SQL Script to below requirements

- Create a Student table with below attributes
- FName - 50 characters, required
- MName - 5 characters, optional
- LName - 50 char, required
- Age - Number, required
- DOB - Date - required
- Joining Date - Date - required
- GPA - Number(2,1) - Accepts a float value with only one value after decimal

-  Write a sql command to insert at least 5 students information into above table

-  Write a sql command to read all the students from Student table

- Write a sql command to read all the students whose name starts with ‘R’

- Write a sql command to read all the students whose LName ends with ‘i’

- Write a sql command to read only FName,LName from student table where age > 30 and FName contains a ‘i’

- Write a sql command to read all the students from Student table in descending order by age.

- Write a sql command to read all the students from Student table in ascending order by joining date.

- Write a sql command to alter Student table - Add a new column ‘StudentID - Number - Required - Unique’

- Write a sql command to update Student table, - Update all the records with a unique value for Student ID

- Write a sql command to delete the data from Student table where age <=12

- Write a sql command to read distinct First Names from Student table.

- Write a sql command to create a table called ‘Student_Backup’ exactly based on ‘Student’ table and copy the data from ‘Student’ table to ‘Student_Backup’

- Write a java program to read the contents of the ‘Student’ table and write the each row of Student table  into ‘Student.txt’ file , seperate the each column value by comma(‘,’)

- Write a java program to alter ‘Student’ table to add a new column ‘Email - varchar2(50), required’.

- Write a java program to read the data from ‘Student.txt’ and update the ‘Student_Backup’ database table.

- Create a Database Sequence to store the value of Student_ID

- Create a Database Trigger to set a new DB sequence value to ‘Student_ID’ column in Student table whenever new student record inserted.

- Write a java method deleteTable(), which accept a table name, Delete the contents of the given table name and return true if successfully deleted, otherwise return false.

- Write a java method , truncateTable() - Which accepts the table name , Remove the contents of the table as well as remove the table from the dataase. Return true if successfully removed db table otherwise return false.

- Write a java method, which accepts table name and return the String[][] as per below
        - Read the contents of the given table, Prepare String array for each row  , return all the data in a form of two dimensional array

- Write a java method as below
- public boolean createFileFromDBTable(String dbTableName,String fileName, String filePath)
- Based on given table name, Read the contents of the file
- Write each row of the table with a delimiter comma(,) to a text file
- Save the file as per given name and path.
- Return true upon successful creation of table, otherwise false.

- Write a java method as below
- public List<StudentDTO> readStudentData() throwsSQLException;
- Create a StudentDTO Pojo class with all the attributes as per Student table with setter/getter for every column in Student table.
- Read the contents of ‘Student’ table
- Iterate through each row of Student table, Create a new Object of StudentDTO for each row of Student table
- Set the corresponding Student database column values to corresponding StudentDTO
- Add the StudentDTO to ArrayList
- Return ArrayList
- Throw SQLException if any SQL related exception occurs.
-------------------------------------------------------------------------------------------------------------------

Date/Time l Related
- Write a method which returns a current java.util.Date object.
- Write a method, which accepts a Date Time in String format, convert String to java.util.Date
Eg : Input : “05/12/2012 12:12:12” Output: Corresponding java.util.Date object
Eg : Input : “20120528 12:12:12” Output: Corresponding java.util.Date object
Eg : Input : “MAR 28 2012  12:12:12” Output: Corresponding java.util.Date object
Eg : Input : “05/12/2012  23:56:54” Output: Corresponding java.util.Date object
- Write a method, which accepts timeZone and Date in String format, Convert the given String to a java.util.Date based on given time zone value.
public java.util.Date parseDate(String pDate, TimeZone pTimeZone);
- Write a method, which accepts java.util.Date object, Date Format, Convert the given java.util.Date to a String format and return it.
public String parseDateToString(java.util.Date pDate, String pDateFormat);
- Write a java method, which accepts two java.util.Date objects and perform whether first Date is after second date or not
public boolean after(java.util.Date pDate1,java.util.Date pDate2);
Eg : return true if pDate1 is after pDate2 , 12/12/2012 is after 12/12/2011 , Say return true.


- Write a java method, which accepts two java.util.Date objects and perform whether first Date is before second date or not

public boolean before(java.util.Date pDate1,java.util.Date pDate2);

Eg : return true if pDate1 is before pDate2 , 12/12/2012 is before 12/12/2013 , return true.

- Write a java method, which accepts two java.util.Date objects and perform whether first Date is on or after second date or not

public boolean onOrAfter(java.util.Date pDate1,java.util.Date pDate2);

Eg : return true if pDate1 is or or after pDate2 , 12/12/2012 12:23:45 is on or after 12/12/2012 12:23:45  , return true.

- Write a java method, which accepts two java.util.Date objects and perform whether first Date is on or before second date or not

public boolean onOrBefore(java.util.Date pDate1,java.util.Date pDate2);

Eg : return true if pDate1 is or or before pDate2 , 12/12/2012 12:23:45 is on or before12/12/2012 12:23:45  , return true.

- Write a java method, which accepts a java.util.Date object and int ,add given Days to Date and return the result Date

public java.util.Date addDays(java.util.Date pDate1,int pDays);

- Write a java method, which accepts a java.util.Date object and int ,add given yearsto Date and return the result Date

public java.util.Date addYears(java.util.Date pDate1,int pYears);

- Write a java method, which accepts a java.util.Date object and int ,add given Months to Date and return the result Date
public java.util.Date addMonths(java.util.Date pDate1,int pMonths);
- Write a java method, which accepts a java.util.Date object and int ,add given Hours to Date and return the result Date
public java.util.Date addHours(java.util.Date pDate1,int pHours);
- Write a java method, which accepts a java.util.Date object and int ,add given Minutes to Date and return the result Date
public java.util.Date addMinutes(java.util.Date pDate1,int pDays);
- Write a java method, which accepts a java.util.Date object, TimeZone , convert the given util.Date to oracle.jbo.domain.Date object based on given time zone value
public oracle.jbo.domain.Date parseToJboDate(java.util.Date pDate1,TimeZone pTimeZone);
- Write a java method, which accepts a java.util.Date object, TimeZone , convert the given util.Date to java.sql.Date object based on given time zone value
public java.sql.Date parseToSqlDate(java.util.Date pDate1,TimeZone pTimeZone);
- Write a java method, which accepts a java.util.Date object, Print Number of years, months,days,hours,minutes and seconds in a given Date object.
- Write a java method, which accepts java.util.Date , Return a Day of Week value
public String getDayOfWeek(java.util.Date pDate);
- Write a java method, which accepts java.util.Date, Return a Month for eg: JAN
public String getMonth(java.util.Date);
- Write a java method, which accepts two util.Date objects and perform whether those two dates are equal or not.
public boolean checkEquality(java.util.Date pDate1, java.util.Date pDate2);
- Write a java method, which accepts two util.Date objects and return the difference between two days in the format of String
public String findDateDifference(java.util.Date pDate1, java.util.Date pDate2);
Eg : 5/19/2013 12:23:45 , 5/19/2012 12:23:45 then output is : “ 1 Year 0 months 0 days 0 hours 0 minutes 0 seconds

- write a java method , which accepts java.util.Date object, returns Month for eg : JAN.MAR,SEP etc


- write a java method , which accepts java.util.Date object, returns Year for eg : 2013, 2011

- write a java method , which accepts java.util.Date object, returns Week for eg : 1.2,3etc

- write a java method , which accepts java.util.Date object, returns Day for eg : 1,2,3

- write a java method, which accepts Date in the form of String and returns Month, Year, Day, Week - Write separate methods for each , Hint : You need to convert from String to java.util.Date and re use above methods.
---------------------------------------------------------------------------------------------------------------------------------------------

Collection Framework Related

- Initialize ArrayList, Store 10 String values and display them
- Initialize ArrayList, Store 10 float numbers, print them in ascending order.
- Initialize ArrayList, store 10 employee names, sort them in descending order
- Initialize ArrayList, Store numbers from 1 to 1000 , Accept a number as a input parameter to the method, verify whether the given Number exists in the ArrayList or not.
- Write a method and implement below functionality
- Accept the DB table name
- Query the Database table, read the contents of the table, and store all the column1 values into List, Return the List

- Initialize ArrayList, load Employee Names into this by querying Employee table, Use java.util.Iterator , Iterate through the list and print the employee names

- Create Hash Map with below criteria
- Key is Id as Integer and value as EmployeeDTO
- Have empID and empName as attributes in EmployeeDTO class
- create 100 EmployeeDTO objects, each object will have id as 1,2,3,etcc and name as Name1,Name2,Name3,etcc
- store these objects into above map with key as employee ID
- Iterate Hash Map, Print all the key values(i.e Id)
- Iterate Hash Map, Print all the key values (i.e Id) and corresponding empName(EmployeeDTO->empName)
- Test by removing specific element from Hash map based on some key value.

- Create Hash Table with below critieria
- Key is employee ID of Integer data type
- Value is First Name
- Store 10 different employee ID's and corresponding names
- Iterate the Hash table, and print all the key values using java.util.Iterator
- Iterate Hash table, Print Key (i.e employee ID) and print corresponding value (i.e first Name)
- Test by removing specific element from Hash Table based on some key value.

- Create Hash Map with below criteria.
-> Key is Employee ID (Integer)
-> Value is List<String>
- Store 10 objects into Hash Map with distinct employee ID's and for each employee ID store 10 distinct String values into a List object and set it as a value
- Iterate Hash Map and print all the key values.
- Iterate Hash Map print all the key and corresponding list of values.



- Create a JUNIT test class for all the above functionality and verify.
------------------------------------------------------------------------------------------
JSP



- Develop a helloWorld.jsp , Display current Date/Time and IP Address

- Try below

- develop page1.jsp, Display “Welcome to page1” , Display a command button named as ‘Next’. By clicking on ‘Next’ button redirect the user to page2.jsp , Display message “ Welcome to Page2”

- Develop empHome.jsp with below buttons

- ‘CustomerMgmt’ button - By clicking on redirect the user to customerhome.jsp

- ‘VendorMgmt’ button - By clicking on redirect the user to vendorhome.jsp

               - ‘SearchEmployee’’ button - By clicking on redirect user to searchemp.jsp

- Develop ‘customerhome.jsp’ with below components

- ‘SearchCustomer’ button, By clicking on redirect to ‘searchcustomer.jsp’

- ‘AddCustomer’ button , By clicking on redirect to ‘addcustomer.jsp’
             
- Develop ‘vendorhome.jsp’ with below components
- ‘SearchVendor’ button, By clicking on redirect to ‘searchvendor.jsp’
- ‘AddCustomer’ button , By clicking on redirect to ‘addvendor.jsp’

 - Develop ‘searchcustomer.jsp’ with below components
- CustomerID - Input text
               - Customer First Name - Input text
               - Customer Last Name - Input text
               - Gender - Radio button with male/female options
               - Search - command button
               - Table component - By clicking on above search button, If any results matches with the database, then populate this table with list of matching customers

- Develop ‘addcustomer.jsp’ with below components and functionality
- Customer First Name - Input text - Required - Length should be <=50 char
- Customer Middle Name - Input text - Optional- Length should be <=5 char
- Customer Last Name - Input text - Required - Length should be <=50 char
               - Gender - Radio button with male/Female options.
               - DOB - Month - list of months/ Day - list of days from 1-31/Year - List of values from 1970 to 2013.
- Address , City, State,Postal,Country - Input text , all are required.
- Save - button - By clicking on this button perform below actions
- Validate the user entered data
              - If all the conditions matches, then save the data into database.

-----------------------------------------------------------------------------
XML/ XSD

- Understand difference between xsd and xml

- Create Address.xsd with below elements
  - Complex element - Address (City,State,Country,County,Postal - All are Strings)


- Create Employee.xsd with below elements
- Complex element : Name (FirstName,MiddleName,LastName)
- Age - Integer - Required
- Date of Birth - Date
- Qualification - String
- Salary - double 
- Phone - String - Optional
- Email,Fax - String

- Home Address - Reference to Address element, Reference to Address.xsd from above
- Work Address - Reference to Address element,Reference to Address.xsd from above


- Understand about name space, default name space, target name space
- Understand about what are all the available name spaces in XSD
- Add a condition in the EmployeeDetails.xsd that the EmpAge should be between 0 to 100 

-------------------------------------------------------------------
WebServices

- Create a webservice with below method
Accept a name and return "Hello " +name;

- Create a webservice with below methods
add, multiply,divide,subtract for int,long,float and double data types.

- Create a webservice, which accepts employee ID and return EmployeeDTO based on given employee ID

- Create a webservice, which accepts employee ID, if the given employee ID exists in database, delete the given employee information from the database, return true if successful deletion otherwise false.

- Create a web service, which perform as below
Input : Employee First Name, Last Name ,Date of Birth Start, Date of Birth End Date
Output : Return Array of EmployeeDTO objects based on matching given criteria against Employee database table
- Create a JUNIT test class for all the above functionality and verify.




----------------------------------------------------------------------------

Deployment Profiles

- Create a JAR file for any Model project
- Create a WAR file for any web project
- Create an EAR file for any Java EE application