diff --git a/commons.product/src/main/java/com/pmease/commons/product/DownloadServlet.java b/commons.product/src/main/java/com/pmease/commons/product/GitServlet.java similarity index 70% rename from commons.product/src/main/java/com/pmease/commons/product/DownloadServlet.java rename to commons.product/src/main/java/com/pmease/commons/product/GitServlet.java index d39f6c3291..557935cbb2 100644 --- a/commons.product/src/main/java/com/pmease/commons/product/DownloadServlet.java +++ b/commons.product/src/main/java/com/pmease/commons/product/GitServlet.java @@ -7,12 +7,14 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -public class DownloadServlet extends HttpServlet { +public class GitServlet extends HttpServlet { + + private static final long serialVersionUID = 1L; @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { - resp.getOutputStream().println("hello world"); + resp.getOutputStream().println(req.getServletPath()); } } diff --git a/commons.product/src/main/java/com/pmease/commons/product/Plugin.java b/commons.product/src/main/java/com/pmease/commons/product/Plugin.java index 43d79c592b..c1ae3aa44f 100644 --- a/commons.product/src/main/java/com/pmease/commons/product/Plugin.java +++ b/commons.product/src/main/java/com/pmease/commons/product/Plugin.java @@ -84,7 +84,7 @@ public class Plugin extends AbstractPlugin { context.setInitParameter(InternalConstants.TAPESTRY_APP_PACKAGE_PARAM, Plugin.class.getPackage().getName()); context.addFilter(filterHolder, "/*", EnumSet.of(DispatcherType.REQUEST)); - context.addServlet(DownloadServlet.class, "/download/*"); + context.addServlet(GitServlet.class, "*.git"); } }, diff --git a/commons.product/src/main/java/com/pmease/commons/product/model/Repository.java b/commons.product/src/main/java/com/pmease/commons/product/model/Repository.java new file mode 100644 index 0000000000..3bcf8e0d0d --- /dev/null +++ b/commons.product/src/main/java/com/pmease/commons/product/model/Repository.java @@ -0,0 +1,28 @@ +package com.pmease.commons.product.model; + +import javax.persistence.Entity; + +@Entity +public class Repository { + + private String name; + + private String description; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + +} diff --git a/commons.product/src/main/java/com/pmease/commons/product/model/User.java b/commons.product/src/main/java/com/pmease/commons/product/model/User.java index ce902f6655..ab2df2fba7 100644 --- a/commons.product/src/main/java/com/pmease/commons/product/model/User.java +++ b/commons.product/src/main/java/com/pmease/commons/product/model/User.java @@ -1,20 +1,9 @@ package com.pmease.commons.product.model; -import javax.persistence.Column; -import javax.persistence.Entity; +public class User { -import com.pmease.commons.hibernate.AbstractEntity; - -@Entity -public class User extends AbstractEntity { - - private static final long serialVersionUID = 1L; - - @Column(unique = true, nullable = false) private String name; - private String fullName; - private String email; public String getName() { @@ -25,14 +14,6 @@ public class User extends AbstractEntity { this.name = name; } - public String getFullName() { - return fullName; - } - - public void setFullName(String fullName) { - this.fullName = fullName; - } - public String getEmail() { return email; } diff --git a/commons.product/src/main/java/com/pmease/commons/product/pages/AnotherPage.java b/commons.product/src/main/java/com/pmease/commons/product/pages/AnotherPage.java deleted file mode 100644 index afbbad48b9..0000000000 --- a/commons.product/src/main/java/com/pmease/commons/product/pages/AnotherPage.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.pmease.commons.product.pages; - -import java.util.List; - -import com.google.common.collect.ImmutableList; - -public class AnotherPage { - - public List getElements() { - return ImmutableList.of("4", "5", "6"); - } - -} diff --git a/commons.product/src/main/java/com/pmease/commons/product/pages/Index.java b/commons.product/src/main/java/com/pmease/commons/product/pages/Index.java index d1b732ea00..d58ed431be 100644 --- a/commons.product/src/main/java/com/pmease/commons/product/pages/Index.java +++ b/commons.product/src/main/java/com/pmease/commons/product/pages/Index.java @@ -6,48 +6,73 @@ import java.util.List; import javax.inject.Inject; import org.apache.tapestry5.annotations.InjectComponent; -import org.apache.tapestry5.annotations.Persist; import org.apache.tapestry5.annotations.Property; import org.apache.tapestry5.corelib.components.Zone; +import org.apache.tapestry5.services.ComponentSource; -import com.pmease.commons.hibernate.dao.GeneralDao; -import com.pmease.commons.product.Counter; +import com.pmease.commons.product.model.Repository; import com.pmease.commons.product.model.User; public class Index { - - @Persist - @Property - private List counters; - - @InjectComponent - private Zone zone; @Property - private Counter counter; + private User user; + + @Property + private Repository repository; @Inject - private GeneralDao dao; + private ComponentSource componentSource; - void setupRender() { - if (counters == null) { - counters = new ArrayList(); - counters.add(new Counter()); - counters.add(new Counter()); - } + @InjectComponent + private Zone myZone; + + public List getUsers() { + List users = new ArrayList(); + + User user = new User(); + user.setName("robin"); + user.setEmail("robin@pmease.com"); + users.add(user); + + user = new User(); + user.setName("steve"); + user.setEmail("steve@pmease.com"); + users.add(user); + + return users; } - void onActionFromModify() { - System.out.println(dao.getReference(User.class, 1L).getEmail()); + void onActivate(String userName) { + user = new User(); + user.setName(userName); } - Object onActionFromIncrease(int index) { - counter = counters.get(index); - counter.increase(); - return zone; + void onActivate(String userName, String repositoryName) { + user = new User(); + user.setName(userName); + + repository = new Repository(); + repository.setName(repositoryName); } - public String getZoneId() { - return zone.getClientId(); + public UserViewer getUserViewer() { + UserViewer viewer = (UserViewer) componentSource.getPage(UserViewer.class); + viewer.setUser(user); + return viewer; + } + + public RepositoryViewer getRepositoryViewer() { + RepositoryViewer viewer = (RepositoryViewer) componentSource.getPage(RepositoryViewer.class); + viewer.setUser(user); + viewer.setRepository(repository); + return viewer; + } + + Object onActionFromEmailLink(String userName) { + user = new User(); + user.setName(userName); + user.setEmail(userName + "@pmease.com"); + return myZone; } } diff --git a/commons.product/src/main/java/com/pmease/commons/product/pages/Index.tml b/commons.product/src/main/java/com/pmease/commons/product/pages/Index.tml index 5d10bc86fc..e5e620c45d 100644 --- a/commons.product/src/main/java/com/pmease/commons/product/pages/Index.tml +++ b/commons.product/src/main/java/com/pmease/commons/product/pages/Index.tml @@ -1,10 +1,30 @@ + + Workshop + - - ${counter.value} - increase - - - modify + + + + + + + + + + + ${user.name} + + + open + + + + + + + ${user.email} + + diff --git a/commons.product/src/main/java/com/pmease/commons/product/pages/RepositoryViewer.java b/commons.product/src/main/java/com/pmease/commons/product/pages/RepositoryViewer.java new file mode 100644 index 0000000000..934257b42b --- /dev/null +++ b/commons.product/src/main/java/com/pmease/commons/product/pages/RepositoryViewer.java @@ -0,0 +1,28 @@ +package com.pmease.commons.product.pages; + +import com.pmease.commons.product.model.Repository; +import com.pmease.commons.product.model.User; + +public class RepositoryViewer { + + private User user; + + private Repository repository; + + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; + } + + public Repository getRepository() { + return repository; + } + + public void setRepository(Repository repository) { + this.repository = repository; + } + +} diff --git a/commons.product/src/main/java/com/pmease/commons/product/pages/AnotherPage.tml b/commons.product/src/main/java/com/pmease/commons/product/pages/RepositoryViewer.tml similarity index 57% rename from commons.product/src/main/java/com/pmease/commons/product/pages/AnotherPage.tml rename to commons.product/src/main/java/com/pmease/commons/product/pages/RepositoryViewer.tml index bc2642924a..c8ff5ffe03 100644 --- a/commons.product/src/main/java/com/pmease/commons/product/pages/AnotherPage.tml +++ b/commons.product/src/main/java/com/pmease/commons/product/pages/RepositoryViewer.tml @@ -1,3 +1,3 @@ - ${var:value} + ${user.name} - ${repository.name} diff --git a/commons.product/src/main/java/com/pmease/commons/product/pages/UserViewer.java b/commons.product/src/main/java/com/pmease/commons/product/pages/UserViewer.java new file mode 100644 index 0000000000..c3f1ce6571 --- /dev/null +++ b/commons.product/src/main/java/com/pmease/commons/product/pages/UserViewer.java @@ -0,0 +1,42 @@ +package com.pmease.commons.product.pages; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.tapestry5.annotations.Property; + +import com.pmease.commons.product.model.Repository; +import com.pmease.commons.product.model.User; + +public class UserViewer { + + private User user; + + @SuppressWarnings("unused") + @Property + private Repository repository; + + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; + } + + public List getRepositories() { + List repositories = new ArrayList(); + Repository repository = new Repository(); + repository.setName("QuickBuild"); + repository.setDescription("QuickBuild Trunk"); + repositories.add(repository); + + repository = new Repository(); + repository.setName("Gitop"); + repository.setDescription("Gitop Trunk"); + repositories.add(repository); + + return repositories; + } + +} diff --git a/commons.product/src/main/java/com/pmease/commons/product/pages/UserViewer.tml b/commons.product/src/main/java/com/pmease/commons/product/pages/UserViewer.tml new file mode 100644 index 0000000000..2a0b3b449f --- /dev/null +++ b/commons.product/src/main/java/com/pmease/commons/product/pages/UserViewer.tml @@ -0,0 +1,8 @@ + +
${user.name}
+ + + ${repository.name} + + +
\ No newline at end of file diff --git a/commons.product/src/main/java/com/pmease/commons/product/pages/ok.gif b/commons.product/src/main/java/com/pmease/commons/product/pages/ok.gif deleted file mode 100644 index 5b621ed831..0000000000 Binary files a/commons.product/src/main/java/com/pmease/commons/product/pages/ok.gif and /dev/null differ