You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ka...@apache.org on 2013/10/01 21:46:04 UTC

svn commit: r1528188 - in /directory/escimo/branches/json-schema-experiment: ./ client/ client/src/main/java/org/apache/directory/scim/ client/src/main/resources/ common/ common/src/main/resources/ json2java/ json2java/src/ json2java/src/main/ json2jav...

Author: kayyagari
Date: Tue Oct  1 19:46:03 2013
New Revision: 1528188

URL: http://svn.apache.org/r1528188
Log:
o new module for holding the default schema files
o maven plugin to generate java sources from json schema

Added:
    directory/escimo/branches/json-schema-experiment/json2java/
    directory/escimo/branches/json-schema-experiment/json2java/pom.xml
    directory/escimo/branches/json-schema-experiment/json2java/src/
    directory/escimo/branches/json-schema-experiment/json2java/src/main/
    directory/escimo/branches/json-schema-experiment/json2java/src/main/java/
    directory/escimo/branches/json-schema-experiment/json2java/src/main/java/org/
    directory/escimo/branches/json-schema-experiment/json2java/src/main/java/org/apache/
    directory/escimo/branches/json-schema-experiment/json2java/src/main/java/org/apache/directory/
    directory/escimo/branches/json-schema-experiment/json2java/src/main/java/org/apache/directory/scim/
    directory/escimo/branches/json-schema-experiment/json2java/src/main/java/org/apache/directory/scim/AttributeDetail.java
      - copied unchanged from r1527303, directory/escimo/branches/json-schema-experiment/client/src/main/java/org/apache/directory/scim/AttributeDetail.java
    directory/escimo/branches/json-schema-experiment/json2java/src/main/java/org/apache/directory/scim/JsonToJava.java
      - copied, changed from r1527303, directory/escimo/branches/json-schema-experiment/client/src/main/java/org/apache/directory/scim/JsonToJava.java
    directory/escimo/branches/json-schema-experiment/json2java/src/main/resources/
    directory/escimo/branches/json-schema-experiment/json2java/src/main/resources/resource-class.st
      - copied unchanged from r1527303, directory/escimo/branches/json-schema-experiment/client/src/main/resources/resource-class.st
    directory/escimo/branches/json-schema-experiment/json2java/src/test/
    directory/escimo/branches/json-schema-experiment/json2java/src/test/java/
    directory/escimo/branches/json-schema-experiment/json2java/src/test/java/org/
    directory/escimo/branches/json-schema-experiment/json2java/src/test/java/org/apache/
    directory/escimo/branches/json-schema-experiment/json2java/src/test/java/org/apache/directory/
    directory/escimo/branches/json-schema-experiment/json2java/src/test/java/org/apache/directory/scim/
    directory/escimo/branches/json-schema-experiment/schema/
    directory/escimo/branches/json-schema-experiment/schema/pom.xml
    directory/escimo/branches/json-schema-experiment/schema/src/
    directory/escimo/branches/json-schema-experiment/schema/src/main/
    directory/escimo/branches/json-schema-experiment/schema/src/main/java/
    directory/escimo/branches/json-schema-experiment/schema/src/main/resources/
    directory/escimo/branches/json-schema-experiment/schema/src/main/resources/enterprise-user-schema.json
      - copied unchanged from r1525389, directory/escimo/branches/json-schema-experiment/common/src/main/resources/enterprise-user-schema.json
    directory/escimo/branches/json-schema-experiment/schema/src/main/resources/group-schema.json
      - copied unchanged from r1525389, directory/escimo/branches/json-schema-experiment/common/src/main/resources/group-schema.json
    directory/escimo/branches/json-schema-experiment/schema/src/main/resources/user-schema.json
      - copied unchanged from r1525389, directory/escimo/branches/json-schema-experiment/common/src/main/resources/user-schema.json
Removed:
    directory/escimo/branches/json-schema-experiment/client/src/main/java/org/apache/directory/scim/AttributeDetail.java
    directory/escimo/branches/json-schema-experiment/client/src/main/java/org/apache/directory/scim/JsonToJava.java
    directory/escimo/branches/json-schema-experiment/client/src/main/resources/resource-class.st
    directory/escimo/branches/json-schema-experiment/common/src/main/resources/enterprise-user-schema.json
    directory/escimo/branches/json-schema-experiment/common/src/main/resources/group-schema.json
    directory/escimo/branches/json-schema-experiment/common/src/main/resources/user-schema.json
Modified:
    directory/escimo/branches/json-schema-experiment/client/pom.xml
    directory/escimo/branches/json-schema-experiment/common/pom.xml
    directory/escimo/branches/json-schema-experiment/pom.xml

Modified: directory/escimo/branches/json-schema-experiment/client/pom.xml
URL: http://svn.apache.org/viewvc/directory/escimo/branches/json-schema-experiment/client/pom.xml?rev=1528188&r1=1528187&r2=1528188&view=diff
==============================================================================
--- directory/escimo/branches/json-schema-experiment/client/pom.xml (original)
+++ directory/escimo/branches/json-schema-experiment/client/pom.xml Tue Oct  1 19:46:03 2013
@@ -29,6 +29,12 @@
   <dependencies>
 
    <dependency>
+     <groupId>${project.groupId}</groupId>
+     <artifactId>escimo-schema</artifactId>
+     <version>${project.version}</version>
+   </dependency>   
+
+   <dependency>
      <groupId>org.apache.wink</groupId>
      <artifactId>wink-client</artifactId>
      <version>${wink.version}</version>
@@ -39,12 +45,31 @@
      <artifactId>escimo-common</artifactId>
      <version>${project.version}</version>
    </dependency>   
-
-   <dependency>
-     <groupId>org.antlr</groupId>
-     <artifactId>stringtemplate</artifactId>
-     <version>3.2.1</version>
-   </dependency>
       
   </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.directory.scim</groupId>
+                <artifactId>escimo-json2java</artifactId>
+                <version>${project.version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>generate</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <generatePackage>escimo</generatePackage>
+                    <useDefaultSchemas>true</useDefaultSchemas>
+<!--                     <schemaFiles>
+                        <param>**/*.java</param>
+                    </schemaFiles>
+ -->                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+  
 </project>

Modified: directory/escimo/branches/json-schema-experiment/common/pom.xml
URL: http://svn.apache.org/viewvc/directory/escimo/branches/json-schema-experiment/common/pom.xml?rev=1528188&r1=1528187&r2=1528188&view=diff
==============================================================================
--- directory/escimo/branches/json-schema-experiment/common/pom.xml (original)
+++ directory/escimo/branches/json-schema-experiment/common/pom.xml Tue Oct  1 19:46:03 2013
@@ -29,6 +29,12 @@
     <name>eSCIMo common API</name>
 
    <dependencies>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>escimo-schema</artifactId>
+      <version>${project.version}</version>
+    </dependency>   
+
    <!-- for the lack of any API spec jar for jax-rs 2.0 including Wink server in common -->
     <dependency>
       <groupId>org.apache.wink</groupId>
@@ -38,7 +44,6 @@
     <dependency>
       <groupId>com.google.code.gson</groupId>
       <artifactId>gson</artifactId>
-      <version>2.2.4</version>
     </dependency>
    </dependencies>
 

Added: directory/escimo/branches/json-schema-experiment/json2java/pom.xml
URL: http://svn.apache.org/viewvc/directory/escimo/branches/json-schema-experiment/json2java/pom.xml?rev=1528188&view=auto
==============================================================================
--- directory/escimo/branches/json-schema-experiment/json2java/pom.xml (added)
+++ directory/escimo/branches/json-schema-experiment/json2java/pom.xml Tue Oct  1 19:46:03 2013
@@ -0,0 +1,126 @@
+<?xml version="1.0"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.directory.scim</groupId>
+    <artifactId>escimo</artifactId>
+    <version>1.0-SNAPSHOT</version>
+  </parent>
+  <artifactId>escimo-json2java</artifactId>
+  <packaging>maven-plugin</packaging>
+  <name>eSCIMo json2java compiler plugin</name>
+
+  <dependencies>
+
+   <dependency>
+     <groupId>${project.groupId}</groupId>
+     <artifactId>escimo-schema</artifactId>
+     <version>${project.version}</version>
+   </dependency>   
+      
+   <dependency>
+     <groupId>org.antlr</groupId>
+     <artifactId>stringtemplate</artifactId>
+     <version>3.2.1</version>
+   </dependency>
+
+    <dependency>
+      <groupId>com.google.code.gson</groupId>
+      <artifactId>gson</artifactId>
+      <version>2.2.4</version>
+    </dependency>
+
+<!-- 	<dependency>
+      <groupId>net.sf.corn</groupId>
+      <artifactId>corn-cps</artifactId>
+      <version>1.1.1</version>
+	</dependency>
+ -->	
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-plugin-api</artifactId>
+      <version>2.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.plugin-tools</groupId>
+      <artifactId>maven-plugin-annotations</artifactId>
+      <version>3.2</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-utils</artifactId>
+      <version>3.0.8</version>
+    </dependency>
+
+  </dependencies>
+  
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-plugin-plugin</artifactId>
+        <version>3.2</version>
+        <configuration>
+          <goalPrefix>json2java</goalPrefix>
+          <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
+        </configuration>
+        <executions>
+          <execution>
+            <id>mojo-descriptor</id>
+            <goals>
+              <goal>descriptor</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>help-goal</id>
+            <goals>
+              <goal>helpmojo</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  <profiles>
+    <profile>
+      <id>run-its</id>
+      <build>
+
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-invoker-plugin</artifactId>
+            <version>1.7</version>
+            <configuration>
+              <debug>true</debug>
+              <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
+              <pomIncludes>
+                <pomInclude>*/pom.xml</pomInclude>
+              </pomIncludes>
+              <postBuildHookScript>verify</postBuildHookScript>
+              <localRepositoryPath>${project.build.directory}/local-repo</localRepositoryPath>
+              <settingsFile>src/it/settings.xml</settingsFile>
+              <goals>
+                <goal>clean</goal>
+                <goal>test-compile</goal>
+              </goals>
+            </configuration>
+            <executions>
+              <execution>
+                <id>integration-test</id>
+                <goals>
+                  <goal>install</goal>
+                  <goal>integration-test</goal>
+                  <goal>verify</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+
+      </build>
+    </profile>
+  </profiles>
+</project>

Copied: directory/escimo/branches/json-schema-experiment/json2java/src/main/java/org/apache/directory/scim/JsonToJava.java (from r1527303, directory/escimo/branches/json-schema-experiment/client/src/main/java/org/apache/directory/scim/JsonToJava.java)
URL: http://svn.apache.org/viewvc/directory/escimo/branches/json-schema-experiment/json2java/src/main/java/org/apache/directory/scim/JsonToJava.java?p2=directory/escimo/branches/json-schema-experiment/json2java/src/main/java/org/apache/directory/scim/JsonToJava.java&p1=directory/escimo/branches/json-schema-experiment/client/src/main/java/org/apache/directory/scim/JsonToJava.java&r1=1527303&r2=1528188&rev=1528188&view=diff
==============================================================================
--- directory/escimo/branches/json-schema-experiment/client/src/main/java/org/apache/directory/scim/JsonToJava.java (original)
+++ directory/escimo/branches/json-schema-experiment/json2java/src/main/java/org/apache/directory/scim/JsonToJava.java Tue Oct  1 19:46:03 2013
@@ -21,20 +21,31 @@ package org.apache.directory.scim;
 
 
 import java.io.BufferedReader;
-import java.io.FileReader;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.net.URL;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
 import org.antlr.stringtemplate.StringTemplate;
 import org.antlr.stringtemplate.StringTemplateGroup;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugin.logging.Log;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
 
+import com.google.gson.Gson;
 import com.google.gson.JsonArray;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;
+import com.sun.tools.internal.xjc.reader.xmlschema.bindinfo.BIConversion.User;
 
 
 /**
@@ -42,25 +53,181 @@ import com.google.gson.JsonParser;
  *
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  */
-public class JsonToJava
+@Mojo(name = "generate")
+public class JsonToJava extends AbstractMojo
 {
+    @Parameter(defaultValue = "org.apache.directory.scim")
+    private String generatePackage;
+
+    @Parameter
+    private URL schemaBaseUrl;
+
+    @Parameter
+    private List<String> schemaFiles;
+
+    @Parameter
+    private boolean useDefaultSchemas;
+
+    @Parameter(defaultValue = "${project.build.directory}")
+    protected File targetDirectory;
+
     private static StringTemplateGroup stg = new StringTemplateGroup( "json" );
-    
-    public static void compile( String schema )
+
+
+    @Override
+    public void execute() throws MojoExecutionException, MojoFailureException
+    {
+        Log log = getLog();
+
+        getLog().warn( "===============" + JsonToJava.class.getName() );
+
+        if ( useDefaultSchemas && ( ( schemaBaseUrl != null ) || ( schemaFiles != null ) ) )
+        {
+            String msg = "Conflicting configuration options. schemaBaseUrl or schemaFiles cannot be specified when useDefaultSchemas is set to true";
+            log.warn( msg );
+            throw new MojoFailureException( msg );
+        }
+
+        String packageDirPath = generatePackage.replace( ".", "/" );
+
+        File srcDir = new File( targetDirectory, "generated-sources/json2java/" + packageDirPath );
+
+        log.debug( "Creating directories for storing generated source files" );
+
+        if( !srcDir.exists() )
+        {
+            boolean created = srcDir.mkdirs();
+            if ( !created )
+            {
+                String msg = "Failed to create the directory " + srcDir.getAbsolutePath()
+                    + " to store the generated source files";
+                log.warn( msg );
+                throw new MojoFailureException( msg );
+            }
+        }
+
+        List<URL> lst = null;
+
+        if ( useDefaultSchemas )
+        {
+            log.info( "Generating sources for the default schemas" );
+            lst = getDefaultSchemas();
+
+            if ( lst.isEmpty() )
+            {
+                throw new MojoFailureException( "None of the default schemas found in the classpath" );
+            }
+        }
+
+        for ( URL url : lst )
+        {
+            String schemaJson = getSchemaJson( url );
+            compileAndSave( schemaJson, srcDir );
+        }
+    }
+
+
+    private String getSchemaJson( URL url ) throws MojoExecutionException
+    {
+        BufferedReader br = null;
+        try
+        {
+            getLog().debug( "Fetching the contents of the resource at URL " + url );
+            br = new BufferedReader( new InputStreamReader( url.openStream() ) );
+
+            String s;
+
+            StringBuilder sb = new StringBuilder();
+            while ( ( s = br.readLine() ) != null )
+            {
+                sb.append( s );
+            }
+
+            return sb.toString();
+        }
+        catch ( IOException e )
+        {
+            throw new MojoExecutionException( "Failed to read schema data from the URL " + url, e );
+        }
+        finally
+        {
+            if ( br != null )
+            {
+                try
+                {
+                    br.close();
+                }
+                catch ( IOException e )
+                {
+                    // ignore
+                }
+            }
+        }
+    }
+
+
+    private List<URL> getDefaultSchemas()
+    {
+        String[] stockNames =
+            { "user-schema.json", "group-schema.json", "enterprise-user-schema.json" };
+        List<URL> lst = new ArrayList<URL>();
+
+        ClassLoader cl = Thread.currentThread().getContextClassLoader();
+        for ( String s : stockNames )
+        {
+            URL u = cl.getResource( s );
+            lst.add( u );
+        }
+
+        return lst;
+    }
+
+
+    public void compileAndSave( String schema, File srcDir )  throws MojoExecutionException
     {
         JsonParser parser = new JsonParser();
         JsonObject json = ( JsonObject ) parser.parse( schema );
 
-        List<String> innerClasses = new ArrayList<String>();
+        String className = json.get( "name" ).getAsString();
         
+        List<String> innerClasses = new ArrayList<String>();
+
         StringTemplate template = generateClass( json, innerClasses, null );
         template.setAttribute( "allInnerClasses", innerClasses );
-        
+
         System.out.println( template );
+        
+        File javaFile = new File( srcDir, className + ".java" );
+        
+        FileWriter fw = null;
+        
+        try
+        {
+            fw = new FileWriter( javaFile );
+            fw.write( template.toString() );
+        }
+        catch( IOException e )
+        {
+            throw new MojoExecutionException( "Failed to store the generated source file for schema " + className, e );
+        }
+        finally
+        {
+            if ( fw != null )
+            {
+                try
+                {
+                    fw.close();
+                }
+                catch ( IOException e )
+                {
+                    // ignore
+                }
+            }
+        }
     }
 
-    
-    private static StringTemplate generateClass( JsonObject json, List<String> innerClasses, StringTemplate parent )
+
+    private StringTemplate generateClass( JsonObject json, List<String> innerClasses, StringTemplate parent )
     {
         StringTemplate template = stg.getInstanceOf( "resource-class" );
 
@@ -69,7 +236,7 @@ public class JsonToJava
             String schemaId = json.get( "id" ).getAsString();
             template.setAttribute( "schemaId", schemaId );
 
-            template.setAttribute( "package", "org.apache.directory.scim" );
+            template.setAttribute( "package", generatePackage );
 
             template.setAttribute( "visibility", "public" );
 
@@ -77,7 +244,7 @@ public class JsonToJava
             template.setAttribute( "resourceDesc", desc );
         }
 
-        if( parent != null )
+        if ( parent != null )
         {
             template.setAttribute( "static", "static" );
         }
@@ -87,10 +254,9 @@ public class JsonToJava
 
         List<AttributeDetail> simpleAttributes = new ArrayList<AttributeDetail>();
 
-
         JsonArray attributes;
-        
-        if( json.has( "attributes" ) )
+
+        if ( json.has( "attributes" ) )
         {
             attributes = json.get( "attributes" ).getAsJsonArray();
         }
@@ -117,34 +283,46 @@ public class JsonToJava
                 javaType = "boolean";
             }
 
+            boolean multiValued = false;
+
             if ( type.equals( "complex" ) )
             {
                 javaType = Character.toUpperCase( name.charAt( 0 ) ) + name.substring( 1 );
-                
-                if( javaType.endsWith( "s" ) )
+
+                if ( javaType.endsWith( "s" ) )
                 {
-                    javaType = javaType.substring( 0, javaType.length() - 1 );
+                    int endPos = javaType.length() - 1;
+
+                    // special case for Address'es'
+                    if ( javaType.endsWith( "Addresses" ) )
+                    {
+                        endPos += 1;
+                    }
+
+                    javaType = javaType.substring( 0, endPos );
                 }
-                
+
                 // replace the type's name
                 jo.remove( "name" );
                 jo.addProperty( "name", javaType );
-                
+
                 javaType = className + "." + javaType;
-                
-                boolean multiValued = jo.get( "multiValued" ).getAsBoolean();
-                
+
+                multiValued = jo.get( "multiValued" ).getAsBoolean();
+
                 if ( multiValued )
                 {
                     javaType = "java.util.List<" + javaType + ">";
                 }
-                
+
                 //how to add inner classes
                 StringTemplate inner = generateClass( jo, innerClasses, template );
                 innerClasses.add( inner.toString() );
             }
 
             AttributeDetail nc = new AttributeDetail( name, javaType );
+            nc.setMultiValued( multiValued );
+
             simpleAttributes.add( nc );
         }
 
@@ -153,11 +331,50 @@ public class JsonToJava
         return template;
     }
 
+
+    /**
+     * @param generatePackage the generatePackage to set
+     */
+    public void setGeneratePackage( String generatePackage )
+    {
+        this.generatePackage = generatePackage;
+    }
+
+
+    /**
+     * @param schemaBaseUrl the schemaBaseUrl to set
+     */
+    public void setSchemaBaseUrl( URL schemaBaseUrl )
+    {
+        this.schemaBaseUrl = schemaBaseUrl;
+    }
+
+
+    /**
+     * @param schemaFiles the schemaFiles to set
+     */
+    public void setSchemaFiles( List<String> schemaFiles )
+    {
+        this.schemaFiles = schemaFiles;
+    }
+
+
+    /**
+     * @param stg the stg to set
+     */
+    public static void setStg( StringTemplateGroup stg )
+    {
+        JsonToJava.stg = stg;
+    }
+
+
     public static void main( String[] args ) throws Exception
     {
-        //InputStream in = JsonToJava.class.getClassLoader().getSystemClassLoader().getResourceAsStream( "user-schema.json" );
-        BufferedReader br = new BufferedReader( new FileReader(
-            "/Users/dbugger/projects/json-schema-escimo/common/src/main/resources/user-schema.json" ) );
+        InputStream in = JsonToJava.class.getClassLoader().getResourceAsStream( "example-user.json" );
+        BufferedReader br = new BufferedReader( new InputStreamReader( in ) );
+
+        //        BufferedReader br = new BufferedReader( new FileReader(
+        //            "/Users/dbugger/projects/json-schema-escimo/common/src/main/resources/user-schema.json" ) );
         String s;
 
         StringBuilder sb = new StringBuilder();
@@ -166,6 +383,11 @@ public class JsonToJava
             sb.append( s );
         }
 
-        JsonToJava.compile( sb.toString() );
+        //        JsonToJava.compile( sb.toString() );
+        Gson gson = new Gson();
+
+        String json = sb.toString();
+        User u = gson.fromJson( json, User.class );
+        System.out.println( u );
     }
 }

Modified: directory/escimo/branches/json-schema-experiment/pom.xml
URL: http://svn.apache.org/viewvc/directory/escimo/branches/json-schema-experiment/pom.xml?rev=1528188&r1=1528187&r2=1528188&view=diff
==============================================================================
--- directory/escimo/branches/json-schema-experiment/pom.xml (original)
+++ directory/escimo/branches/json-schema-experiment/pom.xml Tue Oct  1 19:46:03 2013
@@ -37,6 +37,8 @@
     <module>client</module>
     <module>ldap</module>
     <module>tests</module>
+    <module>json2java</module>
+    <module>schema</module>
   </modules>
   
  <dependencyManagement>
@@ -46,6 +48,11 @@
     <artifactId>wink-client</artifactId>
     <version>${wink.version}</version>
    </dependency>
+   <dependency>
+     <groupId>com.google.code.gson</groupId>
+     <artifactId>gson</artifactId>
+     <version>2.2.4</version>
+   </dependency>
   </dependencies>
  </dependencyManagement>
 
@@ -76,4 +83,4 @@
     </dependency>
   </dependencies>
 
-</project>
\ No newline at end of file
+</project>

Added: directory/escimo/branches/json-schema-experiment/schema/pom.xml
URL: http://svn.apache.org/viewvc/directory/escimo/branches/json-schema-experiment/schema/pom.xml?rev=1528188&view=auto
==============================================================================
--- directory/escimo/branches/json-schema-experiment/schema/pom.xml (added)
+++ directory/escimo/branches/json-schema-experiment/schema/pom.xml Tue Oct  1 19:46:03 2013
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.directory.scim</groupId>
+    <artifactId>escimo</artifactId>
+    <version>1.0-SNAPSHOT</version>
+  </parent>
+  <artifactId>escimo-schema</artifactId>
+  <name>eSCIMo Schema Resources</name>
+  <dependencies>
+  </dependencies>
+</project>