On Tue, Jan 5, 2010 at 17:15, Yoav Landman <[email protected]> wrote:

> It looks to me like the metadata section of your repository is
> misconfigured, and basic node type definitions cannot be read.
> Can you attach your current repo.xml and the current
> $ARTIFACTORY_HOME/data/workspaces/default/workspace.xml file that is created
> after starting up with a clean $ARTIFACTORY_HOME/data/workspaces folder?
>
>
Hi, Yoav.

I'm truing to update my 2.0.1 artifactory to 2.2.3 and I'm really stuck in
an error very similar to this. I have on my stacktrace the method
createDefaultAdminUser and the exception is the same.

As I am upgrading the system, I tried to reconfig some config files from
scratch, but the same error.

I've attached my stacktrace and the files you asked to jayesh, I hope you
could help me.

Thanks in advance,

-- 
BrunoJCM
2010-04-27 01:57:58,725 [ERROR] (o.a.w.s.ArtifactoryContextConfigListener:164) 
- Error creating spring context
java.lang.reflect.InvocationTargetException: null
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
Method) [na:1.6.0_17]
        at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
 [na:1.6.0_17]
        at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
 [na:1.6.0_17]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:532) 
[na:1.6.0_17]
        at 
org.artifactory.webapp.servlet.ArtifactoryContextConfigListener.configure(ArtifactoryContextConfigListener.java:159)
 [artifactory-web-application-2.2.3.jar:na]
        at 
org.artifactory.webapp.servlet.ArtifactoryContextConfigListener.access$100(ArtifactoryContextConfigListener.java:47)
 [artifactory-web-application-2.2.3.jar:na]
        at 
org.artifactory.webapp.servlet.ArtifactoryContextConfigListener$1.run(ArtifactoryContextConfigListener.java:66)
 [artifactory-web-application-2.2.3.jar:na]
Caused by: org.springframework.beans.factory.BeanInitializationException: 
Failed to initialize bean 'org.artifactory.security.InternalSecurityService'.; 
nested exception is 
org.apache.jackrabbit.ocm.exception.IncorrectPersistentClassException: Node 
type: nt:unstructured has no descriptor.
        at 
org.artifactory.spring.ArtifactoryApplicationContext.refresh(ArtifactoryApplicationContext.java:232)
 [artifactory-core-2.2.3.jar:na]
        at 
org.artifactory.spring.ArtifactoryApplicationContext.<init>(ArtifactoryApplicationContext.java:103)
 [artifactory-core-2.2.3.jar:na]
        ... 7 common frames omitted
Caused by: 
org.apache.jackrabbit.ocm.exception.IncorrectPersistentClassException: Node 
type: nt:unstructured has no descriptor.
        at 
org.apache.jackrabbit.ocm.mapper.impl.AbstractMapperImpl.getClassDescriptorByNodeType(AbstractMapperImpl.java:214)
 [jackrabbit-ocm-1.5.3.jar:na]
        at 
org.apache.jackrabbit.ocm.manager.objectconverter.impl.ObjectConverterImpl.getObject(ObjectConverterImpl.java:380)
 [jackrabbit-ocm-1.5.3.jar:na]
        at 
org.apache.jackrabbit.ocm.manager.impl.ObjectContentManagerImpl.getObject(ObjectContentManagerImpl.java:264)
 [jackrabbit-ocm-1.5.3.jar:na]
        at 
org.artifactory.security.JcrUserGroupManager.loadUserByUsername(JcrUserGroupManager.java:107)
 [artifactory-core-2.2.3.jar:na]
        at 
org.artifactory.security.JcrUserGroupManager.createUser(JcrUserGroupManager.java:176)
 [artifactory-core-2.2.3.jar:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
[na:1.6.0_17]
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
[na:1.6.0_17]
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 [na:1.6.0_17]
        at java.lang.reflect.Method.invoke(Method.java:616) [na:1.6.0_17]
        at 
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
 [spring-aop-3.0.0.RELEASE.jar:3.0.0.RELEASE]
        at 
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
 [spring-aop-3.0.0.RELEASE.jar:3.0.0.RELEASE]
        at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
 [spring-aop-3.0.0.RELEASE.jar:3.0.0.RELEASE]
        at 
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
 [spring-tx-3.0.0.RELEASE.jar:3.0.0.RELEASE]
        at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
 [spring-aop-3.0.0.RELEASE.jar:3.0.0.RELEASE]
        at 
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
 [spring-aop-3.0.0.RELEASE.jar:3.0.0.RELEASE]
        at $Proxy29.createUser(Unknown Source) [na:na]
        at 
org.artifactory.security.SecurityServiceImpl.createUser(SecurityServiceImpl.java:359)
 [artifactory-core-2.2.3.jar:na]
        at 
org.artifactory.security.SecurityServiceImpl.createDefaultAdminUser(SecurityServiceImpl.java:1084)
 [artifactory-core-2.2.3.jar:na]
        at 
org.artifactory.security.SecurityServiceImpl.init(SecurityServiceImpl.java:132) 
[artifactory-core-2.2.3.jar:na]
        at sun.reflect.GeneratedMethodAccessor23.invoke(Unknown Source) [na:na]
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 [na:1.6.0_17]
        at java.lang.reflect.Method.invoke(Method.java:616) [na:1.6.0_17]
        at 
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
 [spring-aop-3.0.0.RELEASE.jar:3.0.0.RELEASE]
        at 
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
 [spring-aop-3.0.0.RELEASE.jar:3.0.0.RELEASE]
        at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
 [spring-aop-3.0.0.RELEASE.jar:3.0.0.RELEASE]
        at 
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
 [spring-tx-3.0.0.RELEASE.jar:3.0.0.RELEASE]
        at 
org.artifactory.jcr.lock.aop.LockingAdvice.invoke(LockingAdvice.java:74) 
[artifactory-core-2.2.3.jar:na]
        at 
org.artifactory.jcr.lock.aop.LockingAdvice.invoke(LockingAdvice.java:46) 
[artifactory-core-2.2.3.jar:na]
        at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
 [spring-aop-3.0.0.RELEASE.jar:3.0.0.RELEASE]
        at 
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
 [spring-aop-3.0.0.RELEASE.jar:3.0.0.RELEASE]
        at $Proxy19.init(Unknown Source) [na:na]
        at 
org.artifactory.spring.ArtifactoryApplicationContext.refresh(ArtifactoryApplicationContext.java:230)
 [artifactory-core-2.2.3.jar:na]
        ... 8 common frames omitted
2010-04-27 01:57:58,727 [ERROR] (o.a.w.s.ArtifactoryContextConfigListener:70) - 
Application could not be initialized.
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
        at 
org.artifactory.webapp.servlet.ArtifactoryContextConfigListener.configure(ArtifactoryContextConfigListener.java:165)
 [artifactory-web-application-2.2.3.jar:na]
        at 
org.artifactory.webapp.servlet.ArtifactoryContextConfigListener.access$100(ArtifactoryContextConfigListener.java:47)
 [artifactory-web-application-2.2.3.jar:na]
        at 
org.artifactory.webapp.servlet.ArtifactoryContextConfigListener$1.run(ArtifactoryContextConfigListener.java:66)
 [artifactory-web-application-2.2.3.jar:na]
Caused by: java.lang.reflect.InvocationTargetException: null
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
Method) [na:1.6.0_17]
        at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
 [na:1.6.0_17]
        at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
 [na:1.6.0_17]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:532) 
[na:1.6.0_17]
        at 
org.artifactory.webapp.servlet.ArtifactoryContextConfigListener.configure(ArtifactoryContextConfigListener.java:159)
 [artifactory-web-application-2.2.3.jar:na]
        ... 2 common frames omitted
Caused by: org.springframework.beans.factory.BeanInitializationException: 
Failed to initialize bean 'org.artifactory.security.InternalSecurityService'.; 
nested exception is 
org.apache.jackrabbit.ocm.exception.IncorrectPersistentClassException: Node 
type: nt:unstructured has no descriptor.
        at 
org.artifactory.spring.ArtifactoryApplicationContext.refresh(ArtifactoryApplicationContext.java:232)
 [artifactory-core-2.2.3.jar:na]
        at 
org.artifactory.spring.ArtifactoryApplicationContext.<init>(ArtifactoryApplicationContext.java:103)
 [artifactory-core-2.2.3.jar:na]
        ... 7 common frames omitted
Caused by: 
org.apache.jackrabbit.ocm.exception.IncorrectPersistentClassException: Node 
type: nt:unstructured has no descriptor.
        at 
org.apache.jackrabbit.ocm.mapper.impl.AbstractMapperImpl.getClassDescriptorByNodeType(AbstractMapperImpl.java:214)
 [jackrabbit-ocm-1.5.3.jar:na]
        at 
org.apache.jackrabbit.ocm.manager.objectconverter.impl.ObjectConverterImpl.getObject(ObjectConverterImpl.java:380)
 [jackrabbit-ocm-1.5.3.jar:na]
        at 
org.apache.jackrabbit.ocm.manager.impl.ObjectContentManagerImpl.getObject(ObjectContentManagerImpl.java:264)
 [jackrabbit-ocm-1.5.3.jar:na]
        at 
org.artifactory.security.JcrUserGroupManager.loadUserByUsername(JcrUserGroupManager.java:107)
 [artifactory-core-2.2.3.jar:na]
        at 
org.artifactory.security.JcrUserGroupManager.createUser(JcrUserGroupManager.java:176)
 [artifactory-core-2.2.3.jar:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
[na:1.6.0_17]
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
[na:1.6.0_17]
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 [na:1.6.0_17]
        at java.lang.reflect.Method.invoke(Method.java:616) [na:1.6.0_17]
        at 
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
 [spring-aop-3.0.0.RELEASE.jar:3.0.0.RELEASE]
        at 
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
 [spring-aop-3.0.0.RELEASE.jar:3.0.0.RELEASE]
        at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
 [spring-aop-3.0.0.RELEASE.jar:3.0.0.RELEASE]
        at 
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
 [spring-tx-3.0.0.RELEASE.jar:3.0.0.RELEASE]
        at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
 [spring-aop-3.0.0.RELEASE.jar:3.0.0.RELEASE]
        at 
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
 [spring-aop-3.0.0.RELEASE.jar:3.0.0.RELEASE]
        at $Proxy29.createUser(Unknown Source) [na:na]
        at 
org.artifactory.security.SecurityServiceImpl.createUser(SecurityServiceImpl.java:359)
 [artifactory-core-2.2.3.jar:na]
        at 
org.artifactory.security.SecurityServiceImpl.createDefaultAdminUser(SecurityServiceImpl.java:1084)
 [artifactory-core-2.2.3.jar:na]
        at 
org.artifactory.security.SecurityServiceImpl.init(SecurityServiceImpl.java:132) 
[artifactory-core-2.2.3.jar:na]
        at sun.reflect.GeneratedMethodAccessor23.invoke(Unknown Source) [na:na]
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 [na:1.6.0_17]
        at java.lang.reflect.Method.invoke(Method.java:616) [na:1.6.0_17]
        at 
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
 [spring-aop-3.0.0.RELEASE.jar:3.0.0.RELEASE]
        at 
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
 [spring-aop-3.0.0.RELEASE.jar:3.0.0.RELEASE]
        at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
 [spring-aop-3.0.0.RELEASE.jar:3.0.0.RELEASE]
        at 
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
 [spring-tx-3.0.0.RELEASE.jar:3.0.0.RELEASE]
        at 
org.artifactory.jcr.lock.aop.LockingAdvice.invoke(LockingAdvice.java:74) 
[artifactory-core-2.2.3.jar:na]
        at 
org.artifactory.jcr.lock.aop.LockingAdvice.invoke(LockingAdvice.java:46) 
[artifactory-core-2.2.3.jar:na]
        at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
 [spring-aop-3.0.0.RELEASE.jar:3.0.0.RELEASE]
        at 
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
 [spring-aop-3.0.0.RELEASE.jar:3.0.0.RELEASE]
        at $Proxy19.init(Unknown Source) [na:na]
        at 
org.artifactory.spring.ArtifactoryApplicationContext.refresh(ArtifactoryApplicationContext.java:230)
 [artifactory-core-2.2.3.jar:na]
        ... 8 common frames omitted

Attachment: artifactory.system.properties
Description: Binary data

<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
  ~ Artifactory is a binaries repository manager.
  ~ Copyright (C) 2010 JFrog Ltd.
  ~
  ~ Artifactory 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.
  ~
  ~ Artifactory 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 Lesser General Public License for more details.
  ~
  ~ You should have received a copy of the GNU Lesser General Public License
  ~ along with Artifactory.  If not, see <http://www.gnu.org/licenses/>.
  -->

<!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 1.6//EN"
        "http://jackrabbit.apache.org/dtd/repository-1.6.dtd";>

<Repository>
    <!--
        virtual file system where the repository stores global state
        (e.g. registered namespaces, custom node types, etc.)
    -->

    <!-- MySQL Filesystem -->
    <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
        <param name="driver" value="com.mysql.jdbc.Driver"/>
        <param name="url" value="jdbc:mysql://localhost:3306/artifactory?useUnicode=true&amp;characterEncoding=UTF-8"/>
        <param name="user" value="artifactory_user"/>
        <param name="password" value="artifactory1234"/>
        <!-- Leave this on "mysql" -->
        <param name="schema" value="mysql"/>
        <param name="schemaObjectPrefix" value="rep_"/>
    </FileSystem>

    <!-- http://wiki.apache.org/jackrabbit/DataStore -->

    <!-- MySQL Datastore -->
    <DataStore class="org.artifactory.jcr.jackrabbit.ArtifactoryDbDataStoreImpl">
        <param name="url" value="jdbc:mysql://localhost:3306/artifactory?useUnicode=true&amp;characterEncoding=UTF-8"/>
        <param name="tablePrefix" value=""/>
        <param name="user" value="artifactory_user"/>
        <param name="password" value="artifactory1234"/>
        <param name="databaseType" value="mysql"/>
        <param name="driver" value="com.mysql.jdbc.Driver"/>
        <param name="minRecordLength" value="512"/>
        <param name="maxConnections" value="30"/>
        <!-- Whether to use a cache blobs temporarily on the file system for faster reads -->
        <param name="cacheBlobs" value="true"/>
        <!-- The maximum size of the blobs cache in gigabytes (g), megabytes (m) or kilobytes (k) -->
        <param name="blobsCacheMaxSize" value="1g"/>
        <!-- The blobs cache directory location -->
        <param name="blobsCacheDir" value="${rep.home}/cache"/>
    </DataStore>

    <!--
        security configuration
    -->
    <Security appName="Jackrabbit">
        <SecurityManager class="org.artifactory.jcr.NullJackrabbitSecurityManager"/>
    </Security>

    <!--
        location of workspaces root directory and name of default workspace
    -->
    <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default"/>
    <!--
        workspace configuration template:
        used to create the initial workspace if there's no workspace yet
    -->
    <Workspace name="${wsp.name}">
        <!--
            virtual file system of the workspace:
            class: FQN of class implementing the FileSystem interface
        -->
        <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
            <param name="path" value="${wsp.home}"/>
        </FileSystem>
        <!--
            persistence manager of the workspace:
            class: FQN of class implementing the PersistenceManager interface
        -->

        <!-- MySQL Persistence Manager -->
        <PersistenceManager
                class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager">
            <param name="url"
                   value="jdbc:mysql://localhost:3306/artifactory?useUnicode=true&amp;characterEncoding=UTF-8"/>
            <param name="user" value="artifactory_user"/>
            <param name="password" value="artifactory1234"/>
            <param name="schemaObjectPrefix" value="${wsp.name}_"/>
            <param name="bundleCacheSize" value="16"/>
            <param name="errorHandling" value="IGN_MISSING_BLOBS"/>
        </PersistenceManager>

        <!--
            Search index and the file system it uses.
            class: FQN of class implementing the QueryHandler interface

            If required by the QueryHandler implementation, one may configure
            a FileSystem that the handler may use.

            Supported parameters for lucene search index:
            - path: location of the index. This parameter is mandatory!
            - useCompoundFile: advises lucene to use compound files for the index files
            - minMergeDocs: minimum number of nodes in an index until segments are merged
            - volatileIdleTime: idle time in seconds until the volatile index is
              moved to persistent index even though minMergeDocs is not reached.
            - maxMergeDocs: maximum number of nodes in segments that will be merged
            - mergeFactor: determines how often segment indices are merged
            - maxFieldLength: the number of words that are fulltext indexed at most per property.
            - bufferSize: maximum number of documents that are held in a pending
              queue until added to the index
            - cacheSize: size of the document number cache. This cache maps
              uuids to lucene document numbers
            - forceConsistencyCheck: runs a consistency check on every startup. If
              false, a consistency check is only performed when the search index
              detects a prior forced shutdown. This parameter only has an effect
              if 'enableConsistencyCheck' is set to 'true'.
            - enableConsistencyCheck: if set to 'true' a consistency check is
              performed depending on the parameter 'forceConsistencyCheck'. If
              set to 'false' no consistency check is performed on startup, even
              if a redo log had been applied.
            - autoRepair: errors detected by a consistency check are automatically
              repaired. If false, errors are only written to the log.
            - analyzer: class name of a lucene analyzer to use for fulltext indexing of text.
            - queryClass: class name that implements the javax.jcr.query.Query interface.
              this class must extend the class: org.apache.jackrabbit.core.query.AbstractQueryImpl
            - respectDocumentOrder: If true and the query does not contain an 'order by' clause,
              result nodes will be in document order. For better performance when queries return
              a lot of nodes set to 'false'.
            - resultFetchSize: The number of results the query handler should
              initially fetch when a query is executed.
              Default value: Integer.MAX_VALUE (-> all)
            - extractorPoolSize: defines the maximum number of background threads that are
              used to extract text from binary properties. If set to zero (default) no
              background threads are allocated and text extractors run in the current thread.
            - extractorTimeout: a text extractor is executed using a background thread if it
              doesn't finish within this timeout defined in milliseconds. This parameter has
              no effect if extractorPoolSize is zero.
            - extractorBackLogSize: the size of the extractor pool back log. If all threads in
              the pool are busy, incoming work is put into a wait queue. If the wait queue
              reaches the back log size incoming extractor work will not be queued anymore
              but will be executed with the current thread.
            - synonymProviderClass: the name of a class that implements
              org.apache.jackrabbit.core.query.lucene.SynonymProvider. The
              default value is null (-> not set).

            Note: all parameters (except path) in this SearchIndex config are default
            values and can be omitted.
        -->
        <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
            <param name="path" value="${rep.home}/index"/>
            <param name="useCompoundFile" value="true"/>
            <!-- Default is 100 -->
            <param name="minMergeDocs" value="500"/>
            <param name="maxMergeDocs" value="10000"/>
            <param name="volatileIdleTime" value="3"/>
            <!-- Default is 10: more segments quicker the indexing but slower the searching -->
            <param name="mergeFactor" value="10"/>
            <param name="maxFieldLength" value="10000"/>
            <!-- Default is 10 -->
            <param name="bufferSize" value="100"/>
            <param name="cacheSize" value="1000"/>
            <param name="forceConsistencyCheck" value="false"/>
            <param name="enableConsistencyCheck" value="true"/>
            <param name="autoRepair" value="true"/>
            <param name="analyzer" value="org.artifactory.search.lucene.ArtifactoryAnalyzer"/>
            <param name="queryClass" value="org.apache.jackrabbit.core.query.QueryImpl"/>
            <param name="respectDocumentOrder" value="false"/>
            <param name="resultFetchSize" value="700"/>
            <param name="supportHighlighting" value="true"/>
            <param name="excerptProviderClass" value="org.artifactory.search.ArchiveEntriesXmlExcerpt"/>

            <!--
            Use 5 background threads for text extraction that takes more than 100 milliseconds
            -->
            <param name="extractorPoolSize" value="5"/>
            <param name="extractorTimeout" value="100"/>
            <!-- Default is 100 -->
            <param name="extractorBackLogSize" value="500"/>
            <!-- Indexing configuration -->
            <param name="indexingConfiguration" value="${rep.home}/index/index_config.xml"/>
            <!-- Custom text extractor -->
            <param name="textFilterClasses" value="org.artifactory.jcr.extractor.ArtifactoryTextExtractor"/>
            <!-- Workspace inconsistency handler -->
            <param name="onWorkspaceInconsistency" value="lenient"/>
        </SearchIndex>

        <!-- http://issues.apache.org/jira/browse/JCR-314 -->
        <ISMLocking class="org.apache.jackrabbit.core.state.FineGrainedISMLocking"/>
    </Workspace>

    <!--
        Configures the versioning
    -->
    <Versioning rootPath="${rep.home}/version">
        <!--
            Configures the filesystem to use for versioning for the respective
            persistence manager
        -->
        <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
            <param name="path" value="${rep.home}/version"/>
        </FileSystem>

        <!--
            Configures the persistence manager to be used for persisting version state.
            Please note that the current versioning implementation is based on
            a 'normal' persistence manager, but this could change in future
            implementations.
        -->
        <!--We do not use versioning-->
        <PersistenceManager class="org.apache.jackrabbit.core.persistence.mem.InMemPersistenceManager">
            <param name="persistent" value="false"/>
        </PersistenceManager>
    </Versioning>

    <!-- Clustering configuration -->
    <!--
    <Cluster id="node1">
        <Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal">
            <param name="revision" value="${rep.home}/revision.log"/>
            <param name="driver" value="com.mysql.jdbc.Driver"/>
            <param name="url"
                   value="jdbc:mysql://localhost:3306/artifactory?useUnicode=true&amp;characterEncoding=UTF-8"/>
            <param name="user" value="artifactory_user"/>
            <param name="password" value="password"/>
        </Journal>
    </Cluster>
    -->

</Repository>
<?xml version="1.0" encoding="UTF-8"?>
<Workspace name="default">
        <!--
            virtual file system of the workspace:
            class: FQN of class implementing the FileSystem interface
        -->
        <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
            <param name="path" value="${wsp.home}"/>
        </FileSystem>
        <!--
            persistence manager of the workspace:
            class: FQN of class implementing the PersistenceManager interface
        -->

        <!-- MySQL Persistence Manager -->
        <PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager">
            <param name="url" value="jdbc:mysql://localhost:3306/artifactory?useUnicode=true&amp;characterEncoding=UTF-8"/>
            <param name="user" value="artifactory_user"/>
            <param name="password" value="artifactory1234"/>
            <param name="schemaObjectPrefix" value="${wsp.name}_"/>
            <param name="bundleCacheSize" value="16"/>
            <param name="errorHandling" value="IGN_MISSING_BLOBS"/>
        </PersistenceManager>

        <!--
            Search index and the file system it uses.
            class: FQN of class implementing the QueryHandler interface

            If required by the QueryHandler implementation, one may configure
            a FileSystem that the handler may use.

            Supported parameters for lucene search index:
            - path: location of the index. This parameter is mandatory!
            - useCompoundFile: advises lucene to use compound files for the index files
            - minMergeDocs: minimum number of nodes in an index until segments are merged
            - volatileIdleTime: idle time in seconds until the volatile index is
              moved to persistent index even though minMergeDocs is not reached.
            - maxMergeDocs: maximum number of nodes in segments that will be merged
            - mergeFactor: determines how often segment indices are merged
            - maxFieldLength: the number of words that are fulltext indexed at most per property.
            - bufferSize: maximum number of documents that are held in a pending
              queue until added to the index
            - cacheSize: size of the document number cache. This cache maps
              uuids to lucene document numbers
            - forceConsistencyCheck: runs a consistency check on every startup. If
              false, a consistency check is only performed when the search index
              detects a prior forced shutdown. This parameter only has an effect
              if 'enableConsistencyCheck' is set to 'true'.
            - enableConsistencyCheck: if set to 'true' a consistency check is
              performed depending on the parameter 'forceConsistencyCheck'. If
              set to 'false' no consistency check is performed on startup, even
              if a redo log had been applied.
            - autoRepair: errors detected by a consistency check are automatically
              repaired. If false, errors are only written to the log.
            - analyzer: class name of a lucene analyzer to use for fulltext indexing of text.
            - queryClass: class name that implements the javax.jcr.query.Query interface.
              this class must extend the class: org.apache.jackrabbit.core.query.AbstractQueryImpl
            - respectDocumentOrder: If true and the query does not contain an 'order by' clause,
              result nodes will be in document order. For better performance when queries return
              a lot of nodes set to 'false'.
            - resultFetchSize: The number of results the query handler should
              initially fetch when a query is executed.
              Default value: Integer.MAX_VALUE (-> all)
            - extractorPoolSize: defines the maximum number of background threads that are
              used to extract text from binary properties. If set to zero (default) no
              background threads are allocated and text extractors run in the current thread.
            - extractorTimeout: a text extractor is executed using a background thread if it
              doesn't finish within this timeout defined in milliseconds. This parameter has
              no effect if extractorPoolSize is zero.
            - extractorBackLogSize: the size of the extractor pool back log. If all threads in
              the pool are busy, incoming work is put into a wait queue. If the wait queue
              reaches the back log size incoming extractor work will not be queued anymore
              but will be executed with the current thread.
            - synonymProviderClass: the name of a class that implements
              org.apache.jackrabbit.core.query.lucene.SynonymProvider. The
              default value is null (-> not set).

            Note: all parameters (except path) in this SearchIndex config are default
            values and can be omitted.
        -->
        <SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
            <param name="path" value="${rep.home}/index"/>
            <param name="useCompoundFile" value="true"/>
            <!-- Default is 100 -->
            <param name="minMergeDocs" value="500"/>
            <param name="maxMergeDocs" value="10000"/>
            <param name="volatileIdleTime" value="3"/>
            <!-- Default is 10: more segments quicker the indexing but slower the searching -->
            <param name="mergeFactor" value="10"/>
            <param name="maxFieldLength" value="10000"/>
            <!-- Default is 10 -->
            <param name="bufferSize" value="100"/>
            <param name="cacheSize" value="1000"/>
            <param name="forceConsistencyCheck" value="false"/>
            <param name="enableConsistencyCheck" value="true"/>
            <param name="autoRepair" value="true"/>
            <param name="analyzer" value="org.artifactory.search.lucene.ArtifactoryAnalyzer"/>
            <param name="queryClass" value="org.apache.jackrabbit.core.query.QueryImpl"/>
            <param name="respectDocumentOrder" value="false"/>
            <param name="resultFetchSize" value="700"/>
            <param name="supportHighlighting" value="true"/>
            <param name="excerptProviderClass" value="org.artifactory.search.ArchiveEntriesXmlExcerpt"/>

            <!--
            Use 5 background threads for text extraction that takes more than 100 milliseconds
            -->
            <param name="extractorPoolSize" value="5"/>
            <param name="extractorTimeout" value="100"/>
            <!-- Default is 100 -->
            <param name="extractorBackLogSize" value="500"/>
            <!-- Indexing configuration -->
            <param name="indexingConfiguration" value="${rep.home}/index/index_config.xml"/>
            <!-- Custom text extractor -->
            <param name="textFilterClasses" value="org.artifactory.jcr.extractor.ArtifactoryTextExtractor"/>
            <!-- Workspace inconsistency handler -->
            <param name="onWorkspaceInconsistency" value="lenient"/>
        </SearchIndex>

        <!-- http://issues.apache.org/jira/browse/JCR-314 -->
        <ISMLocking class="org.apache.jackrabbit.core.state.FineGrainedISMLocking"/>
    </Workspace>
------------------------------------------------------------------------------
_______________________________________________
Artifactory-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/artifactory-users

Reply via email to