Hello, I am working on an application to use Torque to create XML schema from the existing database and then generate the Java OM classes from this schema on the fly. For this I don't want to use the Maven 2 build. Hence I referred to your JUnit case TorqueOMMojoTest.java and tried something similar like this:
private void test() throws Exception { TorqueJDBCTransformTask task = new TorqueJDBCTransformTask(); task.setDbDriver("com.mysql.jdbc.Driver"); task.setDbUrl("jdbc:mysql://127.0.0.1:3306/pump"); task.setDbUser("user"); task.setDbPassword("password"); task.setDbSchema("pump"); task.setSameJavaName(true); task.setOutputFile("test.xml"); task.execute(); System.out.println(); //setupContainer(); MavenProjectBuilder builder = (MavenProjectBuilder) lookup(MavenProjectBuilder.ROLE); * ArtifactRepositoryLayout localRepositoryLayout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, "default"); * ArtifactRepository localRepository = new DefaultArtifactRepository( "local", "file://" + getBasedir() + File.separator + "target/test-classes/repository", localRepositoryLayout); MavenProject mavenProject = builder.buildWithDependencies( new File( getBasedir(), "target/test-classes/projects/TestJDBCtoXMLTransformationTask/pom.xml"), localRepository, null); OMMojo ommojo = new OMMojo(); ommojo.setContextPropertiesPath(mavenProject.getBuild().getDirectory() + "/torque/context.om.properties"); ommojo.setOutputDir(mavenProject.getBuild().getDirectory() + "/generated-sources/torque"); ommojo.setSchemaDir(""); ommojo.setUseClasspath(true); ommojo.setBasePrefix("Base"); ommojo.setSubpackageMap("map"); ommojo.setTargetPackage("torque.test"); ommojo.setSchemaIncludes("test.xml"); ommojo.setSchemaExcludes(""); ommojo.setReportFile("om.generation"); ommojo.setBaseReportFile("om.base.generation"); ommojo.execute(); } When I run the application I get the following exception: ----------------------------------------------------- org.codehaus.plexus.component.repository.exception.ComponentLookupException: Unable to lookup component 'org.apache.maven.project.MavenProjectBuilder', it could not be started. role: org.apache.maven.project.MavenProjectBuilder roleHint: default classRealm: plexus.core at org.codehaus.plexus.DefaultComponentRegistry.getComponent(DefaultComponentRegistry.java:342) at org.codehaus.plexus.DefaultComponentRegistry.lookup(DefaultComponentRegistry.java:163) at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:345) at org.codehaus.plexus.PlexusTestCase.lookup(PlexusTestCase.java:197) at torque.tasks.TestJDBCtoXMLTransformationTask.test(TestJDBCtoXMLTransformationTask.java:33) at torque.tasks.TestJDBCtoXMLTransformationTask.main(TestJDBCtoXMLTransformationTask.java:80) Caused by: org.codehaus.plexus.component.repository.exception.ComponentLifecycleException: Error constructing component role: 'org.apache.maven.project.MavenProjectBuilder', implementation: 'org.apache.maven.project.DefaultMavenProjectBuilder', role hint: 'default' at org.codehaus.plexus.component.builder.XBeanComponentBuilder.createComponentInstance(XBeanComponentBuilder.java:174) at org.codehaus.plexus.component.builder.XBeanComponentBuilder.build(XBeanComponentBuilder.java:123) at org.codehaus.plexus.component.manager.AbstractComponentManager.createComponentInstance(AbstractComponentManager.java:181) at org.codehaus.plexus.component.manager.SingletonComponentManager.getComponent(SingletonComponentManager.java:67) at org.codehaus.plexus.DefaultComponentRegistry.getComponent(DefaultComponentRegistry.java:327) ... 5 more Caused by: org.apache.xbean.recipe.ConstructionException: Unable to convert property value from org.codehaus.plexus.component.builder.XBeanComponentBuilder$RequirementRecipe to org.apache.maven.artifact.resolver.ArtifactResolver for injection protected org.apache.maven.artifact.resolver.ArtifactResolver org.apache.maven.project.DefaultMavenProjectBuilder.artifactResolver at org.apache.xbean.recipe.ObjectRecipe.setProperty(ObjectRecipe.java:472) at org.apache.xbean.recipe.ObjectRecipe.setProperties(ObjectRecipe.java:367) at org.apache.xbean.recipe.ObjectRecipe.internalCreate(ObjectRecipe.java:282) at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:96) at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:61) at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:49) at org.codehaus.plexus.component.builder.XBeanComponentBuilder.createComponentInstance(XBeanComponentBuilder.java:158) ... 9 more Caused by: org.apache.xbean.recipe.ConstructionException: Composition failed of field null in object of type org.apache.maven.project.DefaultMavenProjectBuilder because the requirement ComponentRequirement{role='org.apache.maven.artifact.resolver.ArtifactResolver', roleHint='default', fieldName='null'} was missing) at org.codehaus.plexus.component.builder.XBeanComponentBuilder$RequirementRecipe.internalCreate(XBeanComponentBuilder.java:380) at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:96) at org.apache.xbean.recipe.RecipeHelper.convert(RecipeHelper.java:167) at org.apache.xbean.recipe.ObjectRecipe.setProperty(ObjectRecipe.java:466) ... 15 more ----------------------------------------------------- I could generate the *test.xml* with the schema details of the existing database. I know the error is because it is not able to find the "default" artifact repository layout. If anyone can provide information about how to solve this issue then it would be of great help. If you can suggest other alternative way of using the Torque to do the same then it would be great. Thank you, Best Regards, Amar