Changeset 5740
- Timestamp:
- 2010-09-10 15:03:46 (3 years ago)
- Location:
- trunk/daisy
- Files:
-
- 4 edited
-
repository/server/src/main/java/org/outerj/daisy/repository/serverimpl/LocalRepositoryManager.java (modified) (1 diff)
-
repository/server/src/main/java/org/outerj/daisy/repository/serverimpl/RepositoryMaintainerImpl.java (modified) (7 diffs)
-
repository/server/src/main/java/org/outerj/daisy/repository/serverimpl/RepositoryMaintainerImplMBean.java (modified) (1 diff)
-
services/revision-manager/server-impl/src/main/java/org/outerj/daisy/repository/revisions/CommonRevisionManager.java (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/daisy/repository/server/src/main/java/org/outerj/daisy/repository/serverimpl/LocalRepositoryManager.java
r5719 r5740 194 194 assureNamespacesRegistered(); 195 195 196 this.repositoryMaintainer = new RepositoryMaintainerImpl(documentStrategy, systemUser, context, mbeanServer);196 this.repositoryMaintainer = new RepositoryMaintainerImpl(documentStrategy, systemUser, context, dataSource, jdbcHelper, mbeanServer); 197 197 198 198 pluginRegistry.setPluginUser(PreSaveHook.class, preSaveHookPluginUser); -
trunk/daisy/repository/server/src/main/java/org/outerj/daisy/repository/serverimpl/RepositoryMaintainerImpl.java
r5672 r5740 16 16 package org.outerj.daisy.repository.serverimpl; 17 17 18 import java.sql.Connection; 19 import java.sql.PreparedStatement; 20 import java.sql.SQLException; 18 21 import java.util.Date; 19 22 import java.util.Locale; … … 23 26 import javax.management.MBeanServer; 24 27 import javax.management.ObjectName; 28 import javax.sql.DataSource; 25 29 26 30 import org.apache.commons.logging.Log; … … 28 32 import org.joda.time.format.DateTimeFormatter; 29 33 import org.joda.time.format.ISODateTimeFormat; 34 import org.outerj.daisy.jdbcutil.JdbcHelper; 30 35 import org.outerj.daisy.repository.Document; 31 36 import org.outerj.daisy.repository.VariantKey; … … 42 47 private CommonRepository commonRepository; 43 48 private AuthenticatedUser systemUser; 44 private ObjectName mbeanName = new ObjectName("Daisy:name=RepositoryMaintainerImpl"); 49 private DataSource dataSource; 50 private JdbcHelper jdbcHelper; 51 private ObjectName mbeanName = new ObjectName("Daisy:name=RepositoryMaintainer"); 45 52 private MBeanServer mbeanServer; 46 53 … … 49 56 public RepositoryMaintainerImpl() throws Exception {}; 50 57 51 public RepositoryMaintainerImpl(LocalDocumentStrategy documentStrategy, AuthenticatedUser systemUser, Context context, MBeanServer mbeanServer) throws Exception {58 public RepositoryMaintainerImpl(LocalDocumentStrategy documentStrategy, AuthenticatedUser systemUser, Context context, DataSource dataSource, JdbcHelper jdbcHelper, MBeanServer mbeanServer) throws Exception { 52 59 this.documentStrategy = documentStrategy; 53 60 this.commonRepository = context.getCommonRepository(); … … 55 62 56 63 this.executor = Executors.newSingleThreadExecutor(); 64 this.dataSource = dataSource; 65 this.jdbcHelper = JdbcHelper.getInstance(dataSource, log); 57 66 this.mbeanServer = mbeanServer; 58 67 mbeanServer.registerMBean(this, mbeanName); … … 119 128 } 120 129 130 public void rebuildRevisionTable() { 131 Connection conn = null; 132 PreparedStatement stmt = null; 133 try { 134 conn = dataSource.getConnection(); 135 jdbcHelper.startTransaction(conn); 136 137 stmt = conn.prepareStatement("delete from repository_revisions"); 138 stmt.executeUpdate(); 139 140 stmt = conn.prepareStatement("insert into repository_revisions(ns_id, doc_id, revision_date) select ns_id, doc_id, begin_date from live_history"); 141 stmt.executeUpdate(); 142 143 stmt = conn.prepareStatement("insert into repository_revisions(ns_id, doc_id, revision_date) select ns_id, doc_id, end_date from live_history where end_date is not null"); 144 stmt.executeUpdate(); 145 146 conn.commit(); 147 } catch (SQLException e) { 148 throw new RuntimeException("Failed to rebuild revision table", e); 149 } finally { 150 jdbcHelper.closeStatement(stmt); 151 jdbcHelper.rollback(conn); 152 jdbcHelper.closeConnection(conn); 153 } 154 } 155 121 156 } -
trunk/daisy/repository/server/src/main/java/org/outerj/daisy/repository/serverimpl/RepositoryMaintainerImplMBean.java
r5672 r5740 24 24 public void reExtractLinks(String query, String beginDate, String endDate); 25 25 26 public void rebuildRevisionTable(); 26 27 } -
trunk/daisy/services/revision-manager/server-impl/src/main/java/org/outerj/daisy/repository/revisions/CommonRevisionManager.java
r5672 r5740 168 168 } 169 169 170 // take a lock on the document to make sure the copied data are consistent 171 stmt = conn.prepareStatement("select ns_id, doc_id from documents where ns_id = ? and doc_id = ?" + jdbcHelper.getSharedLockClause()); 172 170 173 stmt = conn.prepareStatement("delete from repository_revisions where ns_id = ? and doc_id = ?"); 171 174 stmt.setLong(1, docId.getNamespaceId()); … … 178 181 stmt.executeUpdate(); 179 182 180 stmt = conn.prepareStatement("insert into repository_revisions(ns_id, doc_id, revision_date) select ns_id, doc_id, end_date from live_history where ns_id = ? and doc_id = ?");183 stmt = conn.prepareStatement("insert into repository_revisions(ns_id, doc_id, revision_date) select ns_id, doc_id, end_date from live_history where end_date is not null and ns_id = ? and doc_id = ?"); 181 184 stmt.setLong(1, docId.getNamespaceId()); 182 185 stmt.setLong(2, docId.getSeqId());
Note: See TracChangeset
for help on using the changeset viewer.