Author: alexsmirnov
Date: 2010-02-04 18:57:31 -0500 (Thu, 04 Feb 2010)
New Revision: 16418
Added:
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/As.java
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/AsProvider.java
Modified:
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/Generator.java
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/JavaLogger.java
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/apt/AptBuilder.java
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/apt/VirtualFileManager.java
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/freemarker/CdkConfiguration.java
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/model/ComponentLibrary.java
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/parser/el/types/TypesFactory.java
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/RendererClassVisitor.java
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/CdkEntityResolver.java
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/CdkTestBase.java
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/CdkTestRunner.java
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/apt/AnnotationProcessorTest.java
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/freemarker/ValidatorTaglibGeneratorTest.java
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/generate/java/AbstractClassGeneratorTest.java
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/generate/java/BehaviorClassGeneratorTest.java
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/generate/java/ComponentClassGeneratorTest.java
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/generate/java/ConverterClassGeneratorTest.java
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/generate/java/ValidatorClassGeneratorTest.java
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/templatecompiler/RendererTemplateParserTest.java
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/CdkResolverTest.java
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/FacesConfigTest.java
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/FragmentParserTest.java
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/JaxbMarshalTest.java
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/testmodel/ModelBeanTest.java
root/cdk/branches/guice/plugins/maven-cdk-plugin/src/main/java/org/richfaces/builder/maven/MavenLogger.java
root/cdk/branches/guice/plugins/maven-cdk-plugin/src/main/java/org/richfaces/builder/mojo/GenerateMojo.java
Log:
https://jira.jboss.org/jira/browse/RF-8288 finished dependency injection transition
Modified:
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/Generator.java
===================================================================
---
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/Generator.java 2010-02-04
18:20:16 UTC (rev 16417)
+++
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/Generator.java 2010-02-04
23:57:31 UTC (rev 16418)
@@ -51,6 +51,7 @@
import com.google.inject.Singleton;
import com.google.inject.Stage;
import com.google.inject.TypeLiteral;
+import com.google.inject.name.Names;
/**
* @author asmirnov
@@ -69,11 +70,13 @@
private Charset charset = Charset.defaultCharset();
- private Map<StandardOutputFolders, FileManager> outputFolders =
Maps.newHashMap();
+ private Map<StandardOutputFolders, FileManager> outputFolders =
Maps.newEnumMap(StandardOutputFolders.class);
- private Map<StandardSources,FileManager> sources = Maps.newHashMap();
+ private Map<StandardSources,FileManager> sources =
Maps.newEnumMap(StandardSources.class);
private LibraryBuilder libraryBuilder;
+
+ private Map<String, String> options = Maps.newHashMap();
public Generator() {
@@ -104,6 +107,12 @@
this.sources.put(type, new SourceFileManager(files, folders));
}
+ public void setOptions(Map<String, String> options) {
+ this.options = options;
+
+ }
+
+
public void init(){
injector = Guice.createInjector(Stage.PRODUCTION,new CdkConfigurationModule(),new
AptModule(),new ModelModule(),
new ClassGeneratorModule(),new FreeMakerModule(),new TemplateModule(),new
XmlModule());
@@ -154,6 +163,8 @@
}
bind(NamingConventions.class).to(RichFacesConventions.class);
bind(ModelValidator.class).to(ValidatorImpl.class);
+
+ Names.bindProperties(binder(), options);
}
Modified:
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/JavaLogger.java
===================================================================
---
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/JavaLogger.java 2010-02-04
18:20:16 UTC (rev 16417)
+++
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/JavaLogger.java 2010-02-04
23:57:31 UTC (rev 16418)
@@ -30,7 +30,7 @@
*
* @author asmirnov(a)exadel.com
*/
-class JavaLogger implements Logger {
+public class JavaLogger implements Logger {
public static final String CDK_LOG = "org.richfaces.cdk";
Modified:
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/apt/AptBuilder.java
===================================================================
---
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/apt/AptBuilder.java 2010-02-04
18:20:16 UTC (rev 16417)
+++
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/apt/AptBuilder.java 2010-02-04
23:57:31 UTC (rev 16418)
@@ -45,8 +45,9 @@
*
*/
public class AptBuilder implements LibraryBuilder {
+
@Inject
- private static Logger LOG ;
+ private Logger LOG ;
@Inject
private CompilationTaskFactory taskFactory;
Modified:
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/apt/VirtualFileManager.java
===================================================================
---
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/apt/VirtualFileManager.java 2010-02-04
18:20:16 UTC (rev 16417)
+++
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/apt/VirtualFileManager.java 2010-02-04
23:57:31 UTC (rev 16418)
@@ -55,7 +55,7 @@
*/
final class VirtualFileManager extends ForwardingJavaFileManager<JavaFileManager>
{
@Inject
- private static Logger LOG;
+ private Logger LOG;
// private final BiMap<FileObjectKey, FileObject> classPathFiles;
// private final BiMap<FileObject, FileObjectKey> inversedClassPathFiles;
Modified:
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/freemarker/CdkConfiguration.java
===================================================================
---
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/freemarker/CdkConfiguration.java 2010-02-04
18:20:16 UTC (rev 16417)
+++
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/freemarker/CdkConfiguration.java 2010-02-04
23:57:31 UTC (rev 16418)
@@ -38,7 +38,8 @@
public class CdkConfiguration extends Configuration {
private static final String TEMPLATES = "/META-INF/templates";
- private final Logger log;
+
+ private Logger log;
@Inject
public CdkConfiguration(ObjectWrapper wrapper,Logger log) {
Modified:
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/model/ComponentLibrary.java
===================================================================
---
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/model/ComponentLibrary.java 2010-02-04
18:20:16 UTC (rev 16417)
+++
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/model/ComponentLibrary.java 2010-02-04
23:57:31 UTC (rev 16418)
@@ -28,6 +28,8 @@
import org.richfaces.cdk.CdkException;
import org.richfaces.cdk.model.RenderKitModel.Id;
+import com.google.inject.Singleton;
+
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
@@ -50,6 +52,7 @@
* @author asmirnov(a)exadel.com
*
*/
+@Singleton
public class ComponentLibrary implements Serializable, Extensible<ConfigExtension>,
Trackable {
public static final String CDK_EXTENSIONS_NAMESPACE =
"http://richfaces.org/cdk/extensions";
public static final String FACES_CONFIG_NAMESPACE =
"http://java.sun.com/xml/ns/javaee";
Modified:
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/parser/el/types/TypesFactory.java
===================================================================
---
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/parser/el/types/TypesFactory.java 2010-02-04
18:20:16 UTC (rev 16417)
+++
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/parser/el/types/TypesFactory.java 2010-02-04
23:57:31 UTC (rev 16418)
@@ -22,6 +22,7 @@
package org.richfaces.cdk.parser.el.types;
import org.richfaces.cdk.Logger;
+import org.richfaces.cdk.JavaLogger;
import org.richfaces.cdk.parser.el.Type;
import org.richfaces.cdk.util.ArrayUtils;
@@ -48,7 +49,7 @@
public final class TypesFactory {
@Inject
- private static Logger LOG;
+ private static Logger LOG = new JavaLogger();
private static final Map<java.lang.reflect.Type, Type> REFLECTION_TYPES_CACHE =
Collections
.synchronizedMap(new HashMap<java.lang.reflect.Type, Type>());
Modified:
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/RendererClassVisitor.java
===================================================================
---
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/RendererClassVisitor.java 2010-02-04
18:20:16 UTC (rev 16417)
+++
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/RendererClassVisitor.java 2010-02-04
23:57:31 UTC (rev 16418)
@@ -118,7 +118,7 @@
private static final String PASS_THROUGH_ATTRIBUTES_FIELD_NAME =
"PASS_THROUGH_ATTRIBUTES";
@Inject
- private static Logger LOG;
+ private Logger LOG;
private static final Set<String> DEFAULT_NAMESPACES = new
HashSet<String>();
Modified:
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/CdkEntityResolver.java
===================================================================
---
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/CdkEntityResolver.java 2010-02-04
18:20:16 UTC (rev 16417)
+++
root/cdk/branches/guice/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/CdkEntityResolver.java 2010-02-04
23:57:31 UTC (rev 16418)
@@ -230,7 +230,7 @@
File configFile = folders.getFile(path);
- if (configFile.exists()) {
+ if (null != configFile && configFile.exists()) {
InputStream inputStream = new FileInputStream(configFile);
entity = new InputSource(inputStream);
Added: root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/As.java
===================================================================
--- root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/As.java
(rev 0)
+++
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/As.java 2010-02-04
23:57:31 UTC (rev 16418)
@@ -0,0 +1,40 @@
+/*
+ * $Id$
+ *
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.cdk;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * <p class="changed_added_4_0"></p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+(a)Retention(RetentionPolicy.RUNTIME)
+(a)Target({ElementType.FIELD})
+public @interface As {
+ public Class<?> value();
+}
Property changes on:
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/As.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/AsProvider.java
===================================================================
---
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/AsProvider.java
(rev 0)
+++
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/AsProvider.java 2010-02-04
23:57:31 UTC (rev 16418)
@@ -0,0 +1,42 @@
+/*
+ * $Id$
+ *
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library 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 this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.cdk;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import com.google.inject.Provider;
+
+/**
+ * <p class="changed_added_4_0"></p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+(a)Retention(RetentionPolicy.RUNTIME)
+(a)Target({ElementType.FIELD})
+public @interface AsProvider {
+ public Class<? extends Provider<?>> value();
+}
Property changes on:
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/AsProvider.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/CdkTestBase.java
===================================================================
---
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/CdkTestBase.java 2010-02-04
18:20:16 UTC (rev 16417)
+++
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/CdkTestBase.java 2010-02-04
23:57:31 UTC (rev 16418)
@@ -29,6 +29,7 @@
import java.io.IOException;
import java.io.InputStream;
+import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
@@ -128,7 +129,11 @@
return getLibraryFile(clazz.getName().replaceAll("\\.",
"/")+".class");
}
- protected CdkClassLoader createClassLoader() throws Exception {
- return new
CdkClassLoader(ImmutableList.of(getLibraryFile("test.source.properties"),getLibraryFile(Component.class)),
null);
+ protected CdkClassLoader createClassLoader(){
+ try {
+ return new
CdkClassLoader(ImmutableList.of(getLibraryFile("test.source.properties"),getLibraryFile(Component.class)),
null);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
}
}
Modified:
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/CdkTestRunner.java
===================================================================
---
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/CdkTestRunner.java 2010-02-04
18:20:16 UTC (rev 16417)
+++
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/CdkTestRunner.java 2010-02-04
23:57:31 UTC (rev 16418)
@@ -41,8 +41,11 @@
import com.google.inject.AbstractModule;
import com.google.inject.BindingAnnotation;
import com.google.inject.Guice;
+import com.google.inject.ImplementedBy;
import com.google.inject.Injector;
import com.google.inject.Module;
+import com.google.inject.ProvidedBy;
+import com.google.inject.Provider;
import com.google.inject.TypeLiteral;
import com.google.inject.binder.AnnotatedBindingBuilder;
@@ -97,7 +100,7 @@
// throw new IncompatibleAnnotationException(Unit.class, Mock.class);
// }
//
- final Map<Field,Object> fieldValues = getMockValues(testFields);
+ final Map<Field,Binding> fieldValues = getMockValues(testFields);
// if ( fieldValues.containsKey(unitField)) {
// throw new IncompatibleAnnotationException(Unit.class,
unitField.getType());
// }
@@ -106,16 +109,17 @@
// any field values created by AtUnit but not injected by the container are
injected here.
for ( Field field : fieldValues.keySet() ) {
+ Binding binding = fieldValues.get(field);
field.setAccessible(true);
- if ( field.get(test) == null ) {
- field.set(test, fieldValues.get(field));
+ if ( null != binding.value && field.get(test) == null ) {
+ field.set(test, binding.value);
}
}
return test;
}
- private Object createTest(Class<?> testClass, Map<Field, Object>
fieldValues) throws Exception {
+ private Object createTest(Class<?> testClass, Map<Field, Binding>
fieldValues) throws Exception {
FieldModule fields = new FieldModule(fieldValues);
Injector injector;
@@ -129,9 +133,9 @@
protected class FieldModule extends AbstractModule {
- final Map<Field,Object> fields;
+ final Map<Field,Binding> fields;
- public FieldModule(Map<Field,Object> fields) {
+ public FieldModule(Map<Field,Binding> fields) {
this.fields = fields;
}
@@ -171,23 +175,49 @@
}
}
}
- builder.toInstance(fields.get(field));
+ Binding binding = fields.get(field);
+ if(null != binding.value){
+ builder.toInstance(binding.value);
+ } else if (null != binding.implementation) {
+ builder.to(binding.implementation);
+ } else if (null != binding.provider) {
+ builder.toProvider(binding.provider);
+ }
}
}
}
+
+ private static class Binding {
+ private Object value;
+ private Class<?> implementation;
+ private Class<? extends Provider<?>> provider;
+ }
- private Map<Field, Object> getMockValues(Set<Field> testFields) {
- Map<Field,Object> mocksAndStubs = new HashMap<Field,Object>();
+ private Map<Field, Binding> getMockValues(Set<Field> testFields) {
+ Map<Field,Binding> mocksAndStubs = new HashMap<Field,Binding>();
for ( Field field : testFields ) {
if ( field.getAnnotation(Mock.class) != null ) {
- mocksAndStubs.put(field, EasyMock.createStrictMock(field.getType()));
+ Binding bind = new Binding();
+ bind.value = EasyMock.createStrictMock(field.getType());
+ mocksAndStubs.put(field, bind);
} else if ( field.getAnnotation(Stub.class) != null ) {
- mocksAndStubs.put(field, EasyMock.createNiceMock(field.getType()));
+ Binding bind = new Binding();
+ bind.value = EasyMock.createNiceMock(field.getType());
+ mocksAndStubs.put(field, bind);
+ } else if (null != field.getAnnotation(As.class)) {
+ Binding bind = new Binding();
+ bind.implementation = field.getAnnotation(As.class).value();
+ mocksAndStubs.put(field, bind);
+ } else if (null != field.getAnnotation(AsProvider.class)) {
+ Binding bind = new Binding();
+ bind.provider = field.getAnnotation(AsProvider.class).value();
+ mocksAndStubs.put(field, bind);
}
}
return mocksAndStubs;
}
+
}
Modified:
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/apt/AnnotationProcessorTest.java
===================================================================
---
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/apt/AnnotationProcessorTest.java 2010-02-04
18:20:16 UTC (rev 16417)
+++
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/apt/AnnotationProcessorTest.java 2010-02-04
23:57:31 UTC (rev 16418)
@@ -22,6 +22,7 @@
package org.richfaces.cdk.apt;
import java.io.File;
+import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.List;
@@ -78,12 +79,16 @@
protected abstract Iterable<String> sources();
@Override
- protected CdkClassLoader createClassLoader() throws Exception {
- return new
CdkClassLoader(ImmutableList.of(getLibraryFile("test.source.properties"),
- getLibraryFile(ComponentModel.class),
- getLibraryFile(ELContext.class),
- getLibraryFile(Family.class),
- getLibraryFile(UIComponent.class)),
- this.getClass().getClassLoader());
+ protected CdkClassLoader createClassLoader() {
+ try {
+ return new
CdkClassLoader(ImmutableList.of(getLibraryFile("test.source.properties"),
+ getLibraryFile(ComponentModel.class),
+ getLibraryFile(ELContext.class),
+ getLibraryFile(Family.class),
+ getLibraryFile(UIComponent.class)),
+ this.getClass().getClassLoader());
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
}
}
Modified:
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/freemarker/ValidatorTaglibGeneratorTest.java
===================================================================
---
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/freemarker/ValidatorTaglibGeneratorTest.java 2010-02-04
18:20:16 UTC (rev 16417)
+++
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/freemarker/ValidatorTaglibGeneratorTest.java 2010-02-04
23:57:31 UTC (rev 16418)
@@ -22,56 +22,81 @@
package org.richfaces.cdk.freemarker;
+import static org.easymock.EasyMock.*;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.net.URISyntaxException;
+import java.util.Set;
+
+import javax.faces.component.UIOutput;
+
import org.custommonkey.xmlunit.Diff;
import org.custommonkey.xmlunit.Validator;
-import static org.easymock.EasyMock.*;
import org.junit.Assert;
import org.junit.Test;
-import org.richfaces.cdk.CdkContext;
-import org.richfaces.cdk.CdkException;
+import org.junit.runner.RunWith;
+import org.richfaces.cdk.As;
import org.richfaces.cdk.CdkTestBase;
-import org.richfaces.cdk.OutputType;
-import org.richfaces.cdk.StandardSources;
+import org.richfaces.cdk.CdkTestRunner;
+import org.richfaces.cdk.FileManager;
+import org.richfaces.cdk.Mock;
+import org.richfaces.cdk.OutputFolder;
+import org.richfaces.cdk.StandardOutputFolders;
import org.richfaces.cdk.model.ClassDescription;
import org.richfaces.cdk.model.ComponentLibrary;
import org.richfaces.cdk.model.EventName;
import org.richfaces.cdk.model.Property;
import org.richfaces.cdk.model.ValidatorModel;
-import org.richfaces.cdk.xmlconfig.CdkEntityResolver;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
+import org.xml.sax.ext.EntityResolver2;
-import javax.faces.component.UIOutput;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.io.Writer;
-import java.util.Set;
+import com.google.inject.ImplementedBy;
+import com.google.inject.Inject;
+import freemarker.template.Configuration;
+import freemarker.template.ObjectWrapper;
+
/**
* @author akolonitsky
* @since Jan 18, 2010
*/
+(a)RunWith(CdkTestRunner.class)
public class ValidatorTaglibGeneratorTest extends CdkTestBase {
+ @Inject
+ private ValidatorTaglibGenerator generator;
+
+ @Inject
+ private ComponentLibrary library;
+
+ @Inject
+ @As(CdkConfiguration.class)
+ private Configuration configuration;
+
+ @Inject
+ @As(LibraryModelWrapper.class)
+ ObjectWrapper wrapper;
+
+ @Mock
+ private EntityResolver2 resolver;
+
+ @Mock
+ @OutputFolder(StandardOutputFolders.RESOURCES)
+ private FileManager output;
+
/**
* Test method for {@link
org.richfaces.cdk.generate.java.ComponentClassGenerator#getOutputFile(org.richfaces.cdk.model.ComponentModel)}.
* @throws Exception
*/
@Test
public void testGetOutputFileComponent() throws Exception {
- final StringWriter output = new StringWriter();
- ValidatorTaglibGenerator generator = new ValidatorTaglibGenerator() {
- @Override
- protected Writer getOutput(ValidatorModel c) throws CdkException {
- return output;
- }
- };
+ final StringWriter outputWriter = new StringWriter();
- CdkContext mockContext = createMockContext();
- generator.init(mockContext);
ValidatorModel validator = new ValidatorModel("foo.bar", new
ClassDescription(UIOutput.class));
validator.setGenerate(true);
@@ -84,14 +109,15 @@
eventNames.add(getEvent("id", false));
eventNames.add(getEvent("action", true));
- ComponentLibrary library = new ComponentLibrary();
library.getValidators().add(validator);
+ expect(output.createOutput((String) anyObject(),
anyInt())).andReturn(outputWriter);
+ replay(output,resolver);
generator.visit(validator, library);
- System.out.println(output);
- verify(mockContext);
+ System.out.println(outputWriter);
+ verify(output,resolver);
- checkXmlStructure(output);
+ checkXmlStructure(outputWriter);
// TODO validate xml by xsd
// validateXml(output);
@@ -111,24 +137,13 @@
return attribute;
}
- private CdkContext createMockContext() throws Exception {
- CdkContext cdkContext = createMock(CdkContext.class);
-
expect(cdkContext.getSourceFolders(StandardSources.JAVA_SOURCES)).andStubReturn(testSourceDirectory);
- expect(cdkContext.getOutputFolder((org.richfaces.cdk.OutputType)
anyObject())).andStubReturn(null);
- expect(cdkContext.getLoader()).andStubReturn(createClassLoader());
- replay(cdkContext);
-
- return cdkContext;
- }
-
// TODO move it in other class
- protected void validateXml(StringWriter facesConfig) throws SAXException, IOException
{
+ protected void validateXml(StringWriter facesConfig) throws SAXException,
IOException, URISyntaxException {
InputSource is = new InputSource(new StringReader(facesConfig.toString()));
Validator validator = new Validator(is);
validator.useXMLSchema(true);
- InputSource source = new CdkEntityResolver(null)
- .resolveEntity(null, ComponentLibrary.TAGLIB_SCHEMA_LOCATION);
+ InputSource source = new
InputSource(getJavaFile("META-INF/schema/web-facelettaglibrary_2_0.xsd").toURI().toString());
validator.setJAXP12SchemaSource(source);
validator.assertIsValid();
Modified:
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/generate/java/AbstractClassGeneratorTest.java
===================================================================
---
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/generate/java/AbstractClassGeneratorTest.java 2010-02-04
18:20:16 UTC (rev 16417)
+++
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/generate/java/AbstractClassGeneratorTest.java 2010-02-04
23:57:31 UTC (rev 16418)
@@ -22,20 +22,6 @@
package org.richfaces.cdk.generate.java;
-import static org.easymock.EasyMock.anyObject;
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import org.junit.Assert;
-import org.richfaces.cdk.CdkContext;
-import org.richfaces.cdk.CdkTestBase;
-import org.richfaces.cdk.OutputType;
-import org.richfaces.cdk.StandardSources;
-import org.richfaces.cdk.model.ClassDescription;
-import org.richfaces.cdk.model.EventName;
-import org.richfaces.cdk.model.ModelElementBase;
-import org.richfaces.cdk.model.Property;
-
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
@@ -44,21 +30,49 @@
import java.io.StringReader;
import java.io.StringWriter;
+import org.junit.Assert;
+import org.richfaces.cdk.As;
+import org.richfaces.cdk.CdkTestBase;
+import org.richfaces.cdk.FileManager;
+import org.richfaces.cdk.Mock;
+import org.richfaces.cdk.OutputFolder;
+import org.richfaces.cdk.StandardOutputFolders;
+import org.richfaces.cdk.freemarker.CdkConfiguration;
+import org.richfaces.cdk.freemarker.LibraryModelWrapper;
+import org.richfaces.cdk.model.ClassDescription;
+import org.richfaces.cdk.model.ComponentLibrary;
+import org.richfaces.cdk.model.EventName;
+import org.richfaces.cdk.model.ModelElementBase;
+import org.richfaces.cdk.model.Property;
+import org.xml.sax.ext.EntityResolver2;
+
+import com.google.inject.Inject;
+
+import freemarker.template.Configuration;
+import freemarker.template.ObjectWrapper;
+
/**
* @author akolonitsky
* @since Jan 20, 2010
*/
public abstract class AbstractClassGeneratorTest extends CdkTestBase {
- protected CdkContext createMockContext() throws Exception {
- CdkContext cdkContext = createMock(CdkContext.class);
+
+ @Inject
+ protected ComponentLibrary library;
+
+ @Inject
+ @As(CdkConfiguration.class)
+ protected Configuration configuration;
+
+ @Inject
+ @As(LibraryModelWrapper.class)
+ ObjectWrapper wrapper;
-
expect(cdkContext.getSourceFolders(StandardSources.JAVA_SOURCES)).andStubReturn(testSourceDirectory);
- expect(cdkContext.getOutputFolder((org.richfaces.cdk.OutputType)
anyObject())).andStubReturn(null);
- expect(cdkContext.getLoader()).andStubReturn(createClassLoader());
- replay(cdkContext);
+
+ @Mock
+ @OutputFolder(StandardOutputFolders.RESOURCES)
+ protected FileManager output;
- return cdkContext;
- }
protected static Property addAttribute(ModelElementBase model, String attributeName,
Class<?> type, boolean generate) {
Modified:
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/generate/java/BehaviorClassGeneratorTest.java
===================================================================
---
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/generate/java/BehaviorClassGeneratorTest.java 2010-02-04
18:20:16 UTC (rev 16417)
+++
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/generate/java/BehaviorClassGeneratorTest.java 2010-02-04
23:57:31 UTC (rev 16418)
@@ -22,43 +22,40 @@
package org.richfaces.cdk.generate.java;
-import org.junit.Test;
-import org.richfaces.cdk.model.ValidatorModel;
-import org.richfaces.cdk.model.Property;
-import org.richfaces.cdk.model.EventName;
-import org.richfaces.cdk.model.ComponentLibrary;
-import org.richfaces.cdk.model.BehaviorModel;
-import org.richfaces.cdk.CdkException;
-import org.richfaces.cdk.CdkContext;
-import static org.easymock.EasyMock.verify;
+import static org.easymock.EasyMock.*;
import java.io.StringWriter;
-import java.io.Writer;
import java.util.Set;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.richfaces.cdk.CdkTestRunner;
+import org.richfaces.cdk.model.BehaviorModel;
+import org.richfaces.cdk.model.ComponentLibrary;
+import org.richfaces.cdk.model.EventName;
+import org.richfaces.cdk.model.Property;
+
+import com.google.inject.Inject;
+
/**
* @author akolonitsky
* @since Jan 21, 2010
*/
+(a)RunWith(CdkTestRunner.class)
public class BehaviorClassGeneratorTest extends AbstractClassGeneratorTest {
+ @Inject
+ private BehaviorClassGenerator generator;
/**
* Test method for {@link
org.richfaces.cdk.generate.java.ComponentClassGenerator#getOutputFile(org.richfaces.cdk.model.ComponentModel)}.
* @throws Exception
*/
@Test
public void testGetOutputFileBehavior() throws Exception {
- final StringWriter output = new StringWriter();
- BehaviorClassGenerator generator = new BehaviorClassGenerator() {
- @Override
- protected Writer getOutput(BehaviorModel c) throws CdkException {
- return output;
- }
- };
- CdkContext mockContext = createMockContext();
+ final StringWriter outputWriter = new StringWriter();
+ expect(output.createOutput((String) anyObject(),
anyInt())).andReturn(outputWriter);
+ replay(output);
- generator.init(mockContext);
-
BehaviorModel behavior = new BehaviorModel();
behavior.setBehaviorId("foo.bar");
behavior.setClassNames("org.richfaces.cdk.generate.java.GeneratedBehavior",
"Object");
@@ -76,9 +73,9 @@
library.getBehaviors().add(behavior);
generator.visit(behavior, library);
- System.out.println(output);
- verify(mockContext);
+ System.out.println(outputWriter);
+ verify(output);
- compare(output, "GeneratedBehavior.java");
+ compare(outputWriter, "GeneratedBehavior.java");
}
}
Modified:
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/generate/java/ComponentClassGeneratorTest.java
===================================================================
---
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/generate/java/ComponentClassGeneratorTest.java 2010-02-04
18:20:16 UTC (rev 16417)
+++
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/generate/java/ComponentClassGeneratorTest.java 2010-02-04
23:57:31 UTC (rev 16418)
@@ -28,26 +28,30 @@
import static org.easymock.EasyMock.*;
import java.io.StringWriter;
-import java.io.Writer;
import java.util.Set;
import javax.faces.component.UIOutput;
import org.junit.Test;
-import org.richfaces.cdk.CdkContext;
-import org.richfaces.cdk.CdkException;
+import org.junit.runner.RunWith;
+import org.richfaces.cdk.CdkTestRunner;
import org.richfaces.cdk.model.ClassDescription;
import org.richfaces.cdk.model.ComponentModel;
-import org.richfaces.cdk.model.ComponentLibrary;
import org.richfaces.cdk.model.EventName;
import org.richfaces.cdk.model.Property;
+import com.google.inject.Inject;
+
/**
* <p class="changed_added_4_0"></p>
* @author asmirnov(a)exadel.com
*
*/
+(a)RunWith(CdkTestRunner.class)
public class ComponentClassGeneratorTest extends AbstractClassGeneratorTest {
+
+ @Inject
+ private ComponentClassGenerator generator;
/**
* Test method for {@link
org.richfaces.cdk.generate.java.ComponentClassGenerator#getOutputFile(org.richfaces.cdk.model.ComponentModel)}.
@@ -55,18 +59,10 @@
*/
@Test
public void testGetOutputFileComponent() throws Exception {
- final StringWriter output = new StringWriter();
- ComponentClassGenerator generator = new ComponentClassGenerator() {
- @Override
- protected Writer getOutput(ComponentModel c) throws CdkException {
- return output;
- }
- };
- CdkContext mockContext = createMockContext();
+ final StringWriter outputWriter = new StringWriter();
+ expect(output.createOutput((String) anyObject(),
anyInt())).andReturn(outputWriter);
+ replay(output);
- generator.init(mockContext);
-
- ComponentLibrary library = new ComponentLibrary();
ComponentModel component = new ComponentModel(new
ComponentModel.Type("foo.bar"));
library.getComponents().add(component);
component.setGenerate(true);
@@ -89,9 +85,9 @@
attribute.setGenerate(false);
generator.visit(component, library);
- System.out.println(output);
- verify(mockContext);
+ System.out.println(outputWriter);
+ verify(output);
- compare(output, "GeneratedComponent.java");
+ compare(outputWriter, "GeneratedComponent.java");
}
}
Modified:
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/generate/java/ConverterClassGeneratorTest.java
===================================================================
---
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/generate/java/ConverterClassGeneratorTest.java 2010-02-04
18:20:16 UTC (rev 16417)
+++
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/generate/java/ConverterClassGeneratorTest.java 2010-02-04
23:57:31 UTC (rev 16418)
@@ -22,42 +22,40 @@
package org.richfaces.cdk.generate.java;
-import static org.easymock.EasyMock.verify;
+import static org.easymock.EasyMock.*;
+
+import java.io.StringWriter;
+import java.util.Set;
+
import org.junit.Test;
-import org.richfaces.cdk.CdkContext;
-import org.richfaces.cdk.CdkException;
+import org.junit.runner.RunWith;
+import org.richfaces.cdk.CdkTestRunner;
import org.richfaces.cdk.model.ComponentLibrary;
import org.richfaces.cdk.model.ConverterModel;
import org.richfaces.cdk.model.EventName;
import org.richfaces.cdk.model.Property;
-import java.io.StringWriter;
-import java.io.Writer;
-import java.util.Set;
+import com.google.inject.Inject;
/**
* @author akolonitsky
* @since Jan 20, 2010
*/
+(a)RunWith(CdkTestRunner.class)
public class ConverterClassGeneratorTest extends AbstractClassGeneratorTest {
+ @Inject
+ private ConverterClassGenerator generator;
/**
* Test method for {@link
org.richfaces.cdk.generate.java.ComponentClassGenerator#getOutputFile(org.richfaces.cdk.model.ComponentModel)}.
* @throws Exception
*/
@Test
public void testGetOutputFileValidator() throws Exception {
- final StringWriter output = new StringWriter();
- ConverterClassGenerator generator = new ConverterClassGenerator() {
- @Override
- protected Writer getOutput(ConverterModel c) throws CdkException {
- return output;
- }
- };
- CdkContext mockContext = createMockContext();
+ final StringWriter outputWriter = new StringWriter();
+ expect(output.createOutput((String) anyObject(),
anyInt())).andReturn(outputWriter);
+ replay(output);
- generator.init(mockContext);
-
ConverterModel converter = new ConverterModel();
converter.setConverterId("foo.bar");
converter.setClassNames("org.richfaces.cdk.generate.java.GeneratedConverter",
"Object");
@@ -75,10 +73,10 @@
library.getConverters().add(converter);
generator.visit(converter, library);
- System.out.println(output);
+ System.out.println(outputWriter);
- verify(mockContext);
+ verify(output);
- compare(output, "GeneratedConverter.java");
+ compare(outputWriter, "GeneratedConverter.java");
}
}
Modified:
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/generate/java/ValidatorClassGeneratorTest.java
===================================================================
---
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/generate/java/ValidatorClassGeneratorTest.java 2010-02-04
18:20:16 UTC (rev 16417)
+++
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/generate/java/ValidatorClassGeneratorTest.java 2010-02-04
23:57:31 UTC (rev 16418)
@@ -22,48 +22,40 @@
package org.richfaces.cdk.generate.java;
-import org.richfaces.cdk.CdkException;
-import org.richfaces.cdk.CdkContext;
-import org.richfaces.cdk.StandardSources;
+import static org.easymock.EasyMock.*;
+
+import java.io.StringWriter;
+import java.util.Set;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.richfaces.cdk.CdkTestRunner;
import org.richfaces.cdk.model.ComponentLibrary;
-import org.richfaces.cdk.model.ClassDescription;
-import org.richfaces.cdk.model.Property;
import org.richfaces.cdk.model.EventName;
+import org.richfaces.cdk.model.Property;
import org.richfaces.cdk.model.ValidatorModel;
-import org.junit.Test;
-import static org.easymock.EasyMock.verify;
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.anyObject;
-import static org.easymock.EasyMock.replay;
-import java.io.StringWriter;
-import java.io.Writer;
-import java.util.Set;
+import com.google.inject.Inject;
/**
* @author akolonitsky
* @since Jan 15, 2010
*/
+(a)RunWith(CdkTestRunner.class)
public class ValidatorClassGeneratorTest extends AbstractClassGeneratorTest {
+ @Inject
+ private ValidatorClassGenerator generator;
/**
* Test method for {@link
org.richfaces.cdk.generate.java.ComponentClassGenerator#getOutputFile(org.richfaces.cdk.model.ComponentModel)}.
* @throws Exception
*/
@Test
public void testGetOutputFileValidator() throws Exception {
- final StringWriter output = new StringWriter();
- ValidatorClassGenerator generator = new ValidatorClassGenerator() {
- @Override
- protected Writer getOutput(ValidatorModel c) throws CdkException {
- return output;
- }
- };
- CdkContext mockContext = createMockContext();
+ final StringWriter outputWriter = new StringWriter();
+ expect(output.createOutput((String) anyObject(),
anyInt())).andReturn(outputWriter);
+ replay(output);
- generator.init(mockContext);
-
ValidatorModel validator = new ValidatorModel();
validator.setValidatorId("foo.bar");
validator.setClassNames("org.richfaces.cdk.generate.java.GeneratedClass",
"Object");
@@ -81,11 +73,11 @@
library.getValidators().add(validator);
generator.visit(validator, library);
- System.out.println(output);
+ System.out.println(outputWriter);
- verify(mockContext);
+ verify(output);
- compare(output, "GeneratedClass.java");
+ compare(outputWriter, "GeneratedClass.java");
}
}
Modified:
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/templatecompiler/RendererTemplateParserTest.java
===================================================================
---
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/templatecompiler/RendererTemplateParserTest.java 2010-02-04
18:20:16 UTC (rev 16417)
+++
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/templatecompiler/RendererTemplateParserTest.java 2010-02-04
23:57:31 UTC (rev 16418)
@@ -21,12 +21,8 @@
*/
package org.richfaces.cdk.templatecompiler;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
+import static org.easymock.EasyMock.*;
import java.util.ArrayList;
import java.util.Collection;
@@ -39,34 +35,60 @@
import javax.faces.render.RenderKitFactory;
import javax.faces.validator.Validator;
-import org.junit.After;
-import org.junit.Before;
+import org.easymock.EasyMock;
+import org.junit.Ignore;
import org.junit.Test;
-import org.richfaces.cdk.CdkContext;
-import org.richfaces.cdk.CdkContextBase;
+import org.junit.runner.RunWith;
+import org.richfaces.cdk.As;
import org.richfaces.cdk.CdkTestBase;
+import org.richfaces.cdk.CdkTestRunner;
+import org.richfaces.cdk.FileManager;
+import org.richfaces.cdk.Mock;
+import org.richfaces.cdk.Source;
+import org.richfaces.cdk.StandardSources;
import org.richfaces.cdk.model.ClassDescription;
+import org.richfaces.cdk.model.ComponentLibrary;
import org.richfaces.cdk.model.EventName;
import org.richfaces.cdk.model.Property;
import org.richfaces.cdk.model.RenderKitModel;
import org.richfaces.cdk.model.RendererModel;
import org.richfaces.cdk.model.RenderKitModel.Id;
import org.richfaces.cdk.templatecompiler.model.Template;
+import org.richfaces.cdk.xmlconfig.JAXB;
+import org.richfaces.cdk.xmlconfig.JAXBBinding;
+import org.xml.sax.ext.EntityResolver2;
import com.google.common.collect.Lists;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
/**
* @author Nick Belaevski
*
*/
+(a)RunWith(CdkTestRunner.class)
public class RendererTemplateParserTest extends CdkTestBase {
+ @Inject
private RendererTemplateParser parser;
+
+ @Inject
+ private ComponentLibrary library;
+
+ @Inject
+ @As(JAXBBinding.class)
+ private JAXB binding;
+
+ @Mock
+ private EntityResolver2 resolver;
- private CdkContext cdkContext;
+ @Mock
+ @Source(StandardSources.RENDERER_TEMPLATES)
+ private FileManager templatesSource;
+
private RenderKitModel getRenderkitFromModel(String renderkitId) {
- Map<Id, RenderKitModel> renderKits =
cdkContext.getLibrary().getRenderKits();
+ Map<Id, RenderKitModel> renderKits = library.getRenderKits();
assertNotNull(renderKits);
RenderKitModel renderKit = renderKits.get(new RenderKitModel.Id(renderkitId));
@@ -245,22 +267,10 @@
}
- @Before
- public void setUp() throws Exception {
- parser = new RendererTemplateParser();
- cdkContext = new CdkContextBase(createClassLoader());
- parser.init(cdkContext);
- }
- @After
- public void tearDown() throws Exception {
- parser = null;
- cdkContext = null;
- }
-
@Test
public void basicComponentTest() throws Exception {
- Template template =
parser.parseTemplate("urn:resource:org/richfaces/cdk/templatecompiler/basic.template.xml");
+ Template template =
parser.parseTemplate(getJavaFile("org/richfaces/cdk/templatecompiler/basic.template.xml"));
assertNotNull(template);
parser.mergeTemplateIntoModel(template);
@@ -273,8 +283,13 @@
}
@Test
+ @Ignore // TODO - fix import-attributes.
public void dummyComponentTest() throws Exception {
- Template template =
parser.parseTemplate("urn:resource:org/richfaces/cdk/templatecompiler/dummy.template.xml");
+ expect(resolver.getExternalSubset(eq("cdk:root"),
EasyMock.<String>anyObject())).andReturn(null).atLeastOnce();
+// expect(resolver.getExternalSubset("cdk:root",
null)).andReturn(null).atLeastOnce();
+ replay(resolver,templatesSource);
+ Template template =
parser.parseTemplate(getJavaFile("org/richfaces/cdk/templatecompiler/dummy.template.xml"));
+ verify(resolver,templatesSource);
assertNotNull(template);
parser.mergeTemplateIntoModel(template);
Modified:
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/CdkResolverTest.java
===================================================================
---
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/CdkResolverTest.java 2010-02-04
18:20:16 UTC (rev 16417)
+++
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/CdkResolverTest.java 2010-02-04
23:57:31 UTC (rev 16418)
@@ -1,96 +1,101 @@
package org.richfaces.cdk.xmlconfig;
-import static org.easymock.EasyMock.*;
import static org.junit.Assert.*;
+import static org.easymock.EasyMock.*;
+
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import org.junit.Test;
+import org.junit.runner.RunWith;
import org.richfaces.cdk.CdkClassLoader;
-import org.richfaces.cdk.CdkContext;
import org.richfaces.cdk.CdkTestBase;
-import org.richfaces.cdk.OutputType;
+import org.richfaces.cdk.CdkTestRunner;
+import org.richfaces.cdk.FileManager;
+import org.richfaces.cdk.Mock;
+import org.richfaces.cdk.Source;
import org.richfaces.cdk.StandardSources;
+import org.richfaces.cdk.annotations.Component;
import org.xml.sax.InputSource;
+import com.google.common.collect.ImmutableList;
+import com.google.inject.Binder;
+import com.google.inject.Inject;
+
+(a)RunWith(CdkTestRunner.class)
public class CdkResolverTest extends CdkTestBase {
+
+ private static final String TEST_HTML = "org/richfaces/cdk/apt/test.html";
+
+ @Inject
+ private CdkEntityResolver entityResolver;
+
+ @Mock
+ @Source(StandardSources.FACES_CONFIGS)
+ private FileManager facesConfigSource;
+
+ @Mock
+ @Source(StandardSources.RENDERER_TEMPLATES)
+ private FileManager templatesSource;
+
+ @Override
+ public void configure(Binder binder) {
+ super.configure(binder);
+ try {
+ CdkClassLoader classLoader = new
CdkClassLoader(ImmutableList.of(getLibraryFile("test.source.properties"),getLibraryFile(Component.class)),
null){
+ @Override
+ public InputStream getResourceAsStream(String name) {
+ if ("foo/bar.xml".equals(name)) {
+ return new ByteArrayInputStream("baz".getBytes());
+ } else {
+ return super.getResourceAsStream(name);
+ }
+ }
+
+ };
+ binder.bind(CdkClassLoader.class).toInstance(classLoader);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
@Test
public void testResolveSystemIdSystem() throws Exception {
- // Prepare Mock compilation context.
- CdkContext cdkContext = createMockContext();
+ replay(facesConfigSource,templatesSource);
- expect(cdkContext.getLoader()).andStubReturn(createClassLoader());
- replay(cdkContext);
-
- CdkEntityResolver entityResolver = new CdkEntityResolver(cdkContext);
InputSource input =
entityResolver.resolveSystemId("http://java.sun.com/xml/ns/javaee/we...;
-
+ verify(facesConfigSource,templatesSource);
assertNotNull(input);
}
@Test
public void testResolveSystemIdResource() throws Exception {
-
- // Prepare Mock compilation context.
- CdkContext cdkContext = createMockContext();
- CdkClassLoader loader = new
CdkClassLoader(CdkEntityResolver.class.getClassLoader()) {
- @Override
- public InputStream getResourceAsStream(String name) {
- if ("foo/bar.xml".equals(name)) {
- return new ByteArrayInputStream("baz".getBytes());
- } else {
- return super.getResourceAsStream(name);
- }
- }
- };
-
- expect(cdkContext.getLoader()).andStubReturn(loader);
- replay(cdkContext);
-
- CdkEntityResolver entityResolver = new CdkEntityResolver(cdkContext);
+ replay(facesConfigSource,templatesSource);
InputSource input =
entityResolver.resolveSystemId("urn:resource:foo/bar.xml");
-
+ verify(facesConfigSource,templatesSource);
assertNotNull(input);
}
@Test
public void testResolveSystemIdAttributes() throws Exception {
- // Prepare Mock compilation context.
- CdkContext cdkContext = createMockContext();
- expect(cdkContext.getLoader()).andStubReturn(createClassLoader());
- replay(cdkContext);
-
- CdkEntityResolver entityResolver = new CdkEntityResolver(cdkContext);
+ replay(facesConfigSource,templatesSource);
InputSource input =
entityResolver.resolveSystemId("urn:attributes:test-props.xml");
-
+ verify(facesConfigSource,templatesSource);
assertNotNull(input);
}
- private CdkContext createMockContext() {
- CdkContext cdkContext = createMock(CdkContext.class);
-
expect(cdkContext.getSourceFolders(StandardSources.JAVA_SOURCES)).andStubReturn(testSourceDirectory);
- expect(cdkContext.getOutputFolder((org.richfaces.cdk.OutputType)
anyObject())).andStubReturn(null);
-
- return cdkContext;
- }
-
@Test
public void testGetProjectInputSource() throws Exception {
- CdkContext cdkContext = createMockContext();
-
-
expect(cdkContext.getSourceFolders(StandardSources.FACES_CONFIGS)).andStubReturn(testSourceDirectory);
- replay(cdkContext);
-
- CdkEntityResolver entityResolver = new CdkEntityResolver(cdkContext);
- InputSource input =
entityResolver.getProjectInputSource(StandardSources.FACES_CONFIGS,
- "org/richfaces/cdk/apt/test.html");
-
+ expect(facesConfigSource.getFile(TEST_HTML)).andReturn(getJavaFile(TEST_HTML));
+ replay(facesConfigSource,templatesSource);
+ InputSource input = entityResolver.getProjectInputSource(facesConfigSource,
+ TEST_HTML);
+ verify(facesConfigSource,templatesSource);
assertNotNull(input);
- verify(cdkContext);
}
}
Modified:
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/FacesConfigTest.java
===================================================================
---
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/FacesConfigTest.java 2010-02-04
18:20:16 UTC (rev 16417)
+++
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/FacesConfigTest.java 2010-02-04
23:57:31 UTC (rev 16418)
@@ -29,18 +29,27 @@
import java.util.Map;
import org.junit.Test;
-
-import org.richfaces.cdk.CdkContextBase;
+import org.junit.runner.RunWith;
+import org.richfaces.cdk.As;
+import org.richfaces.cdk.CdkClassLoader;
import org.richfaces.cdk.CdkTestBase;
+import org.richfaces.cdk.CdkTestRunner;
+import org.richfaces.cdk.FileManager;
+import org.richfaces.cdk.Mock;
+import org.richfaces.cdk.Source;
+import org.richfaces.cdk.StandardSources;
+import org.richfaces.cdk.model.ComponentLibrary;
import org.richfaces.cdk.model.ComponentModel;
-import org.richfaces.cdk.model.ComponentLibrary;
import org.richfaces.cdk.model.FacetModel;
import org.richfaces.cdk.model.Property;
import org.richfaces.cdk.model.RenderKitModel;
import org.richfaces.cdk.xmlconfig.model.FacesConfigBean;
import org.richfaces.cdk.xmlconfig.model.RenderKitBean;
+import org.xml.sax.ext.EntityResolver2;
import com.google.common.collect.Iterables;
+import com.google.inject.Binder;
+import com.google.inject.Inject;
/**
* <p class="changed_added_4_0">
@@ -49,11 +58,36 @@
* @author asmirnov(a)exadel.com
*
*/
+(a)RunWith(CdkTestRunner.class)
public class FacesConfigTest extends CdkTestBase {
+
+ @Inject
+ FragmentParser parser;
+
+ @Inject
+ @As(CdkEntityResolver.class)
+ EntityResolver2 resolver;
+
+ @Inject
+ @As(JAXBBinding.class)
+ JAXB jaxbBinding;
+
+ @Mock
+ @Source(StandardSources.RENDERER_TEMPLATES)
+ private FileManager templatesSource;
+
+ @Mock
+ @Source(StandardSources.FACES_CONFIGS)
+ private FileManager configSource;
+
+ @Override
+ public void configure(Binder binder) {
+ super.configure(binder);
+ binder.bind(CdkClassLoader.class).toInstance(createClassLoader());
+ }
+
@Test
public void testComponentUnmarshal() throws Exception {
- JAXBBinding jaxbBinding = createJAXB();
-
FacesConfigBean library =
jaxbBinding.unmarshal("urn:resource:org/richfaces/cdk/xmlconfig/component.xml",
ComponentLibrary.FACES_CONFIG_SCHEMA_LOCATION, FacesConfigBean.class);
@@ -83,7 +117,6 @@
@Test
public void testRenderKitUnmarshall() throws Exception {
- JAXBBinding jaxbBinding = createJAXB();
FacesConfigBean library =
jaxbBinding.unmarshal("urn:resource:org/richfaces/cdk/xmlconfig/renderkit.xml",
ComponentLibrary.FACES_CONFIG_SCHEMA_LOCATION, FacesConfigBean.class);
@@ -92,19 +125,4 @@
assertEquals(new RenderKitModel.Id("HTML_BASIC"),
renderKits.get(0).getKey());
assertEquals(new RenderKitModel.Id("RDFa"),
renderKits.get(1).getKey());
}
-
- /**
- * <p class="changed_added_4_0">
- * </p>
- *
- * @return
- * @throws Exception
- */
- protected JAXBBinding createJAXB() throws Exception {
- CdkContextBase contextBase = new CdkContextBase(createClassLoader());
- JAXBBinding jaxbBinding = new JAXBBinding();
-
- jaxbBinding.init(contextBase);
- return jaxbBinding;
- }
}
Modified:
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/FragmentParserTest.java
===================================================================
---
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/FragmentParserTest.java 2010-02-04
18:20:16 UTC (rev 16417)
+++
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/FragmentParserTest.java 2010-02-04
23:57:31 UTC (rev 16418)
@@ -27,33 +27,63 @@
import static org.junit.Assert.*;
-import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.junit.Test;
-
-import org.richfaces.cdk.CdkContextBase;
+import org.junit.runner.RunWith;
+import org.richfaces.cdk.As;
+import org.richfaces.cdk.CdkClassLoader;
import org.richfaces.cdk.CdkTestBase;
+import org.richfaces.cdk.CdkTestRunner;
+import org.richfaces.cdk.FileManager;
+import org.richfaces.cdk.Mock;
+import org.richfaces.cdk.Source;
+import org.richfaces.cdk.StandardSources;
import org.richfaces.cdk.model.ClassDescription;
import org.richfaces.cdk.model.Property;
+import org.xml.sax.ext.EntityResolver2;
-import com.google.common.collect.Iterables;
+import com.google.inject.Binder;
+import com.google.inject.Inject;
/**
* <p class="changed_added_4_0"></p>
* @author asmirnov(a)exadel.com
*
*/
+(a)RunWith(CdkTestRunner.class)
public class FragmentParserTest extends CdkTestBase {
+
+ @Inject
+ FragmentParser parser;
+
+ @Inject
+ @As(CdkEntityResolver.class)
+ EntityResolver2 resolver;
+
+ @Inject
+ @As(JAXBBinding.class)
+ JAXB binder;
+
+ @Mock
+ @Source(StandardSources.RENDERER_TEMPLATES)
+ private FileManager templatesSource;
+
+ @Mock
+ @Source(StandardSources.FACES_CONFIGS)
+ private FileManager configSource;
+
+ @Override
+ public void configure(Binder binder) {
+ super.configure(binder);
+ binder.bind(CdkClassLoader.class).toInstance(createClassLoader());
+ }
+
@Test
public void parserTest() throws Exception {
- FragmentParser parser = new FragmentParser();
- CdkContextBase contextBase = new CdkContextBase(createClassLoader());
- parser.init(contextBase);
-
Map<String, Property> properties =
parser.parseProperties("urn:resource:org/richfaces/cdk/xmlconfig/fragment.xml");
@@ -62,11 +92,7 @@
@Test
public void xincludeTest() throws Exception {
- FragmentParser parser = new FragmentParser();
- CdkContextBase contextBase = new CdkContextBase(createClassLoader());
- parser.init(contextBase);
-
Map<String, Property> properties =
parser.parseProperties("urn:resource:org/richfaces/cdk/xmlconfig/parent.xml");
assertEquals(2, properties.size());
@@ -74,11 +100,7 @@
@Test
public void nestedXincludeTest() throws Exception {
- FragmentParser parser = new FragmentParser();
- CdkContextBase contextBase = new CdkContextBase(createClassLoader());
- parser.init(contextBase);
-
Map<String, Property> properties =
parser.parseProperties("urn:resource:org/richfaces/cdk/xmlconfig/parent2.xml");
@@ -87,11 +109,7 @@
@Test
public void propertyTest() throws Exception {
- FragmentParser parser = new FragmentParser();
- CdkContextBase contextBase = new CdkContextBase(createClassLoader());
- parser.init(contextBase);
-
Map<String, Property> properties =
parser.parseProperties("urn:resource:org/richfaces/cdk/xmlconfig/properties.xml");
Modified:
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/JaxbMarshalTest.java
===================================================================
---
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/JaxbMarshalTest.java 2010-02-04
18:20:16 UTC (rev 16417)
+++
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/JaxbMarshalTest.java 2010-02-04
23:57:31 UTC (rev 16418)
@@ -5,23 +5,28 @@
import javax.xml.transform.stream.StreamResult;
import org.junit.Test;
-
-import org.richfaces.cdk.CdkContextBase;
+import org.junit.runner.RunWith;
+import org.richfaces.cdk.CdkTestRunner;
+import org.richfaces.cdk.Mock;
+import org.richfaces.cdk.model.ComponentLibrary;
import org.richfaces.cdk.model.ComponentModel;
-import org.richfaces.cdk.model.ComponentLibrary;
import org.richfaces.cdk.model.RenderKitModel;
import org.richfaces.cdk.model.RendererModel;
import org.richfaces.cdk.xmlconfig.model.FacesConfigAdapter;
+import com.google.inject.Inject;
+
+(a)RunWith(CdkTestRunner.class)
public class JaxbMarshalTest extends JaxbTestBase {
+
+ @Mock
+ JAXB jaxbBinding;
+
+ @Inject
+ ComponentLibrary library;
+
@Test
public void testMarshalResultStringT() throws Exception {
- CdkContextBase contextBase = new CdkContextBase(createClassLoader());
- JAXBBinding jaxbBinding = new JAXBBinding();
-
- jaxbBinding.init(contextBase);
-
- ComponentLibrary library = new ComponentLibrary();
ComponentModel component = new ComponentModel( new
ComponentModel.Type("foo.bar"));
library.getComponents().add(component);
RenderKitModel renderKit = library.addRenderKit("HTML");
Modified:
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/testmodel/ModelBeanTest.java
===================================================================
---
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/testmodel/ModelBeanTest.java 2010-02-04
18:20:16 UTC (rev 16417)
+++
root/cdk/branches/guice/plugins/generator/src/test/java/org/richfaces/cdk/xmlconfig/testmodel/ModelBeanTest.java 2010-02-04
23:57:31 UTC (rev 16418)
@@ -21,39 +21,75 @@
package org.richfaces.cdk.xmlconfig.testmodel;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.net.URISyntaxException;
+
+import javax.xml.transform.stream.StreamResult;
+
import org.custommonkey.xmlunit.Diff;
import org.custommonkey.xmlunit.Validator;
import org.junit.Assert;
-import org.richfaces.cdk.CdkContext;
-import org.richfaces.cdk.CdkContextBase;
+import org.junit.runner.RunWith;
+import org.richfaces.cdk.As;
+import org.richfaces.cdk.CdkClassLoader;
+import org.richfaces.cdk.CdkTestRunner;
+import org.richfaces.cdk.FileManager;
+import org.richfaces.cdk.Mock;
+import org.richfaces.cdk.Source;
+import org.richfaces.cdk.StandardSources;
import org.richfaces.cdk.model.ComponentLibrary;
import org.richfaces.cdk.xmlconfig.CdkEntityResolver;
import org.richfaces.cdk.xmlconfig.FacesConfigGenerator;
+import org.richfaces.cdk.xmlconfig.JAXB;
import org.richfaces.cdk.xmlconfig.JAXBBinding;
import org.richfaces.cdk.xmlconfig.JaxbTestBase;
import org.richfaces.cdk.xmlconfig.model.FacesConfigAdapter;
+import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
-import org.xml.sax.InputSource;
+import org.xml.sax.ext.EntityResolver2;
-import javax.xml.transform.stream.StreamResult;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.StringWriter;
-import java.io.StringReader;
-import java.io.InputStreamReader;
+import com.google.inject.Binder;
+import com.google.inject.Inject;
/**
* @author akolonitsky
* @since Jan 13, 2010
*/
+(a)RunWith(CdkTestRunner.class)
public abstract class ModelBeanTest extends JaxbTestBase {
- protected void validateXml(StringWriter facesConfig) throws SAXException, IOException
{
+ @Inject
+ @As(JAXBBinding.class)
+ JAXB binding;
+
+ @Inject
+ @As(CdkEntityResolver.class)
+ EntityResolver2 resolver;
+
+
+ @Mock
+ @Source(StandardSources.RENDERER_TEMPLATES)
+ FileManager templatesSource;
+
+ @Mock
+ @Source(StandardSources.FACES_CONFIGS)
+ FileManager configSource;
+
+ @Override
+ public void configure(Binder binder) {
+ super.configure(binder);
+ binder.bind(CdkClassLoader.class).toInstance(createClassLoader());
+ }
+
+ protected void validateXml(StringWriter facesConfig) throws SAXException,
IOException, URISyntaxException {
InputSource is = new InputSource(new StringReader(facesConfig.toString()));
Validator validator = new Validator(is);
validator.useXMLSchema(true);
- InputSource source = new CdkEntityResolver(null)
- .resolveEntity(null, ComponentLibrary.FACES_CONFIG_SCHEMA_LOCATION);
+ InputSource source = new
InputSource(getJavaFile("META-INF/schema/web-facesconfig_2_0.xsd").toURI().toString());
validator.setJAXP12SchemaSource(source);
validator.assertIsValid();
@@ -77,9 +113,7 @@
StringWriter writer = new StringWriter();
StreamResult result = new StreamResult(writer);
- JAXBBinding jaxbBinding = new JAXBBinding();
- jaxbBinding.init(new CdkContextBase(createClassLoader()));
- jaxbBinding.marshal(result, FacesConfigGenerator.FACES_SCHEMA_LOCATION,
+ binding.marshal(result, FacesConfigGenerator.FACES_SCHEMA_LOCATION,
new FacesConfigAdapter().marshal(library));
return writer;
}
Modified:
root/cdk/branches/guice/plugins/maven-cdk-plugin/src/main/java/org/richfaces/builder/maven/MavenLogger.java
===================================================================
---
root/cdk/branches/guice/plugins/maven-cdk-plugin/src/main/java/org/richfaces/builder/maven/MavenLogger.java 2010-02-04
18:20:16 UTC (rev 16417)
+++
root/cdk/branches/guice/plugins/maven-cdk-plugin/src/main/java/org/richfaces/builder/maven/MavenLogger.java 2010-02-04
23:57:31 UTC (rev 16418)
@@ -33,6 +33,8 @@
*/
public class MavenLogger implements Logger {
private Log log;
+
+ private int errorCount;
/**
* @param log
@@ -74,6 +76,7 @@
*/
public void error(CharSequence content, Throwable error) {
log.error(content, error);
+ errorCount++;
}
/**
@@ -82,6 +85,7 @@
*/
public void error(CharSequence content) {
log.error(content);
+ errorCount++;
}
/**
@@ -90,6 +94,7 @@
*/
public void error(Throwable error) {
log.error(error);
+ errorCount++;
}
/**
@@ -173,4 +178,9 @@
public void warn(Throwable error) {
log.warn(error);
}
+
+ @Override
+ public int getErrorCount() {
+ return errorCount;
+ }
}
Modified:
root/cdk/branches/guice/plugins/maven-cdk-plugin/src/main/java/org/richfaces/builder/mojo/GenerateMojo.java
===================================================================
---
root/cdk/branches/guice/plugins/maven-cdk-plugin/src/main/java/org/richfaces/builder/mojo/GenerateMojo.java 2010-02-04
18:20:16 UTC (rev 16417)
+++
root/cdk/branches/guice/plugins/maven-cdk-plugin/src/main/java/org/richfaces/builder/mojo/GenerateMojo.java 2010-02-04
23:57:31 UTC (rev 16418)
@@ -23,6 +23,16 @@
package org.richfaces.builder.mojo;
+import java.io.File;
+import java.net.MalformedURLException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
import org.apache.maven.model.FileSet;
import org.apache.maven.model.Resource;
import org.apache.maven.plugin.AbstractMojo;
@@ -32,30 +42,12 @@
import org.codehaus.plexus.util.DirectoryScanner;
import org.richfaces.builder.maven.MavenLogger;
import org.richfaces.cdk.CdkClassLoader;
-import org.richfaces.cdk.CdkContextBase;
import org.richfaces.cdk.CdkException;
-import org.richfaces.cdk.CdkWorker;
-import org.richfaces.cdk.LoggerFactory;
-import org.richfaces.cdk.ModelBuilder;
-import org.richfaces.cdk.ModelValidator;
-import org.richfaces.cdk.NamingConventions;
-import org.richfaces.cdk.RichFacesConventions;
+import org.richfaces.cdk.Generator;
+import org.richfaces.cdk.Logger;
import org.richfaces.cdk.StandardOutputFolders;
import org.richfaces.cdk.StandardSources;
-import org.richfaces.cdk.ValidatorImpl;
-import org.richfaces.cdk.apt.AptBuilder;
-import java.io.File;
-import java.net.MalformedURLException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
/**
* <p class="changed_added_4_0">
* </p>
@@ -190,10 +182,11 @@
}
// Setup logger.
- LoggerFactory.setLogger(new MavenLogger(getLog()));
+ Logger logger = new MavenLogger(getLog());
- CdkContextBase context = new
CdkContextBase(this.createProjectClassLoader(project));
-
+ Generator generator = new Generator();
+ generator.setLog(logger);
+ generator.setLoader(createProjectClassLoader(project));
// Set source folders.
ArrayList<File> folders = new
ArrayList<File>(compileSourceRoots.size());
@@ -205,93 +198,37 @@
}
}
- context.setSourceFolders(StandardSources.JAVA_SOURCES, folders);
- // Non-java sources.
- context.addSources(StandardSources.JAVA_SOURCES, findJavaFiles());
- context.addSources(StandardSources.RENDERER_TEMPLATES, findTemplateFiles());
- context.addSources(StandardSources.FACES_CONFIGS, findFacesConfigFiles());
+ generator.addSources(StandardSources.JAVA_SOURCES, findJavaFiles(), folders);
+ // TODO - detect templates and configs directories.
+ generator.addSources(StandardSources.RENDERER_TEMPLATES, findTemplateFiles(),
null);
+ generator.addSources(StandardSources.FACES_CONFIGS, findFacesConfigFiles(),
null);
+
// Setup output folders.
- setOutput(context, outputJavaDirectory, StandardOutputFolders.JAVA_CLASSES);
- setOutput(context, outputResourcesDirectory, StandardOutputFolders.RESOURCES);
- setOutput(context, outputTestDirectory,
StandardOutputFolders.TEST_JAVA_CLASSES);
- setOutput(context, outputTestResourcesDirectory,
StandardOutputFolders.TEST_RESOURCES);
+ setOutput(generator, outputJavaDirectory, StandardOutputFolders.JAVA_CLASSES);
+ setOutput(generator, outputResourcesDirectory, StandardOutputFolders.RESOURCES);
+ setOutput(generator, outputTestDirectory,
StandardOutputFolders.TEST_JAVA_CLASSES);
+ setOutput(generator, outputTestResourcesDirectory,
StandardOutputFolders.TEST_RESOURCES);
// configure CDK workers.
- boolean namingConventionsConfigured = false;
- boolean validatorConfigured = false;
+ setupPlugins(generator);
- if (null != workers) {
- for (Entry<String, String> workerEntry : workers.entrySet()) {
- try {
- Class<CdkWorker> workerClass =
- (Class<CdkWorker>)
Class.forName(workerEntry.getKey()).asSubclass(CdkWorker.class);
- Class<? extends CdkWorker> workerImplementationClass =
-
Class.forName(workerEntry.getValue()).asSubclass(CdkWorker.class);
- CdkWorker workerInstance = workerImplementationClass.newInstance();
-
- workerInstance.init(context);
- context.setWorker(workerClass, workerInstance);
-
- if (NamingConventions.class.equals(workerClass)) {
- namingConventionsConfigured = true;
- }
-
- if (ModelValidator.class.equals(workerClass)) {
- validatorConfigured = true;
- }
- } catch (ClassNotFoundException e) {
- throw new MojoFailureException("Worker class not found",
e);
- } catch (InstantiationException e) {
- throw new MojoFailureException("Worker instance can't be
created", e);
- } catch (IllegalAccessException e) {
- throw new MojoFailureException("Worker instance can't be
created", e);
- } catch (CdkException e) {
- throw new MojoFailureException("Worker initialization
error", e);
- }
- }
- }
-
- // Set default naming conventions if it was not configured.
- if (!namingConventionsConfigured) {
- RichFacesConventions facesConventions = new RichFacesConventions();
-
- try {
- facesConventions.init(context);
- } catch (CdkException e) {
- throw new MojoFailureException("Naming conventions initialization
error", e);
- }
-
- context.setWorker(NamingConventions.class, facesConventions);
- }
-
- // Set default model validator if it was not configured.
- if (!validatorConfigured) {
- ValidatorImpl validatorImpl = new ValidatorImpl();
-
- try {
- validatorImpl.init(context);
- } catch (CdkException e) {
- throw new MojoFailureException("RichFaces Validator initialization
error", e);
- }
-
- context.setWorker(ModelValidator.class, validatorImpl);
- }
-
if (null != options) {
// TODO make it type safe.
- context.setOptions(options);
+ generator.setOptions(options);
}
try {
// Build JSF library.
// LibraryBuilder builder = LibraryBuilder.createInstance(context);
- ModelBuilder builder = context.getWorker(AptBuilder.class);
- builder.build();
-
+ generator.init();
+ generator.execute();
+ if(logger.getErrorCount()>0){
+ throw new MojoFailureException("Errors occurred while JSF library
was built");
+ }
// Tell project about generated files.
project.addCompileSourceRoot(outputJavaDirectory.getAbsolutePath());
@@ -311,19 +248,28 @@
}
/**
+ * <p class="changed_added_4_0"></p>
+ * @param generator
+ * @throws MojoFailureException
+ */
+ private void setupPlugins(Generator generator) throws MojoFailureException {
+ // TODO - get additional modules, as Maven components ?
+ }
+
+ /**
* <p class="changed_added_4_0">This utility method sets output
directory for particular type.
* I such directory does not exist, it is created.</p>
*
- * @param context
+ * @param generator
* @param directory
* @param type
*/
- private static void setOutput(CdkContextBase context, File directory,
StandardOutputFolders type) {
+ private static void setOutput(Generator generator, File directory,
StandardOutputFolders type) {
if (!directory.exists()) {
directory.mkdirs();
}
- context.setOutputFolder(type, directory);
+ generator.addOutputFolder(type, directory);
}
/**