void initialize(Object... objs);\r
\r
/**\r
- * Close the dependency environment for build.<br>\r
- * This method must be called after dependencies was manipulated.\r
- */\r
- void close();\r
- \r
- /**\r
* Clear the all dependencies and vertexes.\r
*/\r
boolean clear();\r
}\r
} catch (IOException e) {\r
throw new BuildException( e );\r
- } finally {\r
- // finalize dependencies like commit.\r
- this.dependencies.close();\r
}\r
}\r
\r
this.build( next.toArray( new Resource[0] ) );\r
} catch (IOException e) {\r
throw new BuildException( e );\r
- } finally {\r
- this.dependencies.close();\r
}\r
}\r
\r
*/
public static final String RESOURCE_KEY_LAYER = "layer";
+ public static final String RESOURCE_KEY_PROJECT = "project";
+
/**
* Dependency data label for storing edge.
*/
public static final String EDGE_LABEL = "edge";
-}
+}
\ No newline at end of file
*/
package org.tizen.common.builder.dependency;
+import java.io.File;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import org.tizen.common.builder.Resource;
import org.tizen.common.builder.ResourceLayer;
import org.tizen.common.util.Assert;
+import org.tizen.common.util.StringUtil;
import com.tinkerpop.blueprints.Direction;
import com.tinkerpop.blueprints.Edge;
import com.tinkerpop.blueprints.Vertex;
import com.tinkerpop.blueprints.impls.orient.OrientEdge;
-import com.tinkerpop.blueprints.impls.orient.OrientGraph;
+import com.tinkerpop.blueprints.impls.orient.OrientGraphNoTx;
import com.tinkerpop.blueprints.impls.orient.OrientVertex;
public class DependencyInDB implements BuildDependency {
- protected final Logger logger = LoggerFactory.getLogger( getClass() );
+ protected static final Logger logger = LoggerFactory.getLogger( DependencyInDB.class );
public static final String DB_NAME = "Dependency";
- protected OrientGraph graph;
- protected ResourceLayer lastLayer;
- protected String url;
+ protected static OrientGraphNoTx graph; // db instance
+ protected static String path; // absolute path for database storing
+ protected static String url; // be made from the path
+
+ protected String projectName; // project of resource
+ protected ResourceLayer lastLayer; // last resource layer for data sync
/**
- * Constructor
- * @param dbAbsolutePath local database path
+ * Root URL setter for storing. If dbAbsoultePath is an empty, use the previous path.
+ * @param dbPath local database path.
*/
- public DependencyInDB(String dbAbsolutePath) {
- setUrl( dbAbsolutePath );
+ public static synchronized void setUrl(String dbAbsolutePath) {
+ Assert.isNull( graph );
+
+ // ( previous path : null, argument : null ) = Assertion
+ // ( previous path : not null, argument : null ) = use previous path
+ // ( previous path : null, argument : not null ) = use argument
+ // ( previous path : not null, argument : not null ) = use argument
+
+ if ( StringUtil.isEmpty( path ) ) {
+ Assert.notNull( dbAbsolutePath );
+ }
+
+ if ( ! StringUtil.isEmpty( dbAbsolutePath ) ) {
+ path = dbAbsolutePath;
+ }
+
+ url = DependencyConstant.DB_PROTOCOL + path; // ex. "local:/home/dbstorage"
}
/**
- * Root URL setter for storing
- * @param dbPath local database path.
+ * Information setter for resource separation.
+ * This method must be called more than once before access methods be used.
+ * @param projectName for resource separation.
*/
- public void setUrl(String dbAbsolutePath) {
- Assert.notNull( dbAbsolutePath );
- this.url = DependencyConstant.DB_PROTOCOL + dbAbsolutePath; // ex. "local:/home/dbstorage"
+ public void setProjectName(String projectName) {
+ Assert.notNull( projectName );
+ this.projectName = projectName;
}
/**
}
/**
- * Database will be opened.<br>
- * Can be set the last resource layer by arguments<br>
- * <b>Important : </b>The client is responsible for calling the close method when finished.
+ * Database will be opened. If doesn't exist, create both a storage and an index.
+ * This method must be called when this class have the url information.
*/
- public void initialize(Object... objs) {
- if ( objs != null ) {
- for ( Object obj : objs ) {
- if ( obj instanceof ResourceLayer ) {
- setLastResourceLayer( (ResourceLayer) obj );
- }
- }
- }
+ public static synchronized void open(String dbAbsolutePath) {
+ setUrl( dbAbsolutePath );
- Assert.notNull( this.url );
+ Assert.notNull( url );
- if ( this.graph == null ) {
- this.graph = new OrientGraph( this.url );
- this.graph.setUseLightweightEdges( false );
+ if ( graph == null ) {
+ // check for creating first
+ boolean bCreateIndex = false;
+ if ( ! new File( path ).exists() ) {
+ bCreateIndex = true;
+ }
- this.logger.trace( "Open OrientGraphDB : {}", this.url );
+ // create or open DB
+ graph = new OrientGraphNoTx( url );
+ graph.setUseLightweightEdges( false );
+
+ // create indexes
+ if ( bCreateIndex ) {
+ graph.createKeyIndex( DependencyConstant.RESOURCE_KEY_PATH, Vertex.class );
+ }
+
+ logger.info( "Open OrientGraphDB : {}", url );
} else {
- this.logger.warn( "Failed to initialize because have already been initialized." );
+ logger.info( "Failed to open because have already been opened." );
}
}
/**
* Database will be closed.
*/
- public void close() {
- if ( this.graph != null ) {
- this.graph.shutdown();
- this.graph = null;
+ public static synchronized void close() {
+ if ( graph != null ) {
+ graph.commit();
+ graph.shutdown();
+ graph = null;
- this.logger.trace( "Shutdown OrientGraphDB" );
+ logger.info( "Shutdown OrientGraphDB" );
} else {
- this.logger.warn( "Failed to shutdown because didn't be initialized." );
+ logger.info( "Failed to shutdown because didn't be initialized." );
+ }
+ }
+
+ /**
+ * Can be set the last resource layer by arguments
+ */
+ @Override
+ public void initialize(Object... objs) {
+ if ( objs != null ) {
+ for ( Object obj : objs ) {
+ if ( obj instanceof ResourceLayer ) {
+ setLastResourceLayer( (ResourceLayer) obj );
+ }
+ }
}
}
@Override
public boolean clear() {
- this.initialize();
+ Assert.notNull( this.projectName );
// remove database from local storage.
- this.graph.drop();
- this.graph.shutdown();
- this.graph = null;
+ Iterator<Edge> eIter = graph.getEdges( DependencyConstant.RESOURCE_KEY_PROJECT, this.projectName ).iterator();
+ while ( eIter.hasNext() ) {
+ Edge next = eIter.next();
+ graph.removeEdge( next );
+ }
+ Iterator<Vertex> vIter = graph.getVertices( DependencyConstant.RESOURCE_KEY_PROJECT, this.projectName ).iterator();
+ while ( vIter.hasNext() ) {
+ Vertex next = vIter.next();
+ graph.removeVertex( next );
+ }
+
+ logger.trace( "Remove all resources" );
- this.logger.trace( "Remove OrientGraphDB storage" );
return true;
}
+ public void clearAll() {
+ Assert.notNull( graph );
+
+ graph.drop();
+ }
+
@Override
public void addVertex(Resource resource) {
+ Assert.notNull( this.projectName );
Assert.notNull( resource );
- OrientVertex vertex = this.graph.addVertex( null );
+ OrientVertex vertex = graph.addVertex( null );
vertex.setProperty( DependencyConstant.RESOURCE_KEY_PATH, resource.getPath() );
vertex.setProperty( DependencyConstant.RESOURCE_KEY_LAYER, resource.getLayer().getName() );
+ vertex.setProperty( DependencyConstant.RESOURCE_KEY_PROJECT, this.projectName );
- this.graph.commit();
- this.logger.trace( "commit an added vertex : {}", resource );
+ logger.trace( "an added vertex : {}", resource );
}
+ /**
+ * Returns a vertex from Database using resource information.
+ * @param resource information for searching
+ * @return If not found, return null. Otherwise return a vertex
+ */
protected Vertex getVertexFromDB(Resource resource) {
+ Assert.notNull( this.projectName );
Assert.notNull( resource );
ResourceLayer layer = resource.getLayer();
- String layerName = layer.getName();
Assert.notNull( layer );
- Iterator<Vertex> iterator = this.graph.getVertices(
+ String layerName = layer.getName();
+
+ Iterator<Vertex> iterator = graph.getVertices(
DependencyConstant.RESOURCE_KEY_PATH,
resource.getPath()
).iterator();
while( iterator.hasNext() ) {
Vertex vertex = iterator.next();
+
Object value = vertex.getProperty( DependencyConstant.RESOURCE_KEY_LAYER );
- if ( value instanceof String ) {
- if ( ( (String) value ) .equals( layerName ) ) {
+ Object project = vertex.getProperty( DependencyConstant.RESOURCE_KEY_PROJECT );
+
+ if ( ( value instanceof String ) && ( project instanceof String ) ) {
+ if ( ((String) value).equals( layerName ) &&
+ ((String) project).equals( this.projectName ) ) {
return vertex;
}
}
public void removeVertex(Resource resource) {
Vertex vertex = getVertexFromDB( resource );
if ( vertex != null ) {
- this.graph.removeVertex( vertex );
- this.graph.commit();
- this.logger.trace( "commit a removed vertex : {}", resource );
+ graph.removeVertex( vertex );
+ logger.trace( "a removed vertex : {}", resource );
}
}
Assert.notNull( inVertex );
Assert.notNull( outVertex );
- OrientEdge edge = this.graph.addEdge( null, outVertex, inVertex, DependencyConstant.EDGE_LABEL );
- this.graph.commit();
- this.logger.trace( "commit an added edge : {}", edge );
+ OrientEdge edge = graph.addEdge( null, outVertex, inVertex, DependencyConstant.EDGE_LABEL );
+ logger.trace( "an added edge : {}", edge );
}
@Override
// remove edges
Iterator<Edge> iterator = inVertex.getEdges( outVertex, Direction.IN ).iterator();
- int cnt = 0; // removed count
while( iterator.hasNext() ) {
- this.graph.removeEdge( iterator.next() );
- cnt++;
- }
-
- if ( cnt > 0 ) {
- this.graph.commit();
- this.logger.trace( "commit removed edges ( {} )", cnt );
+ Edge edge = iterator.next();
+ graph.removeEdge( edge );
+ logger.trace( "an removed edge : {}", edge );
}
}
}\r
\r
@Override\r
- public void close() {\r
- // TODO Auto-generated method stub\r
- \r
- }\r
-\r
- @Override\r
public boolean clear() {\r
// TODO Auto-generated method stub\r
return false;\r
}\r
\r
@Override\r
- public void close() {\r
- // do nothing\r
- }\r
-\r
- @Override\r
public boolean clear() {\r
// do nothing\r
return true;\r
Builder secondMockBuilder = new ExtensionFilterMockBuilder( secondLayer, "html" );
// create DependencyInDB for main test
- // TODO: where do you make a temporary database storage for test?
- String storagepath = new File( testStorageName ).getAbsolutePath();
- DependencyInDB didb = new DependencyInDB( new Path( storagepath ).toString() );
+ String storageAbsPath = new File( testStorageName ).getAbsolutePath();
+ DependencyInDB.open( new Path( storageAbsPath ).toString() );
+ DependencyInDB didb = new DependencyInDB();
+ didb.setProjectName( "local" );
- // create BuildProcess and add builders
- BuildProcess buildProcess = new BuildProcess( didb );
- buildProcess.addBuilder( firstMockBuilder );
- buildProcess.addBuilder( secondMockBuilder );
- // build
- buildProcess.build( createResources( fileLayer ) );
-
- // check database
try {
- didb.initialize();
+ // create BuildProcess and add builders
+ BuildProcess buildProcess = new BuildProcess( didb );
+ buildProcess.addBuilder( firstMockBuilder );
+ buildProcess.addBuilder( secondMockBuilder );
+
+ // build
+ buildProcess.build( createResources( fileLayer ) );
+ // check database
Object[][] TEST_CASES = {
{ new Resource( fileLayer, "/a.js" ), new Resource( firstLayer, "/a.js" ) },
{ new Resource( fileLayer, "/b.js" ), new Resource( firstLayer, "/b.js" ) },
}
}
} finally {
- didb.close();
+ didb.clearAll();
+ DependencyInDB.close();
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/antlr-2.7.7.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/asm-3.2.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/blueprints-core-2.5.0-SNAPSHOT.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/blueprints-orient-graph-2.5.0-SNAPSHOT.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/commons-configuration-1.6.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/gremlin-groovy-2.5.0-SNAPSHOT.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/gremlin-java-2.5.0-SNAPSHOT.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/groovy-1.8.9.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/hazelcast-3.0.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/hibernate-jpa-2.0-api-1.0.0.Final.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/jansi-1.5.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/javassist.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/jline-0.9.94.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/jna-3.5.2.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/mail.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/orient-commons-1.5.1.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/orientdb-client-1.5.1.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/orientdb-core-1.5.1.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/orientdb-distributed-1.5.1.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/orientdb-enterprise-1.5.1.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/orientdb-graphdb-1.5.1.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/orientdb-nativeos-1.5.1.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/orientdb-object-1.5.1.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/orientdb-server-1.5.1.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/orientdb-tools-1.5.1.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/pipes-2.5.0-SNAPSHOT.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/platform.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/sesame-model-2.6.10.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/sesame-query-2.6.10.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/sesame-rio-api-2.6.10.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/sesame-sail-api-2.6.10.jar"/>
- <classpathentry exported="true" kind="lib" path="orientdb_lib/snappy-0.3.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/antlr-2.7.7.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/asm-3.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/blueprints-core-2.5.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/blueprints-orient-graph-2.5.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/commons-configuration-1.6.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/gremlin-groovy-2.5.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/gremlin-java-2.5.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/groovy-1.8.9.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/hazelcast-3.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/hibernate-jpa-2.0-api-1.0.0.Final.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/jansi-1.5.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/javassist.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/jline-0.9.94.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/jna-3.5.2.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/mail.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/orient-commons-1.5.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/orientdb-client-1.5.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/orientdb-core-1.5.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/orientdb-distributed-1.5.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/orientdb-enterprise-1.5.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/orientdb-graphdb-1.5.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/orientdb-nativeos-1.5.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/orientdb-object-1.5.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/orientdb-server-1.5.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/orientdb-tools-1.5.1.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/pipes-2.5.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/platform.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/sesame-model-2.6.10.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/sesame-query-2.6.10.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/sesame-rio-api-2.6.10.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/sesame-sail-api-2.6.10.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/orientdb/snappy-0.3.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
org.mihalis.opal.transitionComposite,
org.mihalis.opal.utils,
org.tizen.common.externals
-Bundle-ClassPath: orientdb_lib/antlr-2.7.7.jar,
- orientdb_lib/asm-3.2.jar,
- orientdb_lib/blueprints-core-2.5.0-SNAPSHOT.jar,
- orientdb_lib/blueprints-orient-graph-2.5.0-SNAPSHOT.jar,
- orientdb_lib/commons-configuration-1.6.jar,
- orientdb_lib/gremlin-groovy-2.5.0-SNAPSHOT.jar,
- orientdb_lib/gremlin-java-2.5.0-SNAPSHOT.jar,
- orientdb_lib/groovy-1.8.9.jar,
- orientdb_lib/hazelcast-3.0.jar,
- orientdb_lib/hibernate-jpa-2.0-api-1.0.0.Final.jar,
- orientdb_lib/jansi-1.5.jar,
- orientdb_lib/javassist.jar,
- orientdb_lib/jline-0.9.94.jar,
- orientdb_lib/jna-3.5.2.jar,
- orientdb_lib/mail.jar,
- orientdb_lib/orient-commons-1.5.1.jar,
- orientdb_lib/orientdb-client-1.5.1.jar,
- orientdb_lib/orientdb-core-1.5.1.jar,
- orientdb_lib/orientdb-distributed-1.5.1.jar,
- orientdb_lib/orientdb-enterprise-1.5.1.jar,
- orientdb_lib/orientdb-graphdb-1.5.1.jar,
- orientdb_lib/orientdb-nativeos-1.5.1.jar,
- orientdb_lib/orientdb-object-1.5.1.jar,
- orientdb_lib/orientdb-server-1.5.1.jar,
- orientdb_lib/orientdb-tools-1.5.1.jar,
- orientdb_lib/pipes-2.5.0-SNAPSHOT.jar,
- orientdb_lib/platform.jar,
- orientdb_lib/sesame-model-2.6.10.jar,
- orientdb_lib/sesame-query-2.6.10.jar,
- orientdb_lib/sesame-rio-api-2.6.10.jar,
- orientdb_lib/sesame-sail-api-2.6.10.jar,
- orientdb_lib/snappy-0.3.jar,
- .
+Bundle-ClassPath: .,
+ lib/orientdb/antlr-2.7.7.jar,
+ lib/orientdb/asm-3.2.jar,
+ lib/orientdb/blueprints-core-2.5.0-SNAPSHOT.jar,
+ lib/orientdb/blueprints-orient-graph-2.5.0-SNAPSHOT.jar,
+ lib/orientdb/commons-configuration-1.6.jar,
+ lib/orientdb/gremlin-groovy-2.5.0-SNAPSHOT.jar,
+ lib/orientdb/gremlin-java-2.5.0-SNAPSHOT.jar,
+ lib/orientdb/groovy-1.8.9.jar,
+ lib/orientdb/hazelcast-3.0.jar,
+ lib/orientdb/hibernate-jpa-2.0-api-1.0.0.Final.jar,
+ lib/orientdb/jansi-1.5.jar,
+ lib/orientdb/javassist.jar,
+ lib/orientdb/jline-0.9.94.jar,
+ lib/orientdb/jna-3.5.2.jar,
+ lib/orientdb/mail.jar,
+ lib/orientdb/orient-commons-1.5.1.jar,
+ lib/orientdb/orientdb-client-1.5.1.jar,
+ lib/orientdb/orientdb-core-1.5.1.jar,
+ lib/orientdb/orientdb-distributed-1.5.1.jar,
+ lib/orientdb/orientdb-enterprise-1.5.1.jar,
+ lib/orientdb/orientdb-graphdb-1.5.1.jar,
+ lib/orientdb/orientdb-nativeos-1.5.1.jar,
+ lib/orientdb/orientdb-object-1.5.1.jar,
+ lib/orientdb/orientdb-server-1.5.1.jar,
+ lib/orientdb/orientdb-tools-1.5.1.jar,
+ lib/orientdb/pipes-2.5.0-SNAPSHOT.jar,
+ lib/orientdb/platform.jar,
+ lib/orientdb/sesame-model-2.6.10.jar,
+ lib/orientdb/sesame-query-2.6.10.jar,
+ lib/orientdb/sesame-rio-api-2.6.10.jar,
+ lib/orientdb/sesame-sail-api-2.6.10.jar,
+ lib/orientdb/snappy-0.3.jar
</ul>
</p>
+<h4>OrientDB</h4>
+<p>
+This library provide a graph database. This is being used to manage the build dependency.
+</p>
+
+<p>
+A copy of the license is included in <a href="about_files/LICENSE-2.0.htm">about_files/LICENSE-2.0.htm</a>. The home page is located at:
+<ul>
+<a href="http://www.orientdb.org/">http://www.orientdb.org/</a>
+</ul>
+</p>
+
</body>
</html>
\ No newline at end of file
about.html,\\r
about_files/,\\r
images/,\\r
- orientdb_lib/\r
+ lib/orientdb/antlr-2.7.7.jar,\\r
+ lib/orientdb/asm-3.2.jar,\\r
+ lib/orientdb/blueprints-core-2.5.0-SNAPSHOT.jar,\\r
+ lib/orientdb/blueprints-orient-graph-2.5.0-SNAPSHOT.jar,\\r
+ lib/orientdb/commons-configuration-1.6.jar,\\r
+ lib/orientdb/gremlin-groovy-2.5.0-SNAPSHOT.jar,\\r
+ lib/orientdb/gremlin-java-2.5.0-SNAPSHOT.jar,\\r
+ lib/orientdb/groovy-1.8.9.jar,\\r
+ lib/orientdb/hazelcast-3.0.jar,\\r
+ lib/orientdb/hibernate-jpa-2.0-api-1.0.0.Final.jar,\\r
+ lib/orientdb/jansi-1.5.jar,\\r
+ lib/orientdb/javassist.jar,\\r
+ lib/orientdb/jline-0.9.94.jar,\\r
+ lib/orientdb/jna-3.5.2.jar,\\r
+ lib/orientdb/mail.jar,\\r
+ lib/orientdb/orient-commons-1.5.1.jar,\\r
+ lib/orientdb/orientdb-client-1.5.1.jar,\\r
+ lib/orientdb/orientdb-core-1.5.1.jar,\\r
+ lib/orientdb/orientdb-distributed-1.5.1.jar,\\r
+ lib/orientdb/orientdb-enterprise-1.5.1.jar,\\r
+ lib/orientdb/orientdb-graphdb-1.5.1.jar,\\r
+ lib/orientdb/orientdb-nativeos-1.5.1.jar,\\r
+ lib/orientdb/orientdb-object-1.5.1.jar,\\r
+ lib/orientdb/orientdb-server-1.5.1.jar,\\r
+ lib/orientdb/orientdb-tools-1.5.1.jar,\\r
+ lib/orientdb/pipes-2.5.0-SNAPSHOT.jar,\\r
+ lib/orientdb/platform.jar,\\r
+ lib/orientdb/sesame-model-2.6.10.jar,\\r
+ lib/orientdb/sesame-query-2.6.10.jar,\\r
+ lib/orientdb/sesame-rio-api-2.6.10.jar,\\r
+ lib/orientdb/sesame-sail-api-2.6.10.jar,\\r
+ lib/orientdb/snappy-0.3.jar\r