Angular 12 + ActiveMQ Producer/Consumer + SpringBoot RestAPIs example

In the tutorial, we show how to Producer/Consumer data from ActiveMQ with Angular 12 & SpringBoot RestAPIs.

Related posts:
ActiveMQ Producer/Consumer + SpringBoot RestAPIs example
RabbitMq – How to create Spring RabbitMq Publish/Subcribe pattern with SpringBoot
How to use Spring Kafka JsonSerializer (JsonDeserializer) to produce/consume Java Object messages

Related Pages:

Technologies

  • Java 1.8
  • Maven 3.3.9
  • Spring Tool Suite – Version 3.9.4.RELEASE
  • Spring Boot: 2.0.3.RELEASE
  • ActiveMQ
  • Angular 12

Overview

We create a Spring JMS ActiveMQ with JMS Producer & JMS Consumer as below:

Angular-6-Spring-Boot-RestAPI-ActiveMQ-Producer-Consumer +springboot-project-structure

Angular-6-Spring-Boot-RestAPI-ActiveMQ-Producer-Consumer + activemq-producer-consumer

Then expose RestAPIs to POST/GET data to/from ActiveMQ:

  • @PostMapping(value="/api/task")
  • @GetMapping(value="/api/tasks")

Use Angular Client to submit/get data from ActiveMQ via above RestAPI:

Angular-6-Spring-Boot-RestAPI-ActiveMQ-Producer-Consumer +add-new-task

Angular-6-Spring-Boot-RestAPI-ActiveMQ-Producer-Consumer +processing-all-task

ActiveMQ state:

Angular-6-Spring-Boot-RestAPI-ActiveMQ-Producer-Consumer + activemq-state

Practice

SpringBoot Backend

Setup SpringBoot project

Use SpringToolSuite to create a SpringBoot project with below dependencies:

<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-jms</artifactId>
</dependency>
<dependency>
	<groupId>org.apache.activemq</groupId>
	<artifactId>activemq-broker</artifactId>
</dependency>
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>

ActiveMQ Connection Factory

ActiveMqConnectionFactoryConfig ->


package com.ozenero.activemq.config;

import javax.jms.ConnectionFactory;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.jms.DefaultJmsListenerContainerFactoryConfigurer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jms.config.DefaultJmsListenerContainerFactory;
import org.springframework.jms.config.JmsListenerContainerFactory;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.support.converter.MappingJackson2MessageConverter;
import org.springframework.jms.support.converter.MessageConverter;
import org.springframework.jms.support.converter.MessageType;

@Configuration
public class ActiveMqConnectionFactoryConfig {

	@Value("${gkz.activemq.broker.url}")
	String brokerUrl;
	
	@Value("${gkz.activemq.borker.username}")
	String userName;
	
	@Value("${gkz.activemq.borker.password}")
	String password;

	/*
	 * Initial ConnectionFactory
	 */
    @Bean
    public ConnectionFactory connectionFactory(){
        ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory();
        connectionFactory.setBrokerURL(brokerUrl);
        connectionFactory.setUserName(userName);
        connectionFactory.setPassword(password);
        return connectionFactory;
    }
    
	@Bean // Serialize message content to json using TextMessage
	public MessageConverter jacksonJmsMessageConverter() {
	    MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
	    converter.setTargetType(MessageType.TEXT);
	    converter.setTypeIdPropertyName("_type");
	    return converter;
	}
    
    /*
     * Used for Receiving Message
     */
    @Bean
    public JmsListenerContainerFactory jsaFactory(ConnectionFactory connectionFactory,
                                                    DefaultJmsListenerContainerFactoryConfigurer configurer) {
        DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
        factory.setMessageConverter(jacksonJmsMessageConverter());
        configurer.configure(factory, connectionFactory);
        return factory;
    }
 
    /*
     * Used for Sending Messages.
     */
    @Bean
    public JmsTemplate jmsTemplate(){
        JmsTemplate template = new JmsTemplate();
        template.setMessageConverter(jacksonJmsMessageConverter());
        template.setConnectionFactory(connectionFactory());
        return template;
    }
}

Add ActiveMQ configuration in application.properties ->


gkz.activemq.broker.url=tcp://localhost:61616
gkz.activemq.borker.username=admin
gkz.activemq.borker.password=admin
gkz.activemq.queue=gkz-queue

Data Model

– Create Task model ->


package com.ozenero.activemq.model;

public class Task {
	private Long id;
	private String name;
	
	public Task(){
	}
	
	public Task(Long id, String name){
		this.id = id;
		this.name = name;
	}
	
	public Long getId() {
		return id;
	}
	
	public void setId(Long id) {
		this.id = id;
	}
	
	public String getName() {
		return name;
	}
	
	public void setName(String name) {
		this.name = name;
	}
}

– Create MessageStorage to storage Task list ->


package com.ozenero.activemq.model;

import java.util.ArrayList;
import java.util.List;

public class MessageStorage {
	private List tasks = new ArrayList();
	
	public void add(Task task) {
		tasks.add(task);
	}
	
	public void clear() {
		tasks.clear();
	}
	
	public List getAll(){
		return tasks;
	}
}

Create a bean for MessageStorage ->


package com.ozenero.activemq.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.ozenero.activemq.model.MessageStorage;

@Configuration
public class BeanConfiguration {

  @Bean
  public MessageStorage customerStorage() {
    return new MessageStorage();
  }
}

JMS Producer

JmsProducer send messages to ActiveMQ ->


package com.ozenero.activemq.jms.producer;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.stereotype.Component;

import com.ozenero.activemq.model.Task;

@Component
public class JmsProducer {
	@Autowired
	JmsTemplate jmsTemplate;
	
	@Value("${gkz.activemq.queue}")
	String queue;
	
	public void send(Task task){
		jmsTemplate.convertAndSend(queue, task);
	}
}

JMS Consumer

JmsConsumer recieves messages from ActiveMQ ->


package com.ozenero.activemq.jms.consumer;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Component;

import com.ozenero.activemq.model.MessageStorage;
import com.ozenero.activemq.model.Task;

@Component
public class JmsConsumer {
	@Autowired
	private MessageStorage taskStorage;
	
	@JmsListener(destination = "${gkz.activemq.queue}", containerFactory="jsaFactory")
	public void receive(Task task){
		taskStorage.add(task);
	}
}

Rest APIs

RestAPI ->


package com.ozenero.activemq.controller;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import com.ozenero.activemq.jms.producer.JmsProducer;
import com.ozenero.activemq.model.MessageStorage;
import com.ozenero.activemq.model.Task;

@CrossOrigin(origins = "http://localhost:4200")
@RestController
public class RestAPIs {
	
	@Autowired
	JmsProducer jmsProducer;
	
	@Autowired
	private MessageStorage taskStorage;
	
	@PostMapping(value="/api/task")
	public Task postCustomer(@RequestBody Task task){
		jmsProducer.send(task);
		return task;
	}
	
	@GetMapping(value="/api/tasks")
	public List getAll(){
		List tasks = new ArrayList(taskStorage.getAll());
		taskStorage.clear();
		return tasks;
	}
}

Angular Frontend

Setup Angular Project

Setup guide:

  • Create Angular project with commandline: ng new angular6-client
  • Generate Task model with commandline ng generate class Task
  • Generate TaskService with commandline ng generate service Task
  • Generate TaskComponent with commandline ng generate component Task

Then install Bootstrap by commandline ->

>npm install bootstrap jquery --save

Configure installed Bootstrap & JQuery in angular.json file ->


...
 
"styles": [
  "src/styles.css",
  "node_modules/bootstrap/dist/css/bootstrap.min.css"
],
"scripts": [
  "node_modules/jquery/dist/jquery.min.js",
  "node_modules/bootstrap/dist/js/bootstrap.min.js"
]
 
...

Data Model

Task ->


export class Task {
    id: number;
    name: string;
}

Implement HttpClient Service

TaskService ->


import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs';
import { Task } from './task';
 
const httpOptions = {
  headers: new HttpHeaders({ 'Content-Type': 'application/json' })
};
 
@Injectable({
  providedIn: 'root'
})
export class   {
  constructor( 
    private http: HttpClient
  ) { }
 
  getTasks (): Observable {
    return this.http.get("http://localhost:8080/api/tasks")
  }
  
  addTask (task: Task): Observable {
    return this.http.post("http://localhost:8080/api/task", task, httpOptions);
  }
}

Implement ActiveMQ Component

activemq-task.component.html ->

<div [hidden]="submitted">
    <h3>Add Task</h3>
    <form #addTaskForm="ngForm">

      <div class="form-group">
        <label for="id">Id</label>
        <input type="number" class="form-control" id="id" 
        placeholder="Enter Id"
        required
        [(ngModel)]="task.id" name="id" #id="ngModel">
        <div [hidden]="id.valid || id.pristine"
              class="alert alert-danger">
            Id is required
        </div>
      </div>
 
      <div class="form-group">
        <label for="name">Name</label>
        <input type="text" class="form-control" id="name" placeholder="Enter Task Name" 
        required
        [(ngModel)]="task.name" name="name" #name="ngModel">
        <div [hidden]="name.valid || name.pristine"
             class="alert alert-danger">
            Name is required
        </div>
      </div>  
      <button class="btn btn-dark" (click)="addTask()" [disabled]="!addTaskForm.form.valid">Add Task</button>
    </form>
</div>
 
<div [hidden]="!submitted">
  <p>Submitted Successfully! -> <span class="badge badge-dark">Task's Info -> Id: {{task.id}}, Name: {{task.name}}</span></p>
	<div class="btn-group btn-group-sm">
    <button class="btn btn-secondary" (click)="newTask(); addTaskForm.reset();">New Task</button>
    <button class="btn btn-secondary" (click)="processTasks();">Process Tasks</button>
  </div>
  <div [hidden]="!processing">
      <br>
      <h5>Processing</h5>
      <ul>
        <li *ngFor="let task of tasks">
          Task id = {{task.id}}, name = {{task.name}}
        </li>
      </ul>
  </div>
</div>

activemq-task.component.ts ->


import { Component, OnInit } from '@angular/core';
import { Task } from '../task';
import { TaskService } from '../task.service';

@Component({
  selector: 'app-activemq-task',
  templateUrl: './activemq-task.component.html',
  styleUrls: ['./activemq-task.component.css']
})
export class ActivemqTaskComponent{

  task = new Task();
  tasks: Task[];
  submitted = false;
  processing = false;

  constructor(private taskService: TaskService) { }

  newTask(): void {
    this.submitted = false;
    this.processing = false;
    this.task = new Task();
  }
 
  addTask() {
    this.submitted = true;
    this.taskService.addTask(this.task)
    .subscribe();
  }

  processTasks(){
    this.processing = true;
    return this.taskService.getTasks()
                .subscribe(
                  tasks => {
                    console.log(tasks);
                    this.tasks = tasks;
                  }
                );
  }
}

– Create style file assets/forms.css ->


.ng-valid[required], .ng-valid.required  {
    border-left: 5px solid rgba(32, 77, 32, 0.623);
}
 
.ng-invalid:not(form)  {
    border-left: 5px solid rgb(148, 27, 27);
}

– Add above style file assets/forms.css to index.html file ->

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Angular6Client</title>
  <base href="/">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
  <link rel="stylesheet" href="assets/forms.css">
</head>
<body>
  <app-root></app-root>
</body>
</html>

– Add app-activemq-task selector to app.component.html file ->

<div class="container">
  <div class="row">
    <div class="col-sm-4"> 
      <app-activemq-task></app-activemq-task>
   </div>
  </div>
</div>

Run & Check Results

– Build & Run SpringBoot project with commandlines {mvn clean install, mvn spring-boot:run}.
– Run the Angular project as commandline: ng serve

Add Task ->

Angular-6-Spring-Boot-RestAPI-ActiveMQ-Producer-Consumer +add-new-task

Angular-6-Spring-Boot-RestAPI-ActiveMQ-Producer-Consumer +submit-successfully

Get Tasks ->

Angular-6-Spring-Boot-RestAPI-ActiveMQ-Producer-Consumer +processing-all-task

ActiveMQ state ->

Angular-6-Spring-Boot-RestAPI-ActiveMQ-Producer-Consumer + activemq-state

SourceCode

SpringBootRestAPIsActiveMQ
Angular6-Client

392 thoughts on “Angular 12 + ActiveMQ Producer/Consumer + SpringBoot RestAPIs example”

  1. 971831 802806Thank you, Ive just been looking for info about this topic for a whilst and yours will be the greatest Ive discovered till now. But, what in regards to the conclusion? Are you certain concerning the supply? 120300

  2. Please let me know if you’re looking for a writer for your blog. You have some really good articles and I think I would be a good asset. If you ever want to take some of the load off, I’d love to write some content for your blog in exchange for a link back to mine. Please shoot me an email if interested. Many thanks!

  3. Thanks for this web site post, I enjoyed it’s content and style. I stumbled upon this web site on the internet and now possess added this in order to my personal favourites features checklist. I’ll be certain to come again soon.

  4. Aw, this has been a very nice post. In thought I must devote writing this way additionally – taking time and actual effort to create a excellent article… but exactly what can I say… I procrastinate alot and by no indicates appear to go accomplished.

  5. Neat blog! Is your theme custom made or did you download it
    from somewhere? A theme like yours with a few simple tweeks would really make my blog jump out.
    Please let me know where you got your design. Many thanks

  6. With havin so much content and articles do you ever run into any
    problems of plagorism or copyright violation? My blog has a lot of exclusive content I’ve either authored myself or outsourced but it appears a
    lot of it is popping it up all over the web without my authorization. Do you know any techniques to help
    protect against content from being stolen? I’d genuinely appreciate it.

  7. The examination can be very interesting. If you want to try
    out slot pulsa tanpa potongan, I recommend playing about reliable situs slot pulsa sites.
    Because you can achieve big advantages and acquire given the assurance pay-out chances.
    If you would like to experience, you can immediately follow the hyperlink below.

    The web link is mostly a slot machine game web-site that is certainly frequently used among Indonesia players.

  8. When someone writes an article he/she maintains the image of a user in his/her mind that how a user can know it.
    Therefore that’s why this post is great. Thanks!

  9. I do not know whether it’s just me or if everybody else experiencing issues with your site.
    It looks like some of the text on your posts are running off the screen. Can somebody
    else please provide feedback and let me know if this is happening to
    them as well? This could be a problem with my internet
    browser because I’ve had this happen previously.
    Appreciate it

  10. hey there and thank you for your information – I’ve definitely picked up something new
    from right here. I did however expertise a few technical issues
    using this website, since I experienced to reload the website lots of times previous to
    I could get it to load correctly. I had been wondering if your hosting is OK?
    Not that I am complaining, but slow loading instances times will
    very frequently affect your placement in google and can damage your quality
    score if advertising and marketing with Adwords. Well I am adding this RSS to my e-mail and
    can look out for much more of your respective exciting content.
    Make sure you update this again very soon.

  11. Heya i am for the first time here. I came across this board and I
    find It truly useful & it helped me out much.

    I hope to give something back and help others like you aided me.

  12. I think this is one of the most important info for me.
    And i am happy reading your article. But wanna observation on some general issues, The site style is
    perfect, the articles is in reality nice : D. Excellent activity,
    cheers

  13. First off I want to say excellent blog! I had a quick question that I’d like
    to ask if you do not mind. I was curious to find out how you center yourself and clear your head prior to writing.
    I have had a tough time clearing my mind in getting my
    thoughts out there. I do take pleasure in writing but it just
    seems like the first 10 to 15 minutes tend to be lost just trying to figure out how to begin. Any suggestions or hints?
    Cheers!

  14. Fascinating blog! Is your theme custom made or did you
    download it from somewhere? A design like yours with a few simple adjustements would
    really make my blog jump out. Please let me know where you got your design. Thanks a lot

  15. With havin so much content do you ever run into any problems of
    plagorism or copyright violation? My blog has a lot of completely unique content
    I’ve either created myself or outsourced but it seems a lot of it is popping it
    up all over the internet without my authorization.
    Do you know any methods to help reduce content from being
    ripped off? I’d really appreciate it.

  16. Thanks for ones marvelous posting! I really enjoyed reading it, you happen to be a great
    author. I will ensure that I bookmark your blog and definitely will
    come back from now on. I want to encourage one to continue your great writing, have a nice weekend!

  17. Excellent post. I used to be checking continuously this weblog and I am impressed!
    Extremely helpful information particularly
    the last section 🙂 I maintain such info much. I was seeking this particular info for a very lengthy time.
    Thank you and best of luck.

  18. My brother suggested I would possibly like this web site. He used to be entirely right.
    This post truly made my day. You can not imagine simply how a lot time
    I had spent for this information! Thanks!

  19. Hi i am kavin, its my first occasion to commenting anyplace, when i read this
    post i thought i could also create comment due to this brilliant article.

  20. Hello, i think that i noticed you visited my website thus i came
    to go back the prefer?.I am attempting to to find things
    to enhance my site!I suppose its adequate to make use of a few of your concepts!!

  21. Hi I am so happy I found your website, I really found you by error,
    while I was browsing on Bing for something else, Regardless
    I am here now and would just like to say kudos for a fantastic post and a all round enjoyable blog (I
    also love the theme/design), I don’t have
    time to go through it all at the minute but I have saved it and also included your RSS feeds,
    so when I have time I will be back to read much more, Please do keep up the fantastic jo.

  22. My partner and I stumbled over here coming from a different web page and thought I
    may as well check things out. I like what I see so now i’m following
    you. Look forward to finding out about your web page
    again.

  23. The assessment is incredibly interesting. If you would like
    that may be played bandar slot, I suggest playing in trusted agen slot
    sites. As you can complete big benefits all the benefits and acquire
    certain internet affiliate payouts. If you would like to understand,
    you are able to immediately click the link below.
    The link may be a situation site that is definitely frequently used
    between Indonesian online players.

  24. I don’t even understand how I ended up here, but I thought this put up was
    once great. I do not recognize who you might
    be but certainly you’re going to a well-known blogger for those who
    are not already. Cheers!

  25. I’d like to thank you for the efforts you
    have put in penning this blog. I am hoping to view the same high-grade content by you
    in the future as well. In truth, your creative writing abilities has inspired me to get my
    own, personal site now 😉

  26. Howdy! This post couldn’t be written much better!
    Looking at this post reminds me of my previous roommate!
    He always kept preaching about this. I am going to forward this
    information to him. Pretty sure he’ll have a very good read.
    I appreciate you for sharing!

  27. I’m extremely impressed with your writing abilities as smartly as with
    the layout to your blog. Is this a paid subject matter or did you modify
    it yourself? Either way keep up the nice high quality writing, it’s uncommon to see a great blog like this one today..

  28. With havin so much content and articles do you ever run into any issues of plagorism or copyright violation? My site has a lot of unique content I’ve either written myself or outsourced but it seems a lot of it is popping it up all over the web without my agreement.
    Do you know any solutions to help reduce content from being stolen? I’d really appreciate it.

  29. Please let me know if you’re looking for a article author for your
    site. You have some really great posts and I believe I would
    be a good asset. If you ever want to take some of the load off, I’d absolutely love to
    write some content for your blog in exchange for
    a link back to mine. Please shoot me an e-mail if interested.
    Thank you!

  30. This is the perfect webpage for everyone who wants to understand this topic.
    You know a whole lot its almost hard to argue
    with you (not that I actually would want to…HaHa). You definitely put
    a fresh spin on a topic which has been written about for ages.
    Great stuff, just wonderful!

  31. I’m truly enjoying the design and layout of your website.
    It’s a very easy on the eyes which makes it much more enjoyable for me to come here and visit more often. Did you hire out a designer to create your theme?
    Great work!

  32. Thanks for another magnificent post. The place else may just anyone get that type of info in such a
    perfect means of writing? I’ve a presentation next week,
    and I am on the search for such info.

  33. Link exchange is nothing else except it is just placing the other
    person’s blog link on your page at appropriate place and other
    person will also do similar for you.

  34. certainly like your website however you need to take a look at the
    spelling on quite a few of your posts. Several of them are rife with
    spelling problems and I find it very troublesome to inform the truth on the other hand I will certainly come back again.

  35. I think that what you wrote made a bunch of sense.
    However, think on this, what if you typed a catchier title?
    I mean, I don’t wish to tell you how to run your website, however suppose
    you added something that makes people want more? I mean ozenero | Mobile
    & Web Programming Tutorials is kinda plain. You should glance at Yahoo’s home page and note how they create post headlines to
    get people interested. You might add a related video or a picture
    or two to grab readers interested about what you’ve got to say.

    In my opinion, it would bring your blog a little livelier.

  36. Hello! This is my 1st comment here so I just wanted
    to give a quick shout out and say I truly enjoy reading through your blog posts.
    Can you suggest any other blogs/websites/forums that deal with
    the same subjects? Thanks a lot!

  37. hey there and thank you for your info – I’ve certainly picked up
    something new from right here. I did however expertise
    some technical points using this site, as I experienced to reload the website many times previous to I could get it to load properly.

    I had been wondering if your web host is OK? Not that I am complaining, but slow loading
    instances times will sometimes affect your placement
    in google and can damage your quality score if ads and marketing with Adwords.
    Anyway I’m adding this RSS to my email and can look out for much more of your respective interesting content.
    Ensure that you update this again soon.

  38. Heya i am for the first time here. I found this board and I find It
    truly useful & it helped me out a lot. I hope to present one thing again and help others such as you helped me.

  39. Your style is really unique compared to other folks I’ve read stuff from.
    I appreciate you for posting when you have the opportunity,
    Guess I will just book mark this blog.

  40. The evaluation is very interesting. If you would like to try out bandar slot, I recommend engaged in in respected situs
    slot deposit pulsa blogs. Because you can attain big wins and get guaranteed confederate affiliate payouts.
    If you need that may be played out, you can immediately take a look through in this article.
    The web link is often a slot machine web site that is certainly often used among Indonesian the gamers.

  41. Incredible! This blog looks just like my old one! It’s on a completely
    different subject but it has pretty much the same page layout and design. Excellent choice of colors!

  42. Great goods from you, man. I have consider your
    stuff prior to and you’re just too great. I really like what you have bought here, really like
    what you’re saying and the best way through which you assert it.
    You’re making it enjoyable and you continue to take care
    of to keep it sensible. I can not wait to learn much more from you.

    This is really a tremendous website.

  43. Hello there! I know this is kind of off topic but I was
    wondering which blog platform are you using for this website?

    I’m getting sick and tired of WordPress because I’ve had problems with hackers and I’m looking at options for another platform.
    I would be awesome if you could point me in the direction of a good platform.

  44. I know this web page provides quality based articles or reviews and additional material,
    is there any other web page which gives these stuff in quality?

  45. Does your blog have a contact page? I’m having a tough time locating it but, I’d like to shoot you an e-mail.
    I’ve got some recommendations for your blog you might be interested in hearing.

    Either way, great site and I look forward to seeing it improve over time.

  46. Hi! This post couldn’t be written any better! Reading this post
    reminds me of my previous room mate! He always kept talking about this.

    I will forward this post to him. Fairly certain he will have a good read.

    Many thanks for sharing!

  47. Pretty nice post. I just stumbled upon your blog and
    wanted to say that I’ve truly enjoyed surfing around your blog posts.
    In any case I’ll be subscribing to your feed and I hope you write again very soon!

  48. I love your blog.. very nice colors & theme. Did you
    make this website yourself or did you hire someone to do it for you?
    Plz respond as I’m looking to create my own blog and would
    like to know where u got this from. many thanks

  49. You really make it appear so easy together with your presentation however I find this topic to be actually something which I believe I would
    never understand. It sort of feels too complex and extremely large for me.
    I’m having a look forward on your next put up, I will try to
    get the cling of it!

  50. Aw, this was an exceptionally good post. Taking the
    time and actual effort to create a very good article… but what can I
    say… I procrastinate a lot and never manage to get anything
    done.

  51. Just desire to say your article is as astounding.

    The clearness in your post is just cool and i could assume you’re an expert on this
    subject. Fine with your permission let me to grab your RSS feed to
    keep up to date with forthcoming post. Thanks a million and please
    continue the rewarding work.

  52. Terrific post however , I was wanting to know if you could write a litte more on this subject?

    I’d be very thankful if you could elaborate a little bit further.
    Kudos!

  53. My brother recommended I might like this blog. He was entirely right.
    This post truly made my day. You cann’t imagine just how much time
    I had spent for this information! Thanks!

  54. An impressive share! I have just forwarded this onto a colleague who had been conducting a little research on this.
    And he in fact ordered me lunch because I discovered it for him…

    lol. So allow me to reword this…. Thank YOU for the meal!!
    But yeah, thanx for spending the time to discuss this topic here on your web page.

  55. Hello! Would you mind if I share your blog with my myspace group?
    There’s a lot of folks that I think would really appreciate your content.
    Please let me know. Cheers

  56. I love your blog.. very nice colors & theme. Did you create this website
    yourself or did you hire someone to do it for you? Plz respond
    as I’m looking to construct my own blog and would like to find out where u got this
    from. cheers

  57. Great blog here! Also your web site loads up fast!
    What host are you using? Can I get your affiliate link
    to your host? I wish my site loaded up as quickly as yours lol

  58. You could certainly see your expertise in the article
    you write. The arena hopes for even more passionate writers
    like you who aren’t afraid to mention how they believe.
    All the time follow your heart.

  59. I’m truly enjoying the design and layout of your site.
    It’s a very easy on the eyes which makes it much more pleasant for me to come here and visit more often. Did you hire out a developer to create
    your theme? Great work!

  60. Hmm it looks like your website ate my first comment (it was extremely long) so I guess I’ll just sum
    it up what I wrote and say, I’m thoroughly enjoying your
    blog. I as well am an aspiring blog writer
    but I’m still new to everything. Do you have any recommendations for beginner blog writers?
    I’d genuinely appreciate it.

  61. I do not know if it’s just me or if perhaps everybody else experiencing issues with your site.
    It appears as if some of the written text on your content are running off
    the screen. Can somebody else please comment and let me know if this is happening to
    them as well? This might be a issue with my web browser
    because I’ve had this happen previously. Appreciate it

  62. Everything said was actually very logical. But, what about this?
    suppose you were to write a killer headline? I ain’t suggesting your content isn’t good, but
    what if you added a title that makes people desire more?
    I mean ozenero | Mobile & Web Programming Tutorials is kinda
    vanilla. You ought to look at Yahoo’s front page and watch how they create news headlines to grab viewers interested.
    You might add a video or a pic or two to get people excited about everything’ve written. In my opinion, it might bring your
    website a little bit more interesting.

  63. Right here is the right blog for anyone who would like
    to find out about this topic. You realize a whole lot its almost hard to argue with you (not that I actually will need
    to…HaHa). You certainly put a brand new spin on a subject
    that’s been discussed for a long time. Excellent stuff, just great!

  64. Thanks for the good writeup. It if truth be told was a
    leisure account it. Glance complex to more added agreeable from you!
    By the way, how can we be in contact?

  65. Excellent post however I was wondering if you could write a litte more
    on this subject? I’d be very thankful if you could elaborate
    a little bit more. Cheers!

  66. Usually I do not learn post on blogs, but I wish to say that this write-up very pressured me to take a look at and do it!
    Your writing taste has been surprised me. Thanks, very nice post.

  67. I loved as much as you’ll receive carried out
    right here. The sketch is tasteful, your authored material
    stylish. nonetheless, you command get got an shakiness over that you
    wish be delivering the following. unwell unquestionably come
    more formerly again as exactly the same nearly a lot often inside case you shield
    this increase.

  68. Wonderful website you have here but I was wanting to know if you knew of any user discussion forums that cover the same topics talked about in this article?
    I’d really like to be a part of community where I can get advice from other
    knowledgeable people that share the same interest. If you have any suggestions, please let
    me know. Many thanks!

  69. This design is spectacular! You most certainly know how to keep a reader entertained.
    Between your wit and your videos, I was almost moved to
    start my own blog (well, almost…HaHa!) Great job.
    I really enjoyed what you had to say, and more than that, how you presented it.
    Too cool!

  70. Thanks for the marvelous posting! I seriously enjoyed reading it, you may be a great author.I will always bookmark your blog and will
    eventually come back someday. I want to encourage you to ultimately continue your great writing, have a nice morning!

  71. Magnificent items from you, man. I have bear in mind your stuff prior to and you’re simply too magnificent.
    I actually like what you’ve acquired here, really
    like what you are saying and the way in which in which you assert it.
    You’re making it enjoyable and you still take care of to stay it smart.
    I cant wait to learn much more from you. That is actually
    a wonderful website.

  72. Today, I went to the beach front with my kids. I found a sea shell and
    gave it to my 4 year old daughter and said “You can hear the ocean if you put this to your ear.” She put the shell to her ear
    and screamed. There was a hermit crab inside and it pinched her ear.
    She never wants to go back! LoL I know this is entirely off topic but I had to tell
    someone!

  73. First of all I would like to say excellent blog!

    I had a quick question that I’d like to ask if you do not mind.
    I was curious to find out how you center yourself and clear your
    head before writing. I have had a tough time clearing my mind in getting my ideas out there.
    I truly do enjoy writing however it just seems like the first 10 to
    15 minutes are generally lost just trying to figure out
    how to begin. Any ideas or tips? Thanks!

  74. If you are going for best contents like I do, just pay a visit this web page all the time for the reason that it
    presents quality contents, thanks

  75. My brother recommended I might like this blog. He was entirely
    right. This post truly made my day. You can not believe simply how
    so much time I had spent for this info! Thank you!

  76. Hi i am kavin, its my first occasion to commenting anyplace,
    when i read this paragraph i thought i could also create comment due to this brilliant paragraph.

  77. Hello it’s me, I am also visiting this site on a regular basis,
    this website is really good and the viewers are really sharing good thoughts.

  78. This is really interesting, You’re an overly skilled blogger.
    I’ve joined your rss feed and look forward to looking for
    more of your fantastic post. Also, I’ve shared your site in my social networks

  79. Thank you for the good writeup. It if truth be told used to be a amusement account it.
    Look complex to more introduced agreeable from you!
    However, how can we keep in touch?

  80. I am really enjoying the theme/design of your blog. Do you
    ever run into any browser compatibility issues?
    A few of my blog readers have complained about my website not working
    correctly in Explorer but looks great in Firefox.
    Do you have any tips to help fix this problem?

  81. Ahaa, its pleasant conversation concerning this article at this place at this website, I have read all that, so
    now me also commenting at this place.

  82. Hello my loved one! I want to say that this article is amazing,
    great written and come with approximately all significant infos.
    I’d like to look extra posts like this .

  83. When I originally commented I clicked the “Notify me when new comments are added” checkbox and now each time a
    comment is added I get three e-mails with the same
    comment. Is there any way you can remove me from that service?
    Many thanks!

  84. I was suggested this website by my cousin. I am not sure whether this post is written by him as no
    one else know such detailed about my trouble. You are incredible!
    Thanks!

  85. Hey there fantastic blog! Does running a blog similar to this take a great deal of work?

    I have absolutely no understanding of coding but I had been hoping to start my own blog in the near future.
    Anyways, if you have any recommendations or techniques
    for new blog owners please share. I know this is off subject but I simply had to ask.

    Thank you!

  86. hello!,I really like your writing so much! percentage we keep in touch extra about your post on AOL?
    I need an expert in this house to solve my problem. Maybe that is you!
    Taking a look ahead to look you.

  87. Good post. I learn something totally new and challenging on sites I stumbleupon everyday.
    It’s always exciting to read articles from
    other writers and practice something from their web sites.

  88. Hey there just wanted to give you a brief heads up and let
    you know a few of the images aren’t loading properly.

    I’m not sure why but I think its a linking issue.
    I’ve tried it in two different internet browsers and both show the same results.

  89. First of all I want to say excellent blog! I had
    a quick question that I’d like to ask if you do not mind.
    I was interested to know how you center yourself and
    clear your head prior to writing. I’ve had a hard time clearing my thoughts in getting my thoughts out there.
    I do take pleasure in writing however it just seems like the first 10 to
    15 minutes are usually wasted simply just trying to figure out how to begin.
    Any recommendations or tips? Appreciate it!

  90. I know this if off topic but I’m looking into starting my own blog and was curious what all
    is needed to get set up? I’m assuming having a blog like yours
    would cost a pretty penny? I’m not very web smart so I’m not 100% sure.
    Any suggestions or advice would be greatly appreciated.

    Cheers

  91. It is appropriate time to make some plans for the long run and it’s time
    to be happy. I have read this post and if I
    may just I desire to suggest you few fascinating things or suggestions.
    Maybe you could write subsequent articles referring to this article.
    I want to read even more issues approximately it!

  92. I loved as much as you’ll receive carried out right here.
    The sketch is attractive, your authored material stylish.
    nonetheless, you command get got an shakiness over that you wish be delivering the following.

    unwell unquestionably come further formerly again as exactly
    the same nearly very often inside case you shield this hike.

  93. Hey I am so excited I found your web site, I really found you by mistake,
    while I was looking on Aol for something else, Anyways I am
    here now and would just like to say thank you for a remarkable post
    and a all round interesting blog (I also love the theme/design), I don’t have time to go through it all at the moment but I have
    saved it and also added your RSS feeds, so when I have time I
    will be back to read a lot more, Please do keep up the fantastic b.

  94. Was ist ein Saug-Wisch-Roboter? Der Saug-Wisch-Roboter fährt nach
    einem bestimmten System durch den Raum und saugt lose Schmutzteilchen vom Boden auf.

    Ein Saug-Wisch-Roboter ist ein Gerät zur Reinigung von Fußböden, das selbstständig
    saugen und wischen kann. Entweder gleichzeitig oder durch wechselnde Einstellungen kann der Roboter glatte Böden wischen.
    Der Saug-Wisch-Roboter fährt nach feierabend zurück auf die Ladestation. Für viele Menschen stellt der Saug-Wisch-Roboter eine große
    Arbeitserleichterung dar, da es nicht brauchen ist, mit einem Staubsauger oder einem Wischmopp
    zu putzen. Ende, aus, Nikolaus. aus, eine gewisse Zahl
    Einstellungen am Roboter vorzunehmen und die Schmutzbehälter nach erledigter
    Arbeit zu leeren beziehungsweise den Wasserbehälter aufzufüllen.
    Es gibt mehr Geräte sind technisch so ausgereift, dass
    sie Hindernisse erkennen und nicht Gefahr laufen, die Treppe
    herunterzustürzen. Wie ist ein Saug-Wisch-Roboter aufgebaut?
    Der Saug-Wisch-Roboter besteht aus vielen technischen Komponenten. Oft lassen sie sich so programmieren, dass
    sie nur einen bestimmten Bereich der Wohnung reinigen. Er ist mit
    einem Motor ausgestattet, der die Räder und Bürsten antreibt.
    Die Energie erhält das Gerät über einen Akku. Der Saug-Wisch-Roboter hat
    eine flache und zumeist runde Form. An der Unterseite befinden sich
    Rollen, mit denen sich der Saugroboter mit Wischfunktion fortbewegen kann.

  95. Hi would you mind sharing which blog platform you’re using?

    I’m looking to start my own blog soon but I’m having a hard
    time deciding between BlogEngine/Wordpress/B2evolution and Drupal.
    The reason I ask is because your design seems different then most blogs
    and I’m looking for something completely unique.
    P.S Sorry for being off-topic but I had to ask!

  96. Hi I am so glad I found your blog page, I really found you
    by accident, while I was searching on Yahoo for something else, Anyhow I am
    here now and would just like to say kudos for
    a tremendous post and a all round entertaining blog (I also love the theme/design), I don’t have time to browse it all at the minute
    but I have saved it and also included your RSS feeds, so when I have time I will be
    back to read a lot more, Please do keep up the great jo.

  97. I am curious to find out what blog system you have been utilizing?
    I’m having some minor security issues with my
    latest site and I’d like to find something more secure.
    Do you have any suggestions?

  98. Appreciating the time and effort you put into your blog and detailed information you provide.
    It’s great to come across a blog every once in a while that isn’t the same old
    rehashed information. Fantastic read! I’ve saved your site
    and I’m adding your RSS feeds to my Google account.

  99. Excellent weblog here! Also your web site loads up fast!
    What host are you using? Can I get your associate hyperlink in your host?
    I wish my website loaded up as quickly as yours lol

  100. This is really interesting, You are an excessively skilled blogger.

    I have joined your feed and stay up for looking for extra of your excellent post.
    Also, I’ve shared your web site in my social networks

  101. Superb blog! Do you have any suggestions for aspiring
    writers? I’m planning to start my own blog soon but I’m
    a little lost on everything. Would you propose starting with a free platform like WordPress or go for a paid option? There are so
    many options out there that I’m totally overwhelmed ..

    Any tips? Appreciate it!

  102. We’re a group of volunteers and opening a new scheme in our community.
    Your website provided us with valuable info to work on. You have done an impressive job and
    our entire community will be grateful to you.

  103. Hi there, I discovered your web site by means of Google whilst searching for a comparable matter,
    your website got here up, it looks great.
    I’ve bookmarked it in my google bookmarks.
    Hi there, simply turned into aware of your blog via Google, and located that it’s really informative.

    I am gonna watch out for brussels. I’ll be grateful when you continue this in future.
    A lot of other people can be benefited from your writing.
    Cheers!

  104. Can I just say what a comfort to find a person that really understands
    what they are discussing online. You actually realize how to
    bring an issue to light and make it important.
    More people must check this out and understand this side
    of the story. I can’t believe you aren’t more popular since you
    surely possess the gift.

  105. It’s a shame you don’t have a donate button! I’d
    certainly donate to this superb blog! I guess for now i’ll settle for bookmarking and adding your RSS feed to my Google account.

    I look forward to new updates and will talk about this site
    with my Facebook group. Chat soon!

  106. I do agree with all of the concepts you’ve introduced to your post.
    They’re very convincing and can definitely work. Nonetheless, the posts are very short for novices.
    May you please lengthen them a bit from subsequent time?

    Thanks for the post.

  107. Hi there I am so glad I found your blog, I really found you by mistake, while I was browsing on Google for
    something else, Regardless I am here now and would just
    like to say many thanks for a fantastic post and a all round exciting blog (I also love the theme/design), I don’t have time to read through it all at the
    minute but I have bookmarked it and also added in your RSS feeds, so when I have time I will be back to read
    a great deal more, Please do keep up the excellent
    work.

  108. I’ve been surfing online more than 4 hours today, yet I never found any interesting article
    like yours. It is pretty worth enough for me. In my view, if all website owners and bloggers made good content as you did, the
    web will be much more useful than ever before.

  109. Hello would you mind letting me know which web host you’re working with?

    I’ve loaded your blog in 3 completely different web browsers and I must
    say this blog loads a lot quicker then most.

    Can you suggest a good hosting provider at a honest price?
    Thank you, I appreciate it!

  110. Fantastic goods from you, man. I have understand your stuff previous to and you’re just too
    fantastic. I actually like what you have acquired here, really like what
    you are stating and the way in which you say it. You make it entertaining and you still take
    care of to keep it sensible. I can’t wait to read far more from
    you. This is really a great site.

  111. Have you ever thought about including a little bit more than just your articles?
    I mean, what you say is important and all. Nevertheless just imagine if you
    added some great graphics or videos to give your posts more, “pop”!
    Your content is excellent but with images and clips, this blog could certainly be one of the greatest in its field.
    Terrific blog!

  112. Thank you for another informative blog. The place else could I get that type of information written in such
    a perfect method? I have a challenge that I am just now running on, and I have been at the glance out for such info.

  113. I was recommended this website by my cousin. I’m not sure whether this post is written by him as no one else know such detailed about my problem.
    You’re amazing! Thanks!

  114. It’s the best time to make some plans for the future and it is time
    to be happy. I’ve read this post and if I
    could I wish to suggest you few interesting things or tips.
    Maybe you could write next articles referring to this article.
    I want to read even more things about it!

  115. Have you ever considered about adding a little bit more than just your
    articles? I mean, what you say is valuable and everything.
    But think about if you added some great graphics or
    video clips to give your posts more, “pop”! Your content is excellent but with
    pics and video clips, this website could undeniably be one of the very best in its
    field. Wonderful blog!

  116. Your analysis can be very interesting. If you wish to learn slot pulsa tanpa potongan,
    To obtain the playing regarding efficient
    slot online pulsa websites on the net. Because you can accomplish big benefits and obtain assured winnings.

    If you wish to test out, you may right away take a look through below.
    The web link is known as a dock website page that will be frequently used amongst Indonesia online players.

  117. Interesting review. If you want to have fun with gambling online, much more my
    blog since you will find loads of game. With Indonesia,
    this excellent game is termed bandar judi online terpercaya.

Leave a Reply

Your email address will not be published. Required fields are marked *