This is an automated email from the ASF dual-hosted git repository.
jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git
The following commit(s) were added to refs/heads/master by this push:
new b71db4c JUNEAU-140 Provide initial contents of PetStore modules.
b71db4c is described below
commit b71db4c74ccd600420dbec2f950cba8c675f2aac
Author: JamesBognar <[email protected]>
AuthorDate: Sat Sep 7 13:48:05 2019 -0400
JUNEAU-140 Provide initial contents of PetStore modules.
---
.../juneau-examples-petstore-api/pom.xml | 20 +----
.../java/org/apache/juneau/petstore/PetStore.java | 4 +-
.../org/apache/juneau/petstore/dto/Species.java | 22 -----
.../main/java/org/apache/juneau/petstore/Main.java | 9 ++-
.../org/apache/juneau/petstore/init/Orders.json} | 38 ++-------
.../org/apache/juneau/petstore/init/Pets.json} | 44 +++-------
.../org/apache/juneau/petstore/init/Users.json} | 38 ++-------
.../juneau/petstore/rest/PetStoreResource.java | 93 +---------------------
.../juneau/petstore/rest/PhotosResource.java | 6 +-
.../juneau/petstore/rest/SqlQueryResource.java | 3 +-
10 files changed, 38 insertions(+), 239 deletions(-)
diff --git
a/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-api/pom.xml
b/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-api/pom.xml
index 349de63..59943c8 100644
---
a/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-api/pom.xml
+++
b/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-api/pom.xml
@@ -37,7 +37,6 @@
<!-- Java 8 required because Jetty requires it. -->
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
- <springframework.version>2.0.1.RELEASE</springframework.version>
</properties>
@@ -48,29 +47,14 @@
<artifactId>juneau-marshall</artifactId>
<version>${project.version}</version>
</dependency>
- <dependency>
- <groupId>org.apache.juneau</groupId>
- <artifactId>juneau-dto</artifactId>
- <version>${project.version}</version>
- </dependency>
- <!-- Needed for JPA persistence of PetStore beans -->
- <dependency>
- <groupId>org.apache.derby</groupId>
- <artifactId>derby</artifactId>
- <version>${derby.version}</version>
- </dependency>
+ <!-- Needed for JPA persistence annotations -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-entitymanager</artifactId>
- <version>${hibernate.version}</version>
- </dependency>
-
+
</dependencies>
<build>
diff --git
a/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-api/src/main/java/org/apache/juneau/petstore/PetStore.java
b/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-api/src/main/java/org/apache/juneau/petstore/PetStore.java
index ef2add7..cbaeaa3 100644
---
a/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-api/src/main/java/org/apache/juneau/petstore/PetStore.java
+++
b/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-api/src/main/java/org/apache/juneau/petstore/PetStore.java
@@ -81,7 +81,7 @@ public interface PetStore {
* @throws UnsupportedMediaType Unsupported <c>Content-Type</c> header
specified.
*/
@RemoteMethod /* method and path inferred from method name */
- public long postPet(
+ public long createPet(
@Body(
description="Pet object to add to the store"
) CreatePet pet
@@ -303,7 +303,7 @@ public interface PetStore {
* @throws UnsupportedMediaType Unsupported <c>Content-Type</c> header
specified.
*/
@RemoteMethod
- public Ok postUser(
+ public Ok createUser(
@Body(
description="Created user object"
)
diff --git
a/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-api/src/main/java/org/apache/juneau/petstore/dto/Species.java
b/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-api/src/main/java/org/apache/juneau/petstore/dto/Species.java
index b9976f6..90a54e3 100644
---
a/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-api/src/main/java/org/apache/juneau/petstore/dto/Species.java
+++
b/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-api/src/main/java/org/apache/juneau/petstore/dto/Species.java
@@ -12,11 +12,6 @@
//
***************************************************************************************************************************
package org.apache.juneau.petstore.dto;
-import org.apache.juneau.dto.html5.*;
-import org.apache.juneau.html.*;
-import org.apache.juneau.html.annotation.Html;
-import org.apache.juneau.serializer.*;
-
/**
* Enum of all possible animal types.
*
@@ -24,23 +19,6 @@ import org.apache.juneau.serializer.*;
* <li class='extlink'>{@source}
* </ul>
*/
-@Html(render=Species.SpeciesRender.class)
-@SuppressWarnings("javadoc")
public enum Species {
-
BIRD, CAT, DOG, FISH, MOUSE, RABBIT, SNAKE;
-
- /**
- * Used to control how this enum is rendered in HTML view.
- */
- public static class SpeciesRender extends HtmlRender<Species> {
- @Override
- public Object getContent(SerializerSession session, Species
value) {
- return new
Img().src("servlet:/htdocs/"+value.name().toLowerCase()+".png");
- }
- @Override
- public String getStyle(SerializerSession session, Species
value) {
- return "background-color:#FDF2E9";
- }
- }
}
diff --git
a/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-client/src/main/java/org/apache/juneau/petstore/Main.java
b/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-client/src/main/java/org/apache/juneau/petstore/Main.java
index ecc9c4e..e038a52 100644
---
a/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-client/src/main/java/org/apache/juneau/petstore/Main.java
+++
b/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-client/src/main/java/org/apache/juneau/petstore/Main.java
@@ -69,24 +69,29 @@ public class Main {
ps.deletePet("apiKey", x.getId());
w.println(format("Deleted pet: id={0}", x.getId()));
}
+
for (Order x : ps.getOrders()) {
ps.deleteOrder(x.getId());
w.println(format("Deleted order: id={0}", x.getId()));
}
+
for (User x : ps.getUsers()) {
ps.deleteUser(x.getUsername());
w.println(format("Deleted user: username={0}",
x.getUsername()));
}
+
for (CreatePet x : load("init/Pets.json", CreatePet[].class)) {
- long id = ps.postPet(x);
+ long id = ps.createPet(x);
w.println(format("Created pet: id={0}, name={1}", id,
x.getName()));
}
+
for (Order x : load("init/Orders.json", Order[].class)) {
long id = ps.placeOrder(x.getPetId(), x.getUsername());
w.println(format("Created order: id={0}", id));
}
+
for (User x : load("init/Users.json", User[].class)) {
- ps.postUser(x);
+ ps.createUser(x);
w.println(format("Created user: username={0}",
x.getUsername()));
}
}
diff --git
a/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-api/src/main/java/org/apache/juneau/petstore/dto/Species.java
b/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-client/src/main/resources/org/apache/juneau/petstore/init/Orders.json
similarity index 63%
copy from
juneau-examples/juneau-examples-petstore/juneau-examples-petstore-api/src/main/java/org/apache/juneau/petstore/dto/Species.java
copy to
juneau-examples/juneau-examples-petstore/juneau-examples-petstore-client/src/main/resources/org/apache/juneau/petstore/init/Orders.json
index b9976f6..b306aa8 100644
---
a/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-api/src/main/java/org/apache/juneau/petstore/dto/Species.java
+++
b/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-client/src/main/resources/org/apache/juneau/petstore/init/Orders.json
@@ -10,37 +10,9 @@
// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
express or implied. See the License for the *
// * specific language governing permissions and limitations under the
License. *
//
***************************************************************************************************************************
-package org.apache.juneau.petstore.dto;
-import org.apache.juneau.dto.html5.*;
-import org.apache.juneau.html.*;
-import org.apache.juneau.html.annotation.Html;
-import org.apache.juneau.serializer.*;
-
-/**
- * Enum of all possible animal types.
- *
- * <ul class='seealso'>
- * <li class='extlink'>{@source}
- * </ul>
- */
-@Html(render=Species.SpeciesRender.class)
-@SuppressWarnings("javadoc")
-public enum Species {
-
- BIRD, CAT, DOG, FISH, MOUSE, RABBIT, SNAKE;
-
- /**
- * Used to control how this enum is rendered in HTML view.
- */
- public static class SpeciesRender extends HtmlRender<Species> {
- @Override
- public Object getContent(SerializerSession session, Species
value) {
- return new
Img().src("servlet:/htdocs/"+value.name().toLowerCase()+".png");
- }
- @Override
- public String getStyle(SerializerSession session, Species
value) {
- return "background-color:#FDF2E9";
- }
- }
-}
+[
+ {id:101,petId:101,shipDate:'2018-01-01',status:'PLACED'},
+ {id:102,petId:102,shipDate:'2018-01-01',status:'APPROVED'},
+ {id:103,petId:103,shipDate:'2018-01-01',status:'DELIVERED'}
+]
diff --git
a/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-api/src/main/java/org/apache/juneau/petstore/dto/Species.java
b/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-client/src/main/resources/org/apache/juneau/petstore/init/Pets.json
similarity index 63%
copy from
juneau-examples/juneau-examples-petstore/juneau-examples-petstore-api/src/main/java/org/apache/juneau/petstore/dto/Species.java
copy to
juneau-examples/juneau-examples-petstore/juneau-examples-petstore-client/src/main/resources/org/apache/juneau/petstore/init/Pets.json
index b9976f6..a78bf19 100644
---
a/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-api/src/main/java/org/apache/juneau/petstore/dto/Species.java
+++
b/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-client/src/main/resources/org/apache/juneau/petstore/init/Pets.json
@@ -10,37 +10,15 @@
// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
express or implied. See the License for the *
// * specific language governing permissions and limitations under the
License. *
//
***************************************************************************************************************************
-package org.apache.juneau.petstore.dto;
-import org.apache.juneau.dto.html5.*;
-import org.apache.juneau.html.*;
-import org.apache.juneau.html.annotation.Html;
-import org.apache.juneau.serializer.*;
-
-/**
- * Enum of all possible animal types.
- *
- * <ul class='seealso'>
- * <li class='extlink'>{@source}
- * </ul>
- */
-@Html(render=Species.SpeciesRender.class)
-@SuppressWarnings("javadoc")
-public enum Species {
-
- BIRD, CAT, DOG, FISH, MOUSE, RABBIT, SNAKE;
-
- /**
- * Used to control how this enum is rendered in HTML view.
- */
- public static class SpeciesRender extends HtmlRender<Species> {
- @Override
- public Object getContent(SerializerSession session, Species
value) {
- return new
Img().src("servlet:/htdocs/"+value.name().toLowerCase()+".png");
- }
- @Override
- public String getStyle(SerializerSession session, Species
value) {
- return "background-color:#FDF2E9";
- }
- }
-}
+[
+ {species:'CAT', name:'Mr. Frisky', price:39.99, tags:['friendly'],
status:'AVAILABLE', photo:'/petstore/photos/cat'},
+ {species:'DOG', name:'Kibbles', price:99.99, tags:['loyal'],
status:'AVAILABLE'},
+ {species:'RABBIT', name:'Hoppy', price:49.99, tags:['friendly','smells
nice'], status:'AVAILABLE'},
+ {species:'RABBIT', name:'Hoppy 2', price:49.99, status:'AVAILABLE'},
+ {species:'RABBIT', name:'Hoppy 3', price:49.99, status:'AVAILABLE'},
+ {species:'RABBIT', name:'Hoppy 4', price:49.99, status:'AVAILABLE'},
+ {species:'FISH', name:'Gorton', price:1.99, status:'PENDING'},
+ {species:'MOUSE', name:'Hackwrench', price:4.99, status:'SOLD'},
+ {species:'SNAKE', name:'Just Snake', price:9.99, status:'SOLD'}
+]
\ No newline at end of file
diff --git
a/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-api/src/main/java/org/apache/juneau/petstore/dto/Species.java
b/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-client/src/main/resources/org/apache/juneau/petstore/init/Users.json
similarity index 63%
copy from
juneau-examples/juneau-examples-petstore/juneau-examples-petstore-api/src/main/java/org/apache/juneau/petstore/dto/Species.java
copy to
juneau-examples/juneau-examples-petstore/juneau-examples-petstore-client/src/main/resources/org/apache/juneau/petstore/init/Users.json
index b9976f6..7f02a3c 100644
---
a/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-api/src/main/java/org/apache/juneau/petstore/dto/Species.java
+++
b/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-client/src/main/resources/org/apache/juneau/petstore/init/Users.json
@@ -10,37 +10,9 @@
// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
express or implied. See the License for the *
// * specific language governing permissions and limitations under the
License. *
//
***************************************************************************************************************************
-package org.apache.juneau.petstore.dto;
-import org.apache.juneau.dto.html5.*;
-import org.apache.juneau.html.*;
-import org.apache.juneau.html.annotation.Html;
-import org.apache.juneau.serializer.*;
-
-/**
- * Enum of all possible animal types.
- *
- * <ul class='seealso'>
- * <li class='extlink'>{@source}
- * </ul>
- */
-@Html(render=Species.SpeciesRender.class)
-@SuppressWarnings("javadoc")
-public enum Species {
-
- BIRD, CAT, DOG, FISH, MOUSE, RABBIT, SNAKE;
-
- /**
- * Used to control how this enum is rendered in HTML view.
- */
- public static class SpeciesRender extends HtmlRender<Species> {
- @Override
- public Object getContent(SerializerSession session, Species
value) {
- return new
Img().src("servlet:/htdocs/"+value.name().toLowerCase()+".png");
- }
- @Override
- public String getStyle(SerializerSession session, Species
value) {
- return "background-color:#FDF2E9";
- }
- }
-}
+[
+
{username:'mwatson',firstName:'Marie',lastName:'Watson',email:'[email protected]',password:'123456',phone:'444-555-7777',userStatus:'ACTIVE'},
+
{username:'dvaughn',firstName:'Daniel',lastName:'Vaughn',email:'[email protected]',password:'123456',phone:'666-777-3333',userStatus:'ACTIVE'},
+
{username:'bfuller',firstName:'Brenda',lastName:'Fuller',email:'[email protected]',password:'123456',phone:'777-888-3333',userStatus:'INACTIVE'}
+]
diff --git
a/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-server/src/main/java/org/apache/juneau/petstore/rest/PetStoreResource.java
b/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-server/src/main/java/org/apache/juneau/petstore/rest/PetStoreResource.java
index 49807b3..fe2e616 100644
---
a/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-server/src/main/java/org/apache/juneau/petstore/rest/PetStoreResource.java
+++
b/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-server/src/main/java/org/apache/juneau/petstore/rest/PetStoreResource.java
@@ -31,8 +31,6 @@ import org.apache.juneau.annotation.*;
import org.apache.juneau.dto.html5.*;
import org.apache.juneau.html.annotation.*;
import org.apache.juneau.http.annotation.*;
-import org.apache.juneau.http.annotation.Path;
-import org.apache.juneau.internal.*;
import org.apache.juneau.rest.*;
import org.apache.juneau.rest.annotation.*;
import org.apache.juneau.http.exception.*;
@@ -274,7 +272,7 @@ public class PetStoreResource extends BasicRest implements
PetStore {
}
)
)
- public long postPet(CreatePet pet) throws IdConflict, NotAcceptable,
UnsupportedMediaType {
+ public long createPet(CreatePet pet) throws IdConflict, NotAcceptable,
UnsupportedMediaType {
return store.create(pet).getId();
}
@@ -348,93 +346,6 @@ public class PetStoreResource extends BasicRest implements
PetStore {
}
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- // Pets - extra methods
-
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
- /**
- * Displays the pet edit page.
- *
- * @param petId ID of pet to edit
- * @return Edit page contents.
- * @throws NotAcceptable Unsupported <bc>Accept</bc> header value
specified.
- * @throws UnsupportedMediaType Unsupported <bc>Content-Type</bc>
header value specified.
- */
- @RestMethod(
- name=GET,
- path="/pet/{petId}/edit",
- summary="Pet edit page",
- swagger=@MethodSwagger(
- tags="pet",
- value={
- "security:[ {
petstore_auth:['write:pets','read:pets'] } ]"
- }
- )
- )
- public Div editPetPage(
- @Path(
- name="petId",
- description="ID of pet to edit",
- example="123"
- )
- long petId
- ) throws NotAcceptable, UnsupportedMediaType {
-
- Pet pet = getPet(petId);
-
- return div(
- form().id("form").action("servlet:/pet/" +
petId).method(POST).children(
- table(
- tr(
- th("Id:"),
-
td(input().name("id").type("text").value(petId).readonly(true)),
- td(new Tooltip("❓", "The
name of the pet.", br(), "e.g. 'Fluffy'"))
- ),
- tr(
- th("Name:"),
-
td(input().name("name").type("text").value(pet.getName())),
- td(new Tooltip("❓", "The
name of the pet.", br(), "e.g. 'Fluffy'"))
- ),
- tr(
- th("Species:"),
- td(
-
select().name("species").children(
- option("cat"),
option("dog"), option("bird"), option("fish"), option("mouse"),
option("rabbit"), option("snake")
-
).choose(pet.getSpecies())
- ),
- td(new Tooltip("❓", "The
kind of animal."))
- ),
- tr(
- th("Price:"),
-
td(input().name("price").type("number").placeholder("1.0").step("0.01").min(1).max(100).value(pet.getPrice())),
- td(new Tooltip("❓", "The
price to charge for this pet."))
- ),
- tr(
- th("Tags:"),
-
td(input().name("tags").type("text").value(StringUtils.join(pet.getTags(),
','))),
- td(new Tooltip("❓",
"Arbitrary textual tags (comma-delimited).", br(), "e.g. 'fluffy,friendly'"))
- ),
- tr(
- th("Status:"),
- td(
-
select().name("status").children(
-
option("AVAILABLE"), option("PENDING"), option("SOLD")
-
).choose(pet.getStatus())
- ),
- td(new Tooltip("❓", "The
current status of the animal."))
- ),
- tr(
-
td().colspan(2).style("text-align:right").children(
- button("reset",
"Reset"),
-
button("button","Cancel").onclick("window.location.href='/'"),
- button("submit",
"Submit")
- )
- )
- ).style("white-space:nowrap")
- )
- );
- }
-
-
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Orders
//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
@@ -591,7 +502,7 @@ public class PetStoreResource extends BasicRest implements
PetStore {
tags="user"
)
)
- public Ok postUser(User user) throws InvalidUsername, IdConflict,
NotAcceptable, UnsupportedMediaType {
+ public Ok createUser(User user) throws InvalidUsername, IdConflict,
NotAcceptable, UnsupportedMediaType {
store.create(user);
return OK;
}
diff --git
a/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-server/src/main/java/org/apache/juneau/petstore/rest/PhotosResource.java
b/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-server/src/main/java/org/apache/juneau/petstore/rest/PhotosResource.java
index 1eeb058..11ea0d8 100644
---
a/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-server/src/main/java/org/apache/juneau/petstore/rest/PhotosResource.java
+++
b/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-server/src/main/java/org/apache/juneau/petstore/rest/PhotosResource.java
@@ -13,6 +13,7 @@
package org.apache.juneau.petstore.rest;
import static org.apache.juneau.http.HttpMethodName.*;
+import static org.apache.juneau.rest.annotation.HookEvent.*;
import org.apache.juneau.jsonschema.annotation.ExternalDocs;
import org.apache.juneau.jsonschema.annotation.Schema;
@@ -83,13 +84,12 @@ import org.apache.juneau.serializer.*;
// Make the anchor text on URLs be just the path relative to the
servlet.
uriAnchorText="SERVLET_RELATIVE"
)
-public class PhotosResource extends BasicRestServlet {
- private static final long serialVersionUID = 1L;
+public class PhotosResource extends BasicRest {
// Our cache of photos
private Map<String,Photo> photos = new TreeMap<>();
- @Override /* Servlet */
+ @RestHook(INIT)
public void init() {
try (InputStream is =
getClass().getResourceAsStream("photos/cat.jpg")) {
BufferedImage image = ImageIO.read(is);
diff --git
a/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-server/src/main/java/org/apache/juneau/petstore/rest/SqlQueryResource.java
b/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-server/src/main/java/org/apache/juneau/petstore/rest/SqlQueryResource.java
index de015b0..40962a7 100644
---
a/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-server/src/main/java/org/apache/juneau/petstore/rest/SqlQueryResource.java
+++
b/juneau-examples/juneau-examples-petstore/juneau-examples-petstore-server/src/main/java/org/apache/juneau/petstore/rest/SqlQueryResource.java
@@ -78,8 +78,7 @@ import org.apache.juneau.rest.widget.*;
},
stylesheet="servlet:/htdocs/themes/dark.css"
)
-public class SqlQueryResource extends BasicRestServlet {
- private static final long serialVersionUID = 1L;
+public class SqlQueryResource extends BasicRest {
private String driver, connectionUrl;
private boolean allowUpdates, allowTempUpdates, includeRowNums;