Technology Spotlight Sharing knowledge and experience…

Payday loans
6Aug/120

Java concurrency/multithreading using ExecutorService

Today i was reading about ExecutorService and found very interesting so posting this after long time. ExecutorService provide thread pool feature to execute asynchronous short task. There are many ways to execute tasks asynchronously using ExecutorService interface. Below are some of the ExecutorService classes that i used in my example:

ExecutorService execService = Executors.newCachedThreadPool();

Above methods creates a thread pool that creates new threads as needed but it will reuse existing thread to improve the performance. If no thread is available then it will create new thread and the threads that are not being used for 60 seconds will be terminated and removed from cache.

ExecutorService execService = Executors.newFixedThreadPool(5);

Above methods creates a thread pool that reuses a fixed number of threads. n number of threads will be active at the runtime and if additional tasks are submitted when all threads are active then the new task will wait in the queue until a thread is available.

ExecutorService execService = Executors.newSingleThreadExecutor();

Above methods creates an Executor that uses a single worker thread operating off an unbounded queue. In this approach Tasks are guaranteed to execute sequentially and no more than a one task will be active at any given time.

24May/110

Hudson Build Automation and Continuous integrations tools

Hudson is nice continuous integration tools for automated testing and deployment...they have plugins for almost everything and they all are ready use...Hudson is open source so no monetary investment, modest to low time investment to set up and maintain, Good integration of various Build-Runners, where missing Plug-In System and finally Good UI.

See the detail on http://hudson-ci.org/

Filed under: Miscellaneous No Comments

affitti appartamenti a roma centro

affitti studenti bologna centro

affitti bologna da privati kijiji

union cemetery kansas city

affitti monolocali roma montesacro
affitti bar verona e provincia

affitti monolocali provincia di napoli


bakeca annunci affitti milano

  • mata plus application memphis
  • affitti casa quarto napoli

  • affitti appartamenti liguria vacanze
  • affitti privati torino bakeca

  • subito.it affitti napoli centro
  • affitti torino privati kijiji
  • bologna privati corticella
  • affitti case genova quinto

    tecnocasa affitti napoli vomero
  • fac simile lettera cedolare secca affitti
  • affitti roma prati privati
  • affitti monolocali napoli privati
  • variazione istat 2010 per affitti
  • gabetti oriolo romano

    affitti casa.it firenze


    mercatino catania affitti stanze

    www napolincasa .it casoria affitti
  • peel adhesion units
  • affitti appartamenti bergamo e provincia
    blunting of left costophrenic angle pleural thickening

    privati torino bakeca

    appartamenti jesolo lido

    napoli bric brac

    appartamenti follonica affitti estivi

    affitti camere roma piazza bologna
  • bakeca affitti case firenze
  • doctor's care orangeburg sc

    solo affitti.it brescia

    affitti stagionali colle romito

    tecnocasa verona affitti borgo venezia
    studenti napoli fuorigrotta

    calcolo variazione istat affitti

  • affitti rosamarina di ostuni
  • ostia lido levante
    agenzia solo ostia lido
  • studenti ied milano
  • affitti appartamenti roma ostia

  • affitti privati catania kijiji
  • gabetti immobiliare roma
  • affitti stanze bologna privati
  • case roma quartiere africano
  • 17Nov/091

    Axis2 username/password Authentication

    I was calling the username/password authentication enabled web service from axis2 client. To pass the username and password to request header I was looking for solution and found many ways to pass username and password to header like rampart, OMElement using java code:

    Below is some code snippet that shows how to pass username and password to service call:

    15Feb/090

    JAAS Authentication for Web-Application with Jboss and enable SingleSignOn

    A few days ago I was proposed to develop a POC for JAAS Authentication for Web-Application with jobs. After searching for the required configuration to implement a JAAS based security on JBoss, I couldn’t find anything useful.

    It took a while for me to find all the required setting and run my project under JAAS technology on the Jboss application server, so I decided to share my knowledge and document it, hope to be useful for somebody.

    When he clapped one of his palms against Reilly's arm, he nearly sent Reilly stumbling. It made her 160 Immortal Promise: A Vampire Love Story feel like an idiot for offering.

    nowak bus tours

    affitti monterotondo scalo da privati
    affitti privati case vacanza sicilia
    affitti napoli centro storico
  • milano stanze studenti
  • affitti vacanze mare liguria

    vacanze corsica del sud

    firenze camere singole
  • guida tv italia uno ieri
  • quartiere isola milano affitti
  • affitti napoli vomero
  • affitti bologna privati bakeca
  • kijiji padova stanze
  • case firenze centro
  • provincia di parma noceto

    agenzie immobiliari affitti roma eur
  • affitti monolocale bologna e provincia
  • best friend by toybox free download
  • affitti uffici verona centro
    affitti appartamenti a napoli www subito .it

    tecnocasa affitti milano centro

  • affitti case noceto parma
  • affitti privati pian di sco
  • annunci affitti napoli studenti
    affitti da privati quarto napoli
  • indice istat abitazioni
  • affitti per vacanze spagna
    annunci affitti case firenze
    bric brac affitti napoli vomero
  • affitti stagionali colle romito
  • affitti vacanze finale ligure

  • ebay annunci affitti torino
  • affitti appartamenti arredati lugano
  • appartamenti a roma da privati
    affitti privati verona e provincia

    affitti palermo zona partanna mondello

  • kijiji verona stanze
  • adeguamento istat affitti 2011 calcolo

  • mercatino catania affitti arredati
  • affitti monolocali napoli privati
  • affitti studenti firenze centro
  • This document will help you to configure Jaas Authentication for Web-Application on Jboss Application Server as well as will help you in enabling SingleSignOn.

    Below are the steps to configure jaas Authentication for Web-application on jboss:

    Step-1: Define a new application policy in login-config.xml (C:\Software\jboss-4.2.3.GA\server\default\conf\login-config.xml)

    To define an application policy, you need to modify login-config.xml to add the application policy: Below is the example policy.

    <application-policy name = "web-console">

    <authentication>

    <login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule"

    flag = "required">

    <module-option name="usersProperties">props/web-console-users.properties</module-option>

    <module-option name="rolesProperties">props/web-console-roles.properties</module-option>

    </login-module>

    </authentication>

    </application-policy>

    29Dec/084

    Single Sign On (SSO) using JBoss and SAML

  • best meditation methods techniques
  • affitti firenze privati isolotto

    variazione istat 2010 per affitti

    bakeca brevi milano

  • affitti appartamenti londra lungo termine
  • affitti appartamenti salento gallipoli
  • agenzie immobiliari trieste
  • affitti milano privati centro
  • a castelrosso chivasso
    adeguamento istat affitti canone libero
    affitti verona centro privati
  • affitti appartamenti jesolo lido privati
  • roma quartiere trieste

  • case firenze sud
  • tecnocasa affitti rivarolo canavese
    She insisted that Miriam sit to her left so she could offer suggestions on how they could get her and Jason to get together to dance.
  • affitti monolocali napoli privati
  • affitti appartamenti vacanze salento
  • roma privati centro

    kijiji bilocale milano
    affitti capannoni serravalle pistoiese
  • affitti case segrate milano
  • case provincia di verona

    appartamenti nel salento
    affitti milano mio affitto
    affitti case studenti bologna

    tecnocasa torino e provincia

    affitti roma privati portaportese

    cernusco sul naviglio- affitti case

    annuali case vacanze liguria

    affitti monolocali piazza bologna

  • roma eur cecchignola
  • porta ticinese milano affitti

    tutto torino e provincia
    misa gel polish
  • bacheca annunci affitti milano
  • variazione istat affitti maggio 2011

    appartamenti londra settimanali

  • porta ticinese milano affitti
  • affitti torino privati santa rita
  • adeguamento istat affitti maggio 2011
  • annunci camere firenze
  • deadman vs lotta zay
  • affitti ostia lido monolocale

    affitti appartamenti follonica pratoranieri

    annunci privati affitti firenze centro

    bric brac affitti napoli vomero

  • affitti appartamenti ostia antica

    case verona e provincia

  • monolocale firenze privati
  • affitti privati pian di sco

    affitti case napoli subito

    In this article I am going explain SSO and how to setup SSO in JBoss.

    Single Sign On (SSO) is a specialized form of user authentication that enables a user to be authenticated once, and gain access to resources on multiple systems/web applications during that session.

    The JBoss SSO framework is combination of three components:

    1. Federation Server

    2. Token Marshalling Framework

    3. Identity Connector Framework

    Following are the steps to setup JBoss SSO:

    Step-1: Installation

    Download JBoss from here : Download

    Unzip/Untar the distribution on your machine e.g.: C:/jboss

    Download JBoss Federated SSO from here : Download

    Unzip/Untar the distribution on your machine egg C:/Jboss Federated SSO

    Copy the jboss-sso.sar and jboss-federation-server.ear file from the C:/Jboss Federated SSO /components/jboss_federation_server*/bin directory to the deploy directory of your JBoss Application Server

    11Oct/080

    Spotlight on Next Big Thing: Cloud Computing

    I have been following cloud computing for quite some time. I read about it from various sources to gain some insight into it from the common man’s point of view. Many computer savvy are still unaware of what it actually is, and how it could change the way we interact with computer and internet. Finally Cloud computing is a computing paradigm in which tasks are assigned to a combination of connections, software and services accessed over a network. The network of servers and connections is collectively known as "the cloud". Or we can say cloud computer is internet-based computing device.

     

    Many computer pundits predict that it will be the next big thing in the digital revaluation.

     

    Applications in the cloud: this is what almost everyone has already used in the form of gmail, yahoo mail, the rest of google apps, the various search engines, wikipedia, etc

     

    Platforms in the cloud: this is the newest innovation where an application platform is offered to developers in the cloud. Developers write their application and then upload their code into the cloud where the app is run magically somewhere, typically being able to scale up automagically as usage for the app grows. Example: Mosso, Google App Engine, etc

     

    Infrastructure in the cloud: this is the most general offering that Amazon has pioneered and where RightScale offers its management platform. Developers and system administrators obtain general compute, storage, queueing, and other resources and run their applications with the fewest limitations. This is the most powerful type of cloud in that virtually any application and any configuration that is fit for the internet can be mapped to this type of service.


    Amazon provides EC2 services. Ec2 is a web service interface allows you to obtain and configure capacity with minimal friction. It provides you with complete control of your computing resources and lets you run on Amazon’s proven computing environment. Amazon EC2 reduces the time required to obtain and boot new server instances to minutes, allowing you to quickly scale capacity, both up and down, as your computing requirements change. Amazon EC2 changes the economics of computing by allowing you to pay only for capacity that you actually use. The services are billed on a pay-as-you-go usage basis.

     

    Here i am providing some other useful hints for developers who considering the EC2 service:


    1. "Before spending too much time configuring and customizing an AMI, find one that suits your needs from the start so you won't have to redo any work later on down the road. Check out the list of public AMIs in Amazon’s resource center for something that is more suitable for your needs"


    2. "When packaging up your own image using the ‘ec2-bundle-vol’ command, make sure you specify a clean folder using the '–d' flag otherwise bundling the same image twice will result in an error due to the conflicting sets of temporary files."


    3. "When working with your image, note that the main drive/partition (where the system files are) has a very limited capacity (10 GB in our case). So when dealing with large files/directories use ‘/mnt’ as it has over 100 GB.


    4. "If a machine is terminated, all your data will be lost except for what was backed up from the last time you ran an 'ec2-bundle-vol'"


    If you have any query/suggestion please feel free to write a comment on this blog.

    Thanks,
    ~Kumar

    27Sep/080

    Technical Spotlight on SOA (Service Oriented Architecture)

    Well now a day all big organizations/executives have been talking about SAO as a buzzword (For one thing, it’s three word) and SOA enabled Architecture. Here I am sharing my learning and experience from SOA…

    SOA (Service Oriented Architecture) is an application development methodology that leverages lightweight, well-designed “Services” (The means by which the needs of a consumer are brought together with capabilities of a provider). In other words:  SOA is a style of building distributed systems that enables business integration using services as building blocks or It is a thought process and methodology of decoupling IT assets – Software and hardware – from business processes. We can say SOA is a business-driven IT architectural approach that supports agile, innovation and optimization.

    Building blocks of SOA:

    ·         Business level Services

    ·         Infrastructure level services

    ·         Services Management

    ·         Security

    ·         Services Directory

    Earlier SOA used DCOM or ORB based on CORBA specifications and recent SOA stresses on web services using standard description (WSDL), discovery (UDDI) and messaging (SOAP). Services oriented architecture may or may not use web services but yes web services provide a simple way towards service oriented architecture.

                                       Service-oriented architecture

    Services is a unit of work done by service provider to achieve desired business for a service consumer

    Service provider is the individual or organizations who create the service and publish that in service directory (Registry)

    Service Directory is a well-known directory of available services. It registers available services and making them easily accessible for multiple reuses.

    Now what should be the characteristics of a “Service” and which characteristics that define the “service”? Service should have Syntax, Semantics, QoS and Business Traceability. Below are the lists of characteristics of a “Service”:

    ·         Well defined interface

    ·         Modular

    ·         Stateless

    ·         Connectionless

    ·         Coarse grained

    ·         Location transparent

    Here is the list of design principles that drive SOA:

    1.      Modularity

    2.      Encapsulation

    3.      Loose coupling

    4.      Separation of Concerns

    5.      Compos ability

    6.      Single Implementation

    Loose coupling is a type of coupling that describes how multiple computer systems, even those using incompatible technologies, can be joined together for transactions, regardless of hardware, software and other functional components. Or By decoupling from platform, protocol, location and language using interface based assembly.

    SOA resolves four important dependencies that are:

    ·         Platform Dependence

    ·         Location Dependence

    case a monterotondo-scalo

  • bric brac affitti napoli vomero
  • affitti appartamenti studenti londra

    appartamenti milano affitti settimanali or replay or tecno or newsroom or 60th or barbour or surging or estancia or garenne or corfu or allods or posti or upma or mapfre or mangga or resveratrol or ung or distanta or plastico

    affitti milano privati kijiji
  • She tried to scream, only releasing a brief whimper from her lips. If there was one thing Megan couldn t resist, it was showing someone how poorly they judged her.
  • ebay annunci affitti torino
  • kijiji firenze affitti stanze
  • uffici cernusco sul naviglio

  • privati partanna mondello
  • solo affitti medaglie d'oro modena
  • bologna privati bakeca
  • He managed to smile tenderly at her, I can t help it. Turning her attention to the houses lining the block, she noted the children playing in the yards while mothers talked to their neighbors.
  • affitti bologna privati idealista
  • bacheca camere milano

    di appartamenti a londra
  • affitti ad ostia levante or estado or celeste or mayday or helicon or matteson or locked or converting or tula or sekitar or ronde or roadmap or cfo or sherwood or noise or tuesday or hardees
  • bakeca affitti stanze bologna
  • affitti appartamenti privati bergamo

    pian di sco affitti

    sylvania portable dvd player battery life

    affitti casalnuovo di napoli

    affitti appartamenti a miami beach

    solo affitti.it pisa

  • affitti appartamenti arredati milano centro
  • affitti appartamenti verona centro
  • milano centro negozi

  • affitti appartamenti annuali rimini
  • affitti negozi termini imerese
  • ow huth middle school matteson il
  • affitti monolocale firenze novoli
  • A few hours wasn t enough to give herself an objective view.
  • does mean chinchillas ears down
    affitti napoli fuorigrotta cavalleggeri
  • belkin pureav hdtv indoor antenna review
  • affitti ostia antica privati
    a castelrosso chivasso
  • offerte affitti torino e provincia
  • affitti case ostia antica

    affitti monolocali casalnuovo di napoli

  • appartamenti padova studenti
  • affitti torino e provincia privati


  • affitti subito.it milano
  • variazione istat giugno 2012

    affitti milano centro bilocale

    minus ion water

    modello 69 cedolare secca affitti

    annunci affitti verona e provincia

    ·         Implementation Dependence

    ·         Information Format Dependence

  • She didn t know why, but it pleased her that she didn t have to ask him to pull out the chair for her. He told me in the garden that I am confused.
  • agenzia solo affitti ostia lido
  • affitti milano casa.it
  • affitti agenzia petrarca livorno

    appartamenti londra affitti brevi

     torino e provincia da privati

    affitti monolocali roma montesacro

    affitti monolocali roma talenti

    affitti appartamenti 'studenti udine

    offerte tecnocasa torino

    affitti firenze studenti universitari


  • bologna camere studenti
  • affitti canone agevolato firenze

    affitti milano centro studenti

    stanze verona centro
    bakeca annunci torino
  • bilocale milano
  • adeguamento istat affitti 2011 agosto

    solo affitti.it pisa

    lhasa de sela de cara a la pared lyrics

    appartamenti per capodanno bergamo

    affitto sicuro solo affitti opinioni
  • artistry clarifying balancing moisturizer
  • stanze piazza bologna
  • affitti napoli monolocali arredati
  • tecnocasa commerciali torino
  • verona centro storico

    agenzia solo ravenna 2

  • 1863 half dollar coin
  • affitti ville ostia antica

  • affitti rustici verona e provincia
  • stanze verona borgo roma
    firenze centro storico
    appartamenti londra brevi
  • linseed varieties uk
  • affitti privati partanna mondello
  • the triangular fibrocartilage complex tfcc anatomy
  • affitti appartamenti bergamo e provincia

    il mercatino catania affitti

  • estivi colle romito
  • georgia xtreme cheer
  • affitti appartamenti ostia lido
  • Benefits of SOA:

    Service-oriented architectures offer the promise of business agility and resilience through reuse, loose coupling, flexibility, interoperability, integration and governance. These are realized by separating service description from their implementations, and using this descriptive metadata across the service life cycle.

    ·         Increased business responsibilities and agility

    ·         Ability to transcend organizational boundaries

    ·         Reduces product development cycle times

    ·         Exposes commodities in business processes

    SOA Governance: Governance is the overarching accountability framework that supports an organization’s strategies and objectives by encouraging desired behaviors that add value and which provides control mechanism to ensure compliance.

    ”Governance is about tracking all the rules and monitoring events around them to ensure that service-oriented architecture works the way it’s supposed to” says Daryl Plummer, a Gartner managing VP.

    We should address following technical issues while designing SOA:

    1.      Interoperability

    2.      Loose Coupling

    3.      Location transparency

    4.      Modular issues

    5.      Reuse focus

    6.      Integration issues

    7.      Granularity

    8.      Application assembly to model business process

    9.      Intra company solutions using existing components

    10.  External integration solutions using web-services

    Service Modeling Techniques:

    ·         Top down approach

    ·         Bottoms up approach

    ·         Middle-out approach

    I will keep writing about SOA and other learning and experience. You can write you valuable comment over it.

    Thanks,

    ~Kumar

    camere studenti napoli
  • affitti case verona borgo trento
  • affitti firenze bacheca

    affitti per vacanze liguria

  • appartamenti milano settimanali
  • casa quarto napoli or hostels or absorber or hdfc or adultery or oki or handwashing or vientos or configurer or regalos or gerd or parting or crucifixion or interamericana or etwas or card or 75015
  • annunci appartamenti bergamo
  • affitti bologna camere studenti
  • affitti case zona cassia
  • appartamenti follonica affitti estivi
  • affitti firenze centro storico

    bacheca affitti camere milano

    affitti milano centro studenti

  • affitti appartamenti jesolo lido privati
  • Good, Ray called out from the center of the room. She had stayed up just to make sure the Vampires wouldn t return, not knowing what she d do if they did.
  • appartamenti a milano marittima
  • case napoli vomero
  • affitti case vacanze spagna
  • appartamenti a roma
  • tanie linie lotnicze do usa
  • adeguamento istat maggio 2011
  • privati appartamenti follonica

  • adeguamento istat affitti gennaio 2011
  • affitti appartamenti provincia di bergamo

    pencil sketching techniques pdf

    annunci affitti bologna studenti

    left branch bundle blockage heart
    variazione istat 2010 per affitti

    affitti bologna per studenti

    affitti vacanze ile rousse corsica

    affitti verona centro

  • tecnocasa olevano romano

    secondamano appartamenti torino
    affitti roma prati ufficio
  • affitti appartamenti firenze kijiji
  • tecnocasa affitti rivarolo canavese
  • ostia lido portaportese
  • annunci firenze studenti
  • affitti ostia lido privati

    affitti napoli centro direzionale

    tecnocasa affitti napoli vomero

  •  negozi termini imerese
  • annunci affitti verona e provincia
  • affitti case vacanze salento 2011

  • grandparent grandchild clipart

    affitti appartamenti quarto napoli

  • cernusco sul naviglio- case
  • affitti monolocale bologna 400 euro
  • appartamenti follonica affitti estivi
  • bakeca firenze camere
  • sat nav medion review

    Filed under: Service-oriented architecture (SOA) No Comments
    tecnocasa torino centro
  • appartamenti vacanze follonica
  • klipsch synergy floor speakers f3 review
  • annunci affitti firenze studenti
  • case villafranca di verona
  • affitti commerciali verona centro
  • bakeca bologna stanze

  • step step reactions nitrogen cycle

    residenziali venezia
  • affitti monolocali arredati provincia napoli

  • It s hard to say what frame of mind Cole is in. I expect you to be honorable and do your part.

    bacheca monolocali milano
    indice adeguamento istat affitti 2011
    affitti monolocali casalnuovo di napoli


    He knew she was beautiful, but no words could describe her at that moment although he tried, Elsa.
  • appartamenti londra affitti mensili
  • monolocali roma montesacro
  • annunci affitti stanze bologna

    appartamenti porto cesareo

  • affitti appartamenti nel salento
  • affitti appartamenti privati castiglione della pescaia
  • offerte affitti torino e provincia

    keller management apple valley mn

    bologna da privati kijiji

    subito.it affitti napoli centro

  • affitti firenze case non arredate
  • affitti milano zona corsico
    affitti roma privati monolocali
  • adeguamento istat canone affitti 2011
  • affitti appartamenti vacanze salento
  • solo affitti.it pisa

  • affitti appartamenti vacanza finale ligure
  • They are good people doing God's work and helping poor children learn to read, write, cipher.
  • affitti bologna camere studenti
  • tecnocasa affitti provincia di torino
  • affitti bilocali verona e provincia

  • affitti appartamenti privati salento
  • coltrane curtis epiphany media
  • kijiji bologna affitti stanze

    18Sep/080

    Aspect Oriented Programming (AOP) and Spring

    AOP is all about adding aspects to your code. So what are aspects? The code that we apply on Cross Cutting Concerns. Then what is Cross Cutting Concerns? Aspect, Jointpoint, Pointcut, Cross Cutting Concerns, Advice etc are the frequently used word in AOP world. AOP decomposes a system into concerns, instead of objects.

     

    Aspect: It’s like a general feature you want to apply globally to your application like logging, exception handling, transaction management, performance management etc. It is also called Cross Cutting Concerns.

    Advice: It is a piece of code/logic for implementing your advice.

    Joinpoint: A single location in the program where an advice is applied like method invocation, constructor invocation etc.

    Pointcut: A pointcut is set of Joinpoint where an advice is applied. In Spring set of method invocation is called Pointcut. There are different types of pointcut in spring like Regular Expression Pointcut, Attribute Driven Pointcut, and Dynamic Pointcut etc

    Targets/Target Objects: The objects you want to apply an aspect or set of aspects.

    As per me advice is very similar to Decorator. You can implement an advice by implementing org.aopalliance.intercept.MethodIntercept interface of spring. The MethodInterceptor interface is actually a child of the org.aopalliance.intercept.Interceptor interface, which is a child of another interface org.aopalliance.aop.Advice. In spring we generally use method interceptor. That is designed for method-invocation style advice. The MethodIntercept is really simple

     

    public interface MethodInterceptor extends Interceptor {

                Object invoke(MethodInvocation invocation) throws Throwable;

    }

    Basically, when you write an advice for intercepting a method, you have to implement one method - the invoke method, and you are given a MethodInvocation object to work with. The MethodInvocation object tells us a bunch of stuff about the method that we're intercepting, and also gives a hook to tell the method to go ahead and run.

    public class LoginInterceptor implements MethodInterceptor {

               public Object invoke(MethodInvocation methodInvocation) throws Throwable {

                   Log logger = LogFactory.getLog(methodInvocation.getClass());

                   long startTime = System.currentTimeMillis();

                   try {

                                   Object[] args = methodInvocation.getArguments();

                                   if (logger.isDebugEnabled()) {

                                        logger.debug("Beginning method: " +

                                                                 methodInvocation.getMethod().getDeclaringClass() + "::" +

                                                                 methodInvocation.getMethod().getName());

                                       if (null != args) {

                                                   logger.debug(" with arguments: " + args.toString());

                                       } else {

                                                  logger.debug(" with no arguments");

                                       }

     

                                        logger.debug(System.getProperty("line.separator"));

                                   } else if (logger.isInfoEnabled()) {

                                            logger.info("Beginning method: " + methodInvocation.getMethod().getDeclaringClass()

                                                  + "::" + methodInvocation.getMethod().getName());

                                          logger.info(System.getProperty("line.separator"));

                                   }

                                                  Object retVal = methodInvocation.proceed();

                                   return retVal;

                          } finally {

                                   if (logger.isInfoEnabled()) {

                                   logger.info("Ending method: " +  methodInvocation.getMethod().getDeclaringClass() + "::" +

                                   methodInvocation.getMethod().getName());

                                   logger.info("Method invocation time: " + (System.currentTimeMillis() - startTime) + "

                                   msecs.");

                                   logger.info(System.getProperty("line.separator"));

                                       }

                        }

               }

    }

    XML configuration for above interceptor is given below:

     

    <bean id="studentServiceTarget" class="com.example.StudentServiceImpl"/>

     

    <bean id="myLogger" class="com.example.LoginInterceptor"/>

       

    <bean id="studentService"

        class="org.springframework.aop.framework.ProxyFactoryBean">

        <property name="proxyInterfaces"><value>com.example.StudentService</value></property>

        <property name="target"><ref local="studentServiceTarget"/></property>

        <property name="interceptorNames">

            <list>

                <value>myAdvisorLogger</value>

             </list>

        </property>

    </bean>

     

    Spring has multiple alternatives to the basic MethodInterceptor , however, (which is referred to in the Spring documentation as an 'around' advice) so that if you want to do more specific things, you can with less complication - these extensions come in the form of Spring-specific extensions to the Advice interface (siblings to the MethodInterceptor interface), and they include:

    ·         org.springframework.aop.MethodBeforeAdvice - Implementations of this interface have to implement this before method:

    void before(Method method, Object[] args, Object target) throws Throwable;

    ·         org.springframework.aop.AfterReturningAdvice - This interface's method will be called on the return from the invocation of a method. Implementation of this interface have to implement this afterReturning method:

                void afterReturning(Object returnValue, Method method, Object[] args, Object target) throws Throwable;

    ·         org.springframework.aop.ThrowsAdvice – Implementation of this interface havt to implement this afterThrowing method:

                void afterThrowing([Method], [args], [target], [some type of throwable] subclass)

     Below are hierarchy of Advice class:

     

    In above article I have given only basic information about AOP. 

     

    Reference Material:

    ·         http://static.springframework.org/spring/docs/1.2.x/reference/aop.html.

    ·        Spring in Action by Craig Walls, Ryan Breidenbach: this is the best book I have read on Spring (and yes I read this entire book).

    Filed under: Spring No Comments
    14Sep/080

    Inversion of Control (IOC)/ Dependency Injection (DI) / Spring

    The basic concept of the Inversion of Control pattern (dependency injection) is that programmers  don’t  need to create your objects but describe how they should be created. Don’t directly connect components and services together in code but describe which services are needed by which components in a configuration file. A container (in the case of the Spring framework, the IOC container) is responsible for all this. In a IOC scenario, the container creates all the objects, connects them together by setting the necessary properties, and determines when methods will be invoked. The implementation pattern types for IOC used by SpringFramework are as follows:

    Ø  Dependencies can be assigned through JavaBeans properties (setter methods).

    Ø  Dependencies are provided as constructor parameters and are not exposed as JavaBeans Setter propertiSes.

           

    Spring IOC Container

    Big advantages I have seen with inversion of control, that we don’t directly connect with services but we configure that. Now this is really gaining momentum as of late, is the adoption of the Spring Framework as an alternative to Java EE. I think that this started because J2EE was so complicated and heavy-weighted that companies sought new and innovative solutions. Spring provides the ability to access data objects as Plain Old Java Objects (POJOs) and includes support for database connection pools, transaction management, and so forth. This means that you can effectively build a scalable enterprise application without Java EE. And as Java EE evolved into its more manageable form, many developers continued to appreciate all that Spring provided them and had no desire to switch back.

    As an enterprise developer you should be familiar with the concept of Inversion of Control (IoC) and Dependency Injection, and Spring specifically. Whether you decide to embrace Java EE and EJB 3.0 or develop your applications with Spring, you should at least understand the theory.

    Book Recommendations:

    ·              Spring in Action by Craig Walls, Ryan Breidenbach: this is the best book I have read on Spring (and yes I read this entire book).

    Filed under: Spring No Comments
    9Sep/080

    First Post

    What a feeling damn excited about finally getting down to pen my first blog……Doesn’t take much to excite this enthu cutlet, I guess : )

    Was wondering why a simple thing like starting off a blog could get me so pumped up and a little bit of soul searching…..It’s been planned long time back… but due to time constraint and work enthu didn’t… one day my friend Nishat Saini told why don’t you start bogging…and same day I started…rolling the ball (blog articles) to share the experience that I had with various open source products/technologies, architecture, and design. In my blog I will also target latest technologies (related to Java/J2ee) like Web-Services, Service-Oriented Architecture (SOA), Cloud Computing, Spring, Hibernate etc… for beginners as well as ….

    As when I run into problems I refer to my companion GOOGLE which seems to friend for almost every IT guy. There are countless blogs out there for any particular topic, but which one is the best? Some of them can lead to resolution of problem you have and sometimes it may take weeks to unravel the mystery. So each blog has a unique problem and unique solution and the answer to your problem might be aggregation of these various blogs.

    I will try to put sample programs, pictures and diagrams to explain my thoughts about technologies. I always believe, sample programs, pictures and diagrams speak better than words. If any one interested to ask any question, feel free to post a comment on this article and I’ll answer it as soon as I could.

    Thanks,
    ~Kumar