![]() |
VOOZH | about |
Software Architect at SivaLabs
Hyderabad, IN
Joined Jun 2007
https://sivalabs.in
I am Siva, a passionate software developer, blogger and book author. My current technical focus is on modern architectures including microservices, continuous integration and continuous delivery (CI/CD), and DevOps. My technical skills include Java 8, Kotlin, Groovy, Spring, SpringBoot, Spring Security, Spring Cloud, Hibernate/JPA, MySQL, ElasticSearch, Cassandra, Redis, MongoDB, Kafka, Jenkins, Ansible etc.
Stats
| Reputation: | 582 |
| Pageviews: | 2.7M |
| Articles: | 20 |
| Comments: | 42 |
Comments
Jul 04, 2018 · Dave Fecak
I still personally like it. But I would try JOOQ. I keep hearing a lot of good things about JOOQ.
May 04, 2018 · Thomas Jardinet
A better approach would be using OAuth based security so that all microservices can be secured individually.
Mar 09, 2018 · Arran Glen
Here I am explaining how to use the Spring Cloud features to address concerns occur while building microservices. I am intentionally keeping business logic very low so that reader can focus on "How to use Spring Cloud features".
Nov 24, 2017 · Tim Spann
Here it is https://sivalabs.in/2016/03/how-springboot-autoconfiguration-magic/
Jun 07, 2017 · Alex Collins
Tip#3: Do you mean DTOs (Data Transfer Object)?
Jun 29, 2016 · Michael Remijan
We can call whatever we want but IMO I don't think the testing technique proposed in this article give any benifit.
I prefer testing business logic using Unit Tests by abstracting how the data is loaded (DB/Mock etc). But I always prefer testing the integration code (DB/WebService etc) using real services.
Jun 27, 2016 · Michael Remijan
Looking at all your Unit Test, it seems like you are testing (1) whether Java Annotation/Reflection API is working or not (2) Are developers adding annotations properly or not.
How do you know whether the developers are writing unit tests properly?
Sorry to say this, but it looks like over engineering.
Mar 25, 2016 · Dave Fecak
Seems like the author name of this article points to some other "Siva Prasad"!!
Dec 15, 2013 · James Sugrue
A good and simple way to start creating spring boot apps is http://start.spring.io/
Jul 20, 2012 · James Sugrue
I like the idea of package by feature which greately reduces the time for moving across the packages while coding and all the related stuff will be at one place(package). But what about interactions between the services in different packages?
Suppose we are building a blog app and we are putting all user related operations(controllers/services/repositories) in com.mycompany.myblog.users package. And all blog post related operations(controllers/services/repositories) in com.mycompany.myblog.posts package.
Now I want to show User Profile along with all the posts that he posted. Should I call myblog.posts.PostsService.getPostsByUser(userId) from myblog.users.UserController.showUserProfile()?
What about coupling between packages?
Also wherever I read about package by feature, everyone says its a good practice. Then why many book authors and even frameworks encourage to group by layers? Just curious to know :-)
Thanks,
-Siva
Jul 10, 2011 · Siva Prasad Reddy Katamreddy
Hi,
Having a filter to decode json as request parameters and making SpringMVC handle it as normal requests is a good idea. I will try this.
Thanks,
Siva
Jul 10, 2011 · Siva Prasad Reddy Katamreddy
Hi,
Having a filter to decode json as request parameters and making SpringMVC handle it as normal requests is a good idea. I will try this.
Thanks,
Siva
Jul 10, 2011 · Siva Prasad Reddy Katamreddy
Hi,
Having a filter to decode json as request parameters and making SpringMVC handle it as normal requests is a good idea. I will try this.
Thanks,
Siva
Jun 29, 2011 · Siva Prasad Reddy Katamreddy
Hi,
I took the following criteria for choosing Javascript library:
1. DOM Manipulation: In this all frameworks ExtJS, JQuery, Dojo, YUI are providing very good utilities to do DOM manipulation.
2. Communicating to Server : In this regard also all the frameworks are more or less equal.
3. Widget Library: In this area ExtJS is better than rest of all.
YUI is also good in Widget support. But look and feel is poor.
Dojo doesn't have a Grid with Pagination support(may be new version might have this).
We need to add Jquery plugins to get this Pagination Grid support. It might be easy but it would be great if we have this in-built with the framework.
4. Look and Feel: In this also ExtJS are far better than others.
YUI's pagination bar , Collapsible Layouts doesn't look good (to me :-))
For ExtJS the main strong points are its Widget Library, look n feel and Server Communication.
Thanks,
Siva
Jun 29, 2011 · Siva Prasad Reddy Katamreddy
Hi,
I took the following criteria for choosing Javascript library:
1. DOM Manipulation: In this all frameworks ExtJS, JQuery, Dojo, YUI are providing very good utilities to do DOM manipulation.
2. Communicating to Server : In this regard also all the frameworks are more or less equal.
3. Widget Library: In this area ExtJS is better than rest of all.
YUI is also good in Widget support. But look and feel is poor.
Dojo doesn't have a Grid with Pagination support(may be new version might have this).
We need to add Jquery plugins to get this Pagination Grid support. It might be easy but it would be great if we have this in-built with the framework.
4. Look and Feel: In this also ExtJS are far better than others.
YUI's pagination bar , Collapsible Layouts doesn't look good (to me :-))
For ExtJS the main strong points are its Widget Library, look n feel and Server Communication.
Thanks,
Siva
Feb 23, 2011 · Siva Prasad Reddy Katamreddy
I agree with you.
I missed to convey my main intention of going to use Annotation approach entirely instead of simple xml based approach.
Here it is:
I had a discussion with one of my friend about extending PropertyPlaceholderConfigurer and provide additional utility methods like JConfig's centralized Configuration manager.
All over the Annotation based Spring examples use xml based PropertyPlaceholderConfigurer configuration. So I thought of just telling there is a way to configure customized PropertyPlaceholderConfigurer through Annotations.
I am neither fan of Annotations nor XML. If you ask me to choose the approach, I will choose XML for non-frequently changing configuration and Annotations for Controller mappings and all.
Feb 23, 2011 · Siva Prasad Reddy Katamreddy
I agree with you.
I missed to convey my main intention of going to use Annotation approach entirely instead of simple xml based approach.
Here it is:
I had a discussion with one of my friend about extending PropertyPlaceholderConfigurer and provide additional utility methods like JConfig's centralized Configuration manager.
All over the Annotation based Spring examples use xml based PropertyPlaceholderConfigurer configuration. So I thought of just telling there is a way to configure customized PropertyPlaceholderConfigurer through Annotations.
I am neither fan of Annotations nor XML. If you ask me to choose the approach, I will choose XML for non-frequently changing configuration and Annotations for Controller mappings and all.
Feb 23, 2011 · Siva Prasad Reddy Katamreddy
I agree with you.
I missed to convey my main intention of going to use Annotation approach entirely instead of simple xml based approach.
Here it is:
I had a discussion with one of my friend about extending PropertyPlaceholderConfigurer and provide additional utility methods like JConfig's centralized Configuration manager.
All over the Annotation based Spring examples use xml based PropertyPlaceholderConfigurer configuration. So I thought of just telling there is a way to configure customized PropertyPlaceholderConfigurer through Annotations.
I am neither fan of Annotations nor XML. If you ask me to choose the approach, I will choose XML for non-frequently changing configuration and Annotations for Controller mappings and all.
Feb 21, 2011 · James Sugrue
Hi,
I worked with IBATIS two years back and it is simple superb.
If you are planning to immplement your persistence layer using your own hand written SQLs and take advantage of automatic population of sql results into Java Objects and passing Java Objects to Persistence engine to store in DB IBATIS is the way to go.
I haven't tried the brand new MyBATIS yet, but hoping its better than IBATIS.
Thank you so much Loiane Groner for this article. :-)
Feb 14, 2011 · Siva Prasad Reddy Katamreddy
Hi,
All the stuff which you mentioned are standalone APIs for their respective tasks.
Take Quartz, using quartz we can write the job scheduling applications. I agree.
But my point is we should have a framework kind of semi completed job scheduling application which can be used by anyone by plugging-in their job implementations. And the framework should take care of rest of the activities that I mentioned in the above post.
Similarly for Logging, If we can write an Aspect to print the method parameters in details in such a way that anyone can use that aspect and be able to print method parameters in DEBUG mode by just passing their pointcut details.
Your thoughts??
Feb 14, 2011 · Siva Prasad Reddy Katamreddy
Hi,
All the stuff which you mentioned are standalone APIs for their respective tasks.
Take Quartz, using quartz we can write the job scheduling applications. I agree.
But my point is we should have a framework kind of semi completed job scheduling application which can be used by anyone by plugging-in their job implementations. And the framework should take care of rest of the activities that I mentioned in the above post.
Similarly for Logging, If we can write an Aspect to print the method parameters in details in such a way that anyone can use that aspect and be able to print method parameters in DEBUG mode by just passing their pointcut details.
Your thoughts??
Feb 14, 2011 · Siva Prasad Reddy Katamreddy
Hi,
All the stuff which you mentioned are standalone APIs for their respective tasks.
Take Quartz, using quartz we can write the job scheduling applications. I agree.
But my point is we should have a framework kind of semi completed job scheduling application which can be used by anyone by plugging-in their job implementations. And the framework should take care of rest of the activities that I mentioned in the above post.
Similarly for Logging, If we can write an Aspect to print the method parameters in details in such a way that anyone can use that aspect and be able to print method parameters in DEBUG mode by just passing their pointcut details.
Your thoughts??
Feb 10, 2011 · Siva Prasad Reddy Katamreddy
To get all the results we can call: searchResults.getResults();
If we want to get page wise results pass the page number as: searchResults.getResults(2);
This logic can be integrated with DisplayTag.
Feb 10, 2011 · Siva Prasad Reddy Katamreddy
To get all the results we can call: searchResults.getResults();
If we want to get page wise results pass the page number as: searchResults.getResults(2);
This logic can be integrated with DisplayTag.
Feb 10, 2011 · Siva Prasad Reddy Katamreddy
To get all the results we can call: searchResults.getResults();
If we want to get page wise results pass the page number as: searchResults.getResults(2);
This logic can be integrated with DisplayTag.
Feb 10, 2011 · Siva Prasad Reddy Katamreddy
To get all the results we can call: searchResults.getResults();
If we want to get page wise results pass the page number as: searchResults.getResults(2);
This logic can be integrated with DisplayTag.
Feb 09, 2011 · Siva Prasad Reddy Katamreddy
Hi,
Thanks that you like this article. This idea can be improved to be more generic and support others features also including pagination(client/server), filtering etc.
That Map is of type <String, Object> and the count is of Integer type. So I cast it to Integer.
Feb 09, 2011 · Siva Prasad Reddy Katamreddy
Hi,
Thanks that you like this article. This idea can be improved to be more generic and support others features also including pagination(client/server), filtering etc.
That Map is of type <String, Object> and the count is of Integer type. So I cast it to Integer.
Feb 09, 2011 · Siva Prasad Reddy Katamreddy
Hi,
Thanks that you like this article. This idea can be improved to be more generic and support others features also including pagination(client/server), filtering etc.
That Map is of type <String, Object> and the count is of Integer type. So I cast it to Integer.
Feb 04, 2011 · Siva Prasad Reddy Katamreddy
@Jonathan Fisher,
I haven't deep dive into JSF2 but i haven't found any major improvements in JSF2 except annotation support over JSF1.x as of now. Could you please tell me or point me to some url where i can see what are the things improved/added in JSF2.x.
Thanks,
Siva.
Feb 04, 2011 · Siva Prasad Reddy Katamreddy
@Jonathan Fisher,
I haven't deep dive into JSF2 but i haven't found any major improvements in JSF2 except annotation support over JSF1.x as of now. Could you please tell me or point me to some url where i can see what are the things improved/added in JSF2.x.
Thanks,
Siva.
Feb 04, 2011 · Siva Prasad Reddy Katamreddy
@Jonathan Fisher,
I haven't deep dive into JSF2 but i haven't found any major improvements in JSF2 except annotation support over JSF1.x as of now. Could you please tell me or point me to some url where i can see what are the things improved/added in JSF2.x.
Thanks,
Siva.
Jan 28, 2011 · Siva Prasad Reddy Katamreddy
Hi Jakob,
I read your article and its really good. And also there are several other pretty good posts on your blog and i like them very much. Keep blogging :-)
Jan 28, 2011 · Siva Prasad Reddy Katamreddy
Hi Jakob,
I read your article and its really good. And also there are several other pretty good posts on your blog and i like them very much. Keep blogging :-)
Jan 27, 2011 · Siva Prasad Reddy Katamreddy
For 11 item best practice is composition - strategy pattern, isn't it?
Ofcourse, you can use strategy pattern.
But here what I am trying to say is "Try to co-relate the real world things to java, you may get crazy but very innovative solutions"
Jan 27, 2011 · Siva Prasad Reddy Katamreddy
For 11 item best practice is composition - strategy pattern, isn't it?
Ofcourse, you can use strategy pattern.
But here what I am trying to say is "Try to co-relate the real world things to java, you may get crazy but very innovative solutions"
Jan 27, 2011 · Siva Prasad Reddy Katamreddy
For 11 item best practice is composition - strategy pattern, isn't it?
Ofcourse, you can use strategy pattern.
But here what I am trying to say is "Try to co-relate the real world things to java, you may get crazy but very innovative solutions"
Jan 27, 2011 · Siva Prasad Reddy Katamreddy
In my opinion, these certifications may make you good at understanding the language constructs and core APIs.
Suppose if you consider SCJP there won't be a question on the best way of modeling a problem, if you consider SCWCD most of the questions will be on testing your understanding on Servlet and JSP APIs.
Having an idea on core APIs is expected skills, to be an outstanding developer you should have something more than a normal developer.
Jan 27, 2011 · Siva Prasad Reddy Katamreddy
In my opinion, these certifications may make you good at understanding the language constructs and core APIs.
Suppose if you consider SCJP there won't be a question on the best way of modeling a problem, if you consider SCWCD most of the questions will be on testing your understanding on Servlet and JSP APIs.
Having an idea on core APIs is expected skills, to be an outstanding developer you should have something more than a normal developer.
Jan 26, 2011 · Siva Prasad Reddy Katamreddy
Ooooops....I missed it... Anyway i will include it in my full list at 0th position :-)
Jan 26, 2011 · Siva Prasad Reddy Katamreddy
Ooooops....I missed it... Anyway i will include it in my full list at 0th position :-)
Jan 26, 2011 · Siva Prasad Reddy Katamreddy
In addition to the above 10 steps, the bonus 11th step is "Think out of the box, try to co-relate the real world situations to technology". Then working on technology will become more fun and challenging.
For example, imagine you are the GOD and you have to implement the human behaviour using Java. Every human being will behave differently for different situations. But GOD can't implement the behaviour of all the mankind using a seperate method.
Suppose take the case of how a human being aswer a phone call.
The core implementation is just to pick the call and say hello. But if the caller is your girl friend you say Hi sweet heart, if the caller is customer care executive you might say Hello, I am busy call me later :-)
So GOD might have implemented the answerCall() method as :
public void answerCall(Call call)
{
System.out.println(call.getSalutation());//call.getSalutation() might be like"Hello Mr XYZ"
}
Then GOD might have used SpringAOP to change this behaviour based on caller type.
@Before
public class PhoneCallSalutationAdvice()
{
Call call = ....;
if(call.isGirlFriend())
{
call.setSalutation("Hi Sweet heart...");
} else if if(call.isCustomerSupportGuys())
{
call.setSalutation("Hi , I am busy right now...call me later.");
return;
}else{
call.setSalutation("Hello "+call.getCallerName());
}
}
:-)
User has been successfully modified
Failed to modify user
ADVERTISE
CONTRIBUTE ON DZONE
LEGAL
CONTACT US
Let's be friends: