[
https://issues.apache.org/jira/browse/DERBY-590?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rick Hillegas updated DERBY-590:
--------------------------------
Attachment: derby-590-26-ac-backupRestore.diff
Attaching derby-590-26-ac-backupRestore.diff. This patch adds backup/restore
support for Lucene indexes. I will run regression tests. I will also hold off
committing this patch for a couple days to give people an opportunity to
suggest alternative approaches.
Code is added to BasicDatabase to perform the backup. The backup() methods in
BasicDatabase check to see if the database's top level directory contains a
LUCENE subdirectory. If so, the LUCENE directory is recursively copied to the
backup directory.
Similarly, code is added to BaseDataFileFactory to perform the restoration. The
loop which checks for seg* subdirectories now checks to see if the backup
contains a LUCENE subdirectory. If so, it is recursively copied to the restored
location.
I am happy to move this code elsewhere if people think there is an
architecturally better spot.
Touches the following files:
---------------
M java/engine/org/apache/derby/iapi/util/StringUtil.java
Encapsulated a scrap of code which takes the canonical name of the database and
extracts the database directory name from it. This method is now used both by
the RawStore backup code to figure out where to copy the seg* files and this
method is used by BasicDatabase to figure out where to copy the LUCENE
directory.
I'm open to suggestions for a better place to put this code. Nothing better
jumped out at me.
---------------
M java/engine/org/apache/derby/impl/db/BasicDatabase.java
The new code to backup the LUCENE directory.
---------------
M java/engine/org/apache/derby/impl/io/vfmem/DataStore.java
This fixes a bug in the in-memory storage factory. When asked to list its child
directories, an in-memory directory used to list its grandchildren and all
other descendants. This has been fixed so that only the child directories are
returned.
---------------
M java/engine/org/apache/derby/impl/store/raw/RawStore.java
Amended to use the shared method which extracts the database directory name
from the canonical name.
---------------
M
java/engine/org/apache/derby/impl/store/raw/data/BaseDataFileFactory.java
Adds logic to restore the LUCENE directory.
---------------
M java/engine/org/apache/derby/database/Database.java
The constant identifying the name of the LUCENE directory is moved to this
interface so that it can be used by BasicDatabase.
---------------
M java/optional/org/apache/derby/optional/lucene/DerbyLuceneDir.java
M java/optional/org/apache/derby/optional/lucene/LuceneSupport.java
M java/optional/org/apache/derby/optional/lucene/LuceneListIndexesVTI.java
I reworked how the Lucene index path is recursively created.
---------------
A
java/testing/org/apache/derbyTesting/functionTests/tests/lang/LuceneBackupTest.java
M
java/testing/org/apache/derbyTesting/functionTests/tests/lang/luceneSupport.policy
M
java/testing/org/apache/derbyTesting/functionTests/tests/lang/LuceneSuite.java
Added a test for backup/restore of Lucene indexes.
> How to integrate Derby with Lucene API?
> ---------------------------------------
>
> Key: DERBY-590
> URL: https://issues.apache.org/jira/browse/DERBY-590
> Project: Derby
> Issue Type: Improvement
> Components: Documentation, SQL
> Reporter: Abhijeet Mahesh
> Labels: derby_triage10_11
> Attachments: LucenePlugin.html,
> derby-590-01-ag-publicAccessToLuceneRoutines.diff,
> derby-590-01-ah-publicAccessToLuceneRoutines.diff,
> derby-590-01-am-publicAccessToLuceneRoutines.diff,
> derby-590-02-aa-cleanupFindbugsErrors.diff,
> derby-590-03-aa-removeTestingDiagnostic.diff,
> derby-590-04-aa-removeIDFromListIndexes.diff,
> derby-590-05-aa-accessDeclaredMembers.diff,
> derby-590-06-aa-suppressAccessChecks.diff,
> derby-590-07-aa-accessClassInPackage.sun.misc.diff,
> derby-590-08-aa-omitLuceneFlag.diff,
> derby-590-09-aa-localeSensitiveAnalysis.diff,
> derby-590-10-aa-fixLocaleTest.diff, derby-590-11-aa-moveCode.diff,
> derby-590-12-aa-newJar.diff, derby-590-13-aa-indexViews.diff,
> derby-590-14-aa-coarseGrainedAuthorization.diff,
> derby-590-15-aa-requireHardUpgrade.diff,
> derby-590-16-aa-adjustUpgradeTest.diff,
> derby-590-17-aa-closeInputStreamOnPropertiesFile.diff,
> derby-590-18-aa-cleanupAPI.diff, derby-590-19-aa-cleanupAPI2.diff,
> derby-590-20-aa-customQueryParser.diff, derby-590-21-aa-noTimeTravel.diff,
> derby-590-22-aa-cleanupPrivacy.diff, derby-590-23-aa-correctTestLocale.diff,
> derby-590-24-ad-luceneDirectory.diff, derby-590-26-ac-backupRestore.diff,
> lucene_demo.diff, lucene_demo_2.diff
>
>
> In order to use derby with lucene API what should be the steps to be taken?
--
This message was sent by Atlassian JIRA
(v6.2#6252)