Wikitty-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- 1653 discussions
r876 - in trunk: . wikitty-api wikitty-dto wikitty-generators wikitty-hessian-client wikitty-hessian-server wikitty-jdbc wikitty-perf-test wikitty-solr
by sletellier@users.nuiton.org 09 May '11
by sletellier@users.nuiton.org 09 May '11
09 May '11
Author: sletellier
Date: 2011-05-09 16:21:12 +0200 (Mon, 09 May 2011)
New Revision: 876
Url: http://nuiton.org/repositories/revision/wikitty/876
Log:
[maven-release-plugin] prepare release wikitty-3.1.1
Modified:
trunk/pom.xml
trunk/wikitty-api/pom.xml
trunk/wikitty-dto/pom.xml
trunk/wikitty-generators/pom.xml
trunk/wikitty-hessian-client/pom.xml
trunk/wikitty-hessian-server/pom.xml
trunk/wikitty-jdbc/pom.xml
trunk/wikitty-perf-test/pom.xml
trunk/wikitty-solr/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-05-09 14:14:54 UTC (rev 875)
+++ trunk/pom.xml 2011-05-09 14:21:12 UTC (rev 876)
@@ -15,7 +15,7 @@
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.1.1-SNAPSHOT</version>
+ <version>3.1.1</version>
<modules>
@@ -379,10 +379,10 @@
<!-- Source control management. -->
<scm>
- <connection>scm:svn:http://svn.nuiton.org/svn/wikitty/trunk</connection>
- <developerConnection>scm:svn:http://svn.nuiton.org/svn/wikitty/trunk
+ <connection>scm:svn:http://svn.nuiton.org/svn/wikitty/tags/wikitty-3.1.1</connection>
+ <developerConnection>scm:svn:http://svn.nuiton.org/svn/wikitty/tags/wikitty-3.1.1
</developerConnection>
- <url>http://www.nuiton.org/repositories/browse/wikitty/trunk</url>
+ <url>http://www.nuiton.org/repositories/browse/wikitty/tags/wikitty-3.1.1</url>
</scm>
<!-- ************************************************************* -->
Modified: trunk/wikitty-api/pom.xml
===================================================================
--- trunk/wikitty-api/pom.xml 2011-05-09 14:14:54 UTC (rev 875)
+++ trunk/wikitty-api/pom.xml 2011-05-09 14:21:12 UTC (rev 876)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.1.1-SNAPSHOT</version>
+ <version>3.1.1</version>
</parent>
<!-- ************************************************************* -->
Modified: trunk/wikitty-dto/pom.xml
===================================================================
--- trunk/wikitty-dto/pom.xml 2011-05-09 14:14:54 UTC (rev 875)
+++ trunk/wikitty-dto/pom.xml 2011-05-09 14:21:12 UTC (rev 876)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.1.1-SNAPSHOT</version>
+ <version>3.1.1</version>
</parent>
<!-- ************************************************************* -->
Modified: trunk/wikitty-generators/pom.xml
===================================================================
--- trunk/wikitty-generators/pom.xml 2011-05-09 14:14:54 UTC (rev 875)
+++ trunk/wikitty-generators/pom.xml 2011-05-09 14:21:12 UTC (rev 876)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.1.1-SNAPSHOT</version>
+ <version>3.1.1</version>
</parent>
<!-- ************************************************************* -->
Modified: trunk/wikitty-hessian-client/pom.xml
===================================================================
--- trunk/wikitty-hessian-client/pom.xml 2011-05-09 14:14:54 UTC (rev 875)
+++ trunk/wikitty-hessian-client/pom.xml 2011-05-09 14:21:12 UTC (rev 876)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.1.1-SNAPSHOT</version>
+ <version>3.1.1</version>
</parent>
<!-- ************************************************************* -->
Modified: trunk/wikitty-hessian-server/pom.xml
===================================================================
--- trunk/wikitty-hessian-server/pom.xml 2011-05-09 14:14:54 UTC (rev 875)
+++ trunk/wikitty-hessian-server/pom.xml 2011-05-09 14:21:12 UTC (rev 876)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.1.1-SNAPSHOT</version>
+ <version>3.1.1</version>
</parent>
<!-- ************************************************************* -->
Modified: trunk/wikitty-jdbc/pom.xml
===================================================================
--- trunk/wikitty-jdbc/pom.xml 2011-05-09 14:14:54 UTC (rev 875)
+++ trunk/wikitty-jdbc/pom.xml 2011-05-09 14:21:12 UTC (rev 876)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.1.1-SNAPSHOT</version>
+ <version>3.1.1</version>
</parent>
<groupId>org.nuiton.wikitty</groupId>
Modified: trunk/wikitty-perf-test/pom.xml
===================================================================
--- trunk/wikitty-perf-test/pom.xml 2011-05-09 14:14:54 UTC (rev 875)
+++ trunk/wikitty-perf-test/pom.xml 2011-05-09 14:21:12 UTC (rev 876)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.1.1-SNAPSHOT</version>
+ <version>3.1.1</version>
</parent>
<groupId>org.nuiton.wikitty</groupId>
Modified: trunk/wikitty-solr/pom.xml
===================================================================
--- trunk/wikitty-solr/pom.xml 2011-05-09 14:14:54 UTC (rev 875)
+++ trunk/wikitty-solr/pom.xml 2011-05-09 14:21:12 UTC (rev 876)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>wikitty</artifactId>
- <version>3.1.1-SNAPSHOT</version>
+ <version>3.1.1</version>
</parent>
<!-- ************************************************************* -->
1
0
Author: sletellier
Date: 2011-05-09 16:14:54 +0200 (Mon, 09 May 2011)
New Revision: 875
Url: http://nuiton.org/repositories/revision/wikitty/875
Log:
Fix svn:keywords
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfigAction.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfigOption.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/FacetTopicCountComparator.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/FacetTopicNameComparator.java
trunk/wikitty-api/src/test/java/org/nuiton/wikitty/search/FacetTopicTest.java
trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyManagedDataSource.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionLogin.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationConfig.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationProxy.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationSession.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEval.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionRaw.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionView.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationBaseAction.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationContext.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/FileSystemWIkittyId.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/MimeTypePubHelper.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/PropertiesExtended.java
trunk/wikitty-publication/src/main/resources/struts.properties
trunk/wikitty-publication/src/main/resources/struts.xml
trunk/wikitty-publication/src/main/webapp/WEB-INF/decorators.xml
trunk/wikitty-publication/src/main/webapp/index.jsp
trunk/wikitty-publication/src/site/rst/site-publication.rst
trunk/wikitty-publication/src/site/rst/sync.rst
trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchServerTest.java
trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrTestHelper.java
Property changes on: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfigAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyConfigOption.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/FacetTopicCountComparator.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/FacetTopicNameComparator.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/search/FacetTopicTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyManagedDataSource.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionLogin.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationConfig.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationProxy.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationSession.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEval.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionRaw.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionView.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationBaseAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationContext.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/FileSystemWIkittyId.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/MimeTypePubHelper.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/synchro/PropertiesExtended.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/wikitty-publication/src/main/resources/struts.properties
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/wikitty-publication/src/main/resources/struts.xml
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/wikitty-publication/src/main/webapp/WEB-INF/decorators.xml
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/wikitty-publication/src/main/webapp/index.jsp
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/wikitty-publication/src/site/rst/site-publication.rst
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/wikitty-publication/src/site/rst/sync.rst
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchServerTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Property changes on: trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrTestHelper.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
1
0
r874 - in trunk: wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr
by sletellier@users.nuiton.org 09 May '11
by sletellier@users.nuiton.org 09 May '11
09 May '11
Author: sletellier
Date: 2011-05-09 16:14:08 +0200 (Mon, 09 May 2011)
New Revision: 874
Url: http://nuiton.org/repositories/revision/wikitty/874
Log:
- Update headers
- Renames tests
Added:
trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchInMemoryTest.java
trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchServerTest.java
Removed:
trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearch2Test.java
trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearch3Test.java
Modified:
trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyJDBCUtil.java
trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyManagedDataSource.java
Modified: trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyJDBCUtil.java
===================================================================
--- trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyJDBCUtil.java 2011-05-09 14:13:11 UTC (rev 873)
+++ trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyJDBCUtil.java 2011-05-09 14:14:08 UTC (rev 874)
@@ -364,7 +364,7 @@
public static boolean tableExist(Connection connection, String tableName) throws SQLException {
- // In postgres, tablenames are in lower case, in H2, is in upper case, so we test both
+ // In Postgres, tablenames are in lower case, in H2, are in upper case, so we test both
DatabaseMetaData metaData = connection.getMetaData();
boolean existInLowerCase = metaData.getTables(null, null, tableName, null).next();
@@ -378,7 +378,8 @@
ResultSet typeInfo = connection.getMetaData().getTypeInfo();
while (typeInfo.next()) {
String type = typeInfo.getString("TYPE_NAME");
- if (ArrayUtils.contains(BINARY_TYPES, type)) {
+ // In Postgres, types are in lower case, in H2, are in upper case, so we test both
+ if (ArrayUtils.contains(BINARY_TYPES, type.toLowerCase())) {
return type;
}
}
Modified: trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyManagedDataSource.java
===================================================================
--- trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyManagedDataSource.java 2011-05-09 14:13:11 UTC (rev 873)
+++ trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyManagedDataSource.java 2011-05-09 14:14:08 UTC (rev 874)
@@ -1,3 +1,27 @@
+/*
+ * #%L
+ * Wikitty :: wikitty-jdbc
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2011 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
package org.nuiton.wikitty.jdbc;
import java.sql.Connection;
Deleted: trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearch2Test.java
===================================================================
--- trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearch2Test.java 2011-05-09 14:13:11 UTC (rev 873)
+++ trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearch2Test.java 2011-05-09 14:14:08 UTC (rev 874)
@@ -1,59 +0,0 @@
-/*
- * #%L
- * Wikitty :: wikitty-solr-impl
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2009 - 2011 CodeLutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * #L%
- */
-package org.nuiton.wikitty.storage.solr;
-
-import org.junit.BeforeClass;
-import org.nuiton.util.ApplicationConfig;
-import org.nuiton.wikitty.WikittyConfig;
-import org.nuiton.wikitty.WikittyService;
-import org.nuiton.wikitty.api.AbstractSearchTest;
-
-/**
- * User: couteau
- * Date: 06/04/11
- */
-public class SolrSearch2Test extends AbstractSearchTest {
-
- WikittyService service;
-
- static protected ApplicationConfig config = WikittyConfig.getConfig("wikitty-config-sample-inmemory.properties");
-
- @BeforeClass
- public static void initTests() {
- SolrTestHelper.initTests(config);
- }
-
- @Override
- public WikittyService getWikittyService() {
-
- if (service == null) {
- service = new WikittyServiceSolr(config);
- }
-
- service.clear(null);
-
- return service;
- }
-}
\ No newline at end of file
Deleted: trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearch3Test.java
===================================================================
--- trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearch3Test.java 2011-05-09 14:13:11 UTC (rev 873)
+++ trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearch3Test.java 2011-05-09 14:14:08 UTC (rev 874)
@@ -1,34 +0,0 @@
-package org.nuiton.wikitty.storage.solr;
-
-import org.junit.BeforeClass;
-import org.nuiton.util.ApplicationConfig;
-import org.nuiton.wikitty.WikittyConfig;
-import org.nuiton.wikitty.WikittyService;
-import org.nuiton.wikitty.api.AbstractSearchTest;
-
-/**
- * @author sletellier
- */
-public class SolrSearch3Test extends AbstractSearchTest {
-
- WikittyService service;
-
- static protected ApplicationConfig config = WikittyConfig.getConfig("wikitty-config-sample-server.properties");
-
- @BeforeClass
- public static void initTests() {
- SolrTestHelper.initTests(config);
- }
-
- @Override
- public WikittyService getWikittyService() {
-
- if (service == null) {
- service = new WikittyServiceSolr(config);
- }
-
- service.clear(null);
-
- return service;
- }
-}
\ No newline at end of file
Copied: trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchInMemoryTest.java (from rev 871, trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearch2Test.java)
===================================================================
--- trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchInMemoryTest.java (rev 0)
+++ trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchInMemoryTest.java 2011-05-09 14:14:08 UTC (rev 874)
@@ -0,0 +1,59 @@
+/*
+ * #%L
+ * Wikitty :: wikitty-solr-impl
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2011 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+package org.nuiton.wikitty.storage.solr;
+
+import org.junit.BeforeClass;
+import org.nuiton.util.ApplicationConfig;
+import org.nuiton.wikitty.WikittyConfig;
+import org.nuiton.wikitty.WikittyService;
+import org.nuiton.wikitty.api.AbstractSearchTest;
+
+/**
+ * User: couteau
+ * Date: 06/04/11
+ */
+public class SolrSearchInMemoryTest extends AbstractSearchTest {
+
+ WikittyService service;
+
+ static protected ApplicationConfig config = WikittyConfig.getConfig("wikitty-config-sample-inmemory.properties");
+
+ @BeforeClass
+ public static void initTests() {
+ SolrTestHelper.initTests(config);
+ }
+
+ @Override
+ public WikittyService getWikittyService() {
+
+ if (service == null) {
+ service = new WikittyServiceSolr(config);
+ }
+
+ service.clear(null);
+
+ return service;
+ }
+}
\ No newline at end of file
Property changes on: trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchInMemoryTest.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Copied: trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchServerTest.java (from rev 871, trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearch3Test.java)
===================================================================
--- trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchServerTest.java (rev 0)
+++ trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchServerTest.java 2011-05-09 14:14:08 UTC (rev 874)
@@ -0,0 +1,58 @@
+/*
+ * #%L
+ * Wikitty :: wikitty-solr
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2011 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+package org.nuiton.wikitty.storage.solr;
+
+import org.junit.BeforeClass;
+import org.nuiton.util.ApplicationConfig;
+import org.nuiton.wikitty.WikittyConfig;
+import org.nuiton.wikitty.WikittyService;
+import org.nuiton.wikitty.api.AbstractSearchTest;
+
+/**
+ * @author sletellier
+ */
+public class SolrSearchServerTest extends AbstractSearchTest {
+
+ WikittyService service;
+
+ static protected ApplicationConfig config = WikittyConfig.getConfig("wikitty-config-sample-server.properties");
+
+ @BeforeClass
+ public static void initTests() {
+ SolrTestHelper.initTests(config);
+ }
+
+ @Override
+ public WikittyService getWikittyService() {
+
+ if (service == null) {
+ service = new WikittyServiceSolr(config);
+ }
+
+ service.clear(null);
+
+ return service;
+ }
+}
\ No newline at end of file
1
0
Author: sletellier
Date: 2011-05-09 16:13:11 +0200 (Mon, 09 May 2011)
New Revision: 873
Url: http://nuiton.org/repositories/revision/wikitty/873
Log:
- Use mavenPom commons dependencies
- Fix analyseDependencies
Modified:
trunk/pom.xml
trunk/wikitty-jdbc/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-05-09 14:10:57 UTC (rev 872)
+++ trunk/pom.xml 2011-05-09 14:13:11 UTC (rev 873)
@@ -90,7 +90,8 @@
<scope>compile</scope>
</dependency>
- <dependency>
+ <!-- sletellier : commons dependencies are already declared in mavenpom -->
+ <!--dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
@@ -108,6 +109,12 @@
<artifactId>commons-beanutils</artifactId>
<version>1.8.3</version>
<scope>compile</scope>
+ </dependency-->
+
+ <dependency>
+ <groupId>commons-pool</groupId>
+ <artifactId>commons-pool</artifactId>
+ <version>1.5.4</version>
</dependency>
<dependency>
@@ -213,6 +220,7 @@
<version>4.9.0.GA</version>
<scope>compile</scope>
</dependency>
+
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
Modified: trunk/wikitty-jdbc/pom.xml
===================================================================
--- trunk/wikitty-jdbc/pom.xml 2011-05-09 14:10:57 UTC (rev 872)
+++ trunk/wikitty-jdbc/pom.xml 2011-05-09 14:13:11 UTC (rev 873)
@@ -76,11 +76,6 @@
</dependency>
<dependency>
- <groupId>jboss.jbossts</groupId>
- <artifactId>jbossjta</artifactId>
- </dependency>
-
- <dependency>
<groupId>org.nuiton</groupId>
<artifactId>nuiton-utils</artifactId>
</dependency>
@@ -95,7 +90,17 @@
<artifactId>postgresql</artifactId>
<scope>test</scope>
</dependency>
-
+
+ <dependency>
+ <groupId>commons-pool</groupId>
+ <artifactId>commons-pool</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ </dependency>
+
</dependencies>
<!-- ************************************************************* -->
1
0
r872 - trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action
by mfortun@users.nuiton.org 09 May '11
by mfortun@users.nuiton.org 09 May '11
09 May '11
Author: mfortun
Date: 2011-05-09 16:10:57 +0200 (Mon, 09 May 2011)
New Revision: 872
Url: http://nuiton.org/repositories/revision/wikitty/872
Log:
* correct todo
* remove unused import
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEval.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationBaseAction.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationContext.java
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEval.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEval.java 2011-05-09 14:07:29 UTC (rev 871)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEval.java 2011-05-09 14:10:57 UTC (rev 872)
@@ -2,36 +2,27 @@
import java.io.ByteArrayInputStream;
import java.io.InputStream;
-import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.nuiton.util.ApplicationConfig;
-import org.nuiton.util.ObjectUtil;
import org.nuiton.util.StringUtil;
import org.nuiton.wikitty.ScriptEvaluator;
import org.nuiton.wikitty.WikittyProxy;
import org.nuiton.wikitty.WikittyService;
import org.nuiton.wikitty.entities.Wikitty;
-import org.nuiton.wikitty.entities.WikittyExtension;
-import org.nuiton.wikitty.publication.AbstractActionOnWikitty;
-import org.nuiton.wikitty.publication.WikittyPublicationAction;
import org.nuiton.wikitty.publication.WikittyPublicationConfig;
-import org.nuiton.wikitty.publication.WikittyPublicationProxy;
import org.nuiton.wikitty.publication.entities.WikittyPubText;
import org.nuiton.wikitty.publication.entities.WikittyPubTextHelper;
import org.nuiton.wikitty.search.Criteria;
-
import com.opensymphony.xwork2.ActionContext;
public class PublicationActionEval extends PublicationBaseAction implements
@@ -203,7 +194,7 @@
@Override
public String getActionName() {
- // TODO mfortun
+ // TODO mfortun-2011-05-09 really needed ?
throw new UnsupportedOperationException("not yet implemented");
// return null;
@@ -236,7 +227,7 @@
@Override
public List<String> getMandatoryArguments() {
- // TODO mfortun
+ // TODO mfortun-2011-05-09 really needed ?
throw new UnsupportedOperationException("not yet implemented");
// return null;
@@ -244,7 +235,7 @@
@Override
public Map<String, String> getArguments() {
- // TODO mfortun
+ // TODO mfortun-2011-05-09 really needed ?
throw new UnsupportedOperationException("not yet implemented");
// return null;
@@ -252,7 +243,7 @@
@Override
public Map<String, byte[]> getArgumentFiles() {
- // TODO mfortun
+ // TODO mfortun-2011-05-09 really needed ?
throw new UnsupportedOperationException("not yet implemented");
// return null;
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationBaseAction.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationBaseAction.java 2011-05-09 14:07:29 UTC (rev 871)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationBaseAction.java 2011-05-09 14:10:57 UTC (rev 872)
@@ -2,21 +2,13 @@
import java.util.List;
import java.util.Map;
-
import org.apache.struts2.interceptor.SessionAware;
-import org.nuiton.wikitty.WikittyUtil;
-import org.nuiton.wikitty.entities.Wikitty;
-import org.nuiton.wikitty.entities.WikittyExtension;
-
import org.nuiton.wikitty.publication.WikittyPublicationProxy;
import org.nuiton.wikitty.publication.WikittyPublicationSession;
import org.nuiton.wikitty.publication.entities.WikittyPubData;
-import org.nuiton.wikitty.publication.entities.WikittyPubDataHelper;
import org.nuiton.wikitty.publication.entities.WikittyPubText;
-import org.nuiton.wikitty.publication.entities.WikittyPubTextHelper;
import org.nuiton.wikitty.search.Criteria;
import org.nuiton.wikitty.search.Search;
-
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationContext.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationContext.java 2011-05-09 14:07:29 UTC (rev 871)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationContext.java 2011-05-09 14:10:57 UTC (rev 872)
@@ -9,8 +9,8 @@
import org.nuiton.util.ApplicationConfig;
import org.nuiton.wikitty.WikittyProxy;
import org.nuiton.wikitty.WikittyService;
-import org.nuiton.wikitty.publication.WikittyPublicationAction;
+
public interface PublicationContext {
1
0
r871 - in trunk/wikitty-publication/src/main: java/org/nuiton/wikitty/publication/action resources
by mfortun@users.nuiton.org 09 May '11
by mfortun@users.nuiton.org 09 May '11
09 May '11
Author: mfortun
Date: 2011-05-09 16:07:29 +0200 (Mon, 09 May 2011)
New Revision: 871
Url: http://nuiton.org/repositories/revision/wikitty/871
Log:
* correct action raw
* add action eval
Added:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEval.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationContext.java
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionRaw.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionView.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationBaseAction.java
trunk/wikitty-publication/src/main/resources/struts.xml
Added: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEval.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEval.java (rev 0)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEval.java 2011-05-09 14:07:29 UTC (rev 871)
@@ -0,0 +1,277 @@
+package org.nuiton.wikitty.publication.action;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.io.ObjectOutputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.struts2.interceptor.ServletRequestAware;
+import org.apache.struts2.interceptor.ServletResponseAware;
+import org.nuiton.util.ApplicationConfig;
+import org.nuiton.util.ObjectUtil;
+import org.nuiton.util.StringUtil;
+import org.nuiton.wikitty.ScriptEvaluator;
+import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.WikittyService;
+import org.nuiton.wikitty.entities.Wikitty;
+import org.nuiton.wikitty.entities.WikittyExtension;
+import org.nuiton.wikitty.publication.AbstractActionOnWikitty;
+import org.nuiton.wikitty.publication.WikittyPublicationAction;
+import org.nuiton.wikitty.publication.WikittyPublicationConfig;
+import org.nuiton.wikitty.publication.WikittyPublicationProxy;
+import org.nuiton.wikitty.publication.entities.WikittyPubText;
+import org.nuiton.wikitty.publication.entities.WikittyPubTextHelper;
+import org.nuiton.wikitty.search.Criteria;
+
+import com.opensymphony.xwork2.ActionContext;
+
+public class PublicationActionEval extends PublicationBaseAction implements
+ ServletResponseAware, ServletRequestAware, PublicationContext {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -7649132751822833474L;
+ /** to use log facility, just put in your code: log.info(\"...\"); */
+ static private Log log = LogFactory.getLog(PublicationActionEval.class);
+
+ protected String contentType;
+ protected HttpServletResponse response;
+ protected HttpServletRequest request;
+ protected InputStream inputStream;
+
+ /** variable contenant l'instance de la classe ActionEval */
+ static final public String EVAL_VAR = "wpEval";
+ /** variable name use to put context in script and jsp */
+ static final public String CONTEXT_VAR = "wpContext";
+ /** contient la liste des arguments mandatory non encore utilise */
+ static final public String SUBCONTEXT_VAR = "wpSubContext";
+ /**
+ * contient le nom de la page WikittyPubText (ex: Wiki) ou la requete ayant
+ * permis de trouver la page (ex: MyScript.name=df)
+ */
+ static final public String PAGE_NAME_VAR = "wpPage";
+ /**
+ * contient le wikitty utilise comme script
+ */
+ static final public String WIKITTY_VAR = "wpWikitty";
+
+ @Override
+ public void setServletResponse(HttpServletResponse arg0) {
+ this.response = arg0;
+ }
+
+ @Override
+ public void setServletRequest(HttpServletRequest arg0) {
+ this.request = arg0;
+
+ }
+
+ @Override
+ public String execute() throws Exception {
+ List<String> argsString = new ArrayList<String>();
+ String args = ActionContext.getContext().getParameters().get(ARGS_KEY)
+ .toString();
+ String[] argsTab = StringUtil.split(args, SEPARATOR);
+
+ for (String arg : argsTab) {
+ argsString.add(arg);
+ }
+
+ inputStream = new ByteArrayInputStream(doAction(this, argsString)
+ .toString().getBytes());
+
+ return SUCCESS;
+ }
+
+ public Object doAction(PublicationContext context, List<String> subContext) {
+ log.info("path " + subContext);
+
+ Object result;
+
+ Criteria criteria = searchCriteria(subContext);
+
+ if (criteria == null) {
+ // rien a evaluer, on retourne une chaine vide
+ result = "";
+ } else {
+ WikittyProxy proxy = context.getWikittyProxy();
+ Wikitty w = proxy.findByCriteria(criteria);
+
+ if (w == null || !w.hasExtension(WikittyPubText.EXT_WIKITTYPUBTEXT)) {
+ context.setContentType("text/plain");
+ result = String.format("no data found for criteria '%s'",
+ criteria);
+ } else {
+ String content = WikittyPubTextHelper.getContent(w);
+
+ if (content == null) {
+ result = getError(context);
+ } else {
+
+ String mimetype = WikittyPubTextHelper.getMimeType(w);
+
+ // supprime de subcontext ce qui a ete utilise dans cette
+ // methode
+ subContext = new ArrayList<String>(subContext.subList(1,
+ subContext.size()));
+
+ Map<String, Object> bindings = new HashMap<String, Object>();
+ bindings.put(PAGE_NAME_VAR, criteria.getName());
+ bindings.put(CONTEXT_VAR, context);
+ bindings.put(SUBCONTEXT_VAR, subContext);
+ bindings.put(WIKITTY_VAR, w);
+ bindings.put(EVAL_VAR, this);
+
+ result = ScriptEvaluator.eval(null, criteria.getName(),
+ content, mimetype, bindings);
+ }
+ }
+ }
+
+ return result;
+ }
+
+ public Object doAction(PublicationContext context, String subContextAsText) {
+ Object result;
+ if (subContextAsText == null || "".equals(subContextAsText)) {
+ result = getError(context);
+ } else {
+ if (subContextAsText.startsWith("/")) {
+ subContextAsText = subContextAsText.substring(1);
+ }
+ String[] subContextArray = StringUtil.split(subContextAsText, "/");
+ List<String> subContext = Arrays.asList(subContextArray);
+ result = doAction(context, subContext);
+ }
+ return result;
+ }
+
+ public Object doAction(PublicationContext context) {
+ Object result;
+ if (context.getMandatoryArguments().size() <= 0) {
+ result = getError(context);
+ } else {
+ result = doAction(context, context.getMandatoryArguments());
+ }
+ return result;
+ }
+
+ public String getMimeType() {
+ return contentType;
+ }
+
+ public void setMimeType(String mimeType) {
+ this.contentType = mimeType;
+ }
+
+ public HttpServletResponse getResponse() {
+ return response;
+ }
+
+ public void setResponse(HttpServletResponse response) {
+ this.response = response;
+ }
+
+ public InputStream getInputStream() {
+ return inputStream;
+ }
+
+ public void setInputStream(InputStream inputStream) {
+ this.inputStream = inputStream;
+ }
+
+
+ @Override
+ public HttpServletRequest getRequest() {
+ return request;
+ }
+
+ @Override
+ public ApplicationConfig getAppConfig() {
+ return WikittyPublicationConfig.getConfig();
+ }
+
+ @Override
+ public String getActionName() {
+ // TODO mfortun
+ throw new UnsupportedOperationException("not yet implemented");
+ // return null;
+
+ }
+
+
+
+ @Override
+ public String makeUrl(String url) {
+ String finalUrl = url;
+ if (!finalUrl.startsWith("/")) {
+ finalUrl = "/" + finalUrl;
+ }
+ //TODO mforun-2011-05-09 rework on this method
+
+ finalUrl = getRequest().getContextPath() + "/" + getArgument(CONTEXT_KEY, "") + finalUrl;
+ finalUrl = getResponse().encodeURL(finalUrl)+".action";
+ if (log.isInfoEnabled()) {
+ log.info(String.format("transforme url from '%s' to '%s'", url,
+ finalUrl));
+ }
+ return finalUrl;
+ }
+
+ @Override
+ public WikittyService getWikittyService() {
+ return getWikittyPublicationProxy().getWikittyService();
+
+ }
+
+ @Override
+ public List<String> getMandatoryArguments() {
+ // TODO mfortun
+ throw new UnsupportedOperationException("not yet implemented");
+ // return null;
+
+ }
+
+ @Override
+ public Map<String, String> getArguments() {
+ // TODO mfortun
+ throw new UnsupportedOperationException("not yet implemented");
+ // return null;
+
+ }
+
+ @Override
+ public Map<String, byte[]> getArgumentFiles() {
+ // TODO mfortun
+ throw new UnsupportedOperationException("not yet implemented");
+ // return null;
+
+ }
+
+
+
+
+ public String getContentType() {
+ return contentType;
+ }
+
+ public void setContentType(String contentType) {
+ this.contentType = contentType;
+ }
+
+ @Override
+ public WikittyProxy getWikittyProxy() {
+ return getWikittyPublicationProxy();
+ }
+
+}
Property changes on: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEval.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionRaw.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionRaw.java 2011-05-09 14:05:52 UTC (rev 870)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionRaw.java 2011-05-09 14:07:29 UTC (rev 871)
@@ -1,24 +1,13 @@
package org.nuiton.wikitty.publication.action;
-import java.io.BufferedInputStream;
-import java.io.BufferedWriter;
+
import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
import java.io.InputStream;
-import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;
-
import javax.servlet.http.HttpServletResponse;
-
import org.apache.struts2.interceptor.ServletResponseAware;
-import org.jivesoftware.smackx.packet.Bytestream;
-import org.nuiton.util.FileUtil;
import org.nuiton.util.StringUtil;
-import org.nuiton.wikitty.WikittyProxy;
-import org.nuiton.wikitty.WikittyUtil;
import org.nuiton.wikitty.entities.Wikitty;
import org.nuiton.wikitty.publication.WikittyPublicationProxy;
import org.nuiton.wikitty.publication.entities.WikittyPubData;
@@ -36,7 +25,6 @@
*
*/
private static final long serialVersionUID = -2570662656931216123L;
- protected Object pageObject;
protected String mimeType;
protected HttpServletResponse response;
protected InputStream inputStream;
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionView.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionView.java 2011-05-09 14:05:52 UTC (rev 870)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionView.java 2011-05-09 14:07:29 UTC (rev 871)
@@ -55,10 +55,6 @@
}
- public String getArgument(String key, String defaultValue){
-
-
- return defaultValue;
- }
+
}
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationBaseAction.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationBaseAction.java 2011-05-09 14:05:52 UTC (rev 870)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationBaseAction.java 2011-05-09 14:07:29 UTC (rev 871)
@@ -17,6 +17,7 @@
import org.nuiton.wikitty.search.Criteria;
import org.nuiton.wikitty.search.Search;
+import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
/**
@@ -26,7 +27,8 @@
* @author mfortun
*
*/
-public class PublicationBaseAction extends ActionSupport implements SessionAware {
+public class PublicationBaseAction extends ActionSupport implements
+ SessionAware {
/**
*
@@ -38,7 +40,7 @@
static final public String ARG_CONTENT_FIELD = "contentField";
static final public String SEARCH_SEPARATOR = ":";
final static protected String CONTEXT_ACTION_KEY = "action";
-
+
static public String SEPARATOR = "/";
static public String CONTEXT_KEY = "context";
static public String ARGS_KEY = "args";
@@ -62,55 +64,44 @@
this.session = sess;
}
-
/**
- * Recherche le type mime dont on a besoin.
- * Par defaut recherche dans les arguments si on a dans l'ordre de preference
- * <li> ARG_MIMETYPE + SEARCH_SEPARATOR + name
- * (ex: mimetype:MyCommand.name:df=text/plain)
- * <li> ARG_MIMETYPE
- * (ex: mimetype=MyCommand.mimetype)
- * <li> si w a l'extension WikittyPubText alors on prend la valeur du champs mimetype
- * <li> si w a l'extension WikittyPubData alors on prend la valeur du champs mimetype
- * <li> on retourne null
- *
+ * Recherche le type mime dont on a besoin. Par defaut recherche dans les
+ * arguments si on a dans l'ordre de preference <li>ARG_MIMETYPE +
+ * SEARCH_SEPARATOR + name (ex: mimetype:MyCommand.name:df=text/plain) <li>
+ * ARG_MIMETYPE (ex: mimetype=MyCommand.mimetype) <li>si w a l'extension
+ * WikittyPubText alors on prend la valeur du champs mimetype <li>si w a
+ * l'extension WikittyPubData alors on prend la valeur du champs mimetype
+ * <li>on retourne null
+ *
* @param context
- * @param name la chaine utilise pour faire la recherche du wikitty
- * @param w le wikitty trouve grace a name
+ * @param name
+ * la chaine utilise pour faire la recherche du wikitty
+ * @param w
+ * le wikitty trouve grace a name
* @return le mimetype ou null
- *
- protected String getMimeType(
- String name, Wikitty w) {
- // looking for mimetype field
- String mimetype = context.getArgument(
- ARG_MIMETYPE + SEARCH_SEPARATOR + name, null);
- if (mimetype == null) {
- mimetype = context.getArgument(ARG_MIMETYPE, null);
- }
- if (mimetype != null) {
- int i = mimetype.indexOf(WikittyUtil.FQ_FIELD_NAME_SEPARATOR);
- if (i > 0) { // perhaps fully qualified field
- String extName = WikittyExtension.extractExtensionName(mimetype);
- String fieldName = WikittyExtension.extractFieldName(mimetype);
- if (w.hasField(extName, fieldName)) {
- // mimetype target field in wikitty
- // replace with field value
- mimetype = w.getFieldAsString(extName, fieldName);
- }
- }
- } else if (w.hasExtension(WikittyPubText.EXT_WIKITTYPUBTEXT)) {
- mimetype = WikittyPubTextHelper.getMimeType(w);
- } else if (w.hasExtension(WikittyPubData.EXT_WIKITTYPUBDATA)) {
- mimetype = WikittyPubDataHelper.getMimeType(w);
- }
- return mimetype;
- }
-*/
+ *
+ * protected String getMimeType( String name, Wikitty w) { //
+ * looking for mimetype field String mimetype = context.getArgument(
+ * ARG_MIMETYPE + SEARCH_SEPARATOR + name, null); if (mimetype ==
+ * null) { mimetype = context.getArgument(ARG_MIMETYPE, null); } if
+ * (mimetype != null) { int i =
+ * mimetype.indexOf(WikittyUtil.FQ_FIELD_NAME_SEPARATOR); if (i > 0)
+ * { // perhaps fully qualified field String extName =
+ * WikittyExtension.extractExtensionName(mimetype); String fieldName
+ * = WikittyExtension.extractFieldName(mimetype); if
+ * (w.hasField(extName, fieldName)) { // mimetype target field in
+ * wikitty // replace with field value mimetype =
+ * w.getFieldAsString(extName, fieldName); } } } else if
+ * (w.hasExtension(WikittyPubText.EXT_WIKITTYPUBTEXT)) { mimetype =
+ * WikittyPubTextHelper.getMimeType(w); } else if
+ * (w.hasExtension(WikittyPubData.EXT_WIKITTYPUBDATA)) { mimetype =
+ * WikittyPubDataHelper.getMimeType(w); } return mimetype; }
+ */
/**
- * Retourne le critere pour recherche l'objet sur lequel faire l'action.
- * Le nom du critere doit etre convenablement positionné avec la chaine
- * qui a permit la recherche
- *
+ * Retourne le critere pour recherche l'objet sur lequel faire l'action. Le
+ * nom du critere doit etre convenablement positionné avec la chaine qui a
+ * permit la recherche
+ *
* @param context
* @return
*/
@@ -123,52 +114,65 @@
if (searchString.contains(SEARCH_SEPARATOR)) {
// on a un field=value
String[] arg = searchString.split(SEARCH_SEPARATOR);
- result = Search.query().eq(arg[0], arg[1]).criteria(searchString);
+ result = Search.query().eq(arg[0], arg[1])
+ .criteria(searchString);
} else {
// on a pas le champs, alors par defaut on recherche dans
// WikittyPubText.name et WikittyPubData.name
- result = Search.query().or()
- .eq(WikittyPubText.FQ_FIELD_WIKITTYPUBTEXT_NAME, searchString)
- .eq(WikittyPubData.FQ_FIELD_WIKITTYPUBDATA_NAME, searchString)
- .criteria(searchString);
+ result = Search
+ .query()
+ .or()
+ .eq(WikittyPubText.FQ_FIELD_WIKITTYPUBTEXT_NAME,
+ searchString)
+ .eq(WikittyPubData.FQ_FIELD_WIKITTYPUBDATA_NAME,
+ searchString).criteria(searchString);
}
}
return result;
}
/**
- * Recherche le champs contenant le content dont on a besoin.
- * Par defaut recherche dans les arguments si on a dans l'ordre de preference
- * <li> ARG_CONTENT_FIELD + SEARCH_SEPARATOR + name
- * (ex: contentField:MyCommand.name:df=MyCommand.script)
- * <li> ARG_CONTENT_FIELD
- * (ex: contentField=MyCommand.script)
- * <li> si w a l'extension WikittyPubText alors on prend le champs content
- * <li> si w a l'extension WikittyPubData alors on prend le champs content
- * <li> on retourne null
- *
+ * Recherche le champs contenant le content dont on a besoin. Par defaut
+ * recherche dans les arguments si on a dans l'ordre de preference <li>
+ * ARG_CONTENT_FIELD + SEARCH_SEPARATOR + name (ex:
+ * contentField:MyCommand.name:df=MyCommand.script) <li>ARG_CONTENT_FIELD
+ * (ex: contentField=MyCommand.script) <li>si w a l'extension WikittyPubText
+ * alors on prend le champs content <li>si w a l'extension WikittyPubData
+ * alors on prend le champs content <li>on retourne null
+ *
* @param context
- * @param name la chaine utilise pour faire la recherche du wikitty
- * @param w le wikitty trouve grace a name
+ * @param name
+ * la chaine utilise pour faire la recherche du wikitty
+ * @param w
+ * le wikitty trouve grace a name
* @return le champs contenant le content ou null
- *
- protected String getContentFieldName(WikittyPublicationContext context,
- String name, Wikitty w) {
- String contentField = context.getArgument(
- ARG_CONTENT_FIELD + SEARCH_SEPARATOR + name, null);
- if (contentField == null) {
- contentField = context.getArgument(ARG_CONTENT_FIELD, null);
+ *
+ * protected String getContentFieldName(WikittyPublicationContext
+ * context, String name, Wikitty w) { String contentField =
+ * context.getArgument( ARG_CONTENT_FIELD + SEARCH_SEPARATOR + name,
+ * null); if (contentField == null) { contentField =
+ * context.getArgument(ARG_CONTENT_FIELD, null); } if (contentField
+ * == null) { if (w.hasExtension(WikittyPubText.EXT_WIKITTYPUBTEXT))
+ * { contentField = WikittyPubText.FQ_FIELD_WIKITTYPUBTEXT_CONTENT;
+ * } else if (w.hasExtension(WikittyPubData.EXT_WIKITTYPUBDATA)) {
+ * contentField = WikittyPubData.FQ_FIELD_WIKITTYPUBDATA_CONTENT; }
+ * } return contentField; }
+ */
+
+ protected String getError(PublicationContext context) {
+ context.setContentType("text/html");
+ String result = String.format("<h1>bad query %s</h1>");
+ return result;
+ }
+
+ public String getArgument(String key, String defaultValue) {
+ String result = ActionContext.getContext().getParameters().get(key)
+ .toString();
+
+ if (result == null) {
+ result = defaultValue;
}
- if (contentField == null) {
- if (w.hasExtension(WikittyPubText.EXT_WIKITTYPUBTEXT)) {
- contentField = WikittyPubText.FQ_FIELD_WIKITTYPUBTEXT_CONTENT;
- } else if (w.hasExtension(WikittyPubData.EXT_WIKITTYPUBDATA)) {
- contentField = WikittyPubData.FQ_FIELD_WIKITTYPUBDATA_CONTENT;
- }
- }
- return contentField;
+ return result;
}
-*/
-
}
Added: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationContext.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationContext.java (rev 0)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationContext.java 2011-05-09 14:07:29 UTC (rev 871)
@@ -0,0 +1,67 @@
+package org.nuiton.wikitty.publication.action;
+
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.nuiton.util.ApplicationConfig;
+import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.WikittyService;
+import org.nuiton.wikitty.publication.WikittyPublicationAction;
+
+public interface PublicationContext {
+
+
+ /**
+ * set attributes:
+ * <li> req
+ * <li> wsContext
+ * <li> actionName
+ * <li> mandatoryArguments
+ * <li> arguments
+ *
+ * @param req
+ */
+
+
+ public abstract HttpServletRequest getRequest();
+
+ public abstract HttpServletResponse getResponse();
+
+ public abstract ApplicationConfig getAppConfig();
+
+ /**
+ * le nom de l'action a faire
+ * @return
+ */
+ public abstract String getActionName();
+
+
+ public abstract WikittyProxy getWikittyProxy();
+
+ /**
+ * add context to the url and parameter if necessary
+ * @param url
+ * @return
+ */
+ public abstract String makeUrl(String url);
+
+ public abstract WikittyService getWikittyService();
+
+ public abstract List<String> getMandatoryArguments();
+
+ public abstract Map<String, String> getArguments();
+
+ public abstract Map<String, byte[]> getArgumentFiles();
+
+ public abstract String getArgument(String name, String defaultValue);
+
+ public abstract String getContentType();
+
+ public abstract void setContentType(String contentType);
+
+ public abstract String toString();
+
+}
\ No newline at end of file
Property changes on: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationContext.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/wikitty-publication/src/main/resources/struts.xml
===================================================================
--- trunk/wikitty-publication/src/main/resources/struts.xml 2011-05-09 14:05:52 UTC (rev 870)
+++ trunk/wikitty-publication/src/main/resources/struts.xml 2011-05-09 14:07:29 UTC (rev 871)
@@ -35,6 +35,17 @@
</result>
</action>
+
+
+ <action name="*/eval/*"
+ class="org.nuiton.wikitty.publication.action.PublicationActionEval">
+ <param name="context">{1}</param>
+ <param name="args">{2}</param>
+ <result type="stream">
+ <param name="contentType">mimeType</param>
+ <param name="inputName">inputStream</param>
+ </result>
+ </action>
</package>
1
0
r870 - trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication
by mfortun@users.nuiton.org 09 May '11
by mfortun@users.nuiton.org 09 May '11
09 May '11
Author: mfortun
Date: 2011-05-09 16:05:52 +0200 (Mon, 09 May 2011)
New Revision: 870
Url: http://nuiton.org/repositories/revision/wikitty/870
Log:
* remove old file/action
Removed:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionRaw.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationServlet.java
Deleted: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionRaw.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionRaw.java 2011-05-09 12:39:54 UTC (rev 869)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionRaw.java 2011-05-09 14:05:52 UTC (rev 870)
@@ -1,123 +0,0 @@
-/*
- * #%L
- * Wikitty :: publication
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2010 CodeLutin, Benjamin Poussin, Benjamin Poussin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * #L%
- */
-package org.nuiton.wikitty.publication;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.ApplicationConfig;
-import org.nuiton.wikitty.WikittyProxy;
-import org.nuiton.wikitty.entities.Wikitty;
-import org.nuiton.wikitty.entities.WikittyExtension;
-import org.nuiton.wikitty.search.Criteria;
-
-/**
- * Action permettant de retourner la valeur d'un champs d'un object.
- * Elle peut-etre utilisee pour retourner une image ou un document stocke dans
- * un champs d'un wikitty
- *
- * Cette action prend deux arguments obligatoires (si pas WikittyPub(Text|Data)
- * <li> l'argument de recherche du wikitty
- * <li> le champs qu'il faut retourner en raw
- *
- * et un argument optionnel
- * <li> le type mime du contenu qui peut-etre un champs de l'objet
- *
- * exemple
- * <pre>
- * ram/WikittyPubData.name=MonImage.jpg
- * ram/WikittyPubText.name=Tuto
- * ram/WikittyPubData.name=MonImage.jpg/WikittyPubData.content?mimetype=WikittyPubData.mimetype
- * ram/WikittyPubData.name=MonImage.jpg/WikittyPubData.mimetype?mimetype=text/plain
- * ram/WikittyPubText.name=Tuto/WikittyPubText.content?mimetype=WikittyPubText.mimetype
- * ram/WikittyUser.login=admin/WikittyUser.password?mimetype=text/plain
- * </pre>
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public class ActionRaw extends AbstractActionOnWikitty {
-
- /** to use log facility, just put in your code: log.info(\"...\"); */
- static private Log log = LogFactory.getLog(ActionError.class);
-
- static final protected String exampleUsage =
- "ram/WikittyPubData.name=MonImage.jpg/WikittyPubData.content?mimetype=WikittyPubData.mimetype\n"
- + "ram/Tuto\n"
- + "ram/Tuto/WikittyPubText.content\n"
- + "ram/WikittyPubText.name=Tuto/WikittyPubText.content\n"
- + "ram/WikittyPubText.name=Tuto/WikittyPubText.content?mimetype=WikittyPubText.mimetype\n"
- + "ram/WikittyUser.login=admin/WikittyUser.password?mimetype=text/plain\n";
-
- protected ApplicationConfig appConfig;
-
- public ActionRaw(ApplicationConfig appConfig) {
- this.appConfig = appConfig;
- }
-
- protected String getExampleUsage() {
- return exampleUsage;
- }
-
- @Override
- public Object doAction(WikittyPublicationContext context) {
-
- log.info("args " + context.getMandatoryArguments());
-
- Object result;
- Criteria criteria = searchCriteria(context.getMandatoryArguments());
-
- if (criteria == null) {
- result = getError(context);
- } else {
- WikittyProxy proxy = context.getWikittyProxy();
- Wikitty w = proxy.findByCriteria(criteria);
-
- if (w == null) {
- context.setContentType("text/plain");
- result = String.format(
- "no data found for criteria %s", criteria);
- } else {
- String contentField = getContentFieldName(context, criteria.getName(), w);
-
- if (contentField == null) {
- result = getError(context);
- } else {
- String extName = WikittyExtension.extractExtensionName(contentField);
- String fieldName = WikittyExtension.extractFieldName(contentField);
-
- String mimetype = getMimeType(context, criteria.getName(), w);
- context.setContentType(mimetype);
- result = w.getFieldAsObject(extName, fieldName);
- }
- }
- }
-
- return result;
- }
-
-}
Deleted: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationServlet.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationServlet.java 2011-05-09 12:39:54 UTC (rev 869)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationServlet.java 2011-05-09 14:05:52 UTC (rev 870)
@@ -1,131 +0,0 @@
-/*
- * #%L
- * Wikitty :: publication
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2010 CodeLutin, Benjamin Poussin, Benjamin Poussin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * #L%
- */
-package org.nuiton.wikitty.publication;
-
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.ApplicationConfig;
-import org.nuiton.util.ArgumentsParserException;
-
-/**
- * url:
- * <pre>
- * /[context]/[action]/[action argument]?[action argument]#[fragment]
- * </pre>
- *
- * example:
- * <pre>
- * /codelutin/raw/WikittyPubData.name=lutin.jpg/WikittyPubData.content?mimetype=WikittyPubData.mimetype
- * </pre>
- *
- * <li>la config du WikittyService sera lu dans la config
- * wikitty.publication.config.pattern en remplacant %s par 'default'
- * la valeur de 'wikitty.data.directory' est modifier pour lui ajouter le
- * context par defaut en plus, puis le fichier de config specifique au context est lu
- * qui peut alors ecraser 'wikitty.data.directory' et toutes les autres valeurs
- * par defaut
- * <li>l'action executee sera 'raw' la classe associee sera trouve dans le fichier
- * de config WikittyPublication.
- * <li> le reste sont des arguments specifique a l'action que l'action pourra
- * trouver dans: {@link WikittyPublicationContext#getMandatoryArguments()} et
- * {@link WikittyPublicationContext#getArguments()}.
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public class WikittyPublicationServlet extends HttpServlet {
-
- static public ApplicationConfig appConfig;
-
- /** to use log facility, just put in your code: log.info(\"...\"); */
- static private Log log = LogFactory.getLog(WikittyPublicationServlet.class);
-
- public void init() throws ServletException {
- try {
- appConfig = new ApplicationConfig();
- appConfig.setConfigFileName("wikitty-publication.properties");
- appConfig.parse(null);
- } catch(ArgumentsParserException eee) {
- throw new ServletException("Can't get filename config prefix", eee);
- }
- }
-
- protected void doGet(HttpServletRequest req, HttpServletResponse resp)
- throws ServletException, IOException {
- doPost(req, resp);
- }
-
- protected void doPost(HttpServletRequest req, HttpServletResponse resp)
- throws ServletException, IOException {
-
- Object result;
- WikittyPublicationContext context = new WikittyPublicationContext(appConfig);
- try {
- context.parse(req, resp);
-
- if ("true".equals(context.getArguments().get("debug"))) {
- // debug asked, not do action, but show context
- result = context.toString();
- context.setContentType("text/plain");
- } else {
- WikittyPublicationAction action = context.getAction();
- result = action.doAction(context);
- }
- } catch (Throwable eee) {
- WikittyPublicationAction action = new ActionError(eee);
- result = action.doAction(context);
- }
-
- String contentType = context.getContentType();
- if (contentType != null && contentType.startsWith("forward")) {
- req.getRequestDispatcher(String.valueOf(result)).forward(req, resp);
- } else {
- if (contentType != null) {
- resp.setContentType(contentType);
- }
- if (result instanceof byte[]) {
- ServletOutputStream out = resp.getOutputStream();
- out.write((byte[]) result);
- out.flush();
- } else {
- PrintWriter out = resp.getWriter();
- out.write(String.valueOf(result));
- out.flush();
- }
- }
- }
-
-}
1
0
r869 - trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc
by sletellier@users.nuiton.org 09 May '11
by sletellier@users.nuiton.org 09 May '11
09 May '11
Author: sletellier
Date: 2011-05-09 14:39:54 +0200 (Mon, 09 May 2011)
New Revision: 869
Url: http://nuiton.org/repositories/revision/wikitty/869
Log:
Fix tests : tables columns are in upper case in H2
Modified:
trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyJDBCUtil.java
Modified: trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyJDBCUtil.java
===================================================================
--- trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyJDBCUtil.java 2011-05-09 10:33:48 UTC (rev 868)
+++ trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyJDBCUtil.java 2011-05-09 12:39:54 UTC (rev 869)
@@ -363,11 +363,14 @@
}
public static boolean tableExist(Connection connection, String tableName) throws SQLException {
+
+ // In postgres, tablenames are in lower case, in H2, is in upper case, so we test both
DatabaseMetaData metaData = connection.getMetaData();
- ResultSet tables = metaData.getTables(null, null, tableName, null);
+ boolean existInLowerCase = metaData.getTables(null, null, tableName, null).next();
+ boolean existInUpperCase = metaData.getTables(null, null, tableName.toUpperCase(), null).next();
- return tables.next();
+ return existInLowerCase || existInUpperCase;
}
public static String getSupportedBinaryType(Connection connection) throws SQLException {
1
0
r868 - in trunk/wikitty-publication/src/main: java/org/nuiton/wikitty/publication/action resources
by mfortun@users.nuiton.org 09 May '11
by mfortun@users.nuiton.org 09 May '11
09 May '11
Author: mfortun
Date: 2011-05-09 12:33:48 +0200 (Mon, 09 May 2011)
New Revision: 868
Url: http://nuiton.org/repositories/revision/wikitty/868
Log:
* add raw action
Added:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionRaw.java
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionView.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationBaseAction.java
trunk/wikitty-publication/src/main/resources/struts.xml
Added: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionRaw.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionRaw.java (rev 0)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionRaw.java 2011-05-09 10:33:48 UTC (rev 868)
@@ -0,0 +1,109 @@
+package org.nuiton.wikitty.publication.action;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedWriter;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.StringReader;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.struts2.interceptor.ServletResponseAware;
+import org.jivesoftware.smackx.packet.Bytestream;
+import org.nuiton.util.FileUtil;
+import org.nuiton.util.StringUtil;
+import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.WikittyUtil;
+import org.nuiton.wikitty.entities.Wikitty;
+import org.nuiton.wikitty.publication.WikittyPublicationProxy;
+import org.nuiton.wikitty.publication.entities.WikittyPubData;
+import org.nuiton.wikitty.publication.entities.WikittyPubDataHelper;
+import org.nuiton.wikitty.publication.entities.WikittyPubText;
+import org.nuiton.wikitty.publication.entities.WikittyPubTextHelper;
+import org.nuiton.wikitty.search.Criteria;
+
+import com.opensymphony.xwork2.ActionContext;
+
+public class PublicationActionRaw extends PublicationBaseAction implements
+ ServletResponseAware {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -2570662656931216123L;
+ protected Object pageObject;
+ protected String mimeType;
+ protected HttpServletResponse response;
+ protected InputStream inputStream;
+
+ static public PublicationActionRaw getAction() {
+ return (PublicationActionRaw) ActionContext.getContext().get(
+ CONTEXT_ACTION_KEY);
+ }
+
+ @Override
+ public String execute() throws Exception {
+ constructResult();
+ return SUCCESS;
+ }
+
+ public void constructResult() {
+
+ List<String> argsString = new ArrayList<String>();
+ String args = ActionContext.getContext().getParameters().get(ARGS_KEY)
+ .toString();
+ String[] argsTab = StringUtil.split(args, SEPARATOR);
+
+ for (String arg : argsTab) {
+ argsString.add(arg);
+ }
+
+ Criteria criteria = searchCriteria(argsString);
+
+ WikittyPublicationProxy proxy = getWikittyPublicationProxy();
+
+ Wikitty w = proxy.findByCriteria(criteria);
+
+ try {
+
+ if (w.hasExtension(WikittyPubData.EXT_WIKITTYPUBDATA)) {
+ mimeType = WikittyPubDataHelper.getMimeType(w);
+ inputStream = new ByteArrayInputStream(
+ WikittyPubDataHelper.getContent(w));
+
+ } else if (w.hasExtension(WikittyPubText.EXT_WIKITTYPUBTEXT)) {
+ mimeType = WikittyPubTextHelper.getMimeType(w);
+ inputStream = new ByteArrayInputStream(WikittyPubTextHelper
+ .getContent(w).getBytes());
+ }
+
+ } catch (Exception e) {
+ // TODO mfortun-2011-05-09 really handle exception
+ e.printStackTrace();
+ }
+
+ }
+
+ public String getMimeType() {
+ return mimeType;
+ }
+
+ public void setMimeType(String mimeType) {
+ this.mimeType = mimeType;
+ }
+
+ @Override
+ public void setServletResponse(HttpServletResponse arg0) {
+ this.response = arg0;
+ }
+
+ public InputStream getInputStream() {
+ return inputStream;
+ }
+
+}
Property changes on: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionRaw.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionView.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionView.java 2011-05-06 16:37:24 UTC (rev 867)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionView.java 2011-05-09 10:33:48 UTC (rev 868)
@@ -24,8 +24,6 @@
@Override
public String execute() throws Exception {
- System.out.println("ponay");
-
System.out.println(ActionContext.getContext().getParameters());
SearchForAllWikitty();
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationBaseAction.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationBaseAction.java 2011-05-06 16:37:24 UTC (rev 867)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationBaseAction.java 2011-05-09 10:33:48 UTC (rev 868)
@@ -1,10 +1,21 @@
package org.nuiton.wikitty.publication.action;
+import java.util.List;
import java.util.Map;
import org.apache.struts2.interceptor.SessionAware;
+import org.nuiton.wikitty.WikittyUtil;
+import org.nuiton.wikitty.entities.Wikitty;
+import org.nuiton.wikitty.entities.WikittyExtension;
+
import org.nuiton.wikitty.publication.WikittyPublicationProxy;
import org.nuiton.wikitty.publication.WikittyPublicationSession;
+import org.nuiton.wikitty.publication.entities.WikittyPubData;
+import org.nuiton.wikitty.publication.entities.WikittyPubDataHelper;
+import org.nuiton.wikitty.publication.entities.WikittyPubText;
+import org.nuiton.wikitty.publication.entities.WikittyPubTextHelper;
+import org.nuiton.wikitty.search.Criteria;
+import org.nuiton.wikitty.search.Search;
import com.opensymphony.xwork2.ActionSupport;
@@ -22,7 +33,15 @@
*/
private static final long serialVersionUID = 1865905051843413141L;
+ static final public int ARG_QUERY = 0;
+ static final public String ARG_MIMETYPE = "mimetype";
+ static final public String ARG_CONTENT_FIELD = "contentField";
+ static final public String SEARCH_SEPARATOR = ":";
final static protected String CONTEXT_ACTION_KEY = "action";
+
+ static public String SEPARATOR = "/";
+ static public String CONTEXT_KEY = "context";
+ static public String ARGS_KEY = "args";
protected Map<String, Object> session;
@@ -43,4 +62,113 @@
this.session = sess;
}
+
+ /**
+ * Recherche le type mime dont on a besoin.
+ * Par defaut recherche dans les arguments si on a dans l'ordre de preference
+ * <li> ARG_MIMETYPE + SEARCH_SEPARATOR + name
+ * (ex: mimetype:MyCommand.name:df=text/plain)
+ * <li> ARG_MIMETYPE
+ * (ex: mimetype=MyCommand.mimetype)
+ * <li> si w a l'extension WikittyPubText alors on prend la valeur du champs mimetype
+ * <li> si w a l'extension WikittyPubData alors on prend la valeur du champs mimetype
+ * <li> on retourne null
+ *
+ * @param context
+ * @param name la chaine utilise pour faire la recherche du wikitty
+ * @param w le wikitty trouve grace a name
+ * @return le mimetype ou null
+ *
+ protected String getMimeType(
+ String name, Wikitty w) {
+ // looking for mimetype field
+ String mimetype = context.getArgument(
+ ARG_MIMETYPE + SEARCH_SEPARATOR + name, null);
+ if (mimetype == null) {
+ mimetype = context.getArgument(ARG_MIMETYPE, null);
+ }
+ if (mimetype != null) {
+ int i = mimetype.indexOf(WikittyUtil.FQ_FIELD_NAME_SEPARATOR);
+ if (i > 0) { // perhaps fully qualified field
+ String extName = WikittyExtension.extractExtensionName(mimetype);
+ String fieldName = WikittyExtension.extractFieldName(mimetype);
+ if (w.hasField(extName, fieldName)) {
+ // mimetype target field in wikitty
+ // replace with field value
+ mimetype = w.getFieldAsString(extName, fieldName);
+ }
+ }
+ } else if (w.hasExtension(WikittyPubText.EXT_WIKITTYPUBTEXT)) {
+ mimetype = WikittyPubTextHelper.getMimeType(w);
+ } else if (w.hasExtension(WikittyPubData.EXT_WIKITTYPUBDATA)) {
+ mimetype = WikittyPubDataHelper.getMimeType(w);
+ }
+ return mimetype;
+ }
+*/
+ /**
+ * Retourne le critere pour recherche l'objet sur lequel faire l'action.
+ * Le nom du critere doit etre convenablement positionné avec la chaine
+ * qui a permit la recherche
+ *
+ * @param context
+ * @return
+ */
+ protected Criteria searchCriteria(List<String> subContext) {
+ Criteria result;
+ if (subContext.size() <= 0) {
+ result = null;
+ } else {
+ String searchString = subContext.get(ARG_QUERY);
+ if (searchString.contains(SEARCH_SEPARATOR)) {
+ // on a un field=value
+ String[] arg = searchString.split(SEARCH_SEPARATOR);
+ result = Search.query().eq(arg[0], arg[1]).criteria(searchString);
+ } else {
+ // on a pas le champs, alors par defaut on recherche dans
+ // WikittyPubText.name et WikittyPubData.name
+ result = Search.query().or()
+ .eq(WikittyPubText.FQ_FIELD_WIKITTYPUBTEXT_NAME, searchString)
+ .eq(WikittyPubData.FQ_FIELD_WIKITTYPUBDATA_NAME, searchString)
+ .criteria(searchString);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Recherche le champs contenant le content dont on a besoin.
+ * Par defaut recherche dans les arguments si on a dans l'ordre de preference
+ * <li> ARG_CONTENT_FIELD + SEARCH_SEPARATOR + name
+ * (ex: contentField:MyCommand.name:df=MyCommand.script)
+ * <li> ARG_CONTENT_FIELD
+ * (ex: contentField=MyCommand.script)
+ * <li> si w a l'extension WikittyPubText alors on prend le champs content
+ * <li> si w a l'extension WikittyPubData alors on prend le champs content
+ * <li> on retourne null
+ *
+ * @param context
+ * @param name la chaine utilise pour faire la recherche du wikitty
+ * @param w le wikitty trouve grace a name
+ * @return le champs contenant le content ou null
+ *
+ protected String getContentFieldName(WikittyPublicationContext context,
+ String name, Wikitty w) {
+ String contentField = context.getArgument(
+ ARG_CONTENT_FIELD + SEARCH_SEPARATOR + name, null);
+ if (contentField == null) {
+ contentField = context.getArgument(ARG_CONTENT_FIELD, null);
+ }
+ if (contentField == null) {
+ if (w.hasExtension(WikittyPubText.EXT_WIKITTYPUBTEXT)) {
+ contentField = WikittyPubText.FQ_FIELD_WIKITTYPUBTEXT_CONTENT;
+ } else if (w.hasExtension(WikittyPubData.EXT_WIKITTYPUBDATA)) {
+ contentField = WikittyPubData.FQ_FIELD_WIKITTYPUBDATA_CONTENT;
+ }
+ }
+ return contentField;
+ }
+*/
+
+
}
Modified: trunk/wikitty-publication/src/main/resources/struts.xml
===================================================================
--- trunk/wikitty-publication/src/main/resources/struts.xml 2011-05-06 16:37:24 UTC (rev 867)
+++ trunk/wikitty-publication/src/main/resources/struts.xml 2011-05-09 10:33:48 UTC (rev 868)
@@ -17,38 +17,37 @@
<result>/WEB-INF/jsp/edit.jsp</result>
</action>
- <action name="*/view/*" class="org.nuiton.wikitty.publication.action.PublicationActionView">
+ <action name="*/view/*"
+ class="org.nuiton.wikitty.publication.action.PublicationActionView">
<param name="context">{1}</param>
<param name="args">{2}</param>
<result>/WEB-INF/jsp/view.jsp</result>
</action>
+ <action name="*/raw/*"
+ class="org.nuiton.wikitty.publication.action.PublicationActionRaw">
+ <param name="context">{1}</param>
+ <param name="args">{2}</param>
+ <result type="stream">
+ <param name="contentType">mimeType</param>
+ <param name="inputName">inputStream</param>
+ </result>
+ </action>
+
</package>
-
-
-<!--
- <package name="wikitty-publication" namespace="/" extends="struts-default">
- <default-action-ref name="home" />
- <action name="*/action/*" class="org.nuiton.nospamweb.action.CheckAction">
- <param name="context">{1}</param>
- <param name="args">{1}</param>
- <result name="input">WEB-INF/jsp/captcha.jsp</result>
- <result name="success" type="redirect">${redirectTo}</result>
- </action>
- </package>
- code base for action
-<action name="*/action/*" class="org.nuiton.nospamweb.action.CheckAction">
- <param name="context">{1}</param>
- <param name="args">{1}</param>
- <result name="input">WEB-INF/jsp/captcha.jsp</result>
- <result name="success" type="redirect">${redirectTo}</result>
- </action>
--->
+ <!-- <package name="wikitty-publication" namespace="/" extends="struts-default">
+ <default-action-ref name="home" /> <action name="*/action/*" class="org.nuiton.nospamweb.action.CheckAction">
+ <param name="context">{1}</param> <param name="args">{1}</param> <result
+ name="input">WEB-INF/jsp/captcha.jsp</result> <result name="success" type="redirect">${redirectTo}</result>
+ </action> </package> code base for action <action name="*/action/*" class="org.nuiton.nospamweb.action.CheckAction">
+ <param name="context">{1}</param> <param name="args">{1}</param> <result
+ name="input">WEB-INF/jsp/captcha.jsp</result> <result name="success" type="redirect">${redirectTo}</result>
+ </action> -->
</struts>
1
0
r867 - in trunk/wikitty-jdbc/src/main: java/org/nuiton/wikitty/jdbc resources
by sletellier@users.nuiton.org 06 May '11
by sletellier@users.nuiton.org 06 May '11
06 May '11
Author: sletellier
Date: 2011-05-06 18:37:24 +0200 (Fri, 06 May 2011)
New Revision: 867
Url: http://nuiton.org/repositories/revision/wikitty/867
Log:
#1510 Automatique binary type support by bd on table creation
Removed:
trunk/wikitty-jdbc/src/main/resources/wikitty-jdbc-query-mysql.properties
Modified:
trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyExtensionStorageJDBC.java
trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyJDBCUtil.java
trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyStorageJDBC.java
trunk/wikitty-jdbc/src/main/resources/wikitty-jdbc-query.properties
Modified: trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyExtensionStorageJDBC.java
===================================================================
--- trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyExtensionStorageJDBC.java 2011-05-06 15:59:36 UTC (rev 866)
+++ trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyExtensionStorageJDBC.java 2011-05-06 16:37:24 UTC (rev 867)
@@ -33,9 +33,7 @@
import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CLEAR_EXTENSION;
import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_DELETE_EXTENSION_ADMIN;
import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_DELETE_EXTENSION_DATA;
-import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_EXTENSION_ADMIN_TEST;
import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_EXTENSION_ADMIN;
-import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_EXTENSION_DATA_TEST;
import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_EXTENSION_DATA;
import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_INSERT_EXTENSION_ADMIN;
import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_INSERT_EXTENSION_DATA;
@@ -119,32 +117,25 @@
}
protected void createDatabase(WikittyTransaction tx) {
- Connection connectionTest = WikittyJDBCUtil.getConnection(tx, config);
+ Connection connection = WikittyJDBCUtil.getConnection(tx, config);
try {
- // If test of existance work, no exception and do nothing
- // if exception try to create databse
- Statement statementTest = connectionTest.createStatement();
- statementTest.execute(jdbcQuery.getProperty(QUERY_CREATION_EXTENSION_ADMIN_TEST));
- statementTest.execute(jdbcQuery.getProperty(QUERY_CREATION_EXTENSION_DATA_TEST));
- } catch(Exception silentError) {
- if (log.isInfoEnabled()) {
- log.info("try to create extension database");
- }
- Connection connection = WikittyJDBCUtil.getConnection(tx, config);
- try {
- Statement statement = connection.createStatement();
+ Statement statement = connection.createStatement();
+ if (!WikittyJDBCUtil.tableExist(connection, TABLE_EXTENSION_ADMIN)) {
+ if (log.isInfoEnabled()) {
+ log.info("try to create extension database");
+ }
statement.execute(jdbcQuery.getProperty(QUERY_CREATION_EXTENSION_ADMIN));
- statement.execute(jdbcQuery.getProperty(QUERY_CREATION_EXTENSION_DATA));
- } catch (Exception eee) {
- throw new WikittyException("Can't create table for extension storage", eee);
- } finally {
- WikittyJDBCUtil.closeQuietly(connection);
}
+ if (!WikittyJDBCUtil.tableExist(connection, TABLE_EXTENSION_DATA)) {
+ statement.execute(jdbcQuery.getProperty(QUERY_CREATION_EXTENSION_DATA));
+ }
+ } catch (Exception eee) {
+ throw new WikittyException("Can't create table for extension storage", eee);
} finally {
- WikittyJDBCUtil.closeQuietly(connectionTest);
+ WikittyJDBCUtil.closeQuietly(connection);
}
}
-
+
@Override
public WikittyEvent store(WikittyTransaction tx,
Collection<WikittyExtension> extensions)
Modified: trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyJDBCUtil.java
===================================================================
--- trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyJDBCUtil.java 2011-05-06 15:59:36 UTC (rev 866)
+++ trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyJDBCUtil.java 2011-05-06 16:37:24 UTC (rev 867)
@@ -29,10 +29,14 @@
import java.io.InputStream;
import java.net.URL;
import java.sql.Connection;
+import java.sql.DatabaseMetaData;
import java.sql.PreparedStatement;
+import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
+import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -47,6 +51,7 @@
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -68,6 +73,10 @@
/** to use log facility, just put in your code: log.info(\"...\"); */
static private Log log = LogFactory.getLog(WikittyJDBCUtil.class);
+ /** TODO sletellier 20110506 : reference all binary types existing */
+ /** reference all binary type known for bd, wikitty will search if type is supported for using it */
+ static final public String[] BINARY_TYPES = new String[]{"bytea", "blob"};
+
/** extension list column in the wikitty_admin table */
static final public String COL_EXTENSION = "extension_list";
/** version column in the admin tables */
@@ -113,8 +122,6 @@
static final public String QUERY_SELECT_WHERE_NOTDELETED = "jdbc.queries.select.where.notdeleted";
/** wikitty_admin table creation query property name */
- static final public String QUERY_CREATION_WIKITTY_ADMIN_TEST =
- "jdbc.queries.creation.wikitty.admin.test";
static final public String QUERY_CREATION_WIKITTY_ADMIN =
"jdbc.queries.creation.wikitty.admin";
/** wikitty_data column binary test exits query property name */
@@ -123,12 +130,11 @@
/** wikitty_data column binary creation with alter query property name */
static final public String QUERY_CREATION_WIKITTY_DATA_ALTER_BINARY =
"jdbc.queries.creation.wikitty.data.alter.binary";
- /** wikitty_data table test exists query property name */
- static final public String QUERY_CREATION_WIKITTY_DATA_TEST =
- "jdbc.queries.creation.wikitty.data.test";
/** wikitty_data table creation query property name */
static final public String QUERY_CREATION_WIKITTY_DATA =
"jdbc.queries.creation.wikitty.data";
+ static final public String QUERY_CREATION_WIKITTY_DATA_NO_BINARY =
+ "jdbc.queries.creation.wikitty.data.no.binary";
/** insertion in the admin table query property name */
static final public String QUERY_INSERT_WIKITTY_ADMIN = "jdbc.queries.insert.wikitty.admin";
/** update in the admin table query property name */
@@ -151,13 +157,9 @@
static final public String QUERY_DELETE_EXTENSION_DATA = "jdbc.queries.delete.extension.data";
/** extension_admin table creation query property name */
- static final public String QUERY_CREATION_EXTENSION_ADMIN_TEST =
- "jdbc.queries.creation.extension.admin.test";
static final public String QUERY_CREATION_EXTENSION_ADMIN =
"jdbc.queries.creation.extension.admin";
/** extension_data table creation query property name */
- static final public String QUERY_CREATION_EXTENSION_DATA_TEST =
- "jdbc.queries.creation.extension.data.test";
static final public String QUERY_CREATION_EXTENSION_DATA =
"jdbc.queries.creation.extension.data";
/** insertion in the admin table query property name */
@@ -360,6 +362,26 @@
}
}
+ public static boolean tableExist(Connection connection, String tableName) throws SQLException {
+ DatabaseMetaData metaData = connection.getMetaData();
+
+ ResultSet tables = metaData.getTables(null, null, tableName, null);
+
+ return tables.next();
+ }
+
+ public static String getSupportedBinaryType(Connection connection) throws SQLException {
+
+ ResultSet typeInfo = connection.getMetaData().getTypeInfo();
+ while (typeInfo.next()) {
+ String type = typeInfo.getString("TYPE_NAME");
+ if (ArrayUtils.contains(BINARY_TYPES, type)) {
+ return type;
+ }
+ }
+ return null;
+ }
+
// REMOVED because, we must used WikittyTransaction with jta management
// /**
// * Closes a connection (i.e. transaction) and commit data.
@@ -401,7 +423,7 @@
/**
* Execute query.
- *
+ *
* @param connection connection to use
* @param query sql query to do
* @param args arguments for the query
@@ -419,5 +441,4 @@
}
sta.execute();
}
-
}
Modified: trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyStorageJDBC.java
===================================================================
--- trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyStorageJDBC.java 2011-05-06 15:59:36 UTC (rev 866)
+++ trunk/wikitty-jdbc/src/main/java/org/nuiton/wikitty/jdbc/WikittyStorageJDBC.java 2011-05-06 16:37:24 UTC (rev 867)
@@ -38,11 +38,10 @@
import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.COL_VERSION;
import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CLEAR_WIKITTY;
import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_WIKITTY_ADMIN;
-import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_WIKITTY_ADMIN_TEST;
import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_WIKITTY_DATA_ALTER_BINARY;
import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_WIKITTY_DATA_TEST_BINARY;
import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_WIKITTY_DATA;
-import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_WIKITTY_DATA_TEST;
+import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_WIKITTY_DATA_NO_BINARY;
import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_DELETE_WIKITTY_ADMIN;
import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_DELETE_WIKITTY_DATA;
import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_INSERT_WIKITTY_ADMIN;
@@ -62,6 +61,7 @@
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
+import java.sql.Types;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -129,13 +129,10 @@
checkTableOrCreation(tx);
- // all time use alter after creation for binaryValue column because
- // this datatype is not portable
- checkColumnBinaryOrAlter(tx);
-
if (txBeginHere) {
tx.commit();
}
+
} catch (WikittyException eee) {
if (tx != null && tx.isStarted()) {
tx.rollback();
@@ -148,61 +145,34 @@
* test table existance or create them if necessary
*/
protected void checkTableOrCreation(WikittyTransaction tx) {
- Connection connectionTest = WikittyJDBCUtil.getConnection(tx, config);
+ Connection connection = WikittyJDBCUtil.getConnection(tx, config);
try {
- // If test of existance work, no exception and do nothing
- // if exception try to create databse
- Statement statementTest = connectionTest.createStatement();
- statementTest.execute(jdbcQuery.getProperty(QUERY_CREATION_WIKITTY_ADMIN_TEST));
- statementTest.execute(jdbcQuery.getProperty(QUERY_CREATION_WIKITTY_DATA_TEST));
- } catch (Exception silentError) {
- if (log.isInfoEnabled()) {
- log.info("try to create wikitty database");
- }
- Connection connection = WikittyJDBCUtil.getConnection(tx, config);
- try {
- Statement statement = connection.createStatement();
+ Statement statement = connection.createStatement();
+ if (!WikittyJDBCUtil.tableExist(connection, WikittyJDBCUtil.TABLE_WIKITTY_ADMIN)) {
+ if (log.isInfoEnabled()) {
+ log.info("try to create wikitty database");
+ }
statement.execute(jdbcQuery.getProperty(QUERY_CREATION_WIKITTY_ADMIN));
- statement.execute(jdbcQuery.getProperty(QUERY_CREATION_WIKITTY_DATA));
- } catch (Exception eee) {
- throw new WikittyException("Can't create table for wikitty storage", eee);
- } finally {
- WikittyJDBCUtil.closeQuietly(connection);
}
- } finally {
- WikittyJDBCUtil.closeQuietly(connectionTest);
- }
- }
+ if (!WikittyJDBCUtil.tableExist(connection, WikittyJDBCUtil.TABLE_WIKITTY_DATA)) {
- /**
- * Add binary column if necessary
- * If add can be done, wikitty work for all, except binary type
- */
- protected void checkColumnBinaryOrAlter(WikittyTransaction tx) {
- Connection connectionTest = WikittyJDBCUtil.getConnection(tx, config);
- try {
- // If test of existance work, no exception and do nothing
- // if exception try to create binary column
- Statement statementTest = connectionTest.createStatement();
- statementTest.execute(jdbcQuery.getProperty(QUERY_CREATION_WIKITTY_DATA_TEST_BINARY));
- } catch (Exception silentError) {
- if (log.isInfoEnabled()) {
- log.info("try to alter wikitty database to add binary column");
+ // Check if database support blob
+ String supportedBinaryType = WikittyJDBCUtil.getSupportedBinaryType(connection);
+ if (supportedBinaryType == null) {
+ log.fatal("Can add column to store binary field. You can't use binary");
+ statement.execute(jdbcQuery.getProperty(QUERY_CREATION_WIKITTY_DATA_NO_BINARY));
+ } else {
+ if (log.isDebugEnabled()) {
+ log.debug("Creating wikitty data with '" + supportedBinaryType + "' type for binary");
+ }
+ String request = String.format(jdbcQuery.getProperty(QUERY_CREATION_WIKITTY_DATA), supportedBinaryType);
+ statement.execute(request);
+ }
}
- Connection connection = WikittyJDBCUtil.getConnection(tx, config);
- try {
- Statement statement = connection.createStatement();
- statement.execute(jdbcQuery.getProperty(QUERY_CREATION_WIKITTY_DATA_ALTER_BINARY));
- } catch (Exception eee) {
- // no exception just log fatal, wikitty can work without this
- // column but can't store binary. If binary is not used there is
- // no probleme
- log.fatal("Can add column to store binary field. You can't use binary", eee);
- } finally {
- WikittyJDBCUtil.closeQuietly(connection);
- }
+ } catch (Exception eee) {
+ throw new WikittyException("Can't create table for wikitty storage", eee);
} finally {
- WikittyJDBCUtil.closeQuietly(connectionTest);
+ WikittyJDBCUtil.closeQuietly(connection);
}
}
Deleted: trunk/wikitty-jdbc/src/main/resources/wikitty-jdbc-query-mysql.properties
===================================================================
--- trunk/wikitty-jdbc/src/main/resources/wikitty-jdbc-query-mysql.properties 2011-05-06 15:59:36 UTC (rev 866)
+++ trunk/wikitty-jdbc/src/main/resources/wikitty-jdbc-query-mysql.properties 2011-05-06 16:37:24 UTC (rev 867)
@@ -1,31 +0,0 @@
-###
-# #%L
-# Wikitty :: wikitty-jdbc-impl
-#
-# $Id$
-# $HeadURL$
-# %%
-# Copyright (C) 2010 CodeLutin, Benjamin Poussin
-# %%
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Lesser Public License for more details.
-#
-# You should have received a copy of the GNU General Lesser Public
-# License along with this program. If not, see
-# <http://www.gnu.org/licenses/lgpl-3.0.html>.
-# #L%
-###
-#
-# ce fichier surcharge la requete d'ajout de la column binaryValue pour mysql
-# il doit etre charge apres le fichier par defaut dans la sequence de fichier
-#
-
-#table wikitty_data creation query
-jdbc.queries.creation.wikitty.data.alter.binary=ALTER TABLE wikitty_data ADD COLUMN binaryValue blob;
Modified: trunk/wikitty-jdbc/src/main/resources/wikitty-jdbc-query.properties
===================================================================
--- trunk/wikitty-jdbc/src/main/resources/wikitty-jdbc-query.properties 2011-05-06 15:59:36 UTC (rev 866)
+++ trunk/wikitty-jdbc/src/main/resources/wikitty-jdbc-query.properties 2011-05-06 16:37:24 UTC (rev 867)
@@ -31,7 +31,6 @@
#
#table extension_admin creation query
-jdbc.queries.creation.extension.admin.test=SELECT * FROM extension_admin LIMIT 1;
jdbc.queries.creation.extension.admin=CREATE TABLE extension_admin (\
id text NOT NULL,\
name text NOT NULL,\
@@ -41,7 +40,6 @@
PRIMARY KEY (id));
#table extension_data creation query
-jdbc.queries.creation.extension.data.test=SELECT * FROM extension_data LIMIT 1;
jdbc.queries.creation.extension.data=CREATE TABLE extension_data (\
id text NOT NULL,\
fieldName text NOT NULL,\
@@ -50,7 +48,6 @@
FOREIGN KEY (id) REFERENCES extension_admin (id));
#table wikitty_admin creation query
-jdbc.queries.creation.wikitty.admin.test=SELECT * FROM wikitty_admin LIMIT 1;
jdbc.queries.creation.wikitty.admin=CREATE TABLE wikitty_admin (\
id varchar(64) NOT NULL,\
version varchar(8) NOT NULL,\
@@ -60,9 +57,6 @@
#table wikitty_data creation query
# all time use alter after creation for binaryValue column because this datatype is not portable
-jdbc.queries.creation.wikitty.data.test.binary=SELECT binaryValue FROM wikitty_data LIMIT 1;
-jdbc.queries.creation.wikitty.data.alter.binary=ALTER TABLE wikitty_data ADD COLUMN binaryValue bytea;
-jdbc.queries.creation.wikitty.data.test=SELECT * FROM wikitty_data LIMIT 1;
jdbc.queries.creation.wikitty.data=CREATE TABLE wikitty_data (\
id varchar(64) NOT NULL,\
fieldName text NOT NULL,\
@@ -70,9 +64,20 @@
dateValue timestamp,\
textValue text,\
booleanValue boolean,\
+binaryValue %s,\
PRIMARY KEY (id,fieldName),\
FOREIGN KEY (id) REFERENCES wikitty_admin (id));
+jdbc.queries.creation.wikitty.data.no.binary=CREATE TABLE wikitty_data (\
+id varchar(64) NOT NULL,\
+fieldName text NOT NULL,\
+numberValue numeric,\
+dateValue timestamp,\
+textValue text,\
+booleanValue boolean,\
+PRIMARY KEY (id,fieldName),\
+FOREIGN KEY (id) REFERENCES wikitty_admin (id));
+
#basic selection query without where clause
jdbc.queries.select=SELECT %s FROM %s;
#not deleted data selection query without where clause
1
0