Tuesday, June 14, 2016
Nexus Repository Manager
Nexus is a repository manager & stating repository in which files can be uploaded using maven. Alternatively files can be also uploaded via curl commands.
This tutorial outlines to install Nexus also covers artifacts upload using maven & files upload using curl commands.
1. Download latest nexus war file from http://www.sonatype.org/downloads/nexus- latest.war
2. Deploy the war file in any webserver.
3. Launch nexus home page http://localhost:8081/nexus-2.13.0-01/#welcome
4. Default username and password to login are admin & admin123
5. You can create your own Repository from views/Repositories section
6. Add a hosted repository using the sample configuration shown in image.
7. Have curl in classpath to upload files into repository. Example: curl --upload-file upload.zip -u admin:admin123 -v http://localhost:8081/nexus-2.13.0-01/content/repositories/targus/upload.zip Repository url can be found navigating to corresponding repository and in summary section
8. Files uploaded can be found in the browse storage section of the respective repository.
This tutorial outlines to install Nexus also covers artifacts upload using maven & files upload using curl commands.
1. Download latest nexus war file from http://www.sonatype.org/downloads/nexus- latest.war
2. Deploy the war file in any webserver.
3. Launch nexus home page http://localhost:8081/nexus-2.13.0-01/#welcome
4. Default username and password to login are admin & admin123
5. You can create your own Repository from views/Repositories section
6. Add a hosted repository using the sample configuration shown in image.
7. Have curl in classpath to upload files into repository. Example: curl --upload-file upload.zip -u admin:admin123 -v http://localhost:8081/nexus-2.13.0-01/content/repositories/targus/upload.zip Repository url can be found navigating to corresponding repository and in summary section
8. Files uploaded can be found in the browse storage section of the respective repository.
Labels:
maven,
nexus,
repository
Sunday, October 11, 2015
FindBugs Jenkins Integration
Jenkins installation & integration with firebugs documentation available in the link. Download here
Maven plugin for findbugs report generation.
<reporting> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>findbugs-maven-plugin</artifactId> <version>2.5.2</version> <configuration> <!-- Enables analysis which takes more memory but finds more bugs. If you run out of memory, changes the value of the effort element to 'low'. --> <effort>Max</effort> <!-- Reports all bugs (other values are medium and max) --> <threshold>Low</threshold> <!-- Produces XML report --> <xmlOutput>true</xmlOutput> </configuration> </plugin> </plugins> </reporting>Command to generate find bugs report : mvn clean compile site
Labels:
Analysis Core,
build,
FindBugs,
Jenkins
Location:
Gachibowli, Hyderabad, Telangana, India
Wednesday, July 15, 2015
PEM File Creation
PEM:Privacy Enhanced Mail is a Base64 encoded DER certificate
PEM files are used to represent Certificate/PrivateKey in an understandable format. They have a distinct header and footer for every key, where the body is composed of Base64 encoded Key.
They are represented as shown below for (Certificate/PrivateKey/Certificate Signing Request/PublicKey)
Java Program to generate PEM files.
PEM files are used to represent Certificate/PrivateKey in an understandable format. They have a distinct header and footer for every key, where the body is composed of Base64 encoded Key.
They are represented as shown below for (Certificate/PrivateKey/Certificate Signing Request/PublicKey)
-----BEGIN RSA PRIVATE KEY----- MIICWwIBAAKBgQCpF26VoB9/Au3Ct/dBFW5kfXFU8IkK+G3CG4slkVX2mwBtvLyb mFAuQ3RXvmX6tZxeUgwN7m+pZH+Y94lgAIpvcnzBEh8FFxwu0jy17uw+4ler5Soy YRGV8TYOeQHqoHS44clTG28T2RYy9lkRqTIkkCyo5ViyD7GVQVUgjR31LQIDAQAB AoGAFmkioPYd9ol+1aXoQVoDzZHKqYVPxIJ0mZto78u5ZvvYLLMtFDo1tkv+aXq0 rWvQk7ewHVCSwBKvzqhQLscjkbZqBdhnkBsyDQTcTQ+0sf8RGDHhBz2A1gGrBFhB rWc9wGuk7CFHUCrUL0ZXBquMM1KCd/+Fdg2+OQzcoJd9/AECQQDkLdyiaG4Y/lFM i4wtIf9rNVP4a1jHcYk1Ll7wvymY+v0e9zNVqKbkHaZ4/tyvD3MzVXZCByJZoFu4 sCWRK9WBAkEAvbVF3E7jxrQNTNRqLyQW6v0cmNSCSUfDkYANRuO+d6xvvT2HgrYs SiL8h4qDLkbM/LTvf9lxb8vSlUSt/3ctrQJAP70767YmQx8PkMVOg/ECS21bJoK+ CwCBJnTsmm2b7hr2iCbflScGb6SEsznmZZR4Rrex0CH0C3tLA91YsSPAgQJAa1Wc 6UFZbpuAyu+EBJgOv3XmMDJMZNnNtQ0Wdf11TpCpyBCAE1yvQmL5LlcYUZ6NbI2S 1Gta2z4fL4VkTR5JIQJAQE6QBPguRRYLFyDa6db+QyeJ1iBHy3I8XvK9bem+Dsby Km2l2KzLk3IpIEniqjLcoCQzFd5jp8m5VfjMx1doQQ== -----END RSA PRIVATE KEY----- -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCpF26VoB9/Au3Ct/dBFW5kfXFU 8IkK+G3CG4slkVX2mwBtvLybmFAuQ3RXvmX6tZxeUgwN7m+pZH+Y94lgAIpvcnzB Eh8FFxwu0jy17uw+4ler5SoyYRGV8TYOeQHqoHS44clTG28T2RYy9lkRqTIkkCyo 5ViyD7GVQVUgjR31LQIDAQAB -----END PUBLIC KEY----- -----BEGIN CERTIFICATE----- MIIBmjCCAQMCBgFOkeZMojANBgkqhkiG9w0BAQsFADATMREwDwYDVQQDEwhSYXZp VGVqYTAeFw0xNTA3MTQxMzI3NDVaFw0xNTA2MjkyMTQ1NTZaMBMxETAPBgNVBAMT CFJhdmlUZWphMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCpF26VoB9/Au3C t/dBFW5kfXFU8IkK+G3CG4slkVX2mwBtvLybmFAuQ3RXvmX6tZxeUgwN7m+pZH+Y 94lgAIpvcnzBEh8FFxwu0jy17uw+4ler5SoyYRGV8TYOeQHqoHS44clTG28T2RYy 9lkRqTIkkCyo5ViyD7GVQVUgjR31LQIDAQABMA0GCSqGSIb3DQEBCwUAA4GBAIh6 cNhWToRwhaJBykHXPqiaqPDA8n0xtq65dBiUQWOKeoXw0I7+LKUUzfHfb4wGZoLK W2rBnNCY1BtpasqtAkdZ/Q+keJQd9xBcPqnKGUEqxxX7omB7cKYuhw9C+rGn/K1J Ci1xlYBWuRsMd3A064fSHV0Adu+ru9YaWyS5+aLU -----END CERTIFICATE-----
Java Program to generate PEM files.
package bc; import java.io.File; import java.io.FileWriter; import java.io.PrintWriter; import java.math.BigInteger; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.SecureRandom; import java.security.Security; import java.security.cert.X509Certificate; import java.util.Date; import javax.security.auth.x500.X500Principal; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.bouncycastle.openssl.PEMWriter; import org.bouncycastle.x509.X509V1CertificateGenerator; public class PEMWrite { public static void main(String[] args) throws Exception { generateSelfSignedX509Certificate(); } static { // adds the Bouncy castle provider to java security Security.addProvider(new BouncyCastleProvider()); } /** * Generate a self signed X509 certificate with Bouncy Castle. */ static void generateSelfSignedX509Certificate() throws Exception { // yesterday Date validityBeginDate = new Date(System.currentTimeMillis() - 24 * 60 * 60 * 1000); // in 2 years Date validityEndDate = new Date(System.currentTimeMillis() + 2 * 365 * 24 * 60 * 60 * 1000); // GENERATE THE PUBLIC/PRIVATE RSA KEY PAIR KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA", "BC"); keyPairGenerator.initialize(1024, new SecureRandom()); KeyPair keyPair = keyPairGenerator.generateKeyPair(); // GENERATE THE X509 CERTIFICATE X509V1CertificateGenerator certGen = new X509V1CertificateGenerator(); X500Principal dnName = new X500Principal("CN=RaviTeja"); certGen.setSerialNumber(BigInteger.valueOf(System.currentTimeMillis())); certGen.setSubjectDN(dnName); certGen.setIssuerDN(dnName); // use the same certGen.setNotBefore(validityBeginDate); certGen.setNotAfter(validityEndDate); certGen.setPublicKey(keyPair.getPublic()); certGen.setSignatureAlgorithm("SHA256WithRSAEncryption"); X509Certificate cert = certGen.generate(keyPair.getPrivate(), "BC"); System.out.println(cert); // PEM format representing Certificate PEMWriter pemWriter = new PEMWriter(new PrintWriter(System.out)); pemWriter.writeObject(cert); pemWriter.flush(); //Loads Private Key as PEM format into private_key.pem file File file = new File("private_key.pem"); PEMWriter pw1 = new PEMWriter(new FileWriter(file)); pw1.writeObject(keyPair.getPrivate()); pw1.flush(); pw1.close(); //PEM format representing PrivateKey pemWriter.writeObject(keyPair.getPrivate()); pemWriter.flush(); //PEM format representing PublicKey pemWriter.writeObject(keyPair.getPublic()); pemWriter.flush(); pemWriter.close(); } }
Labels:
certifiates,
java,
java security,
pem,
privatekey,
publickey,
x.509
Location:
Gachibowli, Hyderabad, Telangana, India
Tuesday, April 28, 2015
JSON & XML Online Conversion tool
http://jsonxmlutil.appspot.com/
This tutorial is for converting JSON to XML or XML to JSON. The conversion happens using APIGEE tool, which is used to develop APIs. For the conversion of JSON/XML we use the target endpoint's that are developed on APIGEE tool. We create an API for the conversion which will have two resources inorder to handle JSONtoXML and XMLtoJSON requests.
Step1:Create a resource jsontoxml or any name..
Step2: In develope section , you can arrange all the policies to be applied on the requests. The request gets route on the basis of matching pattern Ex: ../convert/jsontoxml,.../convert/xmltojson (For this you should have good understanding on APIGEE )
Step3: Deploy to environment available
Step4: Go to trace section and Start the Trace Session and hit the url's, you find the live traffic logging.
Finally
How does the conversion happen
APIGEE tool has the ability to do service chaining, sampling data, make XML/JSON conversions, extract variables from request or response e.t.c
APIGEE record the request sent by user into request variable, we now form a list of policies in a sequence to be executed.
Ex: for xml to json conversion, in the response flow
1) Create an assign message policy and assign all the xml request that is sent into an variable response.
2)Send this response xml to an XML to JSON policy using the request as source & assign it to an output variable.
3)Finally assign the json response in an Assign-Message-Policy which can be consumed by any one who ever sends the request.
Source code has been bundled, any one needs this proxy can download it from the url and import in their APIGEE account. Download Here
This tutorial is for converting JSON to XML or XML to JSON. The conversion happens using APIGEE tool, which is used to develop APIs. For the conversion of JSON/XML we use the target endpoint's that are developed on APIGEE tool. We create an API for the conversion which will have two resources inorder to handle JSONtoXML and XMLtoJSON requests.
Step1:Create a resource jsontoxml or any name..
Step2: In develope section , you can arrange all the policies to be applied on the requests. The request gets route on the basis of matching pattern Ex: ../convert/jsontoxml,.../convert/xmltojson (For this you should have good understanding on APIGEE )
Step3: Deploy to environment available
Step4: Go to trace section and Start the Trace Session and hit the url's, you find the live traffic logging.
Finally
How does the conversion happen
APIGEE tool has the ability to do service chaining, sampling data, make XML/JSON conversions, extract variables from request or response e.t.c
APIGEE record the request sent by user into request variable, we now form a list of policies in a sequence to be executed.
Ex: for xml to json conversion, in the response flow
1) Create an assign message policy and assign all the xml request that is sent into an variable response.
2)Send this response xml to an XML to JSON policy using the request as source & assign it to an output variable.
3)Finally assign the json response in an Assign-Message-Policy which can be consumed by any one who ever sends the request.
Source code has been bundled, any one needs this proxy can download it from the url and import in their APIGEE account. Download Here
Saturday, February 14, 2015
Plan My Tavel
Checkout a new application to plan your train journey's using
Trains Between Stations and Seat Availability Source code location : Source Code
Services Used From : railpnrapi.com End Points: Trains Between Stations Sample Response:
EndPoint: PNR STATUS Sample Response:
Plan Your Journeys
Developed using : Angular JS, Groovy & Grails, JQuery UI, JavaScript, Responsive Layout.Trains Between Stations and Seat Availability Source code location : Source Code
Services Used From : railpnrapi.com End Points: Trains Between Stations Sample Response:
{ "from_station": { "name": "Kakinada Town", "code": "CCT" }, "to_station": { "name": "Secunderabad Junction", "code": "SC" }, "trains": [{ "number": "17206", "name": "Cct Snsi Express", "src_arrival_time": "Start", "src_departure_time": "06:15", "dest_arrival_time": "16:25", "dest_departure_time": "16:40", "days": [{ "day-code": "SUN", "runs": "N" }, { "day-code": "MON", "runs": "Y" }, { "day-code": "TUE", "runs": "N" }, { "day-code": "WED", "runs": "Y" }, { "day-code": "THU", "runs": "N" }, { "day-code": "FRI", "runs": "N" }, { "day-code": "SAT", "runs": "Y" }], "classes": [{ "class-code": "1A", "available": "N" }, { "class-code": "2A", "available": "Y" }, { "class-code": "FC", "available": "N" }, { "class-code": "3A", "available": "Y" }, { "class-code": "CC", "available": "N" }, { "class-code": "SL", "available": "Y" }, { "class-code": "2S", "available": "N" }, { "class-code": "3E", "available": "N" }] }, { "number": "17221", "name": "Coa Ltt Express", "src_arrival_time": "08:53", "src_departure_time": "08:55", "dest_arrival_time": "20:20", "dest_departure_time": "20:25", "days": [{ "day-code": "SUN", "runs": "N" }, { "day-code": "MON", "runs": "N" }, { "day-code": "TUE", "runs": "N" }, { "day-code": "WED", "runs": "Y" }, { "day-code": "THU", "runs": "N" }, { "day-code": "FRI", "runs": "N" }, { "day-code": "SAT", "runs": "Y" }], "classes": [{ "class-code": "1A", "available": "N" }, { "class-code": "2A", "available": "Y" }, { "class-code": "FC", "available": "N" }, { "class-code": "3A", "available": "Y" }, { "class-code": "CC", "available": "N" }, { "class-code": "SL", "available": "Y" }, { "class-code": "2S", "available": "N" }, { "class-code": "3E", "available": "N" }] }, { "number": "12737", "name": "Goutami Express", "src_arrival_time": "20:28", "src_departure_time": "20:33", "dest_arrival_time": "06:35", "dest_departure_time": "Ends", "days": [{ "day-code": "SUN", "runs": "Y" }, { "day-code": "MON", "runs": "Y" }, { "day-code": "TUE", "runs": "Y" }, { "day-code": "WED", "runs": "Y" }, { "day-code": "THU", "runs": "Y" }, { "day-code": "FRI", "runs": "Y" }, { "day-code": "SAT", "runs": "Y" }], "classes": [{ "class-code": "1A", "available": "Y" }, { "class-code": "2A", "available": "Y" }, { "class-code": "FC", "available": "N" }, { "class-code": "3A", "available": "Y" }, { "class-code": "CC", "available": "N" }, { "class-code": "SL", "available": "Y" }, { "class-code": "2S", "available": "N" }, { "class-code": "3E", "available": "N" }] }], "error": null }Seat Availability Sample Response:
{ "response_code": 200, "availability": { "train_number": "12738", "train_name": "GOUTAMI EXP ", "date_of_journey": "21-02-2015", "from": { "name": "SECUNDERABAD JN", "code": "sc", "location": null }, "to": { "name": "KAKINADA TOWN ", "code": "cct", "location": null }, "class": { "class_code": "SL", "class_name": "SLEEPER CLASS" }, "quota": { "quota_code": "CK", "quota_name": "TATKAL" }, "availability_status": [{ "date": "21-02-2015", "status": "AVAILABLE 151" }, { "date": "22-02-2015", "status": "AVAILABLE 151" }, { "date": "23-02-2015", "status": "AVAILABLE 151" }, { "date": "24-02-2015", "status": "AVAILABLE 151" }, { "date": "25-02-2015", "status": "AVAILABLE 151" }, { "date": "26-02-2015", "status": "AVAILABLE 151" }] } }PNR STATUS
EndPoint: PNR STATUS Sample Response:
{ "response_code": 200, "pnr": "4824325952", "train_num": "12738", "train_name": "GOUTAMI EXP ", "doj": "2015-03-06", "from_station": { "code": "SC ", "name": "Secunderabad Junction" }, "to_station": { "code": "CCT ", "name": "Kakinada Town" }, "reservation_upto": { "code": "CCT ", "name": "Kakinada Town" }, "boarding_point": { "code": "SC ", "name": "Secunderabad Junction" }, "class": " SL", "no_of_passengers": 6, "chart_prepared": "N", "passengers": [{ "sr": "1", "booking_status": "S8,35,GN", "current_status": "CNF" }, { "sr": "2", "booking_status": "S8,34,GN", "current_status": "CNF" }, { "sr": "3", "booking_status": "S8,40,GN", "current_status": "CNF" }, { "sr": "4", "booking_status": "S8,38,GN", "current_status": "CNF" }, { "sr": "5", "booking_status": "S8,37,GN", "current_status": "CNF" }, { "sr": "6", "booking_status": "S8,24,GN", "current_status": "CNF" }], "error": null }
Labels:
Angular JS,
Plan My Travel,
pnr,
Trains
Location:
Gachibowli, Hyderabad, Telangana, India
Saturday, November 1, 2014
PNR Status Application
Hey!! I have developed an application to check your pnr status
Have you booked any train ticket with which is not confirmed?. Then you can check it right now here.
Click here to access
Location:
Gachibowli, Hyderabad, Telangana, India
Subscribe to:
Posts (Atom)