Saturday, October 14, 2017

Deploy Java Web Application on Heroku with Heroku CLI

This post will describe how to create and deploy a Java Web Application war to Heroku using Heroku CLI. You will need a basic understanding of Git and Maven, and have Git and Maven already installed on your system.
Pre-requisites
  • Install Java 8, Maven and Git. For this post, I used Java 8 and Maven 3.5.
  • Create a free account on heroku.com. This account will be used from Heroku CLI to login
  • Download and Install Heroku CLI from here.
Following are the high-level steps to follow
  1. Create a Simple Spring Web Application.
  2. Create an application on Heroku
  3. Create the Procfile
  4. Create app.json
  5. Update Maven pom.xml
  6. Push code to Heroku

Create a Simple Spring Web Application

We will use a very basic spring boot web application which will show a Hello World Screen. We will have only two Java files
  • SpringWebApplication.java: This is the spring boot main class
  • HelloWorld: This is a simple Spring Controller which will print Hellow World to the screen.
The following is the folder structure.
HelloWorld.java
package com.blogspot.javax.springweb;


import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloWorld {

    @RequestMapping("/")
    public String index() {
        return "Hello World";
    }

}
SpringWebApplication.java
package com.blogspot.javax.springweb;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;

@SpringBootApplication
public class SpringWebApplication extends SpringBootServletInitializer {
 @Override
 protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
  return application.sources(SpringWebApplication.class);
 }

 public static void main(String[] args) {
  SpringApplication.run(SpringWebApplication.class, args);
 }
}
The maven pom.xml file is at the end of this post.

Create a Heroku Application using Heroku CLI

Follow these steps to create a heroku application.
  1. Open up a command line and login to heroku using the credentials of your heroku account
    C:\workspaces\aoj\spring-web>heroku login
    Enter your Heroku credentials:
    Email: ******@******.***
    Password: ********
    Logged in as ******@******.***
  2. Create an application on Heroku using heroku create command. You can pass any name, and heroku will create the app if the name is available. If you do not pass any name, heroku will pick a name for you, and you can rename it later.
    C:\workspaces\aoj\spring-web>heroku create 
    Creating ... done
    https://.herokuapp.com/ | https://git.heroku.com/.git

Create the Procfile

A Procfile is a mechanism for declaring what commands are run by your application’s dynos on the Heroku platform. The name "Procfile" should be used as is, without extensions and is case-sensitive. This file has to be place in the application root directory. For our simple Web application, we will use webapprunner, which can be used for tomcat based applications
web:    java $JAVA_OPTS -jar target/dependency/webapp-runner.jar --port $PORT target/*.war
Here we specify that it is a web application and the command to be run is the webapp-runner.jar.

app.json

This file can be used to describe the application details, setup configurations and runtime environments in a structured way. In our example, we just print the application name and description in this file. The app.json file should also be at the root folder of the application
{
  "name": "Spring Web",
  "description": "Spring Boot WebApp"
}

Add the WebAppRunner plugin to Maven

Add the following plugin to Maven pom.xml
<build>
  <plugins>

    .......

    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-dependency-plugin</artifactId>
      <version>2.3</version>
      <executions>
        <execution>
          <phase>package</phase>
          <goals>
            <goal>copy</goal>
          </goals>
          <configuration>
            <artifactItems>
              <artifactItem>
                <groupId>com.github.jsimone</groupId>
                <artifactId>webapp-runner</artifactId>
                <version>8.5.23.0</version>
                <destFileName>webapp-runner.jar</destFileName>
              </artifactItem>
            </artifactItems>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

Push Code to Heroku to Deploy

You can push the code to Heroku. And based on the pom.xml, Heroku will detect that this is a Java project and attempt to deploy it.
C:\workspaces\aoj\spring-web>git add .
warning: LF will be replaced by CRLF in .mvn/wrapper/maven-wrapper.properties.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in pom.xml.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in src/test/java/com/blogspot/javax/springweb/SpringWebApplicationTests.java.
The file will have its original line endings in your working directory.

C:\workspaces\aoj\spring-web>git commit -m "initial"
[master c911ee8] initial
 2 files changed, 134 insertions(+), 31 deletions(-)
 create mode 100644 out.txt

C:\workspaces\aoj\spring-web>git push heroku master
Once deployed, Heroku will give you the URL at the end of the command as shown below.
remote:        [INFO] ------------------------------------------------------
remote:        [INFO] BUILD SUCCESS
remote:        [INFO] ------------------------------------------------------
remote:        [INFO] Total time: 6.173 s
remote:        [INFO] Finished at: 2017-10-14T15:07:16+00:00
remote:        [INFO] Final Memory: 34M/297M
remote:        [INFO] ------------------------------------------------------
remote: -----> Discovering process types
remote:        Procfile declares types -> web
remote:
remote: -----> Compressing...
remote:        Done: 92.7M
remote: -----> Launching...
remote:        Released v5
remote:        https://.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.
To https://git.heroku.com/.git
   02fac92..c911ee8  master -> master

Folder Structure


spring-web
│   .classpath
│   .gitignore
│   .project
│   app.json
│   out.txt
│   pom.xmlProcfile
│
├───.mvn
│   └───wrapper
│           maven-wrapper.jar
│           maven-wrapper.properties
│
├───.settings
│       org.eclipse.core.resources.prefs
│       org.eclipse.jdt.core.prefs
│       org.eclipse.m2e.core.prefs
│
└───src
    ├───main
    │   ├───java
    │   │   └───com
    │   │       └───blogspot
    │   │           └───javax
    │   │               └───springweb
    │   │                       HelloWorld.java
    │   │                       SpringWebApplication.java
    │   │
    │   └───resources
    │       │   application.properties
    │       │
    │       ├───static
    │       └───templates
    └───test
        └───java
            └───com
                └───blogspot
                    └───javax
                        └───springweb
                                SpringWebApplicationTests.java

Full pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project>
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.blogspot.java-x</groupId>
  <artifactId>spring-web</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>spring-web</name>
  <description>Demo project for Spring Boot</description>

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.7.RELEASE</version>
    <relativePath /> <!-- lookup parent from repository -->
  </parent>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>

      <plugin>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <version>9.3.7.v20160115</version>
      </plugin>

      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.6.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.0.0</version>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>2.3</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>copy</goal>
            </goals>
            <configuration>
              <artifactItems>
                <artifactItem>
                  <groupId>com.github.jsimone</groupId>
                  <artifactId>webapp-runner</artifactId>
                  <version>8.5.23.0</version>
                  <destFileName>webapp-runner.jar</destFileName>
                </artifactItem>
              </artifactItems>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>


</project>

182 comments:

  1. Replies
    1. Great Article android based projects

      Java Training in Chennai

      Project Center in Chennai

      Java Training in Chennai

      projects for cse

      The Angular Training covers a wide range of topics including Components, Angular Directives, Angular Services, Pipes, security fundamentals, Routing, and Angular programmability. The new Angular TRaining will lay the foundation you need to specialise in Single Page Application developer. Angular Training

      Delete
    2. IntelliMindz is the best IT Training in Bangalore with placement, offering 200 and more software courses with 100% Placement Assistance.

      Python Course in Bangalore
      React Course In Bangalore
      Automation Training In Bangalore
      Blue Prism Courseourse In Bangalore
      RPA Course In Bangalore
      UI Path Training In Bangalore
      Clinical SAS Training In Bangalore
      Oracle DBA Training In Bangalore
      IOS Training In Bangalore
      <a href="https://intellimindz.com/tally-course-in-bangalore/>Tally Course In Bangalore</a>

      Delete
  2. Awesome article I really impress it’s very informative and useful.Thanks

    Custom Software Development Sydney

    ReplyDelete
  3. great information.
    thank you for posting.
    keep sharing.

    ReplyDelete
  4. Thanks For Sharing The Information The Information Shared Is Very Valuable Please Keep Updating Us Time Just Went On Reading The article Python Online Course Hadoop Online Course Aws Online Course Data Science Online Course

    ReplyDelete
  5. Thank you for sharing the article. The data that you provided in the blog is informative and effective.

    Best Core Java Training Institute

    ReplyDelete
  6. Nice blog information
    Sanjary Academy is the best Piping Design institute in Hyderabad, Telangana. It is the best Piping design Course in India and we have offer professional Engineering Courses like Piping design Course, QA/QC Course, document controller course, Pressure Vessel Design Course, Welding Inspector Course, Quality Management Course and Safety Officer Course.
    Piping Design Course in India­

    ReplyDelete
  7. Nice blog information provided by the author

    Pressure Vessel Design Course is one of the courses offered by Sanjary Academy in Hyderabad. We have offer professional Engineering Course like Piping Design Course,QA / QC Course,document Controller course,pressure Vessel Design Course,Welding Inspector Course, Quality Management Course, #Safety officer course.
    Welding Inspector Course
    Safety officer course
    Quality Management Course
    Quality Management Course in India

    ReplyDelete
  8. Ingin mendapatkan kemenangan mudah dan cepat pada permainan Ceme Online, segera mainkan dengan menggunakan Bobol Server Judi Ceme Online.
    Hoki Pasti
    Info Jitu

    ReplyDelete
  9. Great blog article informative I liked it

    Best QA / QC Course in India, Hyderabad. sanjaryacademy is a well-known institute. We have offer professional Engineering Course like Piping Design Course, QA / QC Course,document Controller course,pressure Vessel Design Course, Welding Inspector Course, Quality Management Course, #Safety officer course.
    QA / QC Course
    QA / QC Course in India
    QA / QC Course in Hyderabad

    ReplyDelete
  10. This is really a great source of information to learn about estoque lamborghini

    ReplyDelete
  11. Digital Yogi - Get Stunning Website Design, Web Development, SEO, E-commerce Development, Content Writer, Redesign Website, responsive Design, Wordpress Development, Digital Marketing Services. Email us - hello@digitalyogi.co.in and Call: 9999156257
    E-Commerce website design,Best website design company,SEO,Internet (https://www.digitalyogi.co.in/)

    ReplyDelete
  12. Awesome article, it was exceptionally helpful! I simply began in this and I'm becoming more acquainted with it better! Cheers, keep doing awesome
    Dehli University BCOM 1st, 2nd & Final Year TimeTable 2020

    ReplyDelete
  13. I am inspired with your post writing style & how continuously you describe this topic. After reading your post online data science training , thanks for taking the time to discuss this, I feel happy about it and I love learning more about this topic.

    ReplyDelete
  14. Excellent blog I visit this blog it's really awesome. The important thing is that in this blog content written clearly and understandable. The content of information is very informative.
    DevOps Training in Chennai | DevOps Training in anna nagar | DevOps Training in omr | DevOps Training in porur | DevOps Training in tambaram | DevOps Training in velachery

    ReplyDelete
  15. If you are planning to buy an electric scooter, you can check out this top notch review on Mi M365 Electric Scooter

    ReplyDelete
  16. I was very impressed by this post, this site has always been pleasant news Thank you very much for such an interesting post, and I meet them more often then I visited this site. Wonder Bread Jacket

    ReplyDelete
  17. It was not first article by this author as I always found him as a talented author.
    valorant phoenix jacket

    ReplyDelete
  18. Our the purpose is to share the reviews about the latest Jackets,Coats and Vests also share the related Movies,Gaming, Casual,Faux Leather and Leather materials available Oliver Tree Jacket

    ReplyDelete
  19. Excellent post. I was always checking this blog, and I’m impressed! Extremely useful info specially the last part, I care for such information a lot. I was exploring this particular info for a long time. Thanks to this blog my exploration has ended.
    If you want Digital Marketing Serives :-
    Digital marketing Service in Delhi
    SMM Services
    PPC Services in Delhi
    Website Design & Development Packages
    SEO Services PackagesLocal SEO services
    E-mail marketing services
    YouTube plans

    ReplyDelete
  20. Hi there,

    Nice Article I really enjoyed this post Thanks For Sharing.

    network infrastructure

    ReplyDelete
  21. Hi there colleagues, good paragraph and good urging commented here, I am genuinely enjoying by these. Kumaun University BA Part 1 Result

    ReplyDelete
  22. Nice Blog !
    Here We are Specialist in Manufacturing of Movies, Gaming, Casual, Faux Leather Jackets, Coats And Vests See Rip Wheeler Jacket

    ReplyDelete
  23. Shreeja Health Care is leading manufacturer of Oil Maker Machine. Shreeja Oil Extraction Machine is able to extract oil from various seeds like peanuts, Coconut, Sesame, Soybean, macadamia nuts, walnuts, sunflower seeds, vegetable seeds flaxseed etc.

    ReplyDelete
  24. Keytexmachines is leading CNC Machining Job Work in surat With Excellent Quality, Cost Effective Price & Prompt Delivery. CNC Machining Job Work, CNC Turning Job Work, CNC Machine Service offered by Keytex machines, Surat.

    ReplyDelete
  25. Yami immigration is a well-known and experienced immigration consultant in Surat. We provide Immigration Services for many countries such as Italy, Canada, France, Australia, Germany, USA, Malaysia, New Zealand, and Singapore.

    ReplyDelete
  26. Dr. Vivek Galani is a leading expert in skin and hair. At hair transplant clinic in Surat Skin Care, Cosmetic Laser, Hair Transplant & Slimming Center, Dr. Galani offers the most advanced cosmetic and dermatologic care treatments. The clinic uses advanced FUE methods to produce high-quality hair transplants.

    ReplyDelete
  27. I read this article. I think You put a lot of effort to create this article. I appreciate your work. Usmle Step 1 2020

    ReplyDelete
  28. Shreeja Health Care is leading manufacturer of oil Maker Machine For Home. Shreeja Oil Extraction Machine is able to extract oil from various seeds like peanuts, Coconut, Sesame, Soybean, macadamia nuts, walnuts, sunflower seeds, vegetable seeds flaxseed et

    ReplyDelete
  29. Thanks for Sharing This Article.It is very so much valuable content. I hope these Commenting lists will help to my website
    devops online training
    best devops online training
    top devops online training

    ReplyDelete
  30. Nice. I am really impressed with your writing talents and also with the layout on your weblog. Appreciate, Is this a paid subject matter or did you customize it yourself? Either way keep up the nice quality writing, it is rare to peer a nice weblog like this one nowadays. Thank you, check also event management and planning quotes

    ReplyDelete

  31. Thanks for the interesting content. I like your post and your blog is amazing.
    If you are interested in Video Downloader apps you can check my blog site. It is new and really informative.

    VidMate Download 2018

    ReplyDelete
  32. Shreeja Health Care is leading manufacturer of Oil Maker Machine. Shreeja Oil Extraction Machine is able to extract oil from various seeds like peanuts, Coconut, Sesame, Soybean, macadamia nuts, walnuts, sunflower seeds, vegetable seeds flaxseed etc.

    ReplyDelete
  33. I got very good information in this post, thank you very much from my side, keep giving this kind of information.
    1.Hindi studio

    ReplyDelete
  34. Managed Network Services gives you access to a wider pool of experts to help manage your growing business network needs. It provides proactive support to ensure issues are fixed in a timely manner and offers improved IT security to help protect your customers and employees. It also simplifies your cost management, resulting in a more productive and cost-effective business.

    ReplyDelete
  35. This site helps to clear your all query.
    This is really worth reading. nice informative article.
    dbrau ba 3rd year result
    bu ba final year result

    ReplyDelete
  36. It is very useful blog. Thanks for sharing. Keep updating new posts on your blog!!
    Who needs help in Digital Marketing for your Business? You can also visit my website. I hope to help you
    Digital Marketing Course AchieversIT

    ReplyDelete
  37. We are very thankful for share this informative post. Buy real leather jackets, Motogp Leather Suits & Motogp Leather Jackets with worldwide free shipping.
    Motogp Leather Suits
    Motogp Leather Jacket
    Sheepskin Jackets
    Shearling Jacket

    ReplyDelete
  38. Thats great post !! I like ur every post they always give me some new knowledge.

    VidMate | VidMate for PC |
    VidMate 2014

    ReplyDelete
  39. Thank you so much for sharing all this amazing information, keep it up.
    are you want to make a career in UI Development. check this UI Development Course in Bangalore.
    Attend The Best Front-end Certification Training In India From AchieversIT. Practical Front-end Training Sessions With Assured Placement Support From Experienced Faculty. and also proving live projects
    AchieversIT Training Institution

    ReplyDelete
  40. Thank you for your blog , it was usefull and informative "AchieversIT is the best Training institute for angular training. angular training in bangalore "

    ReplyDelete
  41. Thank you so much for sharing all this amazing information, keep it up.
    are you want to make a career in UI Development. check this UI Development Course in Bangalore.
    Attend The Best Front-end Certification Training In India From AchieversIT. Practical Front-end Training Sessions With Assured Placement Support From Experienced Faculty. and also proving live projects
    AchieversIT Training Institution

    ReplyDelete
  42. Through www.amazon.com/mytv - how you can connect your mobile phone to Amazon Prime. Through amazon.com/mytv, you can watch your favorite TV shows, series movies. You can watch prime videos anywhere on your device. Users need to create an Amazon account if they don’t have an Amazon account and enter the Amazon my TV activation code to watch Amazon prime videos on your device.

    amazon.com/mytv | www.amazon.com/mytv

    ReplyDelete
  43. I am looking for this informative post thanks for share it with me

    ReplyDelete
  44. The last thing that I would like to mention is the permanent license capability. Since KMSPico installs the KMS server on our machine it keeps checking for the new key and replace it with the older one. However, you should connect with your device at least once in 180 days. Other than this you will lose your activation so better use the product key instead of this.
    Windows 10 Activator Free Download
    WINDOWS ACTIVATOR
    Windows 10 Activator 2021
    Windows 10 Activator

    ReplyDelete
  45. B3 Bomber Jacket For Sale - Free Shipping and Best Deal
    Men consistently partial to skins and hides due to the fact the start of timethey utilized it to insure by themselves and safeguard them by your cold temperatures.
    Now shearling coats, Real Leather Bomber Jackets, Buy Harley Davidson Leather Motorcycle Jackets holds probably the best legacy , masculinity along with ruggedness to get a guys outer wear.

    ReplyDelete
  46. Seo services in Varanasi : Best SEO Companies in Varanasi: Hire Digital Marketing Agency, best SEO Agency in Varanasi who Can Boost Your SEO Ranking, guaranteed SEO Services; SEO Company In Varanasi.

    Digital Marketing Company In India : Kashi Digital Agency is one of the Best Digital Marketing companies in Varanasi, India . Ranked among the Top digital marketing agencies in India. SEO Company In India.

    Cheap Website Design Company In Bangalore : Best Website Design Company in Bangalore : Kashi Digital Agency is one of the Best Social Media Marketing agency in Bangalore which provides you the right services.

    E-commerce Website design company India : e-commerce Company in India : Kashi Digital Agency is one of the best e-commerce development services provider in Varanasi, India. This one of the best service if you want quick ROI.

    ReplyDelete
  47. It is extremely nice to see the greatest details presented in an easy and understanding manner. Get Digital Marketing Services At Affordable Price At JeewanGarg.Com (SEO Company in Delhi)

    ReplyDelete
  48. Matrimonials India is one of the most reliable and trusted Australia Muslim Matrimony
    that provides services for millions of Indian worldwide. This portal is the largest Australia Muslim Matrimony with several successful marriages and that comprises an extensive database of NRI Muslims from Australia. Matrimonials India has already helped several people in finding their Australia Muslim life partners.

    ReplyDelete
  49. cutting corrugated plastic not only have these wonderful qualities but also are super easy to cut. With the right kind of tools, You can quickly cut these sheets using the following Corrugated Plastic sheets comprise of three layers- two flat plastic sheets with a wave-like ribbed center layer. The two flat plastic sheets are generally referred to as twinwall plastic. The Corrugated Plastic sheets may also be like sheets of plastic that have a wave-like structure that might have chopped glass fiber reinforced in it

    ReplyDelete
  50. Iressa Gefitinib 250 mg tablet price in India
    is found to be the best with Emedkit. Emedkit is the exporter of all the generic medicine that also specializes in all the Cancer, HIV’s medicines at the lowest price along with the free delivery at your doorstep in India and worldwide. Hence, if you are looking to buy Iressa 250 mg tablet then there is no better place than the Emedkit. Gefitinib 250 mg is used to treat people with non-small cell lung cancer (NSCLC) that has spread to other parts of the body.

    ReplyDelete
  51. Exotic Luxury Camp provides the jaisalmer desert camp and the best luxury tents in Jaisalmer at affordable tariff. Exotic Luxury Camps is home to 26 specious tents with comfortable and unique stone beds. With us you will surely enjoy the jaisalmer tent stay in Jaisalmer as our camp cartels conveniences, comforts and ultra-modern facilities with the affection and personal attention of traditional Indian Rajasthani hospitality.

    ReplyDelete
  52. Ledikast is combination of Ledipasvir and Sofosbuvir used for the treatment of hepatitis C Virus infection. Buy ledikast capsules

    ReplyDelete
  53. It was wonderfull reading your article. Great writing style lenvakast capsules

    ReplyDelete
  54. I am glad to be here and read your very interesting article, it was very informative and helpful information for me. keep it up. 49ers varsity jacket

    ReplyDelete
  55. Check customer reviews to see what other people have to say. There’s a good chance you’ll have a similar experience to everyone else, so the more opinions you read through the better an idea you’ll have of what to expect. Any company confident about the effectiveness of its products should offer you a guarantee. You might not always be able to claim an exchange or return, but everyone welcomes the chance to get a replacement or reimbursement if they are dissatisfied. However, it is also a key indicator of drug tests. Use a kit that accounts for this variable. Visit: https://www.urineworld.com/

    ReplyDelete
  56. Fantastic blog i have never ever read this type of amazing information. Purple Joker Jacket

    ReplyDelete
  57. Amazing write-up! Really Good.
    Now the foundation of any business is marketing. Adsify marketing is the best Digital marketing in Trivandrum.

    ReplyDelete
  58. Thanks for sharing. Your blog is really helpful for us. Keep sharing. First DigiAdd

    ReplyDelete
  59. Thanks for the blog but If your looking to switch your career to the Airline Industry we the Fusion is the best place to pursue. It is one of the best Cabin Crew Training Centre

    ReplyDelete
  60. Thanks for posting the best information and the blog is very important. We are also providing the best services click on below links to visit our website.
    Oracle Fusion HCM Training
    Workday Training
    Okta Training
    Palo Alto Training
    Adobe Analytics Training

    ReplyDelete
  61. Voot App Apk has a simple goal: make it easy for friends to watch videos together no matter where they are in the world.

    https://apkmodule.com/voot-app-apk/

    ReplyDelete
  62. Awesome article I really impress it’s very informative and useful.Thanks
    Social Media Discount Deals

    ReplyDelete


  63. Very informative post I really like it. Happy to hear about it more.raiders varsity jacket mens

    ReplyDelete
  64. As I am looking at your writing, 파워볼사이트 I regret being unable to do outdoor activities due to Corona 19, and I miss my old daily life. If you also miss the daily life of those days, would you please visit my site once? My site is a site where I post about photos and daily life when I was free.

    ReplyDelete
  65. Thank you so much for sharing this nice article.
    Introducing our Next Level Complete Laundry Management & Dry-Cleaning software. Connect with us to get accelerated and cost-effective Laundry Management Software.
    Visit Now: https://syswash.net/

    ReplyDelete
  66. Amazing website, Love it. Visit my blogs for more information
    For more... plex.tv/link code
    For HBOMAX hbomax.com tvsignin code
    For Plex plex.tv/link code
    FOr Hbomax hbomax.com/tvsignin code
    FOr Canon printer ij.start.canon setup
    FOr disneyplus disneyplus.com login/begin

    ReplyDelete
  67. The search engine determines whether or not the results of the query were accurate based on the users’ actions. If you add enough keywords in the description, title, tags, and transcript then your video will appear in more search results. The digital marketing agency London will tell you that comments, subscribers and likes on a YouTube video increase the relevancy of a post. You can get more hits through other users if your keywords are relevant.

    ReplyDelete
  68. Hey friend, it is very well written article, thank you for the valuable and useful information you provide in this post. Keep up the good work! FYI, Pet Care adda
    how to activate flipkart axis bank credit card, the millionaire next door
    ,The Price Of Flowers Summary

    ReplyDelete
  69. 3D Rendering China provides many services for a purpose like 3d Industrial modeling,3d Architectural Rendering, 3d Medical Illustration,3d Product modeling and 3d design, 3d Interior Visualisation, 3d Animation Video etc if you need design home, office and industry we make 3D design 100% unique and high quality professional creative idea and special concentrate for finishing, We 3D architectural renders supportive and trusted services.


    3d rendering china
    3d architectural rendering china
    3d interior designs china
    3d product rendering china

    ReplyDelete
  70. We SVJ Technocoat are the leading Service Provider and Exporter of an extensive array of PVD Coating Services In Surat Service and Vapor Deposition Coating Service etc. We are a well known firm for providing excellent quality coating services across the nation and in a timely manner. Owing to our improvised business models, our professionals are offering integrated solutions for our clients.

    ReplyDelete
  71. DIYAM Impex Our Company Lab Grown Diamond Manufacturer. We have gone from strength to strength over the years, having expanded from our core business of diamond manufacturing to Real Estate, Renewable Energy and Venture Capital. Diamond has its many utility and its industrial value is enhanced by our effective services. We now focus exclusively on Lab Grown Diamonds. DIYAM IMPEX has grown to become a globally trusted and respected player in the diamond industry over the last five decades. Our expertise lies in our ability to produce a consistent supply of quality polished diamonds in all shapes and sizes.

    ReplyDelete
  72. Candela GentleLASE medical grade laser applies precise, controlled pulses of laser. Auckland Laser Hair Removal energy that reach down the hair shaft into the follicle underneath the skin, cauterizing the hair at its root. the encompassing tissue or skin isn’t damaged. The laser’s gentle beam of sunshine damages and consequently prevents the follicle from growing.

    ReplyDelete
  73. Shreeja Oil Maker is a global leading manufacturer, wholesaler, supplier, exporter of various small scale machinery. Shreeja oil maker machine or Mini oil extraction machine is one of our innovative product which is able to extract 100% pure oil from the various seed. This is also known as a Oil Extraction Machine or mini oil Ghani. We have a stronghold in national as well as a worldwide market.

    ReplyDelete
  74. FAB VOGUE STUDIO provide all kind of Fabric which can be use for Making any designer apparel. kota doria fabric We guarantee you’ll love working with us. Design Customization Available. Wholesale price available on request. Quality Assurance. COD Available.

    ReplyDelete
  75. I always spent my half an hour to read this webpage’s content every day along with a cup of coffee.

    B Sc part 1st time table

    ReplyDelete
  76. RQC is one of the Best Best Hair Clinic In Surat, with services, including Hair Transplant, Hair Treatment, Hairfall and Hair Loss, dermatology. RQC brings you the best services in hair transplant, Hair Treatment.

    ReplyDelete
  77. I will recommend your website to everyone. You have a very good gloss. Write more high-quality articles. I support you.
    바카라사이트

    ReplyDelete
  78. Arshine Feed Biotech Co.,LTD. (Arshine Feed) is the wholly owned subsidiary of Arshine Group. Our products cover a wide range of feed additives, such as Amino acids, Vitamins, Probiotics, Enzymes, Antiseptic, Antioxidant, Acidifier, Neutraceuticals and Coloring Agents etc. The company is committed to improving the nutritional intake for Broilers, Layers, Swines, Ruminants as well as fish-prawn-crab through scientific breeding programs and formulations.
    source:https://www.arshinefeed.com/

    ReplyDelete
  79. Thank you for this wonderful post, great article, keep up the excellent work. Check out our blog Best DU LLB Coaching in Delhi

    ReplyDelete
  80. https://apkworlds.com/photoroom/
    PhotoRoom will delight creative and creative owners of android devices.

    ReplyDelete
  81. You there, that is totally wonderful declare here. gratitude for taking the term to call such snappish data. outstanding substance material generally gets the site guests coming. Download Whatsapp Plus Cracked

    ReplyDelete
  82. I needed to gratitude for this outstanding legitimate to apply!! I truly adored all little piece of it. I have you bookmarked your site to try out the presented effects you articulate.. Grammarly Premium Mod APK For Pc

    ReplyDelete
  83. this is a particularly charming helpful asset which you are offering and you find the money for it away for reasonable. I truly like seeing website that arrangement the charge of providing an energies valuable asset for excuse. Good Morning Wishes For Him

    ReplyDelete
  84. That's a great article! The neatly organized content is good to see. Can I quote a blog and write it on my blog? My blog has a variety of communities including these articles. Would you like to visit me later? 메이저안전놀이터

    ReplyDelete
  85. Great Article… I love to read your articles because your writing style is too good, its is very very helpful for all of us and I never get bored while reading your article because, they are becomes a more and more interesting from the starting lines until the end. top 10 micronutrients company in india

    ReplyDelete
  86. I am inspired with your post writing style & how continuously you describe this topic. micro nutrient for plant

    ReplyDelete
  87. Heroku is an amazing infrastructure when it comes to deployment. When you are to hire a dedicated developer, you should ask them if they are familiar with the infrastructure.

    ReplyDelete
  88. It's absolutely correct, it makes life so much easier specially when you are building a large scale commodity fintech company.

    ReplyDelete
  89. This is brilliant as its the correct industry standard, specially in travel and luxury villa booking spaces.

    ReplyDelete
  90. ارزان ترین بلیط هواپیما داخلی و خارجی برای مسافرت شما.

    ReplyDelete
  91. Thank you for a great article, this is very useful when you are chartering a vessel.

    ReplyDelete
  92. Its correct, the tool is fantastic and its one of the criterias we look for when we are to provide private equity funding to startup projects.

    ReplyDelete
  93. Technology infrastructure is a must even in non-tech companies including london interior designers

    ReplyDelete
  94. This is being heavily used by the commodity suppliers, as it speeds up the deployment of new projects.

    ReplyDelete
  95. Thank you this is very informative specially for us as a young commodity fintech company.

    ReplyDelete
  96. Even though we don't use the same language but for deployment in a luxury hotel management company, we use this.

    ReplyDelete
  97. Thanks for sharing such an amazing information with us. Get Philippines Import Export Trade Data by Philippineseximp. Visit our website for more information about philippines import export.
    Philippines Export Data

    ReplyDelete
  98. Hello my family member! I wish to say that this post is amazing, nice written and come with approximately all important info's. I’d like to peer more posts like this.
    du ba 2nd year result | du ba 3rd year result.

    ReplyDelete
  99. Your post is really amazing with lots of important points Thank you for sharing. I was really enjoying reading this article.
    Java training in Hyderabad

    ReplyDelete
  100. Azure DevOps is the most advanced solution for continuous integration, delivery and deployment of software projects more details visit my website linkhttps://brollyacademy.com/azure-devops-training-in-hyderabad/

    ReplyDelete
  101. SEO training classes ,mastery course ,social media marketing online training,15 days, 30 days ,three month training with placement
    Social Media Marketing Online

    ReplyDelete

Popular Posts