[pal-cvs 3436] [1170] this portlet get a list of google gadgets from web.

svnno****@sourc***** svnno****@sourc*****
2008年 9月 23日 (火) 07:38:48 JST


Revision: 1170
          http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=1170
Author:   shinsuke
Date:     2008-09-23 07:38:47 +0900 (Tue, 23 Sep 2008)

Log Message:
-----------
this portlet get a list of google gadgets from web.

Modified Paths:
--------------
    googlegadgets/trunk/pom.xml

Added Paths:
-----------
    googlegadgets/trunk/.classpath
    googlegadgets/trunk/.project
    googlegadgets/trunk/.settings/
    googlegadgets/trunk/.settings/org.eclipse.jdt.core.prefs
    googlegadgets/trunk/.settings/org.eclipse.jdt.ui.prefs
    googlegadgets/trunk/src/main/java/
    googlegadgets/trunk/src/main/java/jp/
    googlegadgets/trunk/src/main/java/jp/sf/
    googlegadgets/trunk/src/main/java/jp/sf/pal/
    googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/
    googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/GGadgetConstants.java
    googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/GGadgetException.java
    googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/action/
    googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/action/EditAction.java
    googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/action/ViewAction.java
    googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/creator/
    googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/creator/PagerCreator.java
    googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/entity/
    googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/entity/GGadget.java
    googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/form/
    googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/form/EditForm.java
    googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/pager/
    googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/pager/GGadgetPager.java
    googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/service/
    googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/service/GGadgetService.java
    googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/util/
    googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/util/GGadgetHandler.java
    googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/util/GGadgetList.java
    googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/util/GGadgetUtil.java
    googlegadgets/trunk/src/main/resources/
    googlegadgets/trunk/src/main/resources/app.dicon
    googlegadgets/trunk/src/main/resources/application.properties
    googlegadgets/trunk/src/main/resources/application_ja.properties
    googlegadgets/trunk/src/main/resources/convention.dicon
    googlegadgets/trunk/src/main/resources/creator.dicon
    googlegadgets/trunk/src/main/resources/customizer.dicon
    googlegadgets/trunk/src/main/resources/env.txt
    googlegadgets/trunk/src/main/resources/env_ut.txt
    googlegadgets/trunk/src/main/resources/jdbc.dicon
    googlegadgets/trunk/src/main/resources/s2container.dicon
    googlegadgets/trunk/src/main/webapp/
    googlegadgets/trunk/src/main/webapp/WEB-INF/
    googlegadgets/trunk/src/main/webapp/WEB-INF/portlet.xml
    googlegadgets/trunk/src/main/webapp/WEB-INF/struts-config.xml
    googlegadgets/trunk/src/main/webapp/WEB-INF/validator-rules.xml
    googlegadgets/trunk/src/main/webapp/WEB-INF/view/
    googlegadgets/trunk/src/main/webapp/WEB-INF/view/common/
    googlegadgets/trunk/src/main/webapp/WEB-INF/view/common/common.jsp
    googlegadgets/trunk/src/main/webapp/WEB-INF/view/edit/
    googlegadgets/trunk/src/main/webapp/WEB-INF/view/edit/error.jsp
    googlegadgets/trunk/src/main/webapp/WEB-INF/view/edit/index.jsp
    googlegadgets/trunk/src/main/webapp/WEB-INF/view/view/
    googlegadgets/trunk/src/main/webapp/WEB-INF/view/view/error.jsp
    googlegadgets/trunk/src/main/webapp/WEB-INF/view/view/index.jsp
    googlegadgets/trunk/src/main/webapp/WEB-INF/web.xml

Removed Paths:
-------------
    googlegadgets/trunk/googlegadgets-communication/
    googlegadgets/trunk/googlegadgets-communication-ja/
    googlegadgets/trunk/googlegadgets-finance/
    googlegadgets/trunk/googlegadgets-finance-ja/
    googlegadgets/trunk/googlegadgets-funandgames/
    googlegadgets/trunk/googlegadgets-funandgames-ja/
    googlegadgets/trunk/googlegadgets-lifestyle/
    googlegadgets/trunk/googlegadgets-lifestyle-ja/
    googlegadgets/trunk/googlegadgets-new/
    googlegadgets/trunk/googlegadgets-new-ja/
    googlegadgets/trunk/googlegadgets-news/
    googlegadgets/trunk/googlegadgets-news-ja/
    googlegadgets/trunk/googlegadgets-sports/
    googlegadgets/trunk/googlegadgets-sports-ja/
    googlegadgets/trunk/googlegadgets-technology/
    googlegadgets/trunk/googlegadgets-technology-ja/
    googlegadgets/trunk/googlegadgets-tools/
    googlegadgets/trunk/googlegadgets-tools-ja/
    googlegadgets/trunk/src/main/script/


-------------- next part --------------
Added: googlegadgets/trunk/.classpath
===================================================================
--- googlegadgets/trunk/.classpath	                        (rev 0)
+++ googlegadgets/trunk/.classpath	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,42 @@
+<classpath>
+    <classpathentry kind="src" output="src/main/webapp/WEB-INF/classes" path="src/main/java"/>
+    <classpathentry kind="src" output="src/main/webapp/WEB-INF/classes" path="src/main/resources"/>
+    <classpathentry kind="src" path="src/main/webapp/WEB-INF/view"/>
+    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+
+  <classpathentry kind="var" path="M2_REPO/portlet-api/portlet-api/1.0/portlet-api-1.0.jar"/>
+  <classpathentry kind="var" path="M2_REPO/javax/servlet/jstl/1.1.2/jstl-1.1.2.jar" sourcepath="M2_REPO/javax/servlet/jstl/1.1.2/jstl-1.1.2-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/taglibs/standard/1.1.2/standard-1.1.2.jar"/>
+  <classpathentry kind="var" path="M2_REPO/commons-el/commons-el/1.0/commons-el-1.0.jar" sourcepath="M2_REPO/commons-el/commons-el/1.0/commons-el-1.0-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar" sourcepath="M2_REPO/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/commons-fileupload/commons-fileupload/1.2.1/commons-fileupload-1.2.1.jar"/>
+  <classpathentry kind="var" path="M2_REPO/commons-io/commons-io/1.3/commons-io-1.3.jar"/>
+  <classpathentry kind="var" path="M2_REPO/commons-lang/commons-lang/2.3/commons-lang-2.3.jar"/>
+  <classpathentry kind="var" path="M2_REPO/commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.jar" sourcepath="M2_REPO/commons-validator/commons-validator/1.2.0/commons-validator-1.2.0-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar" sourcepath="M2_REPO/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/commons-digester/commons-digester/1.6/commons-digester-1.6.jar" sourcepath="M2_REPO/commons-digester/commons-digester/1.6/commons-digester-1.6-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/2.1/commons-collections-2.1.jar"/>
+  <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar" sourcepath="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/oro/oro/2.0.8/oro-2.0.8.jar" sourcepath="M2_REPO/oro/oro/2.0.8/oro-2.0.8-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.13/log4j-1.2.13.jar" sourcepath="M2_REPO/log4j/log4j/1.2.13/log4j-1.2.13-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/javax/mail/mail/1.4/mail-1.4.jar"/>
+  <classpathentry kind="var" path="M2_REPO/javax/activation/activation/1.1/activation-1.1.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/apache/portals/jetspeed-2/jetspeed-api/2.1.3/jetspeed-api-2.1.3.jar"/>
+  <classpathentry kind="var" path="M2_REPO/javax/servlet/servlet-api/2.3/servlet-api-2.3.jar" sourcepath="M2_REPO/javax/servlet/servlet-api/2.3/servlet-api-2.3-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/seasar/sastruts/sa-struts-portlet/1.0.0-rc2/sa-struts-portlet-1.0.0-rc2.jar" sourcepath="M2_REPO/org/seasar/sastruts/sa-struts-portlet/1.0.0-rc2/sa-struts-portlet-1.0.0-rc2-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/struts/struts/1.2.9/struts-1.2.9.jar"/>
+  <classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.2/antlr-2.7.2.jar" sourcepath="M2_REPO/antlr/antlr/2.7.2/antlr-2.7.2-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/xalan/xalan/2.5.1/xalan-2.5.1.jar" sourcepath="M2_REPO/xalan/xalan/2.5.1/xalan-2.5.1-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/seasar/sastruts/sa-struts/1.0.4-sp1/sa-struts-1.0.4-sp1.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/seasar/container/s2-tiger/2.4.28/s2-tiger-2.4.28.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/seasar/container/s2-extension/2.4.28/s2-extension-2.4.28.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/seasar/container/s2-framework/2.4.28/s2-framework-2.4.28.jar"/>
+  <classpathentry kind="var" path="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar" sourcepath="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0-sources.jar"/>
+  <classpathentry kind="var" path="M2_REPO/jboss/javassist/3.4.ga/javassist-3.4.ga.jar"/>
+  <classpathentry kind="var" path="M2_REPO/ognl/ognl/2.6.9-patch-20070908/ognl-2.6.9-patch-20070908.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/apache/poi/poi/3.0-FINAL/poi-3.0-FINAL.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/apache/geronimo/specs/geronimo-annotation_1.0_spec/1.1.1/geronimo-annotation_1.0_spec-1.1.1.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/apache/geronimo/specs/geronimo-ejb_3.0_spec/1.0/geronimo-ejb_3.0_spec-1.0.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/apache/geronimo/specs/geronimo-interceptor_3.0_spec/1.0/geronimo-interceptor_3.0_spec-1.0.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/apache/geronimo/specs/geronimo-jta_1.1_spec/1.0/geronimo-jta_1.1_spec-1.0.jar"/>
+</classpath>


Property changes on: googlegadgets/trunk/.classpath
___________________________________________________________________
Name: svn:eol-style
   + native

Added: googlegadgets/trunk/.project
===================================================================
--- googlegadgets/trunk/.project	                        (rev 0)
+++ googlegadgets/trunk/.project	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,14 @@
+<projectDescription>
+  <name>googlegadgets</name>
+  <comment></comment>
+  <projects/>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+      <arguments/>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+  </natures>
+</projectDescription>
\ No newline at end of file


Property changes on: googlegadgets/trunk/.project
___________________________________________________________________
Name: svn:eol-style
   + native

Added: googlegadgets/trunk/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- googlegadgets/trunk/.settings/org.eclipse.jdt.core.prefs	                        (rev 0)
+++ googlegadgets/trunk/.settings/org.eclipse.jdt.core.prefs	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,261 @@
+#Mon Sep 22 17:05:09 JST 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=1
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=true
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=80
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=space
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true

Added: googlegadgets/trunk/.settings/org.eclipse.jdt.ui.prefs
===================================================================
--- googlegadgets/trunk/.settings/org.eclipse.jdt.ui.prefs	                        (rev 0)
+++ googlegadgets/trunk/.settings/org.eclipse.jdt.ui.prefs	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,4 @@
+#Mon Sep 22 17:05:09 JST 2008
+eclipse.preferences.version=1
+formatter_profile=_PAL Project
+formatter_settings_version=11

Modified: googlegadgets/trunk/pom.xml
===================================================================
--- googlegadgets/trunk/pom.xml	2008-09-18 09:03:06 UTC (rev 1169)
+++ googlegadgets/trunk/pom.xml	2008-09-22 22:38:47 UTC (rev 1170)
@@ -1,11 +1,11 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <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">
   <modelVersion>4.0.0</modelVersion>
   <groupId>jp.sf.pal</groupId>
-  <artifactId>googlegadgets-project</artifactId>
-  <packaging>pom</packaging>
-  <version>1.0-20071207</version>
-  <name>Google Gadgets Project</name>
+  <artifactId>googlegadgets</artifactId>
+  <version>1.0</version>
+  <packaging>war</packaging>
+  <name>Google Gadgets Portlet</name>
   <description/>
   <url>http://pal.sourceforge.jp/</url>
   <inceptionYear>2005</inceptionYear>
@@ -37,14 +37,15 @@
     <url>http://pal.sourceforge.jp/</url>
   </organization>
   <build>
+    <finalName>googlegadgets</finalName>
     <defaultGoal>validate</defaultGoal>
     <pluginManagement>
       <plugins>
         <plugin>
           <artifactId>maven-compiler-plugin</artifactId>
           <configuration>
-            <source>1.4</source>
-            <target>1.4</target>
+            <source>1.5</source>
+            <target>1.5</target>
             <encoding>UTF-8</encoding>
           </configuration>
         </plugin>
@@ -54,21 +55,7 @@
             <updateReleaseInfo>true</updateReleaseInfo>
           </configuration>
         </plugin>
-<!--
         <plugin>
-          <artifactId>maven-site-plugin</artifactId>
-          <configuration>
-            <outputEncodinf>UTF-8</outputEncodinf>
-          </configuration>
-        </plugin>
-        <plugin>
-          <artifactId>maven-surefire-plugin</artifactId>
-          <configuration>
-            <forkMode>none</forkMode>
-          </configuration>
-        </plugin>
-        -->
-        <plugin>
           <groupId>org.codehaus.mojo</groupId>
           <artifactId>cobertura-maven-plugin</artifactId>
           <version>2.0-SNAPSHOT</version>
@@ -97,57 +84,136 @@
       </plugin>
     </plugins>
   </build>
-  <modules>
-    <module>googlegadgets-news</module>
-    <module>googlegadgets-tools</module>
-    <module>googlegadgets-communication</module>
-    <module>googlegadgets-funandgames</module>
-    <module>googlegadgets-finance</module>
-    <module>googlegadgets-sports</module>
-    <module>googlegadgets-lifestyle</module>
-    <module>googlegadgets-technology</module>
-    <module>googlegadgets-new</module>
-<!--
-    <module>googlegadgets-news-ja</module>
-    <module>googlegadgets-tools-ja</module>
-    <module>googlegadgets-communication-ja</module>
-    <module>googlegadgets-funandgames-ja</module>
-    <module>googlegadgets-finance-ja</module>
-    <module>googlegadgets-sports-ja</module>
-    <module>googlegadgets-lifestyle-ja</module>
-    <module>googlegadgets-technology-ja</module>
-    <module>googlegadgets-new-ja</module>
--->
-  </modules>
   <repositories>
     <repository>
-      <id>maven.marevol.com</id>
+      <id>maven2.marevol.com</id>
       <name>Maven2 Repository on marevol.com</name>
       <url>http://maven2.marevol.com/</url>
     </repository>
+    <repository>
+      <id>maven.seasar.org</id>
+      <name>The Seasar Foundation Maven2 Repository</name>
+      <url>http://maven.seasar.org/maven2</url>
+    </repository>
   </repositories>
-  <pluginRepositories>
-    <pluginRepository>
-      <id>people.apache.org m2-snapshot</id>
-      <url>http://people.apache.org/repo/m2-snapshot-repository</url>
-      <snapshots>
-        <enabled>true</enabled>
-      </snapshots>
-      <releases>
-        <enabled>false</enabled>
-      </releases>
-    </pluginRepository>
-    <pluginRepository>
-      <id>snapshots.repository.codehaus.org</id>
-      <url>http://snapshots.repository.codehaus.org</url>
-      <snapshots>
-        <enabled>true</enabled>
-      </snapshots>
-      <releases>
-        <enabled>false</enabled>
-      </releases>
-    </pluginRepository>
-  </pluginRepositories>
+  <dependencies>
+    <dependency>
+      <groupId>portlet-api</groupId>
+      <artifactId>portlet-api</artifactId>
+      <version>1.0</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>jstl</groupId>
+      <artifactId>jstl</artifactId>
+      <version>1.1.2</version>
+    </dependency>
+    <dependency>
+      <groupId>taglibs</groupId>
+      <artifactId>standard</artifactId>
+      <version>1.1.2</version>
+    </dependency>
+    <dependency>
+      <groupId>commons-el</groupId>
+      <artifactId>commons-el</artifactId>
+      <version>1.0</version>
+    </dependency>
+    <dependency>
+      <groupId>commons-fileupload</groupId>
+      <artifactId>commons-fileupload</artifactId>
+      <version>1.2.1</version>
+    </dependency>
+    <dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+      <version>1.3</version>
+    </dependency>
+    <dependency>
+      <groupId>commons-lang</groupId>
+      <artifactId>commons-lang</artifactId>
+      <version>2.3</version>
+    </dependency>
+    <dependency>
+      <groupId>commons-validator</groupId>
+      <artifactId>commons-validator</artifactId>
+      <version>1.2.0</version>
+    </dependency>
+    <dependency>
+      <groupId>commons-logging</groupId>
+      <artifactId>commons-logging</artifactId>
+      <version>1.0.4</version>
+    </dependency>
+    <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+      <version>1.2.13</version>
+      <type>jar</type>
+    </dependency>
+    <dependency>
+      <groupId>javax.mail</groupId>
+      <artifactId>mail</artifactId>
+      <version>1.4</version>
+    </dependency>
+<!-- Jetspeed2 -->
+    <dependency>
+      <groupId>org.apache.portals.jetspeed-2</groupId>
+      <artifactId>jetspeed-api</artifactId>
+      <version>2.1.3</version>
+      <scope>provided</scope>
+      <exclusions>
+        <exclusion>
+          <groupId>junit</groupId>
+          <artifactId>junit</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>javax.servlet</groupId>
+      <artifactId>servlet-api</artifactId>
+      <version>2.3</version>
+      <scope>provided</scope>
+    </dependency>
+<!-- SAStruts -->
+    <dependency>
+      <groupId>org.seasar.sastruts</groupId>
+      <artifactId>sa-struts-portlet</artifactId>
+      <version>1.0.0-rc3</version>
+      <exclusions>
+        <exclusion>
+          <groupId>org.easymock</groupId>
+          <artifactId>easymock</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>commons-logging</groupId>
+          <artifactId>commons-logging</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>junit</groupId>
+          <artifactId>junit</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.geronimo.specs</groupId>
+      <artifactId>geronimo-annotation_1.0_spec</artifactId>
+      <version>1.1.1</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.geronimo.specs</groupId>
+      <artifactId>geronimo-ejb_3.0_spec</artifactId>
+      <version>1.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.geronimo.specs</groupId>
+      <artifactId>geronimo-interceptor_3.0_spec</artifactId>
+      <version>1.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.geronimo.specs</groupId>
+      <artifactId>geronimo-jta_1.1_spec</artifactId>
+      <version>1.0</version>
+    </dependency>
+  </dependencies>
   <reporting>
     <plugins>
       <plugin>

Added: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/GGadgetConstants.java
===================================================================
--- googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/GGadgetConstants.java	                        (rev 0)
+++ googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/GGadgetConstants.java	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,15 @@
+package jp.sf.pal.ggadget;
+
+public class GGadgetConstants {
+    public static final String BASE_URL = "http://www.google.com/ig/directory?synd=open&output=rss";
+
+    public static final String NAME = "name";
+
+    public static final String DESCRIPTION = "description";
+
+    public static final String URL = "url";
+
+    public static final String THUMBNAIL = "thumbnail";
+
+    public static final String GADGET_ITEMS = "gadgetItems";
+}


Property changes on: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/GGadgetConstants.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/GGadgetException.java
===================================================================
--- googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/GGadgetException.java	                        (rev 0)
+++ googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/GGadgetException.java	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,19 @@
+package jp.sf.pal.ggadget;
+
+public class GGadgetException extends Exception {
+
+    private static final long serialVersionUID = 1L;
+
+    public GGadgetException(String message) {
+        super(message);
+    }
+
+    public GGadgetException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public GGadgetException(Throwable cause) {
+        super(cause);
+    }
+
+}


Property changes on: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/GGadgetException.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/action/EditAction.java
===================================================================
--- googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/action/EditAction.java	                        (rev 0)
+++ googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/action/EditAction.java	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,162 @@
+package jp.sf.pal.ggadget.action;
+
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+
+import jp.sf.pal.ggadget.GGadgetConstants;
+import jp.sf.pal.ggadget.GGadgetException;
+import jp.sf.pal.ggadget.entity.GGadget;
+import jp.sf.pal.ggadget.form.EditForm;
+import jp.sf.pal.ggadget.pager.GGadgetPager;
+import jp.sf.pal.ggadget.service.GGadgetService;
+import jp.sf.pal.ggadget.util.GGadgetList;
+import jp.sf.pal.ggadget.util.GGadgetUtil;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.seasar.framework.container.hotdeploy.HotdeployUtil;
+import org.seasar.struts.annotation.ActionForm;
+import org.seasar.struts.annotation.Execute;
+import org.seasar.struts.exception.ActionMessagesException;
+
+public class EditAction {
+    private static final Log log = LogFactory.getLog(EditAction.class);
+
+    public List<GGadget> gadgetItems;
+
+    public String currentName;
+
+    public boolean existPrevPage;
+
+    public boolean existNextPage;
+
+    public int allRecordCount;
+
+    public int allPageCount;
+
+    public int currentPageNumber;
+
+    @ActionForm
+    private EditForm editForm;
+
+    private GGadgetPager gGadgetPager;
+
+    private GGadgetService gGadgetService;
+
+    private transient HttpServletRequest request;
+
+    @Execute(validator = false, input = "error.jsp")
+    public String index() {
+        try {
+            currentName = GGadgetUtil.getPreferenceValue(request,
+                    GGadgetConstants.NAME, "");
+            GGadgetList<GGadget> gadgets = gGadgetService
+                    .getGGadgetList(gGadgetPager);
+            allRecordCount = gadgets.getAllRecordCount();
+            allPageCount = gadgets.getAllPageCount();
+            currentPageNumber = gadgets.getCurrentPageNumber();
+            existPrevPage = gadgets.isExistPrevPage();
+            existNextPage = gadgets.isExistNextPage();
+            gadgetItems = gadgets;
+            request.getSession().setAttribute(GGadgetConstants.GADGET_ITEMS,
+                    gadgetItems);
+            return "index.jsp";
+        } catch (GGadgetException e) {
+            log.error(e.getMessage(), e);
+            throw new ActionMessagesException(
+                    "errors.could_not_load_gadget_info");
+        }
+    }
+
+    @Execute(validator = false, input = "error.jsp", urlPattern = "update/{id}")
+    public String update() {
+        if (editForm.id == null) {
+            throw new ActionMessagesException(
+                    "errors.failed_to_update_because_of_no_id");
+        }
+
+        gadgetItems = (List<GGadget>) request.getSession().getAttribute(
+                GGadgetConstants.GADGET_ITEMS);
+        if (gadgetItems == null) {
+            throw new ActionMessagesException(
+                    "errors.failed_to_update_because_of_no_session");
+        }
+
+        gadgetItems = (List<GGadget>) HotdeployUtil.rebuildValue(gadgetItems);
+
+        boolean isUpdate = false;
+        int id = Integer.parseInt(editForm.id);
+        for (GGadget gadget : gadgetItems) {
+            if (gadget.getId() == id) {
+                try {
+                    GGadgetUtil.store(request, gadget);
+                    GGadgetUtil.addMessage(request, "success.update_gadget");
+                    isUpdate = true;
+                } catch (Exception e) {
+                    log.error(e.getMessage(), e);
+                    throw new ActionMessagesException(
+                            "errors.failed_to_update_because_of_system_error");
+                }
+            }
+        }
+
+        if (!isUpdate) {
+            throw new ActionMessagesException(
+                    "errors.failed_to_update_because_of_no_object");
+        }
+
+        return index();
+    }
+
+    @Execute(validator = false, input = "error.jsp")
+    public String prev() {
+        int start = gGadgetPager.getStart();
+        start -= gGadgetPager.getNum();
+        if (start < 0) {
+            start = 0;
+        }
+        gGadgetPager.setStart(start);
+        return index();
+    }
+
+    @Execute(validator = false, input = "error.jsp")
+    public String next() {
+        int start = gGadgetPager.getStart();
+        start += gGadgetPager.getNum();
+        gGadgetPager.setStart(start);
+        return index();
+    }
+
+    public GGadgetService getGGadgetService() {
+        return gGadgetService;
+    }
+
+    public void setGGadgetService(GGadgetService gadgetService) {
+        gGadgetService = gadgetService;
+    }
+
+    public GGadgetPager getGGadgetPager() {
+        return gGadgetPager;
+    }
+
+    public void setGGadgetPager(GGadgetPager gadgetPager) {
+        gGadgetPager = gadgetPager;
+    }
+
+    public EditForm getEditForm() {
+        return editForm;
+    }
+
+    public void setEditForm(EditForm editForm) {
+        this.editForm = editForm;
+    }
+
+    public HttpServletRequest getRequest() {
+        return request;
+    }
+
+    public void setRequest(HttpServletRequest request) {
+        this.request = request;
+    }
+}


Property changes on: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/action/EditAction.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/action/ViewAction.java
===================================================================
--- googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/action/ViewAction.java	                        (rev 0)
+++ googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/action/ViewAction.java	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,42 @@
+package jp.sf.pal.ggadget.action;
+
+import java.io.Serializable;
+
+import javax.servlet.http.HttpServletRequest;
+
+import jp.sf.pal.ggadget.GGadgetConstants;
+import jp.sf.pal.ggadget.util.GGadgetUtil;
+
+import org.seasar.struts.annotation.Execute;
+import org.seasar.struts.exception.ActionMessagesException;
+
+public class ViewAction implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    public String url;
+
+    private transient HttpServletRequest request;
+
+    @Execute(validator = false, input = "error.jsp")
+    public String index() {
+        String value = GGadgetUtil.getPreferenceValue(request,
+                GGadgetConstants.URL, "");
+        if (value == null) {
+            throw new ActionMessagesException("errors.invalid_portlet_state");
+        } else if ("".equals(value)) {
+            GGadgetUtil.addMessage(request, "warn.need_to_set_gadget_url");
+            return "error.jsp";
+        }
+        url = value;
+        return "index.jsp";
+    }
+
+    public HttpServletRequest getRequest() {
+        return request;
+    }
+
+    public void setRequest(HttpServletRequest request) {
+        this.request = request;
+    }
+}


Property changes on: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/action/ViewAction.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/creator/PagerCreator.java
===================================================================
--- googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/creator/PagerCreator.java	                        (rev 0)
+++ googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/creator/PagerCreator.java	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,29 @@
+package jp.sf.pal.ggadget.creator;
+
+import org.seasar.framework.container.ComponentCustomizer;
+import org.seasar.framework.container.assembler.AutoBindingDefFactory;
+import org.seasar.framework.container.creator.ComponentCreatorImpl;
+import org.seasar.framework.container.deployer.InstanceDefFactory;
+import org.seasar.framework.convention.NamingConvention;
+
+/**
+ * @author shinsuke
+ */
+public class PagerCreator extends ComponentCreatorImpl {
+    public static final String SUFFIX = "Pager";
+
+    public PagerCreator(NamingConvention namingConvention) {
+        super(namingConvention);
+        setNameSuffix(SUFFIX);
+        setInstanceDef(InstanceDefFactory.SESSION);
+        setAutoBindingDef(AutoBindingDefFactory.NONE);
+    }
+
+    public ComponentCustomizer getPagerCustomizer() {
+        return getCustomizer();
+    }
+
+    public void setPagerCustomizer(ComponentCustomizer customizer) {
+        setCustomizer(customizer);
+    }
+}


Property changes on: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/creator/PagerCreator.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/entity/GGadget.java
===================================================================
--- googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/entity/GGadget.java	                        (rev 0)
+++ googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/entity/GGadget.java	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,64 @@
+package jp.sf.pal.ggadget.entity;
+
+import java.io.Serializable;
+
+import org.apache.commons.lang.StringUtils;
+
+public class GGadget implements Serializable {
+
+    private static final long serialVersionUID = -2597080943953492995L;
+
+    private int id;
+
+    private String name;
+
+    private String description;
+
+    private String url;
+
+    private String thumbnail;
+
+    public String getShortName() {
+        return StringUtils.abbreviate(name, 30);
+    }
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    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;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getThumbnail() {
+        return thumbnail;
+    }
+
+    public void setThumbnail(String thumbnail) {
+        this.thumbnail = thumbnail;
+    }
+}


Property changes on: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/entity/GGadget.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/form/EditForm.java
===================================================================
--- googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/form/EditForm.java	                        (rev 0)
+++ googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/form/EditForm.java	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,8 @@
+package jp.sf.pal.ggadget.form;
+
+import org.seasar.struts.annotation.IntegerType;
+
+public class EditForm {
+    @IntegerType
+    public String id;
+}


Property changes on: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/form/EditForm.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/pager/GGadgetPager.java
===================================================================
--- googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/pager/GGadgetPager.java	                        (rev 0)
+++ googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/pager/GGadgetPager.java	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,83 @@
+package jp.sf.pal.ggadget.pager;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+
+import jp.sf.pal.ggadget.GGadgetConstants;
+
+public class GGadgetPager implements Serializable {
+
+    private static final long serialVersionUID = 237701365907034437L;
+
+    private int start = 0;
+
+    private int num = 20;
+
+    private String category;
+
+    private String query;
+
+    private String language;
+
+    public String buildUrl() {
+        StringBuilder url = new StringBuilder(GGadgetConstants.BASE_URL);
+
+        url.append("&start=").append(start);
+        url.append("&num=").append(num);
+        if (category != null) {
+            url.append("&cat=").append(category);
+        }
+        if (query != null) {
+            try {
+                url.append("&q=").append(URLEncoder.encode(query, "UTF-8"));
+            } catch (UnsupportedEncodingException e) {
+                // TODO
+            }
+        }
+        if (language != null) {
+            url.append("&lang=").append(language);
+        }
+        return url.toString();
+    }
+
+    public int getStart() {
+        return start;
+    }
+
+    public void setStart(int start) {
+        this.start = start;
+    }
+
+    public int getNum() {
+        return num;
+    }
+
+    public void setNum(int num) {
+        this.num = num;
+    }
+
+    public String getCategory() {
+        return category;
+    }
+
+    public void setCategory(String category) {
+        this.category = category;
+    }
+
+    public String getQuery() {
+        return query;
+    }
+
+    public void setQuery(String query) {
+        this.query = query;
+    }
+
+    public String getLanguage() {
+        return language;
+    }
+
+    public void setLanguage(String language) {
+        this.language = language;
+    }
+}


Property changes on: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/pager/GGadgetPager.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/service/GGadgetService.java
===================================================================
--- googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/service/GGadgetService.java	                        (rev 0)
+++ googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/service/GGadgetService.java	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,41 @@
+package jp.sf.pal.ggadget.service;
+
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Serializable;
+import java.net.URL;
+
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import jp.sf.pal.ggadget.GGadgetException;
+import jp.sf.pal.ggadget.entity.GGadget;
+import jp.sf.pal.ggadget.pager.GGadgetPager;
+import jp.sf.pal.ggadget.util.GGadgetHandler;
+import jp.sf.pal.ggadget.util.GGadgetList;
+
+import org.xml.sax.InputSource;
+
+public class GGadgetService implements Serializable {
+
+    private static final long serialVersionUID = 6932901501995247897L;
+
+    public GGadgetList<GGadget> getGGadgetList(GGadgetPager pager)
+            throws GGadgetException {
+        try {
+            SAXParserFactory spfactory = SAXParserFactory.newInstance();
+            SAXParser parser = spfactory.newSAXParser();
+            GGadgetHandler gGadgetHandler = new GGadgetHandler(pager);
+            Object content = new URL(pager.buildUrl()).getContent();
+            if (content instanceof InputStream) {
+                parser.parse(new InputSource(new InputStreamReader(
+                        (InputStream) content, "UTF-8")), gGadgetHandler);
+                return gGadgetHandler.getGGadgetList();
+            }
+            throw new GGadgetException("Invalid content: " + content);
+        } catch (Exception e) {
+            throw new GGadgetException(e);
+        }
+
+    }
+}


Property changes on: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/service/GGadgetService.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/util/GGadgetHandler.java
===================================================================
--- googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/util/GGadgetHandler.java	                        (rev 0)
+++ googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/util/GGadgetHandler.java	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,113 @@
+package jp.sf.pal.ggadget.util;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import jp.sf.pal.ggadget.entity.GGadget;
+import jp.sf.pal.ggadget.pager.GGadgetPager;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+public class GGadgetHandler extends DefaultHandler {
+
+    private GGadgetList<GGadget> gGadgetList;
+
+    private GGadget gGadget;
+
+    private List<String> stack;
+
+    private GGadgetPager gGadgetPager;
+
+    public GGadgetHandler(GGadgetPager gGadgetPager) {
+        super();
+        this.gGadgetPager = gGadgetPager;
+    }
+
+    @Override
+    public void startDocument() throws SAXException {
+        stack = new ArrayList<String>();
+    }
+
+    @Override
+    public void endDocument() throws SAXException {
+        stack = null;
+    }
+
+    @Override
+    public void startElement(String uri, String localName, String name,
+            Attributes attributes) throws SAXException {
+        stack.add(name);
+
+        if ("channel".equals(name)) {
+            gGadgetList = new GGadgetList<GGadget>();
+
+            if (gGadgetPager.getStart() > 0) {
+                gGadgetList.setExistPrevPage(true);
+            } else {
+                gGadgetList.setExistPrevPage(false);
+            }
+
+            gGadgetList.setCurrentPageNumber(gGadgetPager.getStart()
+                    / gGadgetPager.getNum() + 1);
+
+        } else if ("item".equals(name)) {
+            gGadget = new GGadget();
+            gGadget.setId(gGadgetList.size() + 1);
+        }
+    }
+
+    @Override
+    public void endElement(String uri, String localName, String name)
+            throws SAXException {
+        if ("item".equals(name)) {
+            gGadgetList.add(gGadget);
+            gGadget = null;
+        }
+
+        stack.remove(stack.size() - 1);
+    }
+
+    @Override
+    public void characters(char[] ch, int start, int length)
+            throws SAXException {
+        if (stack != null) {
+            String tagName = stack.get(stack.size() - 1);
+            if (gGadget != null) {
+                if ("title".equals(tagName)) {
+                    gGadget.setName(new String(ch, start, length));
+                } else if ("guid".equals(tagName)) {
+                    gGadget.setUrl(new String(ch, start, length));
+                } else if ("description".equals(tagName)) {
+                    gGadget.setDescription(new String(ch, start, length));
+                } else if ("ghapi:thumbnail".equals(tagName)) {
+                    gGadget.setThumbnail(new String(ch, start, length));
+                }
+            } else {
+                if ("ghapi:num_items".equals(tagName)) {
+                    int numOfAll = Integer.parseInt(new String(ch, start,
+                            length));
+                    gGadgetList.setAllRecordCount(numOfAll);
+
+                    if (gGadgetPager.getStart() + gGadgetPager.getNum() < numOfAll) {
+                        gGadgetList.setExistNextPage(true);
+                    } else {
+                        gGadgetList.setExistNextPage(false);
+                    }
+
+                    int pageNum = numOfAll / gGadgetPager.getNum();
+                    if (numOfAll % gGadgetPager.getNum() != 0) {
+                        pageNum++;
+                    }
+                    gGadgetList.setAllPageCount(pageNum);
+
+                }
+            }
+        }
+    }
+
+    public GGadgetList<GGadget> getGGadgetList() {
+        return gGadgetList;
+    }
+}


Property changes on: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/util/GGadgetHandler.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/util/GGadgetList.java
===================================================================
--- googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/util/GGadgetList.java	                        (rev 0)
+++ googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/util/GGadgetList.java	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,64 @@
+package jp.sf.pal.ggadget.util;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class GGadgetList<E> extends ArrayList<E> implements List<E> {
+
+    private static final long serialVersionUID = -184891673357927785L;
+
+    private int allRecordCount;
+
+    private int allPageCount;
+
+    private int currentPageNumber;
+
+    private boolean existPrevPage;
+
+    private boolean existNextPage;
+
+    public GGadgetList() {
+        super();
+    }
+
+    public int getAllRecordCount() {
+        return allRecordCount;
+    }
+
+    public void setAllRecordCount(int allRecordCount) {
+        this.allRecordCount = allRecordCount;
+    }
+
+    public int getAllPageCount() {
+        return allPageCount;
+    }
+
+    public void setAllPageCount(int allPageCount) {
+        this.allPageCount = allPageCount;
+    }
+
+    public int getCurrentPageNumber() {
+        return currentPageNumber;
+    }
+
+    public void setCurrentPageNumber(int currentPageNumber) {
+        this.currentPageNumber = currentPageNumber;
+    }
+
+    public boolean isExistPrevPage() {
+        return existPrevPage;
+    }
+
+    public void setExistPrevPage(boolean existPrevPage) {
+        this.existPrevPage = existPrevPage;
+    }
+
+    public boolean isExistNextPage() {
+        return existNextPage;
+    }
+
+    public void setExistNextPage(boolean existNextPage) {
+        this.existNextPage = existNextPage;
+    }
+
+}


Property changes on: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/util/GGadgetList.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/util/GGadgetUtil.java
===================================================================
--- googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/util/GGadgetUtil.java	                        (rev 0)
+++ googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/util/GGadgetUtil.java	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,53 @@
+package jp.sf.pal.ggadget.util;
+
+import java.io.IOException;
+
+import javax.portlet.PortletPreferences;
+import javax.portlet.PortletRequest;
+import javax.portlet.ReadOnlyException;
+import javax.portlet.ValidatorException;
+import javax.servlet.http.HttpServletRequest;
+
+import jp.sf.pal.ggadget.GGadgetConstants;
+import jp.sf.pal.ggadget.entity.GGadget;
+
+import org.apache.struts.action.ActionMessage;
+import org.apache.struts.action.ActionMessages;
+import org.seasar.struts.portlet.util.PortletUtil;
+import org.seasar.struts.util.ActionMessagesUtil;
+
+public class GGadgetUtil {
+    public static void addMessage(HttpServletRequest request, String key) {
+        ActionMessages msgs = new ActionMessages();
+        msgs.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(key));
+        ActionMessagesUtil.saveMessages(request, msgs);
+    }
+
+    public static String getPreferenceValue(HttpServletRequest request,
+            String key, String defaultValue) {
+        PortletRequest portletRequest = (PortletRequest) request
+                .getAttribute(PortletUtil.PORTLET_REQUEST);
+        if (portletRequest != null) {
+            PortletPreferences preferences = portletRequest.getPreferences();
+            return preferences.getValue(key, defaultValue);
+        }
+        return null;
+    }
+
+    public static String store(HttpServletRequest request, GGadget gGadget)
+            throws ValidatorException, IOException, ReadOnlyException {
+        PortletRequest portletRequest = (PortletRequest) request
+                .getAttribute(PortletUtil.PORTLET_REQUEST);
+        if (portletRequest != null) {
+            PortletPreferences preferences = portletRequest.getPreferences();
+            preferences.setValue(GGadgetConstants.NAME, gGadget.getName());
+            preferences.setValue(GGadgetConstants.DESCRIPTION, gGadget
+                    .getDescription());
+            preferences.setValue(GGadgetConstants.URL, gGadget.getUrl());
+            preferences.setValue(GGadgetConstants.THUMBNAIL, gGadget
+                    .getThumbnail());
+            preferences.store();
+        }
+        return null;
+    }
+}


Property changes on: googlegadgets/trunk/src/main/java/jp/sf/pal/ggadget/util/GGadgetUtil.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: googlegadgets/trunk/src/main/resources/app.dicon
===================================================================
--- googlegadgets/trunk/src/main/resources/app.dicon	                        (rev 0)
+++ googlegadgets/trunk/src/main/resources/app.dicon	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
+	"http://www.seasar.org/dtd/components24.dtd">
+<components>
+	<include path="convention.dicon"/>
+	<include path="aop.dicon"/>
+    <include path="j2ee.dicon"/>
+
+    <component name="actionMessagesThrowsInterceptor" class="org.seasar.struts.interceptor.ActionMessagesThrowsInterceptor"/>
+</components>

Added: googlegadgets/trunk/src/main/resources/application.properties
===================================================================
--- googlegadgets/trunk/src/main/resources/application.properties	                        (rev 0)
+++ googlegadgets/trunk/src/main/resources/application.properties	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,36 @@
+errors.header=<ul>
+errors.footer=</ul>
+errors.prefix=<li style="portlet-msg-error">
+errors.suffix=</li>
+msg.header=<ul>
+msg.footer=</ul>
+
+errors.invalid={0} is invalid.
+errors.maxlength={0} can not be greater than {1} characters.
+errors.minlength={0} can not be less than {1} characters.
+errors.maxbytelength={0} can not be greater than {1} bytes.
+errors.minbytelength={0} can not be less than {1} bytes.
+errors.range={0} is not in the range {1} through {2}.
+errors.required={0} is required.
+errors.required.other={0} is required ({1}). 
+errors.byte={0} must be an byte.
+errors.date={0} is not a date.
+errors.double={0} must be an double.
+errors.float={0} must be an float.
+errors.integer={0} must be an integer.
+errors.long={0} must be an long.
+errors.short={0} must be an short.
+errors.creditcard={0} is not a valid credit card number.
+errors.email={0} is an invalid e-mail address.
+errors.url={0} is an invalid url (web address).
+
+errors.invalid_portlet_state=Invalid application state. Please contact to your administrator.
+errors.could_not_load_gadget_info=Could not load Google Gadgets Information. Please try it again later.
+errors.failed_to_update_because_of_no_id=Failed to update data. Could not find the specified gadget.
+errors.failed_to_update_because_of_no_session=Failed to update data. Could not load Google Gadgets information.
+errors.failed_to_update_because_of_no_object=Failed to update data. Could not find the gadget.
+errors.failed_to_update_because_of_system_error=Failed to update data. Please contact to your administrator.
+
+warn.need_to_set_gadget_url=Please select a google gadget on edit mode.
+
+success.update_gadget=Updated gadget.
\ No newline at end of file


Property changes on: googlegadgets/trunk/src/main/resources/application.properties
___________________________________________________________________
Name: svn:eol-style
   + native

Added: googlegadgets/trunk/src/main/resources/application_ja.properties
===================================================================
--- googlegadgets/trunk/src/main/resources/application_ja.properties	                        (rev 0)
+++ googlegadgets/trunk/src/main/resources/application_ja.properties	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,20 @@
+
+errors.invalid={0}\u304c\u4e0d\u6b63\u3067\u3059\u3002
+errors.maxlength={0}\u306e\u9577\u3055\u304c\u6700\u5927\u5024({1})\u3092\u8d85\u3048\u3066\u3044\u307e\u3059\u3002
+errors.minlength={0}\u306e\u9577\u3055\u304c\u6700\u5c0f\u5024({1})\u672a\u6e80\u3067\u3059\u3002
+errors.maxbytelength={0}\u306e\u30d0\u30a4\u30c8\u9577\u304c\u6700\u5927\u5024({1})\u3092\u8d85\u3048\u3066\u3044\u307e\u3059\u3002
+errors.minbytelength={0}\u306e\u30d0\u30a4\u30c8\u9577\u304c\u6700\u5c0f\u5024({1})\u672a\u6e80\u3067\u3059\u3002
+errors.range={0}\u306f{1}\u3068{2}\u306e\u9593\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002
+errors.required={0}\u306f\u5fc5\u9808\u3067\u3059\u3002
+errors.byte={0}\u306f\u30d0\u30a4\u30c8\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002
+errors.date={0}\u306f\u65e5\u4ed8\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093
+errors.double={0}\u306f\u500d\u7cbe\u5ea6\u5b9f\u6570\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002
+errors.float={0}\u306f\u5358\u7cbe\u5ea6\u5b9f\u6570\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002
+errors.integer={0}\u306f\u6574\u6570\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002
+errors.long={0}\u306f\u9577\u6574\u6570\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002
+errors.short={0}\u306f\u77ed\u6574\u6570\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002
+errors.creditcard={0}\u306f\u30af\u30ec\u30b8\u30c3\u30c8\u30ab\u30fc\u30c9\u756a\u53f7\u3068\u3057\u3066\u4e0d\u6b63\u3067\u3059\u3002
+errors.email={0}\u306f\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u3068\u3057\u3066\u4e0d\u6b63\u3067\u3059\u3002
+errors.url={0}\u306fURL\u3068\u3057\u3066\u4e0d\u6b63\u3067\u3059\u3002
+
+


Property changes on: googlegadgets/trunk/src/main/resources/application_ja.properties
___________________________________________________________________
Name: svn:eol-style
   + native

Added: googlegadgets/trunk/src/main/resources/convention.dicon
===================================================================
--- googlegadgets/trunk/src/main/resources/convention.dicon	                        (rev 0)
+++ googlegadgets/trunk/src/main/resources/convention.dicon	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN" 
+	"http://www.seasar.org/dtd/components24.dtd">
+<components>
+	<component class="org.seasar.framework.convention.impl.NamingConventionImpl">
+		<initMethod name="addRootPackageName">
+			<arg>"jp.sf.pal.ggadget"</arg>
+		</initMethod>
+	</component>
+</components>

Added: googlegadgets/trunk/src/main/resources/creator.dicon
===================================================================
--- googlegadgets/trunk/src/main/resources/creator.dicon	                        (rev 0)
+++ googlegadgets/trunk/src/main/resources/creator.dicon	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN" 
+    "http://www.seasar.org/dtd/components24.dtd">
+<components>
+    <include path="convention.dicon"/>
+    <include path="customizer.dicon"/>
+	
+    <component class="org.seasar.framework.container.creator.ActionCreator"/>
+    <component class="org.seasar.struts.creator.FormCreator"/>
+    <component class="org.seasar.framework.container.creator.ServiceCreator"/>
+    <!--component class="org.seasar.framework.container.creator.DtoCreator"/-->
+    <component class="org.seasar.framework.container.creator.InterceptorCreator"/>
+    <component class="jp.sf.pal.ggadget.creator.PagerCreator"/>
+
+</components>

Added: googlegadgets/trunk/src/main/resources/customizer.dicon
===================================================================
--- googlegadgets/trunk/src/main/resources/customizer.dicon	                        (rev 0)
+++ googlegadgets/trunk/src/main/resources/customizer.dicon	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN" 
+    "http://www.seasar.org/dtd/components24.dtd">
+<components>
+    <include path="default-customizer.dicon"/>
+	
+    <component name="actionCustomizer"
+        class="org.seasar.framework.container.customizer.CustomizerChain">
+        <initMethod name="addAspectCustomizer">
+            <arg>"aop.traceInterceptor"</arg>
+        </initMethod>
+        <initMethod name="addAspectCustomizer">
+            <arg>"actionMessagesThrowsInterceptor"</arg>
+        </initMethod>
+        <initMethod name="addCustomizer">
+            <arg>
+                <component
+                    class="org.seasar.framework.container.customizer.TxAttributeCustomizer"/>
+            </arg>
+        </initMethod>
+        <initMethod name="addCustomizer">
+            <arg>
+                <component
+                    class="org.seasar.struts.customizer.ActionCustomizer"/>
+            </arg>
+        </initMethod>
+    </component>
+    
+    <component name="formCustomizer"
+        class="org.seasar.framework.container.customizer.CustomizerChain">
+    </component>
+	
+    <component name="serviceCustomizer"
+        class="org.seasar.framework.container.customizer.CustomizerChain">
+        <initMethod name="addAspectCustomizer">
+            <arg>"aop.traceInterceptor"</arg>
+        </initMethod>
+        <initMethod name="addCustomizer">
+            <arg>
+                <component
+                    class="org.seasar.framework.container.customizer.TxAttributeCustomizer"/>
+            </arg>
+        </initMethod>
+    </component>
+
+    <component name="pagerCustomizer" class="org.seasar.framework.container.customizer.CustomizerChain">
+    </component>
+
+</components>

Added: googlegadgets/trunk/src/main/resources/env.txt
===================================================================
--- googlegadgets/trunk/src/main/resources/env.txt	                        (rev 0)
+++ googlegadgets/trunk/src/main/resources/env.txt	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1 @@
+product


Property changes on: googlegadgets/trunk/src/main/resources/env.txt
___________________________________________________________________
Name: svn:eol-style
   + native

Added: googlegadgets/trunk/src/main/resources/env_ut.txt
===================================================================
--- googlegadgets/trunk/src/main/resources/env_ut.txt	                        (rev 0)
+++ googlegadgets/trunk/src/main/resources/env_ut.txt	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1 @@
+ut
\ No newline at end of file


Property changes on: googlegadgets/trunk/src/main/resources/env_ut.txt
___________________________________________________________________
Name: svn:eol-style
   + native

Added: googlegadgets/trunk/src/main/resources/jdbc.dicon
===================================================================
--- googlegadgets/trunk/src/main/resources/jdbc.dicon	                        (rev 0)
+++ googlegadgets/trunk/src/main/resources/jdbc.dicon	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"
+	"http://www.seasar.org/dtd/components21.dtd">
+<components namespace="jdbc">
+	<include path="jta.dicon"/>
+
+	<!-- for HSQLDB -->
+	<!--
+	<component name="xaDataSource"
+		class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
+		<property name="driverClassName">
+			"org.hsqldb.jdbcDriver"
+		</property>
+		<property name="URL">
+			"jdbc:hsqldb:file:"
+				+ @org.seasar.framework.util.ResourceUtil @ getBuildDir('app.dicon').getCanonicalPath()
+				+ "/data/test"
+		</property>
+		<property name="user">"sa"</property>
+		<property name="password">""</property>
+	</component>
+	-->
+	
+	<!-- for H2 -->
+	<!--
+	<component name="xaDataSource"
+		class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
+		<property name="driverClassName">
+			"org.h2.Driver"
+		</property>
+		<property name="URL">
+			"jdbc:h2:file:"
+				+ @org.seasar.framework.util.ResourceUtil @ getBuildDir(@examples.entity.JdbcManagerTest @ class).getCanonicalPath()
+				+ "/data/demo;DB_CLOSE_ON_EXIT=FALSE"
+		</property>
+		<property name="user">"sa"</property>
+		<property name="password"></property>
+	</component>
+	-->
+	
+	<!-- for Oracle -->
+	<!--
+	<component name="xaDataSource"
+		class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
+		<property name="driverClassName">
+			"oracle.jdbc.driver.OracleDriver"
+		</property>
+		<property name="URL">
+			"jdbc:oracle:thin:@xxx:1521:xxx"
+		</property>
+		<property name="user">"xxx"</property>
+		<property name="password">"xxx"</property>
+	</component>
+	-->
+
+	<!-- for DB2 -->
+	<!--
+	<component name="xaDataSource"
+		class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
+		<property name="driverClassName">
+			"com.ibm.db2.jcc.DB2Driver"
+		</property>
+		<property name="URL">
+			"jdbc:db2://foo.bar.com:50000/SAMPLE"
+		</property>
+		<property name="user">"db2user"</property>
+		<property name="password">"db2password"</property>
+		<initMethod name="addProperty">
+			<arg>"currentSchema"</arg>
+			<arg>"SCHEMA"</arg>
+		</initMethod>
+	</component>
+	-->
+	
+	<!-- for PostgreSQL -->
+	<!--
+	<component name="xaDataSource"
+		class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
+		<property name="driverClassName">
+			"org.postgresql.Driver"
+        </property>
+        <property name="URL">
+          "jdbc:postgresql://localhost/TEST"
+        </property>
+        <property name="user">"xxxx"</property>
+        <property name="password">"xxxx"</property>
+    </component>
+    -->
+
+	<!-- MySQL
+	- MySQL4.0以下でマルチバイト文字を扱う場合には,URL指定の後に,
+		以下の接続パラメータを追加で指定してください.
+		useUnicode=true
+		characterEncoding=[MySQLのエンコーディングに対応した
+		Javaのエンコーディング名]
+		例:"jdbc:mysql://localhost:3306/test?useUnicode=true" +
+		"&amp;characterEncoding=Windows-31J"
+		
+	- MySQL5.0以降で,エンコーディングがeucjpmsの列を扱う場合には,
+		URL指定の後に,以下の接続パラメータを追加で指定してください.
+		characterEncoding=UTF-8またはWindows-31J
+		characterSetResults=UTF-8またはWindows-31J
+		例:"jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8" +
+		"&amp;characterSetResults=UTF-8"
+		この指定をしない場合,Java側でUCS-2⇔EUC_JP_Solarisの変換が
+		行なわれるため,ユーザー定義外字などの一部の文字が化けます.
+		この指定をすることで,MySQL側でeucjpms⇔ucs2⇔utf8(cp932)の
+		変換が行なわれ,Java側でUCS-2⇔UTF-8(Windows-31J)の変換が
+		行なわれるようになります.この結果,文字化けを防げます.
+		なおJIS X 0212(補助漢字)を使用する場合は,Windows-31Jではなく
+		UTF-8を指定する必要があります.
+		
+	- 上記以外の場合は,my.cnfでdefault-character-setの設定を適切に
+		(cp932やutf8など.デフォルトのlatin1は不可)行なっていれば,
+		文字化けは防げます.
+	<component name="xaDataSource"
+		class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
+		<property name="driverClassName">
+			"com.mysql.jdbc.Driver"
+		</property>
+		<property name="URL">
+			"jdbc:mysql://localhost:3306/test"
+		</property>
+		<property name="user">"xxx"</property>
+		<property name="password">"xxx"</property>
+	</component>
+	-->
+
+	<!-- for SQLServer -->
+	<!--
+	<component name="xaDataSource"
+		class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
+		<property name="driverClassName">
+			"net.sourceforge.jtds.jdbc.Driver"
+        </property>
+        <property name="URL">
+            "jdbc:jtds:sqlserver://localhost/TEST;instance=SQLEXPRESS"
+        </property>
+        <property name="user">"xxxx"</property>
+        <property name="password">"xxxx"</property>
+    </component>
+	-->
+
+	<!--
+	<component name="connectionPool"
+		class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">
+		<property name="timeout">600</property>
+		<property name="maxPoolSize">10</property>
+		<property name="allowLocalTx">true</property>
+		<destroyMethod name="close"/>
+	</component>
+
+	<component name="DataSource"
+		class="org.seasar.extension.dbcp.impl.DataSourceImpl"
+	/>
+	-->
+
+	<!-- from JNDI -->
+	<!--
+	<component name="DataSource"
+		class="javax.sql.DataSource">
+		@org.seasar.extension.j2ee.JndiResourceLocator @ lookup("java:comp/env/jdbc/DataSource")
+	</component>
+	-->
+
+	<!--
+	<component name="dataSource"
+		class="org.seasar.extension.datasource.impl.SelectableDataSourceProxy"/>
+	-->
+
+</components>

Added: googlegadgets/trunk/src/main/resources/s2container.dicon
===================================================================
--- googlegadgets/trunk/src/main/resources/s2container.dicon	                        (rev 0)
+++ googlegadgets/trunk/src/main/resources/s2container.dicon	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN" 
+	"http://www.seasar.org/dtd/components24.dtd">
+<components>
+    <include condition="#ENV == 'ut'" path="warmdeploy.dicon"/>
+    <include condition="#ENV == 'ct'" path="hotdeploy.dicon"/>
+    <include condition="#ENV != 'ut' and #ENV != 'ct'" path="cooldeploy.dicon"/>
+</components>
\ No newline at end of file

Added: googlegadgets/trunk/src/main/webapp/WEB-INF/portlet.xml
===================================================================
--- googlegadgets/trunk/src/main/webapp/WEB-INF/portlet.xml	                        (rev 0)
+++ googlegadgets/trunk/src/main/webapp/WEB-INF/portlet.xml	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright 2004-2008 PAL Project and the Others.
+ *
+ * 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.
+-->
+<portlet-app version="1.0" 
+    xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" 
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd">
+  <portlet>
+    <description>Display Google Gadgets on your portal.</description>
+    <description xml:lang="ja">Googleガジェットをポータル上に表示します。</description>
+    <portlet-name>GoogleGadget</portlet-name>
+    <display-name>Google Gadget</display-name>
+    <display-name xml:lang="ja">Googleガジェット</display-name>
+    <portlet-class>org.seasar.struts.portlet.SAStrutsPortlet</portlet-class>
+    <init-param>
+      <name>viewPage</name>
+      <value>/view/</value>
+    </init-param>
+    <init-param>
+      <name>editPage</name>
+      <value>/edit/</value>
+    </init-param>
+    <expiration-cache>0</expiration-cache>
+    <supports>
+      <mime-type>text/html</mime-type>
+      <portlet-mode>VIEW</portlet-mode>
+      <portlet-mode>EDIT</portlet-mode>
+    </supports>
+    <supported-locale>en</supported-locale>
+    <supported-locale>ja</supported-locale>
+    <portlet-info>
+      <title>Google Gadget</title>
+      <short-title>Gadget</short-title>
+      <keywords>Google,Gadget</keywords>
+    </portlet-info>
+  </portlet>
+</portlet-app>
+


Property changes on: googlegadgets/trunk/src/main/webapp/WEB-INF/portlet.xml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: googlegadgets/trunk/src/main/webapp/WEB-INF/struts-config.xml
===================================================================
--- googlegadgets/trunk/src/main/webapp/WEB-INF/struts-config.xml	                        (rev 0)
+++ googlegadgets/trunk/src/main/webapp/WEB-INF/struts-config.xml	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,56 @@
+<?xml version="1.0"?>
+
+<!DOCTYPE struts-config PUBLIC
+          "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
+          "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
+
+<struts-config>
+
+<!-- ======================================== Form Bean Definitions -->
+
+    <form-beans>
+    </form-beans>
+
+<!-- ================================= Global Exception Definitions -->
+
+    <global-exceptions>
+    	<exception path="/WEB-INF/view/error/norole.jsp" key="errors.norole" type="org.seasar.struts.exception.NoRoleRuntimeException"/>
+    </global-exceptions>
+
+<!-- =================================== Global Forward Definitions -->
+
+    <global-forwards>
+    </global-forwards>
+
+<!-- =================================== Action Mapping Definitions -->
+
+    <action-mappings>
+    </action-mappings>
+    
+
+<!-- ===================================== Controller Configuration -->
+
+    <controller
+        maxFileSize="1024K"
+        bufferSize="1024"
+        processorClass="org.seasar.struts.portlet.action.S2RequestProcessor"
+        multipartClass="org.seasar.struts.upload.S2MultipartRequestHandler"/>
+<!-- REPLACED:
+        processorClass="org.seasar.struts.action.S2RequestProcessor"
+-->
+
+
+<!-- ================================ Message Resources Definitions -->
+
+    <message-resources parameter="application"
+        factory="org.seasar.struts.util.S2PropertyMessageResourcesFactory"/>
+
+<!-- ======================================= Plug Ins Configuration -->
+
+    <plug-in className="org.seasar.struts.validator.S2ValidatorPlugIn">
+        <set-property
+          property="pathnames"
+          value="/WEB-INF/validator-rules.xml"/>
+    </plug-in>
+</struts-config>
+


Property changes on: googlegadgets/trunk/src/main/webapp/WEB-INF/struts-config.xml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: googlegadgets/trunk/src/main/webapp/WEB-INF/validator-rules.xml
===================================================================
--- googlegadgets/trunk/src/main/webapp/WEB-INF/validator-rules.xml	                        (rev 0)
+++ googlegadgets/trunk/src/main/webapp/WEB-INF/validator-rules.xml	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,352 @@
+<!DOCTYPE form-validation PUBLIC
+          "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
+          "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
+<!--
+
+   This file contains the default Struts Validator pluggable validator
+   definitions.  It should be placed somewhere under /WEB-INF and
+   referenced in the struts-config.xml under the plug-in element
+   for the ValidatorPlugIn.
+
+      <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
+        <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,
+                                                  /WEB-INF/validation.xml"/>
+      </plug-in>
+
+   These are the default error messages associated with
+   each validator defined in this file.  They should be
+   added to your projects ApplicationResources.properties
+   file or you can associate new ones by modifying the
+   pluggable validators msg attributes in this file.
+
+   # Struts Validator Error Messages
+   errors.required={0} is required.
+   errors.minlength={0} can not be less than {1} characters.
+   errors.maxlength={0} can not be greater than {1} characters.
+   errors.invalid={0} is invalid.
+
+   errors.byte={0} must be a byte.
+   errors.short={0} must be a short.
+   errors.integer={0} must be an integer.
+   errors.long={0} must be a long.
+   errors.float={0} must be a float.
+   errors.double={0} must be a double.
+
+   errors.date={0} is not a date.
+   errors.range={0} is not in the range {1} through {2}.
+   errors.creditcard={0} is an invalid credit card number.
+   errors.email={0} is an invalid e-mail address.
+   errors.url={0} is an invalid url (web address).
+
+   errors.minbytelength={0} can not be less than {1} bytes.
+   errors.maxbytelength={0} can not be greater than {1} bytes.
+   
+   Note: Starting in Struts 1.2.0 the default javascript definitions have
+         been consolidated to commons-validator. The default can be overridden
+         by supplying a <javascript> element with a CDATA section, just as
+         in struts 1.1.
+
+-->
+
+<form-validation>
+
+   <global>
+
+      <validator name="required"
+            classname="org.apache.struts.validator.FieldChecks"
+               method="validateRequired"
+         methodParams="java.lang.Object,
+                       org.apache.commons.validator.ValidatorAction,
+                       org.apache.commons.validator.Field,
+                       org.apache.struts.action.ActionMessages,
+                       org.apache.commons.validator.Validator,
+                       javax.servlet.http.HttpServletRequest"
+                  msg="errors.required"/>
+
+      <validator name="requiredif"
+                 classname="org.apache.struts.validator.FieldChecks"
+                 method="validateRequiredIf"
+                 methodParams="java.lang.Object,
+                               org.apache.commons.validator.ValidatorAction,
+                               org.apache.commons.validator.Field,
+                               org.apache.struts.action.ActionMessages,
+                               org.apache.commons.validator.Validator,
+                               javax.servlet.http.HttpServletRequest"
+                 msg="errors.required"/>
+
+      <validator name="validwhen"
+          msg="errors.required"
+                 classname="org.apache.struts.validator.validwhen.ValidWhen"
+                 method="validateValidWhen"
+                 methodParams="java.lang.Object,
+                       org.apache.commons.validator.ValidatorAction,
+                       org.apache.commons.validator.Field,
+                       org.apache.struts.action.ActionMessages,
+                       org.apache.commons.validator.Validator,
+                       javax.servlet.http.HttpServletRequest"/>
+
+
+      <validator name="minlength"
+            classname="org.apache.struts.validator.FieldChecks"
+               method="validateMinLength"
+         methodParams="java.lang.Object,
+                       org.apache.commons.validator.ValidatorAction,
+                       org.apache.commons.validator.Field,
+                       org.apache.struts.action.ActionMessages,
+                       org.apache.commons.validator.Validator,
+                       javax.servlet.http.HttpServletRequest"
+              depends=""
+                  msg="errors.minlength"
+           jsFunction="org.apache.commons.validator.javascript.validateMinLength"/>
+
+
+      <validator name="maxlength"
+            classname="org.apache.struts.validator.FieldChecks"
+               method="validateMaxLength"
+         methodParams="java.lang.Object,
+                       org.apache.commons.validator.ValidatorAction,
+                       org.apache.commons.validator.Field,
+                       org.apache.struts.action.ActionMessages,
+                       org.apache.commons.validator.Validator,
+                       javax.servlet.http.HttpServletRequest"
+              depends=""
+                  msg="errors.maxlength"
+           jsFunction="org.apache.commons.validator.javascript.validateMaxLength"/>
+
+
+
+      <validator name="mask"
+            classname="org.apache.struts.validator.FieldChecks"
+               method="validateMask"
+         methodParams="java.lang.Object,
+                       org.apache.commons.validator.ValidatorAction,
+                       org.apache.commons.validator.Field,
+                       org.apache.struts.action.ActionMessages,
+                       org.apache.commons.validator.Validator,
+                       javax.servlet.http.HttpServletRequest"
+              depends=""
+                  msg="errors.invalid"/>
+
+
+      <validator name="byte"
+            classname="org.apache.struts.validator.FieldChecks"
+               method="validateByte"
+         methodParams="java.lang.Object,
+                       org.apache.commons.validator.ValidatorAction,
+                       org.apache.commons.validator.Field,
+                       org.apache.struts.action.ActionMessages,
+                       org.apache.commons.validator.Validator,
+                       javax.servlet.http.HttpServletRequest"
+              depends=""
+                  msg="errors.byte"
+       jsFunctionName="ByteValidations"/>
+
+
+      <validator name="short"
+            classname="org.apache.struts.validator.FieldChecks"
+               method="validateShort"
+         methodParams="java.lang.Object,
+                       org.apache.commons.validator.ValidatorAction,
+                       org.apache.commons.validator.Field,
+                       org.apache.struts.action.ActionMessages,
+                       org.apache.commons.validator.Validator,
+                       javax.servlet.http.HttpServletRequest"
+              depends=""
+                  msg="errors.short"
+       jsFunctionName="ShortValidations"/>
+
+
+      <validator name="integer"
+            classname="org.apache.struts.validator.FieldChecks"
+               method="validateInteger"
+         methodParams="java.lang.Object,
+                       org.apache.commons.validator.ValidatorAction,
+                       org.apache.commons.validator.Field,
+                       org.apache.struts.action.ActionMessages,
+                       org.apache.commons.validator.Validator,
+                       javax.servlet.http.HttpServletRequest"
+              depends=""
+                  msg="errors.integer"
+       jsFunctionName="IntegerValidations"/>
+
+
+
+      <validator name="long"
+            classname="org.apache.struts.validator.FieldChecks"
+               method="validateLong"
+         methodParams="java.lang.Object,
+                       org.apache.commons.validator.ValidatorAction,
+                       org.apache.commons.validator.Field,
+                       org.apache.struts.action.ActionMessages,
+                       org.apache.commons.validator.Validator,
+                       javax.servlet.http.HttpServletRequest"
+              depends=""
+                  msg="errors.long"/>
+
+
+      <validator name="float"
+            classname="org.apache.struts.validator.FieldChecks"
+               method="validateFloat"
+         methodParams="java.lang.Object,
+                       org.apache.commons.validator.ValidatorAction,
+                       org.apache.commons.validator.Field,
+                       org.apache.struts.action.ActionMessages,
+                       org.apache.commons.validator.Validator,
+                       javax.servlet.http.HttpServletRequest"
+              depends=""
+                  msg="errors.float"
+       jsFunctionName="FloatValidations"/>
+
+      <validator name="double"
+            classname="org.apache.struts.validator.FieldChecks"
+               method="validateDouble"
+         methodParams="java.lang.Object,
+                       org.apache.commons.validator.ValidatorAction,
+                       org.apache.commons.validator.Field,
+                       org.apache.struts.action.ActionMessages,
+                       org.apache.commons.validator.Validator,
+                       javax.servlet.http.HttpServletRequest"
+              depends=""
+                  msg="errors.double"/>
+
+
+      <validator name="date"
+            classname="org.apache.struts.validator.FieldChecks"
+               method="validateDate"
+         methodParams="java.lang.Object,
+                       org.apache.commons.validator.ValidatorAction,
+                       org.apache.commons.validator.Field,
+                       org.apache.struts.action.ActionMessages,
+                       org.apache.commons.validator.Validator,
+                       javax.servlet.http.HttpServletRequest"
+              depends=""
+                  msg="errors.date"
+       jsFunctionName="DateValidations"/>
+
+
+      <validator name="intRange"
+            classname="org.apache.struts.validator.FieldChecks"
+               method="validateIntRange"
+         methodParams="java.lang.Object,
+                       org.apache.commons.validator.ValidatorAction,
+                       org.apache.commons.validator.Field,
+                       org.apache.struts.action.ActionMessages,
+                       org.apache.commons.validator.Validator,
+                       javax.servlet.http.HttpServletRequest"
+              depends="integer"
+                  msg="errors.range"/>
+
+
+      <validator name="floatRange"
+            classname="org.apache.struts.validator.FieldChecks"
+               method="validateFloatRange"
+         methodParams="java.lang.Object,
+                       org.apache.commons.validator.ValidatorAction,
+                       org.apache.commons.validator.Field,
+                       org.apache.struts.action.ActionMessages,
+                       org.apache.commons.validator.Validator,
+                       javax.servlet.http.HttpServletRequest"
+              depends="float"
+                  msg="errors.range"/>
+
+      <validator name="doubleRange"
+            classname="org.apache.struts.validator.FieldChecks"
+               method="validateDoubleRange"
+         methodParams="java.lang.Object,
+                       org.apache.commons.validator.ValidatorAction,
+                       org.apache.commons.validator.Field,
+                       org.apache.struts.action.ActionMessages,
+                       org.apache.commons.validator.Validator,
+                       javax.servlet.http.HttpServletRequest"
+              depends="double"
+                  msg="errors.range"/>
+
+      <validator name="creditCard"
+            classname="org.apache.struts.validator.FieldChecks"
+               method="validateCreditCard"
+         methodParams="java.lang.Object,
+                       org.apache.commons.validator.ValidatorAction,
+                       org.apache.commons.validator.Field,
+                       org.apache.struts.action.ActionMessages,
+                       org.apache.commons.validator.Validator,
+                       javax.servlet.http.HttpServletRequest"
+              depends=""
+                  msg="errors.creditcard"/>
+
+
+      <validator name="email"
+            classname="org.apache.struts.validator.FieldChecks"
+               method="validateEmail"
+         methodParams="java.lang.Object,
+                       org.apache.commons.validator.ValidatorAction,
+                       org.apache.commons.validator.Field,
+                       org.apache.struts.action.ActionMessages,
+                       org.apache.commons.validator.Validator,
+                       javax.servlet.http.HttpServletRequest"
+              depends=""
+                  msg="errors.email"/>
+
+      <validator name="url"
+            classname="org.apache.struts.validator.FieldChecks"
+               method="validateUrl"
+         methodParams="java.lang.Object,
+                       org.apache.commons.validator.ValidatorAction,
+                       org.apache.commons.validator.Field,
+                       org.apache.struts.action.ActionMessages,
+                       org.apache.commons.validator.Validator,
+                       javax.servlet.http.HttpServletRequest"
+              depends=""
+                  msg="errors.url"/>
+
+      <validator name="minbytelength"
+            classname="org.seasar.struts.validator.S2FieldChecks"
+               method="validateMinByteLength"
+         methodParams="java.lang.Object,
+                       org.apache.commons.validator.ValidatorAction,
+                       org.apache.commons.validator.Field,
+                       org.apache.struts.action.ActionMessages,
+                       org.apache.commons.validator.Validator,
+                       javax.servlet.http.HttpServletRequest"
+              depends=""
+                  msg="errors.minbytelength"/>
+
+
+      <validator name="maxbytelength"
+            classname="org.seasar.struts.validator.S2FieldChecks"
+               method="validateMaxByteLength"
+         methodParams="java.lang.Object,
+                       org.apache.commons.validator.ValidatorAction,
+                       org.apache.commons.validator.Field,
+                       org.apache.struts.action.ActionMessages,
+                       org.apache.commons.validator.Validator,
+                       javax.servlet.http.HttpServletRequest"
+              depends=""
+                  msg="errors.maxbytelength"/>
+                  
+     <validator name="longRange"
+            classname="org.seasar.struts.validator.S2FieldChecks"
+               method="validateLongRange"
+         methodParams="java.lang.Object,
+                       org.apache.commons.validator.ValidatorAction,
+                       org.apache.commons.validator.Field,
+                       org.apache.struts.action.ActionMessages,
+                       org.apache.commons.validator.Validator,
+                       javax.servlet.http.HttpServletRequest"
+              depends="long"
+                  msg="errors.range"/>
+
+     <!--
+       This simply allows struts to include the validateUtilities into a page, it should
+       not be used as a validation rule.
+     -->
+     <validator name="includeJavaScriptUtilities"
+            classname=""
+               method=""
+         methodParams=""
+              depends=""
+                  msg=""
+           jsFunction="org.apache.commons.validator.javascript.validateUtilities"/>
+
+   </global>
+
+</form-validation>


Property changes on: googlegadgets/trunk/src/main/webapp/WEB-INF/validator-rules.xml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: googlegadgets/trunk/src/main/webapp/WEB-INF/view/common/common.jsp
===================================================================
--- googlegadgets/trunk/src/main/webapp/WEB-INF/view/common/common.jsp	                        (rev 0)
+++ googlegadgets/trunk/src/main/webapp/WEB-INF/view/common/common.jsp	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,8 @@
+<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
+<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
+<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
+<%@taglib prefix="html" uri="http://struts.apache.org/tags-html"%>  
+<%@taglib prefix="bean" uri="http://struts.apache.org/tags-bean"%>  
+<%@taglib prefix="tiles" uri="http://jakarta.apache.org/struts/tags-tiles"%>
+<%@taglib prefix="f" uri="http://sastruts.seasar.org/functions"%>
+<%@taglib prefix="s" uri="http://sastruts.seasar.org/portlet"%>


Property changes on: googlegadgets/trunk/src/main/webapp/WEB-INF/view/common/common.jsp
___________________________________________________________________
Name: svn:eol-style
   + native

Added: googlegadgets/trunk/src/main/webapp/WEB-INF/view/edit/error.jsp
===================================================================
--- googlegadgets/trunk/src/main/webapp/WEB-INF/view/edit/error.jsp	                        (rev 0)
+++ googlegadgets/trunk/src/main/webapp/WEB-INF/view/edit/error.jsp	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,3 @@
+<%@page pageEncoding="UTF-8" %>
+<div><html:messages id="msg" message="true"><bean:write name="msg" ignore="true"/></html:messages><html:errors/></div>
+


Property changes on: googlegadgets/trunk/src/main/webapp/WEB-INF/view/edit/error.jsp
___________________________________________________________________
Name: svn:eol-style
   + native

Added: googlegadgets/trunk/src/main/webapp/WEB-INF/view/edit/index.jsp
===================================================================
--- googlegadgets/trunk/src/main/webapp/WEB-INF/view/edit/index.jsp	                        (rev 0)
+++ googlegadgets/trunk/src/main/webapp/WEB-INF/view/edit/index.jsp	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,30 @@
+<%@page pageEncoding="UTF-8" %>
+<div><html:messages id="msg" message="true"><bean:write name="msg" ignore="true"/></html:messages><html:errors/></div>
+<c:if test="${currentName != null}">
+<div>Current: ${currentName}</div>
+</c:if>
+<div style="padding: 3px;">
+  <table>
+    <thead class="portlet-section-subheader">
+      <tr>
+        <th style="width: 250px;">Name</th>
+        <th style="width: 50px;">Action</th>
+      </tr>
+    </thead>
+    <tbody><c:forEach var="g" varStatus="s" items="${gadgetItems}">
+      <tr style="background-color:${s.index %2 == 0 ? 'eeeeee' : 'e0e0e0'}">
+        <td>${f:h(g.shortName)}</td>
+        <td><s:link href="update/${f:u(g.id)}">Set</s:link></td>
+      </tr>
+    </c:forEach></tbody>
+  </table>
+</div>
+<div style="padding: 3px;">
+<c:if test="${existPrevPage}">
+<s:link href="prev">Previous</s:link>
+</c:if>
+<span>${currentPageNumber}/${allPageCount} (${allRecordCount})</span>
+<c:if test="${existNextPage}">
+<s:link href="next">Next</s:link>
+</c:if>
+</div>


Property changes on: googlegadgets/trunk/src/main/webapp/WEB-INF/view/edit/index.jsp
___________________________________________________________________
Name: svn:eol-style
   + native

Added: googlegadgets/trunk/src/main/webapp/WEB-INF/view/view/error.jsp
===================================================================
--- googlegadgets/trunk/src/main/webapp/WEB-INF/view/view/error.jsp	                        (rev 0)
+++ googlegadgets/trunk/src/main/webapp/WEB-INF/view/view/error.jsp	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,2 @@
+<%@page pageEncoding="UTF-8" %>
+<div><html:messages id="msg" message="true"><bean:write name="msg" ignore="true"/></html:messages><html:errors/></div>


Property changes on: googlegadgets/trunk/src/main/webapp/WEB-INF/view/view/error.jsp
___________________________________________________________________
Name: svn:eol-style
   + native

Added: googlegadgets/trunk/src/main/webapp/WEB-INF/view/view/index.jsp
===================================================================
--- googlegadgets/trunk/src/main/webapp/WEB-INF/view/view/index.jsp	                        (rev 0)
+++ googlegadgets/trunk/src/main/webapp/WEB-INF/view/view/index.jsp	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,2 @@
+<%@page pageEncoding="UTF-8" %>
+<script src="http://gmodules.com/ig/ifr?url=${url}&amp;synd=open&amp;border=%23ffffff%7C3px%2C1px+solid+%23999999&amp;output=js"></script>


Property changes on: googlegadgets/trunk/src/main/webapp/WEB-INF/view/view/index.jsp
___________________________________________________________________
Name: svn:eol-style
   + native

Added: googlegadgets/trunk/src/main/webapp/WEB-INF/web.xml
===================================================================
--- googlegadgets/trunk/src/main/webapp/WEB-INF/web.xml	                        (rev 0)
+++ googlegadgets/trunk/src/main/webapp/WEB-INF/web.xml	2008-09-22 22:38:47 UTC (rev 1170)
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright 2004-2008 PAL Project and the Others.
+ *
+ * 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.
+-->
+<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
+  <display-name>Google Gadgets Portlet</display-name>
+  <description>Display Google Gadgets on your portal.</description>
+  <context-param>
+    <param-name>sastruts.VIEW_PREFIX</param-name>
+    <param-value>/WEB-INF/view</param-value>
+  </context-param>
+  <filter>
+    <filter-name>encodingfilter</filter-name>
+    <filter-class>org.seasar.extension.filter.EncodingFilter</filter-class>
+    <init-param>
+      <param-name>encoding</param-name>
+      <param-value>UTF-8</param-value>
+    </init-param>
+  </filter>
+  <filter>
+    <filter-name>portletRequestFilter</filter-name>
+    <filter-class>org.seasar.struts.portlet.filter.PortletRequestFilter</filter-class>
+  </filter>
+  <filter>
+    <filter-name>requestDumpFilter</filter-name>
+    <filter-class>org.seasar.extension.filter.RequestDumpFilter</filter-class>
+  </filter>
+  <filter>
+    <filter-name>s2filter</filter-name>
+    <filter-class>org.seasar.struts.portlet.filter.S2ContainerFilter</filter-class>
+  </filter>
+  <filter>
+    <filter-name>hotdeployfilter</filter-name>
+    <filter-class>org.seasar.struts.portlet.filter.HotdeployFilter</filter-class>
+  </filter>
+  <filter>
+    <filter-name>routingfilter</filter-name>
+    <filter-class>org.seasar.struts.filter.RoutingFilter</filter-class>
+    <init-param>
+      <param-name>jspDirectAccess</param-name>
+      <param-value>false</param-value>
+    </init-param>
+  </filter>
+  <filter>
+    <filter-name>portletRoutingfilter</filter-name>
+    <filter-class>org.seasar.struts.portlet.filter.PortletRoutingFilter</filter-class>
+    <init-param>
+      <param-name>jspDirectAccess</param-name>
+      <param-value>false</param-value>
+    </init-param>
+  </filter>
+  <filter-mapping>
+    <filter-name>encodingfilter</filter-name>
+    <url-pattern>/*</url-pattern>
+  </filter-mapping>
+  <filter-mapping>
+    <filter-name>portletRequestFilter</filter-name>
+    <url-pattern>/*</url-pattern>
+    <dispatcher>INCLUDE</dispatcher>
+  </filter-mapping>
+  <filter-mapping>
+    <filter-name>s2filter</filter-name>
+    <url-pattern>/*</url-pattern>
+    <dispatcher>REQUEST</dispatcher>
+    <dispatcher>FORWARD</dispatcher>
+    <dispatcher>INCLUDE</dispatcher>
+  </filter-mapping>
+  <filter-mapping>
+    <filter-name>hotdeployfilter</filter-name>
+    <url-pattern>/*</url-pattern>
+    <dispatcher>REQUEST</dispatcher>
+    <dispatcher>FORWARD</dispatcher>
+    <dispatcher>INCLUDE</dispatcher>
+  </filter-mapping>
+  <filter-mapping>
+    <filter-name>routingfilter</filter-name>
+    <url-pattern>/*</url-pattern>
+    <dispatcher>REQUEST</dispatcher>
+  </filter-mapping>
+  <filter-mapping>
+    <filter-name>portletRoutingfilter</filter-name>
+    <url-pattern>/*</url-pattern>
+    <dispatcher>INCLUDE</dispatcher>
+  </filter-mapping>
+  <filter-mapping>
+    <filter-name>requestDumpFilter</filter-name>
+    <url-pattern>*.do</url-pattern>
+    <dispatcher>REQUEST</dispatcher>
+    <dispatcher>FORWARD</dispatcher>
+    <dispatcher>INCLUDE</dispatcher>
+  </filter-mapping>
+  <servlet>
+    <servlet-name>action</servlet-name>
+    <servlet-class>org.seasar.struts.portlet.servlet.ActionServlet</servlet-class>
+    <init-param>
+      <param-name>config</param-name>
+      <param-value>/WEB-INF/struts-config.xml</param-value>
+    </init-param>
+    <init-param>
+      <param-name>configFactory</param-name>
+      <param-value>org.seasar.struts.config.S2ModuleConfigFactory</param-value>
+    </init-param>
+    <load-on-startup>1</load-on-startup>
+  </servlet>
+  <servlet>
+    <servlet-name>s2container</servlet-name>
+    <servlet-class>org.seasar.framework.container.servlet.S2ContainerServlet</servlet-class>
+    <load-on-startup>2</load-on-startup>
+  </servlet>
+  <servlet-mapping>
+    <servlet-name>action</servlet-name>
+    <url-pattern>*.do</url-pattern>
+  </servlet-mapping>
+  <servlet-mapping>
+    <servlet-name>s2container</servlet-name>
+    <url-pattern>/s2container</url-pattern>
+  </servlet-mapping>
+  <welcome-file-list>
+    <welcome-file>index.html</welcome-file>
+    <welcome-file>index.htm</welcome-file>
+    <welcome-file>index.jsp</welcome-file>
+  </welcome-file-list>
+  <jsp-config>
+    <jsp-property-group>
+      <url-pattern>*.jsp</url-pattern>
+      <el-ignored>false</el-ignored>
+      <page-encoding>UTF-8</page-encoding>
+      <scripting-invalid>false</scripting-invalid>
+      <include-prelude>/WEB-INF/view/common/common.jsp</include-prelude>
+    </jsp-property-group>
+  </jsp-config>
+</web-app>


Property changes on: googlegadgets/trunk/src/main/webapp/WEB-INF/web.xml
___________________________________________________________________
Name: svn:eol-style
   + native


pal-cvs メーリングリストの案内