Skip to content
Browse files

added Apache 2 LICENSE.txt

  • Loading branch information...
1 parent e263bb2 commit 10a1e3bf957d2c49425fc1306db4800b36370453 @kinabalu committed
Showing with 492 additions and 79 deletions.
  1. +202 −0 LICENSE.txt
  2. +51 −71 web/pom.xml
  3. +31 −0 web/src/main/java/com/mysticcoders/mysticpaste/MysticPasteGAEApplication.java
  4. +2 −0 web/src/main/java/com/mysticcoders/mysticpaste/model/Client.java
  5. +2 −1 web/src/main/java/com/mysticcoders/mysticpaste/model/PasteComment.java
  6. +2 −1 web/src/main/java/com/mysticcoders/mysticpaste/model/PasteItem.java
  7. +53 −0 web/src/main/java/com/mysticcoders/mysticpaste/model/gae/SimpleObject.java
  8. +7 −0 web/src/main/java/com/mysticcoders/mysticpaste/persistence/PasteItemDao.java
  9. +6 −3 web/src/main/java/com/mysticcoders/mysticpaste/persistence/gae/PasteItemDaoImpl.java
  10. +5 −0 web/src/main/java/com/mysticcoders/mysticpaste/persistence/hazelcast/PasteItemDaoImpl.java
  11. +6 −0 web/src/main/java/com/mysticcoders/mysticpaste/persistence/hibernate/PasteItemDaoImpl.java
  12. +5 −0 web/src/main/java/com/mysticcoders/mysticpaste/services/PasteService.java
  13. +9 −0 web/src/main/java/com/mysticcoders/mysticpaste/services/PasteServiceImpl.java
  14. +11 −0 web/src/main/java/com/mysticcoders/mysticpaste/web/pages/SimpleObjectPage.html
  15. +39 −0 web/src/main/java/com/mysticcoders/mysticpaste/web/pages/SimpleObjectPage.java
  16. +8 −0 web/src/main/java/com/mysticcoders/mysticpaste/web/pages/SimpleObjectRetrievePage.html
  17. +40 −0 web/src/main/java/com/mysticcoders/mysticpaste/web/pages/SimpleObjectRetrievePage.java
  18. +4 −3 web/src/main/resources/com/mysticcoders/mysticpaste/spring/applicationContext-gae.xml
  19. +7 −0 web/src/main/webapp/WEB-INF/appengine-web.xml
  20. +2 −0 web/src/main/webapp/WEB-INF/web.xml
View
202 LICENSE.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright 2009 Mystic Coders, LLC
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "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.
View
122 web/pom.xml
@@ -176,56 +176,56 @@
<artifactId>hazelcast</artifactId>
</dependency>
- <!-- SimpleDS for GAE -->
- <dependency>
- <groupId>org.extrema-sistemas</groupId>
- <artifactId>simpleds</artifactId>
- </dependency>
-
- <dependency>
- <groupId>com.google.appengine</groupId>
- <artifactId>appengine-api-1.0-sdk</artifactId>
- </dependency>
-
- <dependency>
- <groupId>asm</groupId>
- <artifactId>asm</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-jta_1.1_spec</artifactId>
- </dependency>
-
- <dependency>
- <groupId>javax.jdo</groupId>
- <artifactId>jdo2-api</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-jpa_3.0_spec</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.datanucleus</groupId>
- <artifactId>datanucleus-jpa</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.datanucleus</groupId>
- <artifactId>datanucleus-enhancer</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.datanucleus</groupId>
- <artifactId>datanucleus-core</artifactId>
- </dependency>
-
- <dependency>
- <groupId>com.google.appengine.orm</groupId>
- <artifactId>datanucleus-appengine</artifactId>
- </dependency>
+ <!-- SimpleDS for GAE -->
+ <dependency>
+ <groupId>org.extrema-sistemas</groupId>
+ <artifactId>simpleds</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>com.google.appengine</groupId>
+ <artifactId>appengine-api-1.0-sdk</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>asm</groupId>
+ <artifactId>asm</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-jta_1.1_spec</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.jdo</groupId>
+ <artifactId>jdo2-api</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-jpa_3.0_spec</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.datanucleus</groupId>
+ <artifactId>datanucleus-jpa</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.datanucleus</groupId>
+ <artifactId>datanucleus-enhancer</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.datanucleus</groupId>
+ <artifactId>datanucleus-core</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>com.google.appengine.orm</groupId>
+ <artifactId>datanucleus-appengine</artifactId>
+ </dependency>
<!-- TWITTER4J DEPENDENCIES -->
<dependency>
@@ -364,7 +364,7 @@
</plugin>
<plugin>
<groupId>org.mortbay.jetty</groupId>
- <artifactId>maven-jetty-plugin</artifactId>
+ <artifactId>jetty-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -408,26 +408,6 @@
</plugins>
</build>
- <properties>
- <wicket.version>1.4.5</wicket.version>
- <jetty.version>6.1.4</jetty.version>
- <spring.version>2.5.5</spring.version>
- <hibernate.version>3.4.0.GA</hibernate.version>
- <c3p0.version>0.9.1.2</c3p0.version>
- <junit.version>4.5</junit.version>
- <postgres.version>8.3-603.jdbc4</postgres.version>
- <commons-lang.version>2.4</commons-lang.version>
- <javamail.version>1.4.1</javamail.version>
- <commons-fileupload.version>1.2.1</commons-fileupload.version>
- <jta.version>1.0.1B</jta.version>
- <dbcp.version>1.2.2</dbcp.version>
- <slf4j.version>1.4.2</slf4j.version>
- <log4j.version>1.2.14</log4j.version>
- <easymock.version>2.4</easymock.version>
- <resteasy.version>1.0.2.GA</resteasy.version>
- <hazelcast.version>1.7.1</hazelcast.version>
- </properties>
-
<profiles>
<profile>
<id>LOCAL</id>
View
31 web/src/main/java/com/mysticcoders/mysticpaste/MysticPasteGAEApplication.java
@@ -0,0 +1,31 @@
+package com.mysticcoders.mysticpaste;
+
+import com.mysticcoders.mysticpaste.MysticPasteApplication;
+import com.mysticcoders.mysticpaste.web.pages.SimpleObjectPage;
+import com.mysticcoders.mysticpaste.web.pages.SimpleObjectRetrievePage;
+import org.apache.wicket.protocol.http.HttpSessionStore;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: kinabalu
+ * Date: May 13, 2010
+ * Time: 2:11:10 PM
+ */
+public class MysticPasteGAEApplication extends MysticPasteApplication {
+
+ protected void init() {
+ super.init();
+ mountBookmarkablePage("/simple", SimpleObjectPage.class);
+ mountBookmarkablePage("/simple.get", SimpleObjectRetrievePage.class);
+ }
+
+ /**
+ * Google App Engine doesn't like DiskPageStore at all
+ *
+ * @return
+ */
+ @Override
+ public HttpSessionStore newSessionStore() {
+ return new HttpSessionStore(this);
+ }
+}
View
2 web/src/main/java/com/mysticcoders/mysticpaste/model/Client.java
@@ -9,9 +9,11 @@
* @version $Revision$ $Date$
*/
@Entity
+/*
@Table(name = "CLIENTS")
@NamedQueries({@NamedQuery(name = "client.id", query = "from Client c where c.id = :id"),
@NamedQuery(name = "client.findByToken", query = "from Client c where c.token = :token")})
+*/
public class Client implements Serializable {
private static final long serialVersionUID = -7477330789867279559L;
View
3 web/src/main/java/com/mysticcoders/mysticpaste/model/PasteComment.java
@@ -9,6 +9,7 @@
* @version $Revision$ $Date$
*/
@Entity
+/*
@Table(name = "PASTE_COMMENTS")
@NamedQueries({@NamedQuery(name = "comment.getById",
query = "from PasteComment comment where comment.id = :id"),
@@ -17,7 +18,7 @@
@NamedQuery(name = "comment.countByItemId",
query = "select count(comment) from PasteComment comment where comment.item.id = :id")
})
-
+*/
public class PasteComment implements Serializable {
private static final long serialVersionUID = 1L;
View
3 web/src/main/java/com/mysticcoders/mysticpaste/model/PasteItem.java
@@ -26,6 +26,7 @@
* @version $Revision$ $Date$
*/
@Entity
+/*
@Table(name = "PASTE_ITEMS")
@NamedQueries({@NamedQuery(name = "item.getById",
query = "from PasteItem item where item.id = :id"),
@@ -44,7 +45,7 @@
@NamedQuery(name = "item.count",
query = "select count(item) from PasteItem item where item.isPrivate <> true AND item.abuseFlag <> true")
})
-
+*/
public class PasteItem implements Serializable {
private static final long serialVersionUID = -6467870857777145137L;
View
53 web/src/main/java/com/mysticcoders/mysticpaste/model/gae/SimpleObject.java
@@ -0,0 +1,53 @@
+package com.mysticcoders.mysticpaste.model.gae;
+
+import com.google.appengine.api.datastore.Key;
+import org.simpleds.annotations.Entity;
+
+import javax.persistence.Column;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import java.io.Serializable;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: kinabalu
+ * Date: May 13, 2010
+ * Time: 2:05:17 PM
+ * To change this template use File | Settings | File Templates.
+ */
+@Entity
+public class SimpleObject implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ @Id
+ @Column
+ @GeneratedValue
+ private Key id;
+
+ @Column
+ private String content;
+
+ public Key getId() {
+ return id;
+ }
+
+ public void setId(Key id) {
+ this.id = id;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ @Override
+ public String toString() {
+ return "SimpleObject{" +
+ "id=" + id +
+ ", content='" + content + '\'' +
+ '}';
+ }
+}
View
7 web/src/main/java/com/mysticcoders/mysticpaste/persistence/PasteItemDao.java
@@ -1,6 +1,8 @@
package com.mysticcoders.mysticpaste.persistence;
+import com.google.appengine.api.datastore.Key;
import com.mysticcoders.mysticpaste.model.PasteItem;
+import com.mysticcoders.mysticpaste.model.gae.SimpleObject;
import java.util.List;
@@ -10,6 +12,11 @@
*/
public interface PasteItemDao {
+ public Long createSimpleObject(String content);
+
+ public SimpleObject retrieveSimpleObject(Long id);
+
+
Long create(PasteItem item);
void update(PasteItem item);
View
9 web/src/main/java/com/mysticcoders/mysticpaste/persistence/gae/PasteItemDaoImpl.java
@@ -2,6 +2,7 @@
import com.google.appengine.api.datastore.Key;
import com.mysticcoders.mysticpaste.model.PasteItem;
+import com.mysticcoders.mysticpaste.model.gae.SimpleObject;
import com.mysticcoders.mysticpaste.persistence.PasteItemDao;
import org.simpleds.EntityManager;
import org.simpleds.SimpleQuery;
@@ -20,11 +21,14 @@
String namespace = "default";
- @Autowired
+// @Autowired
private EntityManager entityManager;
-/*
+ public void setEntityManager(EntityManager entityManager) {
+ this.entityManager = entityManager;
+ }
+
public Long createSimpleObject(String content) {
SimpleObject so = new SimpleObject();
so.setContent(content);
@@ -52,7 +56,6 @@ public SimpleObject retrieveSimpleObject(Long id) {
return null;
}
-*/
public Long create(PasteItem item) {
View
5 web/src/main/java/com/mysticcoders/mysticpaste/persistence/hazelcast/PasteItemDaoImpl.java
@@ -10,6 +10,7 @@
import com.mysticcoders.mysticpaste.MysticPasteApplication;
import com.mysticcoders.mysticpaste.MysticPasteHazelcastApplication;
import com.mysticcoders.mysticpaste.model.PasteItem;
+import com.mysticcoders.mysticpaste.model.gae.SimpleObject;
import com.mysticcoders.mysticpaste.persistence.PasteItemDao;
import org.apache.wicket.Application;
@@ -22,6 +23,10 @@
String namespace = "default";
+ public Long createSimpleObject(String content) { return null; }
+
+ public SimpleObject retrieveSimpleObject(Long id) { return null; }
+
public Long create(PasteItem item) {
IMap map = Hazelcast.getMap(namespace);
View
6 web/src/main/java/com/mysticcoders/mysticpaste/persistence/hibernate/PasteItemDaoImpl.java
@@ -1,6 +1,7 @@
package com.mysticcoders.mysticpaste.persistence.hibernate;
import com.mysticcoders.mysticpaste.model.PasteItem;
+import com.mysticcoders.mysticpaste.model.gae.SimpleObject;
import com.mysticcoders.mysticpaste.persistence.PasteItemDao;
import java.util.List;
@@ -16,6 +17,11 @@ protected PasteItemDaoImpl() {
super(PasteItem.class);
}
+ public Long createSimpleObject(String content) { return null; }
+
+ public SimpleObject retrieveSimpleObject(Long id) { return null; }
+
+
public Long create(PasteItem item) {
save(item);
return item.getId();
View
5 web/src/main/java/com/mysticcoders/mysticpaste/services/PasteService.java
@@ -2,6 +2,7 @@
import com.mysticcoders.mysticpaste.model.PasteItem;
import com.mysticcoders.mysticpaste.model.PasteStats;
+import com.mysticcoders.mysticpaste.model.gae.SimpleObject;
import java.util.List;
@@ -11,6 +12,10 @@
*/
public interface PasteService {
+ public Long createSimpleObject(String content);
+
+ public SimpleObject retrieveSimpleObject(Long id);
+
List<PasteItem> getLatestItems(String clientToken, int count, int startIndex, boolean threaded) throws InvalidClientException;
PasteItem getItem(String clientToken, long id) throws InvalidClientException;
View
9 web/src/main/java/com/mysticcoders/mysticpaste/services/PasteServiceImpl.java
@@ -2,6 +2,7 @@
import com.mysticcoders.mysticpaste.model.PasteItem;
import com.mysticcoders.mysticpaste.model.PasteStats;
+import com.mysticcoders.mysticpaste.model.gae.SimpleObject;
import com.mysticcoders.mysticpaste.persistence.PasteItemDao;
import com.mysticcoders.mysticpaste.utils.TokenGenerator;
import org.slf4j.Logger;
@@ -43,6 +44,14 @@ public PasteServiceImpl(PasteItemDao itemDao, int tokenLength) {
this.tokenLength = tokenLength;
}
+ public Long createSimpleObject(String content) {
+ return itemDao.createSimpleObject(content);
+ }
+
+ public SimpleObject retrieveSimpleObject(Long id) {
+ return itemDao.retrieveSimpleObject(id);
+ }
+
@Transactional(readOnly = true)
public List<PasteItem> getLatestItems(String clientToken, int count, int startIndex, boolean threaded)
throws InvalidClientException {
View
11 web/src/main/java/com/mysticcoders/mysticpaste/web/pages/SimpleObjectPage.html
@@ -0,0 +1,11 @@
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:extend>
+ <form wicket:id="form">
+ <div wicket:id="feedback">[feedback]</div>
+
+ <textarea wicket:id="content"></textarea>
+
+ <input type="submit" />
+ </form>
+</wicket:extend>
+</html>
View
39 web/src/main/java/com/mysticcoders/mysticpaste/web/pages/SimpleObjectPage.java
@@ -0,0 +1,39 @@
+package com.mysticcoders.mysticpaste.web.pages;
+
+import com.mysticcoders.mysticpaste.model.gae.SimpleObject;
+import com.mysticcoders.mysticpaste.services.PasteService;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.TextArea;
+import org.apache.wicket.markup.html.panel.FeedbackPanel;
+import org.apache.wicket.model.CompoundPropertyModel;
+import org.apache.wicket.spring.injection.annot.SpringBean;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: kinabalu
+ * Date: May 13, 2010
+ * Time: 2:12:32 PM
+ */
+public class SimpleObjectPage extends BasePage {
+
+ @SpringBean
+ private PasteService pasteService;
+
+ public SimpleObjectPage() {
+ Form form = new Form<SimpleObject>("form", new CompoundPropertyModel<SimpleObject>(new SimpleObject())) {
+ public void onSubmit() {
+ SimpleObject simpleObject = getModelObject();
+ Long id = pasteService.createSimpleObject(simpleObject.getContent());
+
+ info("ID saved is:" + id);
+ System.out.println("id:" + id);
+
+ pasteService.retrieveSimpleObject(id);
+ }
+ };
+
+ add(form);
+ form.add(new TextArea("content"));
+ form.add(new FeedbackPanel("feedback"));
+ }
+}
View
8 web/src/main/java/com/mysticcoders/mysticpaste/web/pages/SimpleObjectRetrievePage.html
@@ -0,0 +1,8 @@
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:extend>
+ <br /><br />
+
+ <h1 wicket:id="content"></h1>
+
+</wicket:extend>
+</html>
View
40 web/src/main/java/com/mysticcoders/mysticpaste/web/pages/SimpleObjectRetrievePage.java
@@ -0,0 +1,40 @@
+package com.mysticcoders.mysticpaste.web.pages;
+
+import com.mysticcoders.mysticpaste.model.gae.SimpleObject;
+import com.mysticcoders.mysticpaste.services.PasteService;
+import org.apache.wicket.PageParameters;
+import org.apache.wicket.RestartResponseException;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.model.AbstractReadOnlyModel;
+import org.apache.wicket.spring.injection.annot.SpringBean;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: kinabalu
+ * Date: May 13, 2010
+ * Time: 2:12:39 PM
+ * To change this template use File | Settings | File Templates.
+ */
+public class SimpleObjectRetrievePage extends BasePage {
+ @SpringBean
+ private PasteService pasteService;
+
+ public SimpleObjectRetrievePage(PageParameters params) {
+
+ if(params.getAsLong("id") == null) {
+ throw new RestartResponseException(SimpleObjectPage.class);
+ }
+
+ final Long id = params.getAsLong("id");
+
+ AbstractReadOnlyModel<String> myModel = new AbstractReadOnlyModel<String>() {
+ public String getObject() {
+ SimpleObject simpleObject =
+ pasteService.retrieveSimpleObject(id);
+ return simpleObject.getContent();
+ }
+ };
+
+ add(new Label("content", myModel));
+ }
+}
View
7 web/src/main/resources/com/mysticcoders/mysticpaste/spring/applicationContext-gae.xml
@@ -54,11 +54,12 @@
</bean>
<!-- DAOs -->
- <bean id="pasteItemDao" class="com.mysticcoders.mysticpaste.persistence.gae.PasteItemDaoImpl" />
-
- <bean id="pasteCommentDao" class="com.mysticcoders.mysticpaste.persistence.gae.PasteCommentDaoImpl">
+ <bean id="pasteItemDao" class="com.mysticcoders.mysticpaste.persistence.gae.PasteItemDaoImpl">
+ <property name="entityManager" ref="entityManager" />
</bean>
+ <bean id="pasteCommentDao" class="com.mysticcoders.mysticpaste.persistence.gae.PasteCommentDaoImpl" />
+
<!-- Tell Spring it should use @Transactional annotations -->
<!--
<tx:annotation-driven/>
View
7 web/src/main/webapp/WEB-INF/appengine-web.xml
@@ -0,0 +1,7 @@
+<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
+
+ <application>mysticpaste</application>
+ <version>1</version>
+ <sessions-enabled>true</sessions-enabled>
+
+</appengine-web-app>
View
2 web/src/main/webapp/WEB-INF/web.xml
@@ -34,6 +34,7 @@
</init-param>
</filter>
+<!--
<filter>
<filter-name>open.hibernate.session.in.view</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
@@ -42,6 +43,7 @@
<filter-name>open.hibernate.session.in.view</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
+-->
<filter-mapping>
<filter-name>wicket.mysticpaste</filter-name>

0 comments on commit 10a1e3b

Please sign in to comment.
Something went wrong with that request. Please try again.