• R/O
  • SSH
  • HTTPS

wicket-ja: Commit


Commit MetaInfo

Revision39 (tree)
Time2008-04-05 05:53:06
Authorbenbrand

Log Message

ニュースとリンク集の情報をデータベースから取得するようにしました。データソースを使用しているためDBが何かには依存しないようになっています。データ取得にはJPAを使っています(実装はHibernateを使用していますが、hibernate依存の機能は使っていません)。データベース定義(DDL)と、tomcatにつなげる場合にMETA-INFしたに入れるcontext.xmlも入っています。context.xmlの内容はサンプルで、実稼働サーバでは独自の定義を使用しています。

Change Summary

Incremental Difference

--- trunk/wicket-ja/nbactions.xml (nonexistent)
+++ trunk/wicket-ja/nbactions.xml (revision 39)
@@ -0,0 +1,30 @@
1+<?xml version="1.0" encoding="UTF-8"?>
2+<actions>
3+ <action>
4+ <actionName>run</actionName>
5+ <packagings>
6+ <packaging>war</packaging>
7+ <packaging>ear</packaging>
8+ <packaging>ejb</packaging>
9+ </packagings>
10+ <goals>
11+ <goal>package</goal>
12+ <goal>org.codehaus.mevenide:netbeans-deploy-plugin:RELEASE:deploy</goal>
13+ </goals>
14+ <properties>
15+ <maven.test.skip>true</maven.test.skip>
16+ </properties>
17+ </action>
18+ <action>
19+ <actionName>build</actionName>
20+ <packagings>
21+ <packaging>*</packaging>
22+ </packagings>
23+ <goals>
24+ <goal>install</goal>
25+ </goals>
26+ <properties>
27+ <maven.test.skip>true</maven.test.skip>
28+ </properties>
29+ </action>
30+ </actions>
--- trunk/wicket-ja/datalist.txt (nonexistent)
+++ trunk/wicket-ja/datalist.txt (revision 39)
@@ -0,0 +1,76 @@
1+INSERT INTO WICKETJA.NEWS_ENTRY (
2+ id,
3+ title,
4+ registerDate,
5+ content
6+) VALUES (
7+ 1,
8+ '日本Wicketユーザグループ発足',
9+ '2008-02-17 00:00:00',
10+ '日本Wicketユーザグループが発足しました。'
11+);
12+INSERT INTO WICKETJA.NEWS_ENTRY (
13+ id,
14+ title,
15+ registerDate,
16+ content
17+) VALUES (
18+ 2,
19+ 'Apache Wicket 1.3 がリリースされました。',
20+ '2008-01-06 00:00:00',
21+ 'Wicket TeamはアパッチWicket1.3をリリースしました。<a href="http://www.apache.org/dyn/closer.cgi/wicket/1.3.0">Apache Wicket 1.3をダウンロード</a><br />Apache Wicketは、Javaにおけるコンポーネントベースのオープンソースフレームワークであり、現在最も注目されているフレームワークの1つです。Apache Wicketは、妥当な(vaild)HTMLを雛形とする事に注目し、デザインとロジックを効果的に分離します。Apache Wicketを使えば、簡単なPOJO+HTMLによるデータモデルによって、複雑なコンポーネントでありながらも" + "高い保守性を保ったアプリケーションをすぐに作る事ができます。'
22+);
23+INSERT INTO WICKETJA.NEWS_ENTRY (
24+ id,
25+ title,
26+ registerDate,
27+ content
28+) VALUES (
29+ 3,
30+ 'Apache Wicket 1.3.1 がリリースされました。',
31+ '2008-02-05 00:00:00',
32+ 'WicketチームはApache Wicket 1.3の最初のメンテナンスリリースである<a href="http://www.apache.org/dyn/closer.cgi/wicket/1.3.1">Apache Wicket 1.3.1</a>をリリースしました。<br />多くのバグが修正されただけでなく、新たな機能も追加されています。最も重要な機能拡張は透過的で即使い始められるクラスタリング機能をサポートしたことです'
33+);
34+INSERT INTO WICKETJA.NEWS_ENTRY (
35+ id,
36+ title,
37+ registerDate,
38+ content
39+) VALUES (
40+ 4,
41+ 'Wicket-jaメーリングリストを「wicket-ja-user」に統合しました',
42+ '2008-02-27 00:00:00',
43+ 'Wicket-jaのメーリングリストは「user」「manage」「translation」の三つが最初にありましたが、現段階で三つに分けるのはあまり意味が無いし、ユーザーが三カ所に分散してしまうので、wicket-ja-userひとつに統合しました。メーリングリストには告知してありましたが、もしmanageもしくはtranslationにのみ登録している方がいらっしゃれば、是非wicket-ja-userにも登録してくださいますようお願いします。'
44+);
45+
46+INSERT INTO WICKETJA.LINK_ITEM (
47+ id,
48+ name,
49+ url,
50+ excerpt,
51+ category,
52+ registerDate
53+) VALUES (
54+ 1,
55+ 'Apache Wicket',
56+ 'http://wicket.apache.org/',
57+ 'Wicketを開発している団体です。',
58+ 'COMMUNITY',
59+ '2008-02-11 00:00:00'
60+);
61+
62+INSERT INTO WICKETJA.LINK_ITEM (
63+ id,
64+ name,
65+ url,
66+ excerpt,
67+ category,
68+ registerDate
69+) VALUES (
70+ 2,
71+ 'Wicket Stuff wiki',
72+ 'http://wicketstuff.org/confluence/display/STUFFWIKI/Wiki',
73+ 'Wicketの様々なComponentが公開されています。',
74+ 'COMMUNITY',
75+ '2008-02-18 00:00:00'
76+);
--- trunk/wicket-ja/context_sample.xml (revision 38)
+++ trunk/wicket-ja/context_sample.xml (revision 39)
@@ -1,13 +1,5 @@
11 <?xml version="1.0" encoding="UTF-8"?>
22 <Context path="/wicket-ja">
3- <Resource auth="Container"
4- driverClassName="org.h2.Driver"
5- maxActive="5"
6- maxIdle="1"
7- maxWait="10000"
8- name="jdbc/wicket-ja-db"
9- password="yourdbpassword"
10- type="javax.sql.DataSource"
11- url="jdbc:h2:tcp://localhost:9092/wicket-ja-db"
12- username="wicket-ja-admin"/>
3+ <Resource auth="Container" driverClassName="org.h2.Driver" maxActive="5" maxIdle="1" maxWait="10000" name="jdbc/wicket-ja-db" password="darthvader" type="javax.sql.DataSource" url="jdbc:h2:tcp://localhost:9092/wicket-ja-db" username="wicketJaAdmin"/>
134 </Context>
5+
--- trunk/wicket-ja/conf/persistence.xml (nonexistent)
+++ trunk/wicket-ja/conf/persistence.xml (revision 39)
@@ -0,0 +1,21 @@
1+<?xml version="1.0" encoding="UTF-8"?>
2+
3+<!--
4+ Document : persistence.xml
5+ Created on : 2008/03/04, 1:28
6+ Author : ben
7+ Description:
8+ Purpose of the document follows.
9+-->
10+<persistence>
11+ <persistence-unit name="WicketJaPersistenceUnit" transaction-type="RESOURCE_LOCAL">
12+ <class>org.wicketja.model.NewsEntry</class>
13+ <class>org.wicketja.model.LinkItem</class>
14+ <properties>
15+ <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
16+ <property name="hibernate.connection.driver_class" value="org.h2.Driver"/>
17+ <property name="hibernate.connection.datasource" value="java:comp/env/jdbc/wicket-ja-db"/>
18+ <property name="hibernate.max_fetch_depth" value="3"/>
19+ </properties>
20+ </persistence-unit>
21+</persistence>
--- trunk/wicket-ja/conf/jetty.xml (nonexistent)
+++ trunk/wicket-ja/conf/jetty.xml (revision 39)
@@ -0,0 +1,35 @@
1+<?xml version="1.0" encoding="UTF-8"?>
2+
3+<!--
4+ Document : config.xml
5+ Created on : 2008/03/26, 3:15
6+ Author : ben
7+ Description:
8+ Purpose of the document follows.
9+-->
10+
11+<!-- データソースの設定 -->
12+<New id="DSTest" class="org.mortbay.jetty.plus.naming.Resource">
13+ <Arg>jdbc/wicket-ja-db</Arg>
14+ <Arg>
15+ <New class="org.apache.commons.dbcp.BasicDataSource">
16+ <Set name="driverClassName">org.h2.Driver</Set>
17+ <Set name="url">jdbc:h2:tcp://localhost:9092/wicket-ja-db</Set>
18+ <Set name="username">wicketJaAdmin</Set>
19+ <Set name="password">darthvader</Set>
20+ </New>
21+ </Arg>
22+</New>
23+
24+<!--
25+<New id="jnditest" class="org.mortbay.jetty.plus.naming.Resource">
26+ <Arg>jdbc/wicket-ja-db</Arg>
27+ <Arg>
28+ <New class="org.h2.jdbc.jdbcDataSource">
29+ <Set name="url">jdbc:h2:tcp://localhost:9092/wicket-ja-db</Set>
30+ <Set name="user">wicketJaAdmin</Set>
31+ <Set name="password">darthvader</Set>
32+ </New>
33+ </Arg>
34+</New>
35+-->
--- trunk/wicket-ja/src/test/java/org/wicketja/pages/TestHomePage.java (nonexistent)
+++ trunk/wicket-ja/src/test/java/org/wicketja/pages/TestHomePage.java (revision 39)
@@ -0,0 +1,29 @@
1+
2+package org.wicketja.pages;
3+
4+import junit.framework.TestCase;
5+
6+import org.apache.wicket.util.tester.WicketTester;
7+import org.wicketja.WicketApplication;
8+import org.wicketja.pages.HomePage;
9+
10+/**
11+ * Simple test using the WicketTester
12+ */
13+public class TestHomePage extends TestCase
14+{
15+ private WicketTester tester;
16+
17+ @Override
18+ public void setUp() {
19+ tester = new WicketTester(new WicketApplication());
20+ }
21+
22+ public void testRenderMyPage() {
23+ //start and render the test page
24+ tester.startPage(HomePage.class);
25+
26+ //assert rendered page class
27+ tester.assertRenderedPage(HomePage.class);
28+ }
29+}
--- trunk/wicket-ja/src/test/java/org/wicketja/pages/NewsPageTest.java (nonexistent)
+++ trunk/wicket-ja/src/test/java/org/wicketja/pages/NewsPageTest.java (revision 39)
@@ -0,0 +1,55 @@
1+/*
2+ * Copyright 2008 Tsutomu YANO.
3+ *
4+ * Licensed under the Apache License, Version 2.0 (the "License");
5+ * you may not use this file except in compliance with the License.
6+ * You may obtain a copy of the License at
7+ *
8+ * http://www.apache.org/licenses/LICENSE-2.0
9+ *
10+ * Unless required by applicable law or agreed to in writing, software
11+ * distributed under the License is distributed on an "AS IS" BASIS,
12+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+ * See the License for the specific language governing permissions and
14+ * limitations under the License.
15+ * under the License.
16+ */
17+package org.wicketja.pages;
18+
19+import org.apache.wicket.util.tester.WicketTester;
20+import org.junit.Before;
21+import org.junit.Test;
22+import org.wicketja.WicketApplication;
23+import static org.junit.Assert.*;
24+
25+/**
26+ *
27+ * @author Tsutomu YANO
28+ */
29+public class NewsPageTest {
30+
31+ private WicketTester tester;
32+
33+ public NewsPageTest() {
34+ }
35+
36+// @BeforeClass
37+// public static void setUpClass() throws Exception {
38+// }
39+//
40+// @AfterClass
41+// public static void tearDownClass() throws Exception {
42+// }
43+//
44+//
45+ @Before
46+ public void setUp() {
47+ tester = new WicketTester(new WicketApplication());
48+ }
49+
50+ @Test
51+ public void testRenderMyPage() {
52+ tester.startPage(LinksPage.class);
53+ tester.assertRenderedPage(LinksPage.class);
54+ }
55+}
--- trunk/wicket-ja/src/test/java/org/wicketja/pages/LinksPageTest.java (nonexistent)
+++ trunk/wicket-ja/src/test/java/org/wicketja/pages/LinksPageTest.java (revision 39)
@@ -0,0 +1,24 @@
1+package org.wicketja.pages;
2+
3+
4+import org.apache.wicket.util.tester.WicketTester;
5+import org.junit.Before;
6+import org.junit.Test;
7+import org.wicketja.WicketApplication;
8+
9+public class LinksPageTest {
10+
11+ private WicketTester tester;
12+
13+ @Before
14+ public void setUp() {
15+ tester = new WicketTester(new WicketApplication());
16+ }
17+
18+ @Test
19+ public void testRenderMyPage() {
20+ tester.startPage(LinksPage.class);
21+ tester.assertRenderedPage(LinksPage.class);
22+ }
23+
24+}
--- trunk/wicket-ja/src/test/java/org/wicketja/site/LinksPageTest.java (revision 38)
+++ trunk/wicket-ja/src/test/java/org/wicketja/site/LinksPageTest.java (nonexistent)
@@ -1,23 +0,0 @@
1-package org.wicketja.site;
2-
3-import junit.framework.TestCase;
4-
5-import org.apache.wicket.util.tester.WicketTester;
6-import org.wicketja.WicketApplication;
7-import org.wicketja.pages.LinksPage;
8-
9-public class LinksPageTest extends TestCase {
10-
11- private WicketTester tester;
12-
13- @Override
14- public void setUp() {
15- tester = new WicketTester(new WicketApplication());
16- }
17-
18- public void testRenderMyPage() {
19- tester.startPage(LinksPage.class);
20- tester.assertRenderedPage(LinksPage.class);
21- }
22-
23-}
--- trunk/wicket-ja/src/test/java/org/wicketja/site/TestHomePage.java (revision 38)
+++ trunk/wicket-ja/src/test/java/org/wicketja/site/TestHomePage.java (nonexistent)
@@ -1,29 +0,0 @@
1-
2-package org.wicketja.site;
3-
4-import junit.framework.TestCase;
5-
6-import org.apache.wicket.util.tester.WicketTester;
7-import org.wicketja.WicketApplication;
8-import org.wicketja.pages.HomePage;
9-
10-/**
11- * Simple test using the WicketTester
12- */
13-public class TestHomePage extends TestCase
14-{
15- private WicketTester tester;
16-
17- @Override
18- public void setUp() {
19- tester = new WicketTester(new WicketApplication());
20- }
21-
22- public void testRenderMyPage() {
23- //start and render the test page
24- tester.startPage(HomePage.class);
25-
26- //assert rendered page class
27- tester.assertRenderedPage(HomePage.class);
28- }
29-}
--- trunk/wicket-ja/src/main/java/org/wicketja/pages/NewsPage.java (revision 38)
+++ trunk/wicket-ja/src/main/java/org/wicketja/pages/NewsPage.java (revision 39)
@@ -7,6 +7,9 @@
77 import org.apache.wicket.markup.html.basic.Label;
88 import org.apache.wicket.markup.html.list.ListItem;
99 import org.apache.wicket.markup.html.list.ListView;
10+import org.apache.wicket.model.IModel;
11+import org.apache.wicket.model.LoadableDetachableModel;
12+import org.wicketja.dao.NewsDao;
1013 import org.wicketja.dao.NewsDaoImpl;
1114 import org.wicketja.model.NewsEntry;
1215
@@ -13,37 +16,48 @@
1316 /**
1417 * 最近のニュースを掲載するページクラスです。
1518 * @author Yoichiro Tanaka
19+ * @author Tsutomu YANO
1620 */
1721 @SuppressWarnings("serial")
1822 public class NewsPage extends AbstractWebPage {
1923
24+ //DIコンテナを入れた場合はインジェクションする
25+ protected NewsDao newsDao = null;
26+
27+ IModel newsModel = new LoadableDetachableModel() {
28+ @Override
29+ protected Object load() {
30+ newsDao = new NewsDaoImpl(getEntityManager());
31+ return newsDao.findAll();
32+ }
33+ };
2034
21- /**
22- * このオブジェクトが生成される時に呼び出されます。
23- * @param params ページパラメータ
24- */
35+ /**
36+ * このオブジェクトが生成される時に呼び出されます。
37+ * @param params ページパラメータ
38+ */
2539 public NewsPage(PageParameters params) {
26- super();
27- add(new ListView("newsEntry", new NewsDaoImpl().findAll()){
28- @Override
29- protected void populateItem(ListItem item){
30- NewsEntry newsEntry = (NewsEntry) item.getModelObject();
31-
32- item.add(new Label("newsTitle", newsEntry.getTitle()));
33- item.add(new Label("newsDate", DateFormat.getDateInstance(
34- DateFormat.FULL, Locale.JAPAN).format(newsEntry.getCalendar().getTime())));
35- item.add(new Label("newsContent", newsEntry.getContent()).setEscapeModelStrings(false));
36- }
37- });
40+ super();
41+ add(new ListView("newsEntry", newsModel) {
42+
43+ @Override
44+ protected void populateItem(ListItem item) {
45+ NewsEntry newsEntry = (NewsEntry) item.getModelObject();
46+
47+ item.add(new Label("newsTitle", newsEntry.getTitle()));
48+ item.add(new Label("newsDate", DateFormat.getDateInstance(
49+ DateFormat.FULL, Locale.JAPAN).format(newsEntry.getRegisterDate().getTime())));
50+ item.add(new Label("newsContent", newsEntry.getContent()).setEscapeModelStrings(false));
51+ }
52+ });
3853 }
3954
40- /**
41- * このページのタイトルを返します。
42- * @return ページのタイトルとする文字列
43- */
44- @Override
45- protected String getTitle() {
46- return "最近のニュース";
47- }
48-
55+ /**
56+ * このページのタイトルを返します。
57+ * @return ページのタイトルとする文字列
58+ */
59+ @Override
60+ protected String getTitle() {
61+ return "最近のニュース";
62+ }
4963 }
--- trunk/wicket-ja/src/main/java/org/wicketja/pages/LinksPage.java (revision 38)
+++ trunk/wicket-ja/src/main/java/org/wicketja/pages/LinksPage.java (revision 39)
@@ -8,6 +8,8 @@
88 import org.apache.wicket.markup.html.link.ExternalLink;
99 import org.apache.wicket.markup.html.list.ListItem;
1010 import org.apache.wicket.markup.html.list.ListView;
11+import org.apache.wicket.model.IModel;
12+import org.apache.wicket.model.LoadableDetachableModel;
1113 import org.wicketja.dao.LinkDao;
1214 import org.wicketja.dao.LinkDaoImpl;
1315 import org.wicketja.model.LinkItem;
@@ -16,60 +18,66 @@
1618 * リンク集を掲載するページクラスです。
1719 *
1820 * @author Yoichiro Tanaka
21+ * @author Tsutomu YANO
1922 */
2023 @SuppressWarnings("serial")
2124 public class LinksPage extends AbstractWebPage {
2225
26+ IModel linkModel = new LoadableDetachableModel() {
27+ @Override
28+ protected Object load() {
29+ linkDao = new LinkDaoImpl(getEntityManager());
30+ return linkDao.findAll();
31+ }
32+ };
33+
34+ // DI導入したら修正
35+ //@SpringBean
36+ //private LinkDao linkDao;
37+ protected LinkDao linkDao = null;
2338
24- // DI導入したら修正
25- //@SpringBean
26- //private LinkDao linkDao;
27- private LinkDao linkDao = new LinkDaoImpl();
28-
29- /**
30- * このオブジェクトが生成される時に呼び出されます。
31- *
32- * @param params
33- * ページパラメータ
34- */
35- public LinksPage(PageParameters params) {
36- super();
37- add(new ListView("linkList", linkDao.findAll()) {
38- /**
39- *
40- */
41- private static final long serialVersionUID = -549300948518205781L;
39+ /**
40+ * このオブジェクトが生成される時に呼び出されます。
41+ *
42+ * @param params
43+ * ページパラメータ
44+ */
45+ public LinksPage(PageParameters params) {
46+ super();
47+ add(new ListView("linkList", linkModel) {
4248
43- @Override
44- protected void populateItem(ListItem item) {
45- LinkItem linkItem = (LinkItem) item.getModelObject();
46- item.add(new ExternalLink("title",linkItem.getUrl(),linkItem.getName()));
47- item.add(new Label("excerpt", linkItem.getExcerpt()));
48- item.add(new Label("registered", DateFormat.getDateInstance(
49- DateFormat.FULL, Locale.JAPAN).format(
50- linkItem.getRegistered().getTime())));
51- item.add(new Label("category", linkItem.getCategory()
52- .getTitle()));
53- ExternalLink externalLink = new ExternalLink("rss", linkItem
54- .getFeedUrl(), "RSS");
55- if (linkItem.getFeedUrl().equals("")) {
56- externalLink.setVisible(false);
57- } else {
58- externalLink.setVisible(true);
59- }
60- item.add(externalLink);
61- }
62- });
63- }
49+ /**
50+ *
51+ */
52+ private static final long serialVersionUID = -549300948518205781L;
6453
65- /**
66- * このページのタイトルを返します。
67- *
68- * @return ページのタイトルとする文字列
69- */
70- @Override
71- protected String getTitle() {
72- return "リンク集";
73- }
54+ @Override
55+ protected void populateItem(ListItem item) {
56+ LinkItem linkItem = (LinkItem) item.getModelObject();
57+ item.add(new ExternalLink("title", linkItem.getUrl(), linkItem.getName()));
58+ item.add(new Label("excerpt", linkItem.getExcerpt()));
59+ item.add(new Label("registered", DateFormat.getDateInstance(
60+ DateFormat.FULL, Locale.JAPAN).format(
61+ linkItem.getRegisterDate().getTime())));
62+ item.add(new Label("category", linkItem.getCategory().getTitle()));
63+ ExternalLink externalLink = new ExternalLink("rss", linkItem.getFeedUrl(), "RSS");
64+ if (linkItem.getFeedUrl() == null || linkItem.getFeedUrl().equals("")) {
65+ externalLink.setVisible(false);
66+ } else {
67+ externalLink.setVisible(true);
68+ }
69+ item.add(externalLink);
70+ }
71+ });
72+ }
7473
74+// /**
75+// * このページのタイトルを返します。
76+// *
77+// * @return ページのタイトルとする文字列
78+// */
79+// @Override
80+// protected String getTitle() {
81+// return getString("pageName");
82+// }
7583 }
--- trunk/wicket-ja/src/main/java/org/wicketja/pages/AbstractWebPage.java (revision 38)
+++ trunk/wicket-ja/src/main/java/org/wicketja/pages/AbstractWebPage.java (revision 39)
@@ -1,7 +1,9 @@
11 package org.wicketja.pages;
22
3+import javax.persistence.EntityManager;
34 import org.apache.wicket.markup.html.WebPage;
45 import org.apache.wicket.model.IModel;
6+import org.wicketja.WicketApplication;
57
68 /**
79 * 全てのページに共通的な処理を提供する抽象クラスです。
@@ -10,28 +12,46 @@
1012 @SuppressWarnings("serial")
1113 public abstract class AbstractWebPage extends WebPage {
1214
15+ EntityManager entityManager = null;
16+
17+ /**
18+ * このオブジェクトが生成されるときに呼び出されます。
19+ */
20+ public AbstractWebPage() {
21+ this(null);
22+ }
1323
24+ /**
25+ * このオブジェクトが生成されるときに呼び出されます。
26+ * @param model モデルオブジェクト
27+ */
28+ public AbstractWebPage(IModel model) {
29+ super(model);
30+ add(new NavigationHeaderPanel("mainNavigation", getTitle()));
31+ }
1432
15- /**
16- * このオブジェクトが生成されるときに呼び出されます。
17- */
18- public AbstractWebPage() {
19- this(null);
20- }
33+ /**
34+ * このページのタイトルを返します。
35+ * @return ページのタイトルとする文字列
36+ */
37+ protected String getTitle() {
38+ return getString("pageName");
39+ }
2140
22- /**
23- * このオブジェクトが生成されるときに呼び出されます。
24- * @param model モデルオブジェクト
25- */
26- public AbstractWebPage(IModel model) {
27- super(model);
28- add(new NavigationHeaderPanel("mainNavigation", getTitle()));
29- }
30-
31- /**
32- * このページのタイトルを返します。
33- * @return ページのタイトルとする文字列
34- */
35- protected abstract String getTitle();
41+ protected EntityManager getEntityManager() {
42+ if(entityManager == null) {
43+ WicketApplication app = (WicketApplication)getApplication();
44+ entityManager = app.getEntityManagerFactory().createEntityManager();
45+ }
46+ return entityManager;
47+ }
3648
49+ @Override
50+ protected void onDetach() {
51+ if(entityManager != null) {
52+ entityManager.close();
53+ }
54+
55+ super.onDetach();
56+ }
3757 }
--- trunk/wicket-ja/src/main/java/org/wicketja/model/LinkItem.java (revision 38)
+++ trunk/wicket-ja/src/main/java/org/wicketja/model/LinkItem.java (revision 39)
@@ -3,127 +3,140 @@
33 import java.io.Serializable;
44 import java.util.Calendar;
55
6+import javax.persistence.Column;
67 import javax.persistence.Entity;
78 import javax.persistence.EnumType;
89 import javax.persistence.Enumerated;
910 import javax.persistence.Id;
1011
12+import javax.persistence.Table;
1113 import org.wicketja.model.vo.Category;
1214
13-
1415 /**
1516 * 1件のリンクを表します。
1617 *
1718 * @author s_tonouchi
19+ * @author Tsutomu YANO
1820 *
1921 */
2022 @SuppressWarnings("serial")
21-@Entity(name="tbl_link_item")
23+@Entity
24+@Table(name = "LINK_ITEM", schema = "WICKETJA")
2225 public class LinkItem implements Serializable {
2326
27+ private Integer id;
28+ /**
29+ * リンクしたサイトの名前
30+ */
31+ private String name;
32+ /**
33+ * リンクした先のURL
34+ */
35+ private String url;
36+ /**
37+ * リンク先の紹介文
38+ */
39+ private String excerpt;
40+ /**
41+ * カテゴリー
42+ */
43+ private Category category;
44+ /**
45+ * リンクが登録された日付
46+ */
47+ private Calendar registerDate;
48+ /**
49+ * RSSへのURL
50+ */
51+ private String feedUrl;
52+ /**
53+ * 登録解除日時
54+ */
55+ private Calendar unregisterDate;
2456
25- private Integer id;
57+ public LinkItem() {
2658
27- /**
28- * リンクしたサイトの名前
29- */
30- private String name;
59+ }
3160
32- /**
33- * リンクした先のURL
34- */
35- private String url;
61+ public LinkItem(String name, String url, String excerpt, Category category,
62+ String feedUrl, Calendar registered) {
63+ this.category = category;
64+ this.excerpt = excerpt;
65+ this.feedUrl = feedUrl;
66+ this.name = name;
67+ this.registerDate = registered;
68+ this.url = url;
69+ }
3670
37- /**
38- * リンク先の紹介文
39- */
40- private String excerpt;
71+ @Id
72+ public Integer getId() {
73+ return id;
74+ }
4175
42- /**
43- * カテゴリー
44- */
45- private Category category;
76+ public void setId(Integer id) {
77+ this.id = id;
78+ }
4679
47- /**
48- * リンクが登録された日付
49- */
50- private Calendar registered;
80+ @Column(nullable = false)
81+ public String getName() {
82+ return name;
83+ }
5184
52- /**
53- * RSSへのURL
54- */
55- private String feedUrl;
85+ void setName(String name) {
86+ this.name = name;
87+ }
5688
57- public LinkItem(){
58-
59- }
60-
61- public LinkItem(String name, String url, String excerpt, Category category,
62- String feedUrl, Calendar registered) {
63- this.category = category;
64- this.excerpt = excerpt;
65- this.feedUrl = feedUrl;
66- this.name = name;
67- this.registered = registered;
68- this.url = url;
69- }
89+ @Column(length = 2048)
90+ public String getUrl() {
91+ return url;
92+ }
7093
71- @Id
72- public Integer getId() {
73- return id;
74- }
94+ void setUrl(String url) {
95+ this.url = url;
96+ }
7597
76- public void setId(Integer id) {
77- this.id = id;
78- }
98+ @Column(length = 2048)
99+ public String getExcerpt() {
100+ return excerpt;
101+ }
79102
80- public String getName() {
81- return name;
82- }
103+ void setExcerpt(String excerpt) {
104+ this.excerpt = excerpt;
105+ }
83106
84- void setName(String name) {
85- this.name = name;
86- }
107+ @Column(nullable = false)
108+ @Enumerated(EnumType.STRING)
109+ public Category getCategory() {
110+ return category;
111+ }
87112
88- public String getUrl() {
89- return url;
90- }
113+ public void setCategory(Category category) {
114+ this.category = category;
115+ }
91116
92- void setUrl(String url) {
93- this.url = url;
94- }
117+ @Column(length = 2048)
118+ public String getFeedUrl() {
119+ return feedUrl;
120+ }
95121
96- public String getExcerpt() {
97- return excerpt;
98- }
122+ public void setFeedUrl(String feedUrl) {
123+ this.feedUrl = feedUrl;
124+ }
99125
100- void setExcerpt(String excerpt) {
101- this.excerpt = excerpt;
102- }
103-
104- @Enumerated(EnumType.STRING)
105- public Category getCategory() {
106- return category;
107- }
126+ @Column(nullable = false)
127+ public Calendar getRegisterDate() {
128+ return registerDate;
129+ }
108130
109- public void setCategory(Category category) {
110- this.category = category;
111- }
131+ public void setRegisterDate(Calendar registered) {
132+ this.registerDate = registered;
133+ }
112134
113- public String getFeedUrl() {
114- return feedUrl;
115- }
135+ public Calendar getUnregisterDate() {
136+ return unregisterDate;
137+ }
116138
117- public void setFeedUrl(String feedUrl) {
118- this.feedUrl = feedUrl;
119- }
120-
121- public Calendar getRegistered() {
122- return registered;
123- }
124-
125- public void setRegistered(Calendar registered) {
126- this.registered = registered;
127- }
128-
139+ public void setUnregisterDate(Calendar unregistered) {
140+ this.unregisterDate = unregistered;
141+ }
129142 }
--- trunk/wicket-ja/src/main/java/org/wicketja/model/NewsEntry.java (revision 38)
+++ trunk/wicket-ja/src/main/java/org/wicketja/model/NewsEntry.java (revision 39)
@@ -3,9 +3,11 @@
33 import java.io.Serializable;
44 import java.util.Calendar;
55
6+import javax.persistence.Column;
67 import javax.persistence.Entity;
78 import javax.persistence.Id;
89
10+import javax.persistence.Table;
911 import org.apache.commons.lang.builder.EqualsBuilder;
1012 import org.apache.commons.lang.builder.HashCodeBuilder;
1113
@@ -12,68 +14,81 @@
1214 /**
1315 * TODO describe
1416 * @author daisuke
17+ * @author Tsutomu YANO
1518 */
1619 @SuppressWarnings("serial")
17-@Entity(name="tbl_news_entry")
20+@Entity
21+@Table(name = "NEWS_ENTRY", schema = "WICKETJA")
1822 public class NewsEntry implements Serializable, Comparable<NewsEntry> {
1923
20- private Integer id;
21-
22- /** ニュースタイトル */
23- private String title;
24-
25- /** 投稿日時 */
26- private Calendar calendar;
27-
28- /** 本文 */
29- private String content;
30-
31- @Id
32- public Integer getId() {
33- return id;
34- }
35- public void setId(Integer id) {
36- this.id = id;
37- }
38-
39- public String getTitle() {
40- return title;
41- }
24+ private Integer id;
25+ /** ニュースタイトル */
26+ private String title;
27+ /** 投稿日時 */
28+ private Calendar registerDate;
29+ /** 本文 */
30+ private String content;
31+ /** 無効化日 */
32+ private Calendar invalidate;
4233
43- public void setTitle(String title) {
44- this.title = title;
45- }
34+ @Id
35+ public Integer getId() {
36+ return id;
37+ }
4638
47- public Calendar getCalendar() {
48- return calendar;
49- }
39+ public void setId(Integer id) {
40+ this.id = id;
41+ }
5042
51- public void setCalendar(Calendar calendar) {
52- this.calendar = calendar;
53- }
43+ @Column(nullable = false)
44+ public String getTitle() {
45+ return title;
46+ }
5447
55- public String getContent() {
56- return content;
57- }
48+ public void setTitle(String title) {
49+ this.title = title;
50+ }
5851
59- public void setContent(String content) {
60- this.content = content;
61- }
62-
63- public int compareTo(NewsEntry another) {
64- if(another == null) return 1;
65- return this.getCalendar().compareTo(another.getCalendar());
66- }
52+ @Column(nullable = false)
53+ public Calendar getRegisterDate() {
54+ return registerDate;
55+ }
6756
68- @Override
69- public boolean equals(Object obj) {
70- return EqualsBuilder.reflectionEquals(this, obj);
71- }
57+ public void setRegisterDate(Calendar calendar) {
58+ this.registerDate = calendar;
59+ }
7260
73- @Override
74- public int hashCode() {
75- return HashCodeBuilder.reflectionHashCode(this);
76- }
61+ @Column(nullable = false, length = 1024)
62+ public String getContent() {
63+ return content;
64+ }
7765
78-
66+ public void setContent(String content) {
67+ this.content = content;
68+ }
69+
70+ public Calendar getInvalidate() {
71+ return invalidate;
72+ }
73+
74+ public void setInvalidate(Calendar invalidate) {
75+ this.invalidate = invalidate;
76+ }
77+
78+ public int compareTo(NewsEntry another) {
79+ if (another == null) {
80+ return 1;
81+ }
82+ return this.getRegisterDate().compareTo(another.getRegisterDate());
83+ }
84+
85+ @Override
86+ public boolean equals(Object obj) {
87+ return EqualsBuilder.reflectionEquals(this, obj);
88+ }
89+
90+ @Override
91+ public int hashCode() {
92+ return HashCodeBuilder.reflectionHashCode(this);
93+ }
7994 }
--- trunk/wicket-ja/src/main/java/org/wicketja/dao/NewDao.java (revision 38)
+++ trunk/wicket-ja/src/main/java/org/wicketja/dao/NewDao.java (nonexistent)
@@ -1,11 +0,0 @@
1-package org.wicketja.dao;
2-
3-import java.util.List;
4-
5-import org.wicketja.model.NewsEntry;
6-
7-public interface NewDao {
8-
9- public abstract List<NewsEntry> findAll();
10-
11-}
\ No newline at end of file
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
--- trunk/wicket-ja/src/main/java/org/wicketja/dao/NewsDao.java (nonexistent)
+++ trunk/wicket-ja/src/main/java/org/wicketja/dao/NewsDao.java (revision 39)
@@ -0,0 +1,11 @@
1+package org.wicketja.dao;
2+
3+import java.util.List;
4+
5+import org.wicketja.model.NewsEntry;
6+
7+public interface NewsDao {
8+
9+ public abstract List<NewsEntry> findAll();
10+
11+}
\ No newline at end of file
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
--- trunk/wicket-ja/src/main/java/org/wicketja/dao/NewsDaoImpl.java (revision 38)
+++ trunk/wicket-ja/src/main/java/org/wicketja/dao/NewsDaoImpl.java (revision 39)
@@ -1,84 +1,30 @@
11 package org.wicketja.dao;
22
33 import java.io.Serializable;
4-import java.util.ArrayList;
5-import java.util.Calendar;
6-import java.util.Collections;
74 import java.util.List;
85
6+import javax.persistence.EntityManager;
97 import org.wicketja.model.NewsEntry;
108
119 /**
1210 * TODO describe
1311 * @author daisuke
12+ * @author Tsutomu YANO
1413 */
1514 @SuppressWarnings("serial")
16-public class NewsDaoImpl implements Serializable, NewDao {
15+public class NewsDaoImpl implements Serializable, NewsDao {
1716
18- /* (non-Javadoc)
19- * @see org.wicketja.site.news.NewDao#findAll()
20- */
21- public List<NewsEntry> findAll(){
22- List<NewsEntry> newsEntries = new ArrayList<NewsEntry>();
23-
24- Calendar cal;
25-
26- cal = Calendar.getInstance();
27- cal.clear();
28- cal.set(2008, Calendar.FEBRUARY, 17);
29- newsEntries.add(createNews(
30- "日本Wicketユーザグループ発足",
31- cal,
32- "日本Wicketユーザグループが発足しました。"));
33-
34- cal = Calendar.getInstance();
35- cal.clear();
36- cal.set(2008, Calendar.JANUARY, 6);
37- newsEntries.add(createNews(
38- "Apache Wicket 1.3 がリリースされました。",
39- cal,
40- "Wicket TeamはアパッチWicket1.3をリリースしました。"
41- + "<a href=\"http://www.apache.org/dyn/closer.cgi/wicket/1.3.0\">"
42- + "Apache Wicket 1.3をダウンロード</a><br />"
43- + "Apache Wicketは、Javaにおけるコンポーネントベースのオープンソースフレームワークであり、現在最も注目されているフレームワークの1つです。"
44- + "Apache Wicketは、妥当な(vaild)HTMLを雛形とする事に注目し、デザインとロジックを効果的に分離します。"
45- + "Apache Wicketを使えば、簡単なPOJO+HTMLによるデータモデルによって、複雑なコンポーネントでありながらも"
46- + "高い保守性を保ったアプリケーションをすぐに作る事ができます。"));
47-
48- cal = Calendar.getInstance();
49- cal.clear();
50- cal.set(2008, Calendar.FEBRUARY, 5);
51- newsEntries.add(createNews(
52- "Apache Wicket 1.3.1 がリリースされました。",
53- cal,
54- "WicketチームはApache Wicket 1.3の最初のメンテナンスリリースである"
55- + "<a href=\"http://www.apache.org/dyn/closer.cgi/wicket/1.3.1\">"
56- + "Apache Wicket 1.3.1</a>をリリースしました。<br />"
57- + "多くのバグが修正されただけでなく、新たな機能も追加されています。最も重要な機能拡張は透過的で即使い始められるクラスタリング機能をサポートしたことです"));
58-
59- cal = Calendar.getInstance();
60- cal.clear();
61- cal.set(2008, Calendar.FEBRUARY, 27);
62- newsEntries.add(createNews(
63- "Wicket-jaメーリングリストを「wicket-ja-user」に統合しました",
64- cal,
65- "Wicket-jaのメーリングリストは「user」「manage」「translation」の三つが最初にありましたが、"
66- + "現段階で三つに分けるのはあまり意味が無いし、ユーザーが三カ所に分散してしまうので、wicket-ja-userひとつに"
67- + "統合しました。メーリングリストには告知してありましたが、もしmanageもしくはtranslationにのみ登録している方がいらっしゃれば、是非wicket-ja-userにも登録してくださいますようお願いします。"));
17+ EntityManager em;
6818
69- // 日付が新しい順にソート
70- Collections.sort(newsEntries);
71- Collections.reverse(newsEntries);
72-
73- return newsEntries;
74- }
75-
76- private NewsEntry createNews(String title, Calendar date, String content){
77- NewsEntry entry = new NewsEntry();
78- entry.setTitle(title);
79- entry.setCalendar(date);
80- entry.setContent(content);
81- return entry;
82- }
19+ public NewsDaoImpl(EntityManager em) {
20+ this.em = em;
21+ }
8322
23+ /* (non-Javadoc)
24+ * @see org.wicketja.site.news.NewDao#findAll()
25+ */
26+ @SuppressWarnings("unchecked")
27+ public List<NewsEntry> findAll() {
28+ return em.createQuery("select news from NewsEntry as news where news.invalidate is null order by news.registerDate desc").getResultList();
29+ }
8430 }
--- trunk/wicket-ja/src/main/java/org/wicketja/dao/LinkDaoImpl.java (revision 38)
+++ trunk/wicket-ja/src/main/java/org/wicketja/dao/LinkDaoImpl.java (revision 39)
@@ -1,41 +1,47 @@
11 package org.wicketja.dao;
22
33 import java.io.Serializable;
4-import java.util.ArrayList;
5-import java.util.Calendar;
64 import java.util.List;
75
6+import javax.persistence.EntityManager;
87 import org.wicketja.model.LinkItem;
9-import org.wicketja.model.vo.Category;
108
119 /**
1210 * リンク集ページに表示するリンクの一覧を取得するためのクラス
1311 *
1412 * @author s_tonouchi
13+ * @author Tsutomu YANO
1514 *
1615 */
17-
1816 @SuppressWarnings("serial")
19-public class LinkDaoImpl implements Serializable, LinkDao{
17+public class LinkDaoImpl implements Serializable, LinkDao {
2018
21- /* (non-Javadoc)
22- * @see org.wicketja.site.links.LinkDao#findAll()
23- */
24- public List<LinkItem> findAll() {
25- List<LinkItem> links = new ArrayList<LinkItem>();
26-
27- Calendar calendar1 = Calendar.getInstance();
28- calendar1.set(2008, Calendar.FEBRUARY, 11);
29- links.add(new LinkItem("Apache Wicket", "http://wicket.apache.org/",
30- "Wicketを開発している団体です。", Category.COMMUNITY, "", calendar1));
19+ EntityManager em;
3120
32- Calendar calendar2 = Calendar.getInstance();
33- calendar2.set(2008, Calendar.FEBRUARY, 18);
34- links.add(new LinkItem("Wicket Stuff wiki",
35- "http://wicketstuff.org/confluence/display/STUFFWIKI/Wiki",
36- "Wicketの様々なComponentが公開されています。", Category.COMMUNITY, "", calendar2));
21+ public LinkDaoImpl(EntityManager em) {
22+ this.em = em;
23+ }
3724
38- return links;
25+ /* (non-Javadoc)
26+ * @see org.wicketja.site.links.LinkDao#findAll()
27+ */
28+ @SuppressWarnings("unchecked")
29+ public List<LinkItem> findAll() {
30+ return em.createQuery("select link from LinkItem as link where link.unregisterDate is null order by link.registerDate desc").getResultList();
31+// List<LinkItem> links = new ArrayList<LinkItem>();
32+//
33+// Calendar calendar1 = Calendar.getInstance();
34+// calendar1.set(2008, Calendar.FEBRUARY, 11);
35+// links.add(new LinkItem("Apache Wicket", "http://wicket.apache.org/",
36+// "Wicketを開発している団体です。", Category.COMMUNITY, "", calendar1));
37+//
38+// Calendar calendar2 = Calendar.getInstance();
39+// calendar2.set(2008, Calendar.FEBRUARY, 18);
40+// links.add(new LinkItem("Wicket Stuff wiki",
41+// "http://wicketstuff.org/confluence/display/STUFFWIKI/Wiki",
42+// "Wicketの様々なComponentが公開されています。", Category.COMMUNITY, "", calendar2));
43+//
44+// return links;
3945 }
4046
4147 }
--- trunk/wicket-ja/src/main/java/org/wicketja/WicketApplication.java (revision 38)
+++ trunk/wicket-ja/src/main/java/org/wicketja/WicketApplication.java (revision 39)
@@ -1,5 +1,7 @@
11 package org.wicketja;
22
3+import javax.persistence.EntityManagerFactory;
4+import javax.persistence.Persistence;
35 import org.apache.wicket.protocol.http.WebApplication;
46 import org.wicketja.pages.AboutWicketPage;
57 import org.wicketja.pages.AboutWicketjaPage;
@@ -13,57 +15,68 @@
1315 * @author Yoichiro Tanaka
1416 */
1517 public class WicketApplication extends WebApplication {
16-
18+
19+ EntityManagerFactory entityManagerFactory;
20+
1721 /**
1822 * このオブジェクトが生成されるときに呼び出されます。
1923 */
20- public WicketApplication() {
21- super();
22- }
23-
24- /**
25- * 各種の初期化処理を行います。
26- */
27- @Override
28- protected void init() {
29- super.init();
30- //テンプレートエンコーディングの設定
31- getMarkupSettings().setDefaultMarkupEncoding("UTF-8");
24+ public WicketApplication() {
25+ super();
26+ }
3227
33- //レスポンスのエンコーディング設定
34- getRequestCycleSettings().setResponseRequestEncoding("UTF-8");
35-
36- // 各ページを分かりやすいURLに変更
37- mountBookmarkablePage("/news", NewsPage.class);
38- mountBookmarkablePage("/faq", FaqPage.class);
39- mountBookmarkablePage("/links", LinksPage.class);
40- mountBookmarkablePage("/about_wicket", AboutWicketPage.class);
41- mountBookmarkablePage("/about_wicket-ja", AboutWicketjaPage.class);
42- }
28+ /**
29+ * 各種の初期化処理を行います。
30+ */
31+ @Override
32+ protected void init() {
33+ super.init();
34+ //テンプレートエンコーディングの設定
35+ getMarkupSettings().setDefaultMarkupEncoding("UTF-8");
4336
37+ //レスポンスのエンコーディング設定
38+ getRequestCycleSettings().setResponseRequestEncoding("UTF-8");
39+
40+ // 各ページを分かりやすいURLに変更
41+ mountBookmarkablePage("/news", NewsPage.class);
42+ mountBookmarkablePage("/faq", FaqPage.class);
43+ mountBookmarkablePage("/links", LinksPage.class);
44+ mountBookmarkablePage("/about_wicket", AboutWicketPage.class);
45+ mountBookmarkablePage("/about_wicket-ja", AboutWicketjaPage.class);
46+
47+ entityManagerFactory = Persistence.createEntityManagerFactory("WicketJaPersistenceUnit");
48+ }
49+
4450 @Override
4551 public String getConfigurationType() {
4652 //filterのinit-parameterでconfigurationに「development」と指定したときだけ、developmentモードで起動します。
4753 //それ以外のケースでは常にdeploymentモードで起動します。
4854 String configuration = this.getWicketFilter().getFilterConfig().getInitParameter("configuration");
49- if(configuration != null && configuration.equalsIgnoreCase(WebApplication.DEVELOPMENT)) {
55+ if (configuration != null && configuration.equalsIgnoreCase(WebApplication.DEVELOPMENT)) {
5056 return WebApplication.DEVELOPMENT;
5157 }
52-
58+
5359 return WebApplication.DEPLOYMENT;
5460 }
55-
56-
5761
58- /**
59- * ホームページとなるページのクラスを返します。
60- * @return ホームページとなるページのクラスオブジェクト
61- * @see org.apache.wicket.Application#getHomePage()
62- */
63- @SuppressWarnings("unchecked") // FIXME Generics 付けると Override になるか微妙だったので
64- @Override
65- public Class getHomePage() {
66- return HomePage.class;
67- }
62+ /**
63+ * ホームページとなるページのクラスを返します。
64+ * @return ホームページとなるページのクラスオブジェクト
65+ * @see org.apache.wicket.Application#getHomePage()
66+ */
67+ @Override
68+ public Class<?> getHomePage() {
69+ return HomePage.class;
70+ }
6871
72+ public EntityManagerFactory getEntityManagerFactory() {
73+ return entityManagerFactory;
74+ }
75+
76+ @Override
77+ protected void onDestroy() {
78+ if(entityManagerFactory != null) {
79+ entityManagerFactory.close();
80+ }
81+ }
6982 }
--- trunk/wicket-ja/src/main/webapp/WEB-INF/web.xml (revision 38)
+++ trunk/wicket-ja/src/main/webapp/WEB-INF/web.xml (revision 39)
@@ -21,7 +21,7 @@
2121 <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
2222 <init-param>
2323 <param-name>applicationClassName</param-name>
24- <param-value>org.wicketja.site.WicketApplication</param-value>
24+ <param-value>org.wicketja.WicketApplication</param-value>
2525 </init-param>
2626 <init-param>
2727 <param-name>configuration</param-name>
--- trunk/wicket-ja/pom.xml (revision 38)
+++ trunk/wicket-ja/pom.xml (revision 39)
@@ -1,15 +1,15 @@
11 <?xml version="1.0" encoding="UTF-8"?>
22 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
3- <modelVersion>4.0.0</modelVersion>
4- <groupId>org.wicket-ja</groupId>
5- <artifactId>wicket-ja</artifactId>
6- <packaging>war</packaging>
7- <name>Wicket User Group Japan Web Site Project</name>
8- <version>1.0-beta1</version>
9- <description>日本Wicketユーザグループ(Wicket User Group Japan)のウェブサイトを、Wicketを利用して作成します。
10- このサイト自体がWicketの使用事例になり、また、このソースコードを公開することにより、これからWicketを使用する方の為の
11- サンプル・チュートリアルとなることを目指します。</description>
12- <url>https://sourceforge.jp/projects/wicket-ja/</url>
3+ <modelVersion>4.0.0</modelVersion>
4+ <groupId>org.wicket-ja</groupId>
5+ <artifactId>wicket-ja</artifactId>
6+ <packaging>war</packaging>
7+ <name>Wicket User Group Japan Web Site Project</name>
8+ <version>1.0-beta1</version>
9+ <description>日本Wicketユーザグループ(Wicket User Group Japan)のウェブサイトを、Wicketを利用して作成します。
10+ このサイト自体がWicketの使用事例になり、また、このソースコードを公開することにより、これからWicketを使用する方の為の
11+ サンプル・チュートリアルとなることを目指します。</description>
12+ <url>https://sourceforge.jp/projects/wicket-ja/</url>
1313 <!-- ITSを導入したら設定
1414 <issueManagement>
1515 <system>Bugzilla</system>
@@ -27,93 +27,93 @@
2727 </notifiers>
2828 </ciManagement>
2929 -->
30- <inceptionYear>2008</inceptionYear>
31- <mailingLists>
32- <mailingList>
33- <name>wicket-ja-user</name>
34- <post>wicket-ja-user@lists.sourceforge.jp</post>
35- <archive>http://lists.sourceforge.jp/mailman/archives/wicket-ja-user/</archive>
36- </mailingList>
37- </mailingLists>
38- <developers>
30+ <inceptionYear>2008</inceptionYear>
31+ <mailingLists>
32+ <mailingList>
33+ <name>wicket-ja-user</name>
34+ <post>wicket-ja-user@lists.sourceforge.jp</post>
35+ <archive>http://lists.sourceforge.jp/mailman/archives/wicket-ja-user/</archive>
36+ </mailingList>
37+ </mailingLists>
38+ <developers>
3939 <!--
4040 各自個人情報に対するポリシーが異なると思うので、MLに出しているお名前のみ追加しました。
4141 情報の追加/修正/削除は各自でお願いします。(記載順は世界のt_yanoを先頭に、あとはコミット順としました。)
4242 -->
43- <developer>
44- <id>benbrand</id>
45- <name>Tsutomu YANO</name>
46- <email>benbrand@mac.com</email>
47- <url>http://d.hatena.ne.jp/t_yano/</url>
48- <timezone>+9</timezone>
49- </developer>
50- <developer>
51- <id>yoichiro</id>
52- <name>Yoichiro TANAKA</name>
53- <timezone>+9</timezone>
54- </developer>
55- <developer>
56- <id>daisuke</id>
57- <name>Daisuke MIYAMOTO</name>
58- <email>daisuke_m@yahoo.co.jp</email>
59- <url>http://d.hatena.ne.jp/d-miyamoto</url>
60- <timezone>+9</timezone>
61- </developer>
62- <developer>
63- <id>yoshiori</id>
64- <name>Yoshiori SHOJI</name>
65- <email>yoshiori@gmail.com</email>
66- <url>http://yoshiori.org/</url>
67- <timezone>+9</timezone>
68- </developer>
69- <developer>
70- <id>tonouchi</id>
71- <name>Seiji TONOUCHI</name>
72- </developer>
73- <developer>
74- <id>meso</id>
75- <name>Toshihiro Shimizu</name>
76- <email>shimizu.toshihiro@gmail.com</email>
77- <url>http://mesolabs.com/</url>
78- <timezone>+9</timezone>
79- </developer>
80- </developers>
43+ <developer>
44+ <id>benbrand</id>
45+ <name>Tsutomu YANO</name>
46+ <email>benbrand@mac.com</email>
47+ <url>http://d.hatena.ne.jp/t_yano/</url>
48+ <timezone>+9</timezone>
49+ </developer>
50+ <developer>
51+ <id>yoichiro</id>
52+ <name>Yoichiro TANAKA</name>
53+ <timezone>+9</timezone>
54+ </developer>
55+ <developer>
56+ <id>daisuke</id>
57+ <name>Daisuke MIYAMOTO</name>
58+ <email>daisuke_m@yahoo.co.jp</email>
59+ <url>http://d.hatena.ne.jp/d-miyamoto</url>
60+ <timezone>+9</timezone>
61+ </developer>
62+ <developer>
63+ <id>yoshiori</id>
64+ <name>Yoshiori SHOJI</name>
65+ <email>yoshiori@gmail.com</email>
66+ <url>http://yoshiori.org/</url>
67+ <timezone>+9</timezone>
68+ </developer>
69+ <developer>
70+ <id>tonouchi</id>
71+ <name>Seiji TONOUCHI</name>
72+ </developer>
73+ <developer>
74+ <id>meso</id>
75+ <name>Toshihiro Shimizu</name>
76+ <email>shimizu.toshihiro@gmail.com</email>
77+ <url>http://mesolabs.com/</url>
78+ <timezone>+9</timezone>
79+ </developer>
80+ </developers>
8181 <!-- コミッタ以外から記録すべきコントリビュートがあった場合、追加して下さい。
8282 <contributors>
8383 <contributor/>
8484 </contributors>
8585 -->
86- <licenses>
87- <license>
88- <name>The Apache Software License, Version 2.0</name>
89- <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
90- <distribution>repo</distribution>
91- </license>
92- </licenses>
93- <scm>
94- <connection>http://svn.sourceforge.jp/svnroot/wicket-ja/trunk/wicket-ja/</connection>
95- <developerConnection>svn+ssh://developername@svn.sourceforge.jp/svnroot/wicket-ja/trunk/wicket-ja</developerConnection>
96- <url>http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi/trunk/wicket-ja/?root=wicket-ja</url>
97- </scm>
98- <organization>
99- <name>Wicket User Group Japan</name>
100- <url>http://wicket-ja.org/</url>
101- </organization>
102- <pluginRepositories>
103- <pluginRepository>
104- <id>codehaus snapshot repository</id>
105- <url>http://snapshots.repository.codehaus.org/</url>
106- <releases>
107- </releases>
108- </pluginRepository>
109- </pluginRepositories>
110- <dependencies>
86+ <licenses>
87+ <license>
88+ <name>The Apache Software License, Version 2.0</name>
89+ <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
90+ <distribution>repo</distribution>
91+ </license>
92+ </licenses>
93+ <scm>
94+ <connection>http://svn.sourceforge.jp/svnroot/wicket-ja/trunk/wicket-ja/</connection>
95+ <developerConnection>svn+ssh://developername@svn.sourceforge.jp/svnroot/wicket-ja/trunk/wicket-ja</developerConnection>
96+ <url>http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi/trunk/wicket-ja/?root=wicket-ja</url>
97+ </scm>
98+ <organization>
99+ <name>Wicket User Group Japan</name>
100+ <url>http://wicket-ja.org/</url>
101+ </organization>
102+ <pluginRepositories>
103+ <pluginRepository>
104+ <id>codehaus snapshot repository</id>
105+ <url>http://snapshots.repository.codehaus.org/</url>
106+ <releases>
107+ </releases>
108+ </pluginRepository>
109+ </pluginRepositories>
110+ <dependencies>
111111 <!-- WICKET DEPENDENCIES -->
112- <dependency>
113- <groupId>org.apache.wicket</groupId>
114- <artifactId>wicket</artifactId>
115- <version>${wicket.version}</version>
116- </dependency>
112+ <dependency>
113+ <groupId>org.apache.wicket</groupId>
114+ <artifactId>wicket</artifactId>
115+ <version>${wicket.version}</version>
116+ </dependency>
117117 <!-- OPTIONAL
118118 <dependency>
119119 <groupId>org.apache.wicket</groupId>
@@ -122,154 +122,172 @@
122122 </dependency>
123123 -->
124124 <!-- java persistence api -->
125- <dependency>
126- <groupId>org.hibernate</groupId>
127- <artifactId>hibernate-entitymanager</artifactId>
128- <version>3.3.1.ga</version>
129- <exclusions>
130- <exclusion>
131- <artifactId>jta</artifactId>
132- <groupId>javax.transaction</groupId>
133- </exclusion>
134- </exclusions>
135- </dependency>
136- <!-- Spring -->
137- <dependency>
138- <groupId>org.springframework</groupId>
139- <artifactId>spring</artifactId>
140- <version>${spring.version}</version>
141- </dependency>
142-
125+ <dependency>
126+ <groupId>org.hibernate</groupId>
127+ <artifactId>hibernate-entitymanager</artifactId>
128+ <version>3.3.1.ga</version>
129+ </dependency>
130+ <!-- Spring -->
131+ <dependency>
132+ <groupId>org.springframework</groupId>
133+ <artifactId>spring</artifactId>
134+ <version>${spring.version}</version>
135+ </dependency>
136+
143137 <!-- LOGGING DEPENDENCIES - LOG4J -->
144- <dependency>
145- <groupId>org.slf4j</groupId>
146- <artifactId>slf4j-log4j12</artifactId>
147- <version>1.4.2</version>
148- </dependency>
149- <dependency>
150- <groupId>log4j</groupId>
151- <artifactId>log4j</artifactId>
152- <version>1.2.14</version>
153- </dependency>
154-
155-
138+ <dependency>
139+ <groupId>org.slf4j</groupId>
140+ <artifactId>slf4j-log4j12</artifactId>
141+ <version>1.4.2</version>
142+ </dependency>
143+ <dependency>
144+ <groupId>log4j</groupId>
145+ <artifactId>log4j</artifactId>
146+ <version>1.2.14</version>
147+ </dependency>
148+
149+
156150 <!-- etc -->
157- <dependency>
158- <groupId>commons-lang</groupId>
159- <artifactId>commons-lang</artifactId>
160- <version>[2,)</version>
161- </dependency>
162-
151+ <dependency>
152+ <groupId>commons-lang</groupId>
153+ <artifactId>commons-lang</artifactId>
154+ <version>[2,)</version>
155+ </dependency>
156+
163157 <!-- JUNIT DEPENDENCY FOR TESTING -->
164- <dependency>
165- <groupId>junit</groupId>
166- <artifactId>junit</artifactId>
167- <version>4.4</version>
168- <scope>test</scope>
169- </dependency>
158+ <dependency>
159+ <groupId>junit</groupId>
160+ <artifactId>junit</artifactId>
161+ <version>4.4</version>
162+ <scope>test</scope>
163+ </dependency>
170164
171165 <!-- JETTY DEPENDENCIES FOR TESTING -->
172- <dependency>
173- <groupId>org.mortbay.jetty</groupId>
174- <artifactId>jetty</artifactId>
175- <version>${jetty.version}</version>
176- <scope>provided</scope>
177- </dependency>
178- <dependency>
179- <groupId>org.mortbay.jetty</groupId>
180- <artifactId>jetty-util</artifactId>
181- <version>${jetty.version}</version>
182- <scope>provided</scope>
183- </dependency>
184- <dependency>
185- <groupId>org.mortbay.jetty</groupId>
186- <artifactId>jetty-management</artifactId>
187- <version>${jetty.version}</version>
188- <scope>provided</scope>
189- </dependency>
190- </dependencies>
191- <build>
192- <resources>
193- <resource>
194- <directory>src/main/resources</directory>
195- </resource>
196- <resource>
197- <directory>src/main/java</directory>
198- <includes>
199- <include>**</include>
200- </includes>
201- <excludes>
202- <exclude>**/*.java</exclude>
203- </excludes>
204- </resource>
205- </resources>
206- <testResources>
207- <testResource>
208- <directory>src/test/java</directory>
209- <includes>
210- <include>**</include>
211- </includes>
212- <excludes>
213- <exclude>**/*.java</exclude>
214- </excludes>
215- </testResource>
216- </testResources>
217- <plugins>
218- <plugin>
219- <groupId>org.apache.maven.plugins</groupId>
220- <artifactId>maven-compiler-plugin</artifactId>
221- <configuration>
222- <source>1.5</source>
223- <target>1.5</target>
224- <encoding>UTF-8</encoding>
225- </configuration>
226- </plugin>
227- <plugin>
228- <groupId>org.apache.maven.plugins</groupId>
229- <artifactId>maven-site-plugin</artifactId>
230- <configuration>
231- <outputEncoding>utf-8</outputEncoding>
232- <inputEncoding>utf-8</inputEncoding>
233- <locales>ja</locales>
234- </configuration>
235- </plugin>
236- <plugin>
237- <groupId>org.mortbay.jetty</groupId>
238- <artifactId>maven-jetty-plugin</artifactId>
239- </plugin>
240- <plugin>
241- <groupId>org.codehaus.cargo</groupId>
242- <artifactId>cargo-maven2-plugin</artifactId>
243- <configuration>
244- <container>
245- <containerId>tomcat5x</containerId>
246- <type>remote</type>
247- </container>
248- <configuration>
249- <type>runtime</type>
250- <properties>
251- <cargo.tomcat.manager.url>${deployer.path}</cargo.tomcat.manager.url>
252- <cargo.remote.username>${deployer.username}</cargo.remote.username>
253- <cargo.remote.password>${deployer.password}</cargo.remote.password>
254- </properties>
255- </configuration>
256- <deployer>
257- <type>remote</type>
258- <deployables>
259- <deployable>
260- <groupId>org.wicket-ja</groupId>
261- <artifactId>wicket-ja</artifactId>
262- <type>war</type>
263- </deployable>
264- </deployables>
265- </deployer>
266- </configuration>
267- </plugin>
268- </plugins>
269- </build>
270- <properties>
271- <wicket.version>1.3.2</wicket.version>
272- <jetty.version>6.1.4</jetty.version>
273- <spring.version>2.5.1</spring.version>
274- </properties>
166+ <dependency>
167+ <groupId>org.mortbay.jetty</groupId>
168+ <artifactId>jetty</artifactId>
169+ <version>${jetty.version}</version>
170+ <scope>provided</scope>
171+ </dependency>
172+ <dependency>
173+ <groupId>org.mortbay.jetty</groupId>
174+ <artifactId>jetty-util</artifactId>
175+ <version>${jetty.version}</version>
176+ <scope>provided</scope>
177+ </dependency>
178+ <dependency>
179+ <groupId>org.mortbay.jetty</groupId>
180+ <artifactId>jetty-management</artifactId>
181+ <version>${jetty.version}</version>
182+ <scope>provided</scope>
183+ </dependency>
184+ </dependencies>
185+ <build>
186+ <resources>
187+ <resource>
188+ <directory>src/main/resources</directory>
189+ </resource>
190+ <resource>
191+ <directory>src/main/java</directory>
192+ <includes>
193+ <include>**</include>
194+ </includes>
195+ <excludes>
196+ <exclude>**/*.java</exclude>
197+ </excludes>
198+ </resource>
199+ <resource>
200+ <targetPath>META-INF</targetPath>
201+ <directory>${basedir}/conf</directory>
202+ <includes>
203+ <include>persistence.xml</include>
204+ </includes>
205+ </resource>
206+ </resources>
207+ <testResources>
208+ <testResource>
209+ <directory>src/test/java</directory>
210+ <includes>
211+ <include>**</include>
212+ </includes>
213+ <excludes>
214+ <exclude>**/*.java</exclude>
215+ </excludes>
216+ </testResource>
217+ </testResources>
218+ <plugins>
219+ <plugin>
220+ <groupId>org.apache.maven.plugins</groupId>
221+ <artifactId>maven-compiler-plugin</artifactId>
222+ <configuration>
223+ <source>1.5</source>
224+ <target>1.5</target>
225+ <encoding>UTF-8</encoding>
226+ </configuration>
227+ </plugin>
228+ <plugin>
229+ <groupId>org.apache.maven.plugins</groupId>
230+ <artifactId>maven-site-plugin</artifactId>
231+ <configuration>
232+ <outputEncoding>utf-8</outputEncoding>
233+ <inputEncoding>utf-8</inputEncoding>
234+ <locales>ja</locales>
235+ </configuration>
236+ </plugin>
237+ <plugin>
238+ <groupId>org.mortbay.jetty</groupId>
239+ <artifactId>maven-jetty-plugin</artifactId>
240+ </plugin>
241+ <plugin>
242+ <groupId>org.codehaus.cargo</groupId>
243+ <artifactId>cargo-maven2-plugin</artifactId>
244+ <configuration>
245+ <container>
246+ <containerId>tomcat5x</containerId>
247+ <type>remote</type>
248+ </container>
249+ <configuration>
250+ <type>runtime</type>
251+ <properties>
252+ <cargo.tomcat.manager.url>${deployer.path}</cargo.tomcat.manager.url>
253+ <cargo.remote.username>${deployer.username}</cargo.remote.username>
254+ <cargo.remote.password>${deployer.password}</cargo.remote.password>
255+ </properties>
256+ </configuration>
257+ <deployer>
258+ <type>remote</type>
259+ <deployables>
260+ <deployable>
261+ <groupId>org.wicket-ja</groupId>
262+ <artifactId>wicket-ja</artifactId>
263+ <type>war</type>
264+ </deployable>
265+ </deployables>
266+ </deployer>
267+ </configuration>
268+ </plugin>
269+ <plugin>
270+ <groupId>org.apache.maven.plugins</groupId>
271+ <artifactId>maven-war-plugin</artifactId>
272+ <configuration>
273+ <webResources>
274+ <resource>
275+ <directory>${basedir}/conf</directory>
276+ <!-- override the destination directory for this resource -->
277+ <targetPath>META-INF</targetPath>
278+ <includes>
279+ <include>persistence.xml</include>
280+ </includes>
281+ </resource>
282+ </webResources>
283+ </configuration>
284+ </plugin>
285+ </plugins>
286+ </build>
287+ <properties>
288+ <wicket.version>1.3.2</wicket.version>
289+ <netbeans.hint.deploy.server>Tomcat60</netbeans.hint.deploy.server>
290+ <jetty.version>6.1.4</jetty.version>
291+ <spring.version>2.5.1</spring.version>
292+ </properties>
275293 </project>
Show on old repository browser