Is it possible to query Hazelcast Cache? If yes, How to do it?












-1















I am trying to implement caching using hazelcast.



Here's my code. My question is that, when findAllGames() is executed i am caching all the games in "gamesCache" and when findGameByTypes() is executed, I want it to query "gamesCache" instead of hitting the database and return the result.



@Cacheable(cacheNames = "gamesCache", key = "#root.methodName")
public List<Game> findAllGames() {
List<Game> games = gamesDao.getAllGames(); // dao call
//some database call
}

public List<Game> findGameByTypes(GameType gameType) {
List<Game> games = gamesDao.getGamesByType(gameType); // dao call
//some logic
}

public class Game implements Serializable {
private long gameId;
private String gameName;
private GameType gameType;
}

public class GameType implements Serializable {
private long gameId;
private String gameGenre;
private Boolean status;
}


findAllGames() is always hit first than findGamesByTypes().



Now the cached map is generated with "findAllGames" as key and List of games as value. Now Is there any way to query the map using the GameType attributes as criteria.



Is there any way to implement this? I am open to other suggestions as well.










share|improve this question





























    -1















    I am trying to implement caching using hazelcast.



    Here's my code. My question is that, when findAllGames() is executed i am caching all the games in "gamesCache" and when findGameByTypes() is executed, I want it to query "gamesCache" instead of hitting the database and return the result.



    @Cacheable(cacheNames = "gamesCache", key = "#root.methodName")
    public List<Game> findAllGames() {
    List<Game> games = gamesDao.getAllGames(); // dao call
    //some database call
    }

    public List<Game> findGameByTypes(GameType gameType) {
    List<Game> games = gamesDao.getGamesByType(gameType); // dao call
    //some logic
    }

    public class Game implements Serializable {
    private long gameId;
    private String gameName;
    private GameType gameType;
    }

    public class GameType implements Serializable {
    private long gameId;
    private String gameGenre;
    private Boolean status;
    }


    findAllGames() is always hit first than findGamesByTypes().



    Now the cached map is generated with "findAllGames" as key and List of games as value. Now Is there any way to query the map using the GameType attributes as criteria.



    Is there any way to implement this? I am open to other suggestions as well.










    share|improve this question



























      -1












      -1








      -1








      I am trying to implement caching using hazelcast.



      Here's my code. My question is that, when findAllGames() is executed i am caching all the games in "gamesCache" and when findGameByTypes() is executed, I want it to query "gamesCache" instead of hitting the database and return the result.



      @Cacheable(cacheNames = "gamesCache", key = "#root.methodName")
      public List<Game> findAllGames() {
      List<Game> games = gamesDao.getAllGames(); // dao call
      //some database call
      }

      public List<Game> findGameByTypes(GameType gameType) {
      List<Game> games = gamesDao.getGamesByType(gameType); // dao call
      //some logic
      }

      public class Game implements Serializable {
      private long gameId;
      private String gameName;
      private GameType gameType;
      }

      public class GameType implements Serializable {
      private long gameId;
      private String gameGenre;
      private Boolean status;
      }


      findAllGames() is always hit first than findGamesByTypes().



      Now the cached map is generated with "findAllGames" as key and List of games as value. Now Is there any way to query the map using the GameType attributes as criteria.



      Is there any way to implement this? I am open to other suggestions as well.










      share|improve this question
















      I am trying to implement caching using hazelcast.



      Here's my code. My question is that, when findAllGames() is executed i am caching all the games in "gamesCache" and when findGameByTypes() is executed, I want it to query "gamesCache" instead of hitting the database and return the result.



      @Cacheable(cacheNames = "gamesCache", key = "#root.methodName")
      public List<Game> findAllGames() {
      List<Game> games = gamesDao.getAllGames(); // dao call
      //some database call
      }

      public List<Game> findGameByTypes(GameType gameType) {
      List<Game> games = gamesDao.getGamesByType(gameType); // dao call
      //some logic
      }

      public class Game implements Serializable {
      private long gameId;
      private String gameName;
      private GameType gameType;
      }

      public class GameType implements Serializable {
      private long gameId;
      private String gameGenre;
      private Boolean status;
      }


      findAllGames() is always hit first than findGamesByTypes().



      Now the cached map is generated with "findAllGames" as key and List of games as value. Now Is there any way to query the map using the GameType attributes as criteria.



      Is there any way to implement this? I am open to other suggestions as well.







      java spring caching hazelcast hazelcast-imap






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 19 '18 at 7:17







      Akshaya Kumar T

















      asked Nov 19 '18 at 6:34









      Akshaya Kumar TAkshaya Kumar T

      198




      198
























          3 Answers
          3






          active

          oldest

          votes


















          0














          As suggested by @wildnez, you can use PRedicate and/or SQLQuery. Also, since you're using Spring, you can also benefit from Spring-Data-Hazelcast project which automatically generates queries for you from method name: https://github.com/hazelcast/spring-data-hazelcast



          But you need to change your way of caching. Instead of having only one entry in the cache, with key findAllGames and storing all games in a collection, you should store all entries individually in the cache, gameId as key & Game as value. This way you can query values using either of the methods.






          share|improve this answer
























          • Thanks, That's what I tried and worked for me!

            – Akshaya Kumar T
            Nov 20 '18 at 6:52



















          0














          Please have a look at the MapLoader provided by Hazelcast. https://docs.hazelcast.org/docs/3.8/javadoc/com/hazelcast/core/MapLoader.html



          You would have to implement a loadAll which would be a call to your findAllGames() which would save the key as gameType against the object.



          Any call to load should be a call findGameByTypes which would be invoked if it wasnt able to find the data in the cache.



          Have a look at this blog to ensure you understand the pitfalls involved.
          https://dzone.com/articles/hazelcasts-maploader-pitfalls






          share|improve this answer
























          • I have added more details to the question. It may give a fair idea of what I want to achieve. Could you elaborate your answer a bit more or provide an example.?

            – Akshaya Kumar T
            Nov 19 '18 at 7:19











          • Thanks for clarifiying. Hazelcast does support criteria based queries. docs.hazelcast.org/docs/3.7/manual/html-single/… . You would need to setup a predicate. I havent tried on a composite object but for simple objects it should work. Please give it a try and let us know

            – Renny
            Nov 19 '18 at 7:29













          • I have gone through that link. Here the name of my cache is "gamesCache" and the key i used is "findAllGames". In the example provided in the link in the "Querying with Criteria Api" section, they do this IMap<String, Employee> map = hazelcastInstance.getMap("employee"); I am having difficulty in understanding what this returns. I mean what are the key and values of this map.?

            – Akshaya Kumar T
            Nov 19 '18 at 7:52













          • you are creating a cache with the key as the method name. instead of this you could go ahead with a query to the repository using the Game Data retrieved save them into a Hazelcast map with gameId as key and the Game as object. Hazelcast stores its data in a map so you need to align your data to the same pattern

            – Renny
            Nov 19 '18 at 8:44



















          0














          You can query Hazelcast Map/Cache using Predicate or SqlQuery. Check out detail documentation here: https://docs.hazelcast.org/docs/3.11/manual/html-single/index.html#distributed-query






          share|improve this answer
























          • Yes, I have looked into this. I followed the employee example in Querying with criteria Api. However I have a doubt that what will this return hazelcastInstance.getMap("findAllGames")? A map with "findAllGames" as key and List<Game> as value. If yes, how to structure the predicate to query the cache?

            – Akshaya Kumar T
            Nov 19 '18 at 7:35













          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53369433%2fis-it-possible-to-query-hazelcast-cache-if-yes-how-to-do-it%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          3 Answers
          3






          active

          oldest

          votes








          3 Answers
          3






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          0














          As suggested by @wildnez, you can use PRedicate and/or SQLQuery. Also, since you're using Spring, you can also benefit from Spring-Data-Hazelcast project which automatically generates queries for you from method name: https://github.com/hazelcast/spring-data-hazelcast



          But you need to change your way of caching. Instead of having only one entry in the cache, with key findAllGames and storing all games in a collection, you should store all entries individually in the cache, gameId as key & Game as value. This way you can query values using either of the methods.






          share|improve this answer
























          • Thanks, That's what I tried and worked for me!

            – Akshaya Kumar T
            Nov 20 '18 at 6:52
















          0














          As suggested by @wildnez, you can use PRedicate and/or SQLQuery. Also, since you're using Spring, you can also benefit from Spring-Data-Hazelcast project which automatically generates queries for you from method name: https://github.com/hazelcast/spring-data-hazelcast



          But you need to change your way of caching. Instead of having only one entry in the cache, with key findAllGames and storing all games in a collection, you should store all entries individually in the cache, gameId as key & Game as value. This way you can query values using either of the methods.






          share|improve this answer
























          • Thanks, That's what I tried and worked for me!

            – Akshaya Kumar T
            Nov 20 '18 at 6:52














          0












          0








          0







          As suggested by @wildnez, you can use PRedicate and/or SQLQuery. Also, since you're using Spring, you can also benefit from Spring-Data-Hazelcast project which automatically generates queries for you from method name: https://github.com/hazelcast/spring-data-hazelcast



          But you need to change your way of caching. Instead of having only one entry in the cache, with key findAllGames and storing all games in a collection, you should store all entries individually in the cache, gameId as key & Game as value. This way you can query values using either of the methods.






          share|improve this answer













          As suggested by @wildnez, you can use PRedicate and/or SQLQuery. Also, since you're using Spring, you can also benefit from Spring-Data-Hazelcast project which automatically generates queries for you from method name: https://github.com/hazelcast/spring-data-hazelcast



          But you need to change your way of caching. Instead of having only one entry in the cache, with key findAllGames and storing all games in a collection, you should store all entries individually in the cache, gameId as key & Game as value. This way you can query values using either of the methods.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 20 '18 at 6:42









          Gokhan OnerGokhan Oner

          2,1561020




          2,1561020













          • Thanks, That's what I tried and worked for me!

            – Akshaya Kumar T
            Nov 20 '18 at 6:52



















          • Thanks, That's what I tried and worked for me!

            – Akshaya Kumar T
            Nov 20 '18 at 6:52

















          Thanks, That's what I tried and worked for me!

          – Akshaya Kumar T
          Nov 20 '18 at 6:52





          Thanks, That's what I tried and worked for me!

          – Akshaya Kumar T
          Nov 20 '18 at 6:52













          0














          Please have a look at the MapLoader provided by Hazelcast. https://docs.hazelcast.org/docs/3.8/javadoc/com/hazelcast/core/MapLoader.html



          You would have to implement a loadAll which would be a call to your findAllGames() which would save the key as gameType against the object.



          Any call to load should be a call findGameByTypes which would be invoked if it wasnt able to find the data in the cache.



          Have a look at this blog to ensure you understand the pitfalls involved.
          https://dzone.com/articles/hazelcasts-maploader-pitfalls






          share|improve this answer
























          • I have added more details to the question. It may give a fair idea of what I want to achieve. Could you elaborate your answer a bit more or provide an example.?

            – Akshaya Kumar T
            Nov 19 '18 at 7:19











          • Thanks for clarifiying. Hazelcast does support criteria based queries. docs.hazelcast.org/docs/3.7/manual/html-single/… . You would need to setup a predicate. I havent tried on a composite object but for simple objects it should work. Please give it a try and let us know

            – Renny
            Nov 19 '18 at 7:29













          • I have gone through that link. Here the name of my cache is "gamesCache" and the key i used is "findAllGames". In the example provided in the link in the "Querying with Criteria Api" section, they do this IMap<String, Employee> map = hazelcastInstance.getMap("employee"); I am having difficulty in understanding what this returns. I mean what are the key and values of this map.?

            – Akshaya Kumar T
            Nov 19 '18 at 7:52













          • you are creating a cache with the key as the method name. instead of this you could go ahead with a query to the repository using the Game Data retrieved save them into a Hazelcast map with gameId as key and the Game as object. Hazelcast stores its data in a map so you need to align your data to the same pattern

            – Renny
            Nov 19 '18 at 8:44
















          0














          Please have a look at the MapLoader provided by Hazelcast. https://docs.hazelcast.org/docs/3.8/javadoc/com/hazelcast/core/MapLoader.html



          You would have to implement a loadAll which would be a call to your findAllGames() which would save the key as gameType against the object.



          Any call to load should be a call findGameByTypes which would be invoked if it wasnt able to find the data in the cache.



          Have a look at this blog to ensure you understand the pitfalls involved.
          https://dzone.com/articles/hazelcasts-maploader-pitfalls






          share|improve this answer
























          • I have added more details to the question. It may give a fair idea of what I want to achieve. Could you elaborate your answer a bit more or provide an example.?

            – Akshaya Kumar T
            Nov 19 '18 at 7:19











          • Thanks for clarifiying. Hazelcast does support criteria based queries. docs.hazelcast.org/docs/3.7/manual/html-single/… . You would need to setup a predicate. I havent tried on a composite object but for simple objects it should work. Please give it a try and let us know

            – Renny
            Nov 19 '18 at 7:29













          • I have gone through that link. Here the name of my cache is "gamesCache" and the key i used is "findAllGames". In the example provided in the link in the "Querying with Criteria Api" section, they do this IMap<String, Employee> map = hazelcastInstance.getMap("employee"); I am having difficulty in understanding what this returns. I mean what are the key and values of this map.?

            – Akshaya Kumar T
            Nov 19 '18 at 7:52













          • you are creating a cache with the key as the method name. instead of this you could go ahead with a query to the repository using the Game Data retrieved save them into a Hazelcast map with gameId as key and the Game as object. Hazelcast stores its data in a map so you need to align your data to the same pattern

            – Renny
            Nov 19 '18 at 8:44














          0












          0








          0







          Please have a look at the MapLoader provided by Hazelcast. https://docs.hazelcast.org/docs/3.8/javadoc/com/hazelcast/core/MapLoader.html



          You would have to implement a loadAll which would be a call to your findAllGames() which would save the key as gameType against the object.



          Any call to load should be a call findGameByTypes which would be invoked if it wasnt able to find the data in the cache.



          Have a look at this blog to ensure you understand the pitfalls involved.
          https://dzone.com/articles/hazelcasts-maploader-pitfalls






          share|improve this answer













          Please have a look at the MapLoader provided by Hazelcast. https://docs.hazelcast.org/docs/3.8/javadoc/com/hazelcast/core/MapLoader.html



          You would have to implement a loadAll which would be a call to your findAllGames() which would save the key as gameType against the object.



          Any call to load should be a call findGameByTypes which would be invoked if it wasnt able to find the data in the cache.



          Have a look at this blog to ensure you understand the pitfalls involved.
          https://dzone.com/articles/hazelcasts-maploader-pitfalls







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 19 '18 at 7:01









          RennyRenny

          608




          608













          • I have added more details to the question. It may give a fair idea of what I want to achieve. Could you elaborate your answer a bit more or provide an example.?

            – Akshaya Kumar T
            Nov 19 '18 at 7:19











          • Thanks for clarifiying. Hazelcast does support criteria based queries. docs.hazelcast.org/docs/3.7/manual/html-single/… . You would need to setup a predicate. I havent tried on a composite object but for simple objects it should work. Please give it a try and let us know

            – Renny
            Nov 19 '18 at 7:29













          • I have gone through that link. Here the name of my cache is "gamesCache" and the key i used is "findAllGames". In the example provided in the link in the "Querying with Criteria Api" section, they do this IMap<String, Employee> map = hazelcastInstance.getMap("employee"); I am having difficulty in understanding what this returns. I mean what are the key and values of this map.?

            – Akshaya Kumar T
            Nov 19 '18 at 7:52













          • you are creating a cache with the key as the method name. instead of this you could go ahead with a query to the repository using the Game Data retrieved save them into a Hazelcast map with gameId as key and the Game as object. Hazelcast stores its data in a map so you need to align your data to the same pattern

            – Renny
            Nov 19 '18 at 8:44



















          • I have added more details to the question. It may give a fair idea of what I want to achieve. Could you elaborate your answer a bit more or provide an example.?

            – Akshaya Kumar T
            Nov 19 '18 at 7:19











          • Thanks for clarifiying. Hazelcast does support criteria based queries. docs.hazelcast.org/docs/3.7/manual/html-single/… . You would need to setup a predicate. I havent tried on a composite object but for simple objects it should work. Please give it a try and let us know

            – Renny
            Nov 19 '18 at 7:29













          • I have gone through that link. Here the name of my cache is "gamesCache" and the key i used is "findAllGames". In the example provided in the link in the "Querying with Criteria Api" section, they do this IMap<String, Employee> map = hazelcastInstance.getMap("employee"); I am having difficulty in understanding what this returns. I mean what are the key and values of this map.?

            – Akshaya Kumar T
            Nov 19 '18 at 7:52













          • you are creating a cache with the key as the method name. instead of this you could go ahead with a query to the repository using the Game Data retrieved save them into a Hazelcast map with gameId as key and the Game as object. Hazelcast stores its data in a map so you need to align your data to the same pattern

            – Renny
            Nov 19 '18 at 8:44

















          I have added more details to the question. It may give a fair idea of what I want to achieve. Could you elaborate your answer a bit more or provide an example.?

          – Akshaya Kumar T
          Nov 19 '18 at 7:19





          I have added more details to the question. It may give a fair idea of what I want to achieve. Could you elaborate your answer a bit more or provide an example.?

          – Akshaya Kumar T
          Nov 19 '18 at 7:19













          Thanks for clarifiying. Hazelcast does support criteria based queries. docs.hazelcast.org/docs/3.7/manual/html-single/… . You would need to setup a predicate. I havent tried on a composite object but for simple objects it should work. Please give it a try and let us know

          – Renny
          Nov 19 '18 at 7:29







          Thanks for clarifiying. Hazelcast does support criteria based queries. docs.hazelcast.org/docs/3.7/manual/html-single/… . You would need to setup a predicate. I havent tried on a composite object but for simple objects it should work. Please give it a try and let us know

          – Renny
          Nov 19 '18 at 7:29















          I have gone through that link. Here the name of my cache is "gamesCache" and the key i used is "findAllGames". In the example provided in the link in the "Querying with Criteria Api" section, they do this IMap<String, Employee> map = hazelcastInstance.getMap("employee"); I am having difficulty in understanding what this returns. I mean what are the key and values of this map.?

          – Akshaya Kumar T
          Nov 19 '18 at 7:52







          I have gone through that link. Here the name of my cache is "gamesCache" and the key i used is "findAllGames". In the example provided in the link in the "Querying with Criteria Api" section, they do this IMap<String, Employee> map = hazelcastInstance.getMap("employee"); I am having difficulty in understanding what this returns. I mean what are the key and values of this map.?

          – Akshaya Kumar T
          Nov 19 '18 at 7:52















          you are creating a cache with the key as the method name. instead of this you could go ahead with a query to the repository using the Game Data retrieved save them into a Hazelcast map with gameId as key and the Game as object. Hazelcast stores its data in a map so you need to align your data to the same pattern

          – Renny
          Nov 19 '18 at 8:44





          you are creating a cache with the key as the method name. instead of this you could go ahead with a query to the repository using the Game Data retrieved save them into a Hazelcast map with gameId as key and the Game as object. Hazelcast stores its data in a map so you need to align your data to the same pattern

          – Renny
          Nov 19 '18 at 8:44











          0














          You can query Hazelcast Map/Cache using Predicate or SqlQuery. Check out detail documentation here: https://docs.hazelcast.org/docs/3.11/manual/html-single/index.html#distributed-query






          share|improve this answer
























          • Yes, I have looked into this. I followed the employee example in Querying with criteria Api. However I have a doubt that what will this return hazelcastInstance.getMap("findAllGames")? A map with "findAllGames" as key and List<Game> as value. If yes, how to structure the predicate to query the cache?

            – Akshaya Kumar T
            Nov 19 '18 at 7:35


















          0














          You can query Hazelcast Map/Cache using Predicate or SqlQuery. Check out detail documentation here: https://docs.hazelcast.org/docs/3.11/manual/html-single/index.html#distributed-query






          share|improve this answer
























          • Yes, I have looked into this. I followed the employee example in Querying with criteria Api. However I have a doubt that what will this return hazelcastInstance.getMap("findAllGames")? A map with "findAllGames" as key and List<Game> as value. If yes, how to structure the predicate to query the cache?

            – Akshaya Kumar T
            Nov 19 '18 at 7:35
















          0












          0








          0







          You can query Hazelcast Map/Cache using Predicate or SqlQuery. Check out detail documentation here: https://docs.hazelcast.org/docs/3.11/manual/html-single/index.html#distributed-query






          share|improve this answer













          You can query Hazelcast Map/Cache using Predicate or SqlQuery. Check out detail documentation here: https://docs.hazelcast.org/docs/3.11/manual/html-single/index.html#distributed-query







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 19 '18 at 7:26









          wildnezwildnez

          55338




          55338













          • Yes, I have looked into this. I followed the employee example in Querying with criteria Api. However I have a doubt that what will this return hazelcastInstance.getMap("findAllGames")? A map with "findAllGames" as key and List<Game> as value. If yes, how to structure the predicate to query the cache?

            – Akshaya Kumar T
            Nov 19 '18 at 7:35





















          • Yes, I have looked into this. I followed the employee example in Querying with criteria Api. However I have a doubt that what will this return hazelcastInstance.getMap("findAllGames")? A map with "findAllGames" as key and List<Game> as value. If yes, how to structure the predicate to query the cache?

            – Akshaya Kumar T
            Nov 19 '18 at 7:35



















          Yes, I have looked into this. I followed the employee example in Querying with criteria Api. However I have a doubt that what will this return hazelcastInstance.getMap("findAllGames")? A map with "findAllGames" as key and List<Game> as value. If yes, how to structure the predicate to query the cache?

          – Akshaya Kumar T
          Nov 19 '18 at 7:35







          Yes, I have looked into this. I followed the employee example in Querying with criteria Api. However I have a doubt that what will this return hazelcastInstance.getMap("findAllGames")? A map with "findAllGames" as key and List<Game> as value. If yes, how to structure the predicate to query the cache?

          – Akshaya Kumar T
          Nov 19 '18 at 7:35




















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53369433%2fis-it-possible-to-query-hazelcast-cache-if-yes-how-to-do-it%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          How to send String Array data to Server using php in android

          Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents

          Is anime1.com a legal site for watching anime?