Skip to main content

Posts

Programming Guide Lines

1. Modularization Do not write the whole logic code in one block/function instead delegate the each and individual responsibility to each function. For example if you are converting one Date time format to another write this logic in Utils and use it. It might be useful in other place as well. And if you come across any common piece which is repeated in you logic put it in a function call where ever needed. This is basic fundamental rule. 2. Single Responsibility. Always delegate single responsibility to one block/function of code. Don't mess multiple operations in a single block/function. And make sure block/function of name should ideally match to what it actually does . 3. Name Justification Always declare the class, method or variable names based on its purpose. And don't use any shorter names. The one who reads your code should get idea what actually it does.

RESTful Service Java Implentaions

Jax RS API and its implementation Clarification The API does not provide any implementation code (concrete classes that do the actual processing). The API only specifies interfaces, annotations, exceptions. There can be concrete classes with some very basic, core behavior. The idea of standard APIs, like JAX-RS, is to give developers something to code against regardless of the underlying platform and implementation. Jersey, RestEasy and CXF are the implementations - it includes many concrete classes that actually handle the business  promised  by the API according to JSR  (Java Specification Request) 311. In JAX-RS case - it handles requests and responses. Apache CXF - CXF is the implementation from Apache Group. Jersey - the JAX-RS Reference Implementation from Sun. We're using Jersey as its packed full of features (e.g. WADL, implicit views, XML/JSON/Atom support) has a large and vibrant developer community behind it and has great spring integration...

Spring Boot Advantages

1. With Spring Boot you can focus more on business features and less on infrastructure. 2. With Spring Boot, project gets added with required libraries and configurations based on reasonable assumptions that Spring boot makes. Assumptions will be made based on the class path. 3. Spring Boot doesn’t generate code or make edits to your files. Instead, when you start up your application, Spring Boot dynamically wires up beans and settings and applies them to your application context.  Spring Boot = Spring Framework + Embded HTTP Servers (Tomcat, Jetty etc..) - XM Configurations For more information visit http://projects.spring.io/spring-boot/

JDK Vs JRE

JDK = JRE + Java Development tools JRE = JVM + Java inbuilt packages + Run time libraries Most of the people always has the doubt of why JDK is again having JRE inside ? Though it got pro vided out of the JDK. Standard JRE doesn't have tools like javac, javaDB and tool.jar So make sure you always point JDK JRE in your project build path. Except the above difference rest of the things are same with Standard JRE's and JRE inside JDK.

Project or Build Version Numbers

In Software world, every project/product release has one version number associated with it to identify on which version of code base it has. Usually every project/product release has its version as follows. (Major).(Minor).(Maintenance/Enhancements).(Build Number) Major - If the release has Major changes in Project/Product then we need to increment this number by 1 Minor -   If the release has Minor changes in Project/Product then we need to increment this number by 1 Maintenance - If the release has Bug fixes or Small Enhancements then we need to increase this number by 1. Build Number :  Every time when we deliver build (latest code) to the QA to test, then we need to increase by 1. Partial Builds: If only some of the modules in the project modified and if those modules only delivered to QA means, it is called as partial builds. And this will be noted as build number along with alphabets. E.G of Build Numbers. Current Version of Project is 4.0.0.0 (4 Major ...

Linux Useful Commands with examples

To know the IP address ----------- hostname -i (ip addres) hostname -s (short name) hostname -d (domain name) hostname -v (host name with domain name) To know the port number and running processes netstat -ano | findstr 80 If the file is huge in size and to see the file content we can use less <file name> e.g. less service.log Searching  matching pattern in file grep '<matching text>' <file name> e.g. grep 'Exception' service.log To grep the text from .gz files gzgrep '<matching text>' <gz file name> e.g. gzgrep 'Exception' service.log.gz ps -eaf | grep java ps aus | grep java tail -f <file Name> (auto updated last few lines) tail -100 logfile.log  (last 100 lines) ls -a  (hidden files) ls -lrt (Sort the files by time stamp) kill -9 <Process ID>   (get Process ID using ps -eaf | grep <process name>) e.g. kill -9 30102

ClassNotFoundException vs NoClassDefFoundError

Both ClassNotFoundException and NoClassDefFoundError errors will be occurred  when the required Class not present in the Class path.     ClassNotFoundException     ClassNotFoundException is an Exception got arized when trying load class using forName() method in class Class. findSystemClass method in class ClassLoader . loadClass method in class ClassLoader. e.g. Class.forName("oracle.jdbc.driver.OracleDriver") if the OracleDriver class file is not present in the Class path, then we will end up with this ClassNotFounException NoClassDefFoundError NoClassDefFoundError is an Error thrown at Runtime, when the Class is present during the compile time and not present during Runtime of the Code, then we will end up with this NoClassDefFoundError. 1. When required Class is not available at Runtime available only in compile time. 2.Since NoClassDefFoundError error is an Subclass of LinkageError, it will occur when one of the     Dependent ...