Skip to main content

Posts

Showing posts from 2010

Understanding CDI (Contexts and Dependency Injection) Part 4

This is Fourth  part of CDI discussion.Please visit   part one ,  part two  and    part three Interceptors Interceptors is one feature of CDI. Using this feature we can intercept the method call. Its counterpart technique for Aspect Oriented Programming (AOP) in Spring. Its helps to analysis the business methods and these interceptors are disabled by default. so we can enable/disable the interceptor in deployment time through beans.xml  file. Create interceptor      To create interceptor involves two step process. first to create interceptor binding and  implement the interceptors. here we create Log Interceptor, so we need to create Log Interceptor Binding(its  like qualifier) Log.java here @InterceptorBinding is represent that the annotation 'Log' is interceptor second, we need to implement the interceptors LogImpl.java here @Interceptor represent that its interceptor implementation @Log specifies to which interceptor  implementation , both of these lin

Understanding CDI (Contexts and Dependency Injection) Part 3

This is Third  part of CDI discussion.Please visit   first part  and part two , @Alternative In part two  we seen @qualifier 's to resolve the unambiguous problem for one interface and more than on implementation. In qualifier helps to solve in development time. (i.e all meta information is stored in class files). Another solution is @Alternative annotation solve the problem in  deployment  time. all configuration is stored in beans.xml in WEB-INF folder We take same example what we discussed in last part  one interface (Hello) and two implementation(HelloImplOne, HelloImplTwo) here i marked @Alternative in both implementation Hello Interface HelloImplOne Implementation HelloImplTwo Implementation and go and modify the beans.xml in WEB_INF folder In <alternatives> tag in beans.xml we need specify which one need to inject. See the screen cast for demo Comments are welcomed

Learning CDI (Contexts and Dependency Injection) Part 2

This is second part of CDI discussion. If u r not visited, Please visit first part , Qualifier            Its annotation, its helps to create our qualifier annotation. We already seen if we have more than one implementation of particular interface then we can't inject, because ambiguity issues are arise. so we need to define own qualifiers and marked the annotation with that qualifier. When inject we need to mention the qualifier. For Example We have one interface and two implementation Hello Interface HelloImplOne Implementation HelloImplTwo Implementation  In Injection  Point (i.e where u inject the class, i.e where u use @inject key word) if u try to inject using interface like this u get AmbiguousResolutionException. but we can still use like this @javax.inject.Inject HelloImplOne hello; @javax.inject.Inject HelloImplTwo hello; so we need use qualifier we can create own qulaifier like any class here @Qualifier - is annotation to rep

Learning CDI (Contexts and Dependency Injection) Part 1

Please see the second part  here Contexts and Dependency Injection (CDI )  JSR 299  is a new feature in Java EE 6 Web Profile .  Its Enhance the JSR 330 Dependency Injection in Java. CDI are highly used annotation. CDI makes Loose coupling between classes. To use javax.inject.Inject annotation, we can inject any class into another classes     In traditional way, we create the instance using ' new ' operator in another class. here thats instance life time is dependent on target class. its tightly coupled. Here CDI makes to loosely coupled and change the life-cycle for that instance.

Necessary Classes need run the Simple Java Application

     When we run Java program, then first load the JVM ie. its load the necessary startup classes are needed by all the programs.  its load 300 classes for load JVM. Its make the initial delay for our program when we run first time. so latest jdk kit (1.6 update 14 or later) provide system tray tool. its load whenever system starts (Startup apps) its load the these nessary classes into cache . so when run the java program it run faster. suppose i create simple "Hello World" program when i run the HelloWorld.java file through -verbose command line option then we see what are the classes loaded Output Its showing more than 300 classes are loaded.

SSL on Tomcat

update : i posted new video for enable ssl in tomcat. please watch this video in 720p How to generate the keys or convert from one format to another format http://www.tomcatexpert.com/knowledge-base/using-openssl-configure-ssl-certificates-tomcat http://www.agentbob.info/agentbob/79-AB.html

Splash Screen in Java Application

Traditionally we are using splash screen with progress bar through JFrame or JWindow in Java swing application. But this approach, big disadvantage is splash screen is loaded after jvm is ready and necessary classes are loaded. In Java 6 provides convient way to show the splash screen even before jvm is get ready. It can integrate into JAR file also. When double click the jar the splash screen show right now. when  jvm start loading. after loading jvm we can procees the splash screen ie. we draw into splah screen, show progress bar , etc.. Java supports splash screen in gif,  png , and jpeg  format. We need to set command line parameter -splash as follows When we make jar bundle that time we need to add Splash Screen entry into manifest.mf file in jar Tip: This Feature only works latest Java 6 Version Its retrieve the Splash Screen image mentions in command line parameter. and make the SplashScreen object. If that object is null then Ur JRE