Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 26 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,28 @@
target/
# General Ignores
*~
.classpath
.DS_Store
.project
build/
lib/ivy-2.2.0.jar
bin/
target/
log/

# IDE Support
# IntelliJ specific files/directories
.idea/
*.ipr
*.iws
*.iml
atlassian-ide-plugin.xml

# Eclipse
.factorypath
.settings/
.externalToolBuilders

# NetBeans
.nbattrs
nb-configuration.xml

54 changes: 26 additions & 28 deletions src/main/java/com/couchbase/beersample/BeerServlet.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,7 @@
package com.couchbase.beersample;

import com.couchbase.client.CouchbaseClient;
import com.couchbase.client.protocol.views.ComplexKey;
import com.couchbase.client.protocol.views.Query;
import com.couchbase.client.protocol.views.Stale;
import com.couchbase.client.protocol.views.View;
import com.couchbase.client.protocol.views.ViewResponse;
import com.couchbase.client.protocol.views.ViewRow;
import com.couchbase.client.protocol.views.*;
import com.google.gson.Gson;
import java.io.IOException;
import java.io.PrintWriter;
Expand Down Expand Up @@ -147,28 +142,31 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response)
*/
private void handleIndex(HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException {

View view = client.getView("beer", "by_name");
Query query = new Query();
query.setIncludeDocs(true).setLimit(20);
ViewResponse result = client.query(view, query);

ArrayList<HashMap<String, String>> beers =
new ArrayList<HashMap<String, String>>();
for(ViewRow row : result) {
HashMap<String, String> parsedDoc = gson.fromJson(
(String)row.getDocument(), HashMap.class);

HashMap<String, String> beer = new HashMap<String, String>();
beer.put("id", row.getId());
beer.put("name", parsedDoc.get("name"));
beer.put("brewery", parsedDoc.get("brewery_id"));
beers.add(beer);
}
request.setAttribute("beers", beers);

request.getRequestDispatcher("/WEB-INF/beers/index.jsp")
.forward(request, response);
try {
View view = client.getView("beer", "by_name");
Query query = new Query();
query.setIncludeDocs(true).setLimit(20);
ViewResponse result = client.query(view, query);

ArrayList<HashMap<String, String>> beers =
new ArrayList<HashMap<String, String>>();
for (ViewRow row : result) {
HashMap<String, String> parsedDoc = gson.fromJson(
(String) row.getDocument(), HashMap.class);

HashMap<String, String> beer = new HashMap<String, String>();
beer.put("id", row.getId());
beer.put("name", parsedDoc.get("name"));
beer.put("brewery", parsedDoc.get("brewery_id"));
beers.add(beer);
}
request.setAttribute("beers", beers);

request.getRequestDispatcher("/WEB-INF/beers/index.jsp")
.forward(request, response);
} catch (InvalidViewException e) {
response.getWriter().print( InstallViewServlet.printNoViewMessage() );
}
}

/**
Expand Down
86 changes: 86 additions & 0 deletions src/main/java/com/couchbase/beersample/BreweryAndBeerServlet.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
package com.couchbase.beersample;


import com.couchbase.client.CouchbaseClient;
import com.couchbase.client.protocol.views.*;
import com.google.gson.Gson;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.concurrent.ExecutionException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
* The BreweryServlet handles all Brewery-related HTTP Queries.
*
* The BreweryServlet is used to handle all HTTP queries under the /breweries
* namespace. The "web.xml" defines a wildcard route for every /breweries/*
* route, so the doGet() method needs to determine what should be dispatched.
*/
public class BreweryAndBeerServlet extends HttpServlet {

/**
* Obtains the current CouchbaseClient connection.
*/
final CouchbaseClient client = ConnectionManager.getInstance();

/**
* Google GSON is used for JSON encoding/decoding.
*/
final Gson gson = new Gson();

/**
* Dispatch all incoming GET HTTP requests.
*
* @param request the HTTP request object.
* @param response the HTTP response object.
* @throws javax.servlet.ServletException
* @throws java.io.IOException
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

if(request.getPathInfo() == null) {
handleIndex(request, response);
}
}

private void handleIndex(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
try {
View view = client.getView("brewery", "all_with_beers");
Query query = new Query();
query.setIncludeDocs(true).setLimit(100);
ViewResponse result = client.query(view, query);

ArrayList<HashMap<String, String>> items =
new ArrayList<HashMap<String, String>>();
for (ViewRow row : result) {
HashMap<String, String> parsedDoc = gson.fromJson(
(String) row.getDocument(), HashMap.class);

HashMap<String, String> item = new HashMap<String, String>();
item.put("id", row.getId());
item.put("name", parsedDoc.get("name"));
item.put("type", parsedDoc.get("type"));


items.add(item);
}
request.setAttribute("items", items);

request.getRequestDispatcher("/WEB-INF/breweries/all.jsp")
.forward(request, response);
} catch (InvalidViewException e) {
response.getWriter().print( InstallViewServlet.printNoViewMessage() );
}
}


}
53 changes: 26 additions & 27 deletions src/main/java/com/couchbase/beersample/BreweryServlet.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,7 @@
package com.couchbase.beersample;

import com.couchbase.client.CouchbaseClient;
import com.couchbase.client.protocol.views.ComplexKey;
import com.couchbase.client.protocol.views.Query;
import com.couchbase.client.protocol.views.Stale;
import com.couchbase.client.protocol.views.View;
import com.couchbase.client.protocol.views.ViewResponse;
import com.couchbase.client.protocol.views.ViewRow;
import com.couchbase.client.protocol.views.*;
import com.google.gson.Gson;
import java.io.IOException;
import java.io.PrintWriter;
Expand Down Expand Up @@ -111,27 +106,31 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response)
*/
private void handleIndex(HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException {

View view = client.getView("brewery", "by_name");
Query query = new Query();
query.setIncludeDocs(true).setLimit(20);
ViewResponse result = client.query(view, query);

ArrayList<HashMap<String, String>> breweries =
new ArrayList<HashMap<String, String>>();
for(ViewRow row : result) {
HashMap<String, String> parsedDoc = gson.fromJson(
(String)row.getDocument(), HashMap.class);

HashMap<String, String> brewery = new HashMap<String, String>();
brewery.put("id", row.getId());
brewery.put("name", parsedDoc.get("name"));
breweries.add(brewery);
}
request.setAttribute("breweries", breweries);

request.getRequestDispatcher("/WEB-INF/breweries/index.jsp")
.forward(request, response);
try {
View view = client.getView("brewery", "by_name");
Query query = new Query();
query.setIncludeDocs(true).setLimit(20);
ViewResponse result = client.query(view, query);

ArrayList<HashMap<String, String>> breweries =
new ArrayList<HashMap<String, String>>();
for (ViewRow row : result) {
HashMap<String, String> parsedDoc = gson.fromJson(
(String) row.getDocument(), HashMap.class);

HashMap<String, String> brewery = new HashMap<String, String>();
brewery.put("id", row.getId());
brewery.put("name", parsedDoc.get("name"));
breweries.add(brewery);
}
request.setAttribute("breweries", breweries);

request.getRequestDispatcher("/WEB-INF/breweries/index.jsp")
.forward(request, response);

} catch (InvalidViewException e) {
response.getWriter().print(InstallViewServlet.printNoViewMessage());
}
}

/**
Expand Down
Loading