Friday, August 22, 2008

Skip execution of method in specific time of day

/* this test fails if the current time is between 12:00am and 3:00am*/

Calendar now = Calendar.getInstance();
int hour = now.get(Calendar.HOUR_OF_DAY);
String timeCheck = "Current time not between 12:00am and 3:00am";
String timeDescription = "Current time" + ((hour < 3) ? "" : " not") + " between 12:00am and 3:00am";
Assume.assumeThat(timeDescription, equalTo(timeCheck));

Assume is package org.junit;(public class Assume )

Thursday, August 21, 2008

ANTLR

Today i worked with some text character parsing. In our project, they have used ANTLR parser. ANTLR, ANother Tool for Language Recognition, is a language tool that provides a framework for constructing recognizers, interpreters, compilers, and translators from grammatical descriptions containing actions in a variety of target languages. ANTLR provides excellent support for tree construction, tree walking, translation, error recovery, and error reporting.

http://www.antlr.org/

We have used both Class LLkParser and Class Parser.Alos one important interface that provides is Interface AST in antlr.collections.

http://www.antlr2.org/javadoc/antlr/LLkParser.html
http://www.antlr2.org/javadoc/antlr/Parser.html#LA(int)
http://www.antlr2.org/javadoc/antlr/collections/AST.html

Thursday, August 14, 2008

Payment gateway


A payment gateway is an e-commerce application service provider service that authorizes payments for e-businesses, online retailers, bricks and clicks, or traditional brick and mortar. Paypal and SecurePay are two common payment gateways. Following are the list of gateways.

http://www.paymentgatewaydirectory.com/

In our project we use saferpay payment gateway. In billing-services.xml,
< bean id="billing.paymentService"
class="com.fastsearch.admomentum.billing.service.DefaultPaymentService">
. . .
< !-- this bean is defined in fast-admomentum-paymentgateway.jar -->
< property name="paymentGateway" ref="saferpayPaymentGateway" />
. . .
< /bean>

and in base-configuration.properties, there are lots of configurations.
one of them are,

# The merchant account id with Saferpay
com.fastsearch.admomentum.paymentgateway.saferpay.accountId=XXXXX-XXXXXXXXX

Wednesday, August 13, 2008

Java Unit testing

This is a simple test class i wrote to test following method.

package com.fastsearch.admomentum.common.time;

import java.io.Serializable;
import java.util.Calendar;
........

public class DateRange implements Serializable {

.....

public boolean isBetween(Calendar date) {
if (getEnd() != null) {
return (date.after(getStart()) && date.before(getEnd()))
|| date.equals(getStart()) || date.equals(getEnd());
} else {
return date.after(getStart()) || date.equals(getStart());
}
}
}

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

package com.fastsearch.admomentum.common.time;

import junit.framework.TestCase;
import java.util.Calendar;


public class DateRangeUnitTest extends TestCase {

private DateRange dateRange;

public void testIsBetween()
{
assertFalse(isBetweenOutOfBoundTest());
}

private boolean isBetweenOutOfBoundTest()
{
Calendar testDate = Calendar.getInstance();
testDate.clear();
testDate.set(Calendar.YEAR,2007);
testDate.set(Calendar.MONTH,4);
testDate.set(Calendar.DATE,1);

Calendar startDate = Calendar.getInstance();
startDate.clear();
startDate.set(Calendar.YEAR,2007);
startDate.set(Calendar.MONTH,5);
startDate.set(Calendar.DATE,1);

Calendar endDate = Calendar.getInstance();
endDate.clear();
endDate.set(Calendar.YEAR,2007);
endDate.set(Calendar.MONTH,7);
endDate.set(Calendar.DATE,1);

dateRange = new DateRange(startDate, endDate);
return dateRange.isBetween(testDate);
}
}

mvn commands

- clean
mvn clean

- build
mvn install

- skip all the test
mvn install -P test-unit -Dmaven.test.skip=true
mvn install -o -P test-unit -Dmaven.test.skip=true

- run all the tests including selenium tests
mvn -Ptest-all install

- run specific tests (unit test or selenium test)
mvn install -Ptest-all -Dtest=com.fastsearch.admomentum..ClassName
mvn install -P test-all -Dtest=AdvertisementSeleniumTest
mvn install -Dtest=com.fastsearch.admomentum.common.time.DateRangeUnitTest -o -Ptest-all

- run specific tests (unit test or selenium test) with degugging
mvn install -Dtest=com.fastsearch.admomentum.admanager.webapp.selenium.campaign.CampaignSeleniumTest -o -Dmaven.surefire.debug -Ptest-all
mvn install -Dtest=com.fastsearch.admomentum.admanager.reporting.DefaultReportingServiceUnitTest -o -Dmaven.surefire.debug -Ptest-all

Tuesday, August 12, 2008

Cargo

Cargo is a thin wrapper around existing containers (e.g. J2EE containers). It provides different APIs to easily manipulate containers.

Cargo provides the following APIs:

* A Java API to start/stop/configure Java Containers and deploy modules into them. Also Ant tasks, Maven 1, Maven 2 plugins. Intellij IDEA and Netbeans plugins are offered.
* A Java API to parse/create/merge J2EE Modules

Following are some containers.

* Geronimo 1.x
* JBoss 3.x
* JBoss 4.x
* Jetty 4.x
* Jetty 5.x
* Jetty 6.x
* jo 1.x
* Oc4J 9.x
* Orion 1.x
* Orion 2.x
* Resin 2.x
* Resin 3.x
* Tomcat 3.x
* Tomcat 4.x
* Tomcat 5.x
* WebLogic 8.x

Difference between 'vi' and 'vim' editors

vim is 'vi improved'
More powerful, etc

http://www.dc.turkuamk.fi/docs/soft/vim/vim_diff.html