Wednesday, August 16, 2017

SonarQube for code review

Sonar Qube is code review tool available in market for different language like java,javascript, C#, C, Cobol.
SonarQube is capable enough to show the health of an application and also highlight issues and risk introduced into the project due to new code/existing code merge.. With help of Sonar Qube we can improve code quality systematically.
To use SonarQube we need to follow below given steps. This include setup of SonarQube Server on local Machine along with Eclipse plugin to analysis the code.

Step 1:- How to do setup of SonarQube Server on Localhost.
Please refer to https://www.sonarqube.org/#_ and click on Dowload icon and select the latest version of SonarQube. While writing this blog we had 6.5 version as the laterst one. Extract the sonarqube-6.5.zip and move to the bin folder C:\sonarqube-6.5\sonarqube-6.5\bin.
Here we will find many subfolder that contains *.sh and *.bat file to start server in different O/S. As we are using windows-x86-64 move inside C:\sonarqube-6.5\sonarqube-6.5\bin\windows-x86-64 and execute following command.
C:\sonarqube-6.5\sonarqube-6.5\bin\windows-x86-64>StartSonar.bat
.......
jvm 1 | 2017.08.16 13:42:58 INFO app[][o.s.a.SchedulerImpl] SonarQube is up
Above line indicate that our server is started on local host @ port 9000. Cross verify https://localhost:9000 and u will be able to see this screen. Click on Login and use default userid and passwrod admin/admin to get logged into the SonarQube server.

Image1Image2
Step 2:- Performing Code Analysing using Eclipse Plug in for SonarLite
As a java developer we generally prefer Eclipse IDE. Eclipse come with many plugin for development one of them is sonar Qube. We can install this plugin from below given loacation
https://marketplace.eclipse.org/content/sonarlint
Once the plugin is installed in the Eclipse restart it and reconfirm successful installtion by checking availability of option Window-->preference->SolarLit
Image3
Step 3:- configure the Sonar server in eclipse
Lets now configure our Local host server inside Eclipse SolanLite Plugin. To do this Create a new SolarQube server using eclipse "File -> New -> Other... -> SonarLint -> New Server".
Here we had two option
1- Cloude
2- using Local host
Chose option 2 and follow below steps

Image5Image4Image6
It will ask you for Token or User+password. If we chose to use Token by generating token from follwing below screen of our localhost SonarQube server.
Image7
Or we can directly use userid and password admin/admin to configure Localhost SonarQube server.

Image8Image9Image10

In this approach we need to create a project first in the sonarqube and then need to run the maven project command and finally we will get the name here that is needed for binding with the sonar qube.

refer to the 

3-Third option is to use the mvn command on prompt to reflect the report on the localhost SonarQube Server browser of below site

https://shdhumale.wordpress.com/2019/06/18/different-way-to-analysis-project-using-sonarqube/

Step 4:- Run the sonar Plugin and modify the code.

Now we are ready to run the sonarQube code analyser on our code. Right click on the java file and find/modify the leak code .
Image11Image12

Monday, August 14, 2017

Apache Solr

Apache Solr is server provided by Apache Community for having better and quick serach of document at the server side.Solr enables you to easily create search engines which searches websites, databases and files.
To understand the concept of Apache Solr lets try to install it.
Step 1:- Download Solr server from below given location
http://lucene.apache.org/solr/mirrors-solr-latest-redir.html
Step 2:- Extract the solr-6.6.0.zip file
Step 3:- Start the server using following command i.e. here we are keeping our project name as siddhuapachesolrproject
C:\solr-6.6.0\solr-6.6.0\bin\solr -e siddhuapachesolrproject
Step 4:- Now lets try to see how our Newly created Apache Solr server helps us in searing the documents. For this lets try to index one the file on the server.
If we see the C:\solr-6.6.0\solr-6.6.0\example\exampledocs folder we will find there are many *.xml, *.pdf, *.cvs files are kept for testing and demo purpose. We will index one of the *.xml into our Apache solr server.
This can be done using post.jar which is provided by Apache Solr server inside exampledocs folder. Execute following command
C:\solr-6.6.0\solr-6.6.0\example\exampledocs>java -Dc=techproducts -jar post.jar sd500.xml
Now we can confirm if our server is able to find this file using following command
http://localhost:8983/solr/siddhuapachesolrproject/select?q=sd500&wt=json

Now lets try to use java code to perform indexing and finding the text from the Apache Solr
Use following java code to upload or indexing the file on Apache Solr
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.common.SolrInputDocument;
import java.io.IOException;
public class SiddhuUploadFile {
public static void main(String[] args) throws IOException, SolrServerException {
SolrClient client = new HttpSolrClient.Builder("http://localhost:8983/solr/siddhuapachesolrproject").build();
for(int i=0;i<1000 i="" span="">
SolrInputDocument doc = new SolrInputDocument();
doc.addField("cat", "book");
doc.addField("id", "book-" + i);
doc.addField("name", "The Legend of the Hobbit part " + i);
client.add(doc);
if(i%100==0) client.commit(); // periodically flush
}
client.commit();
}
}

And use below code to find the perticular file from Apache Solr
import java.io.IOException;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocumentList;
public class SiddhuSearchFile {
public static void main(String[] args) throws IOException, SolrServerException {
SolrClient client = new HttpSolrClient.Builder("http://localhost:8983/solr/techproducts").build();
SolrQuery query = new SolrQuery();
query.setQuery("Canon PowerShot SD500");
query.addFilterQuery("cat:electronics","manu_id_s:canon");
query.setFields("id","price","cat","store");
query.setStart(0);
query.set("defType", "edismax");
QueryResponse response = client.query(query);
SolrDocumentList results = response.getResults();
for (int i = 0; i < results.size(); ++i) {
System.out.println(results.get(i));
}
}
}

Project

You can find all the required jar  inside solr-6.6.0.zip folder which we had downloaded to setup the server.
C:\solr-6.6.0\solr-6.6.0\dist\solrj-lib
Note:- To Shutdown the server use following command
bin/solr stop
- You can learn different Query Syntex of Lucene for finding and searching the file on Apache Solr server.