Author: alexsmirnov
Date: 2009-08-17 19:31:33 -0400 (Mon, 17 Aug 2009)
New Revision: 15187
Added:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/Verifier.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/VerifierImpl.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/AptBuilder.java
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/apt/CdkProcessorTest.java
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/apt/ComponentProcessorTest.java
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/freemarker/
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/freemarker/FreeMarkerRendererTest.java
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/JaxbMarshallTest.java
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/model/
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/model/Child.java
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/model/Id.java
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/model/Root.java
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/model/package-info.java
root/cdk/trunk/plugins/generator/src/test/resources/META-INF/
root/cdk/trunk/plugins/generator/src/test/resources/META-INF/templates/
root/cdk/trunk/plugins/generator/src/test/resources/META-INF/templates/testComponent.ftl
Removed:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/CdkCompiler.java
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/VM_global_library.vm
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/component.vm
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/componentTag.vm
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/componenttest.vm
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/converter.vm
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/converterTag.vm
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/facelets.taglib.vm
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/faces-config.vm
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/listener_tag.vm
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/listener_taghandler.vm
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/renderer.vm
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/resources-config.vm
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/resources-dependencies.vm
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/tag.vm
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/taghandler.vm
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/taglib.vm
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/tagtest.vm
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/templatecompiler/
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/validator.vm
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/validatorTag.vm
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates12/
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/apt/ProcessorTest.java
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/LibraryBuilder.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/CdkProcessor.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/ComponentProcessor.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/freemarker/CdkConfiguration.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/freemarker/FreeMarkerRenderer.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Component.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ComponentLibrary.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Property.java
root/cdk/trunk/plugins/generator/src/main/javadoc/org/richfaces/cdk/MVC.dia
root/cdk/trunk/plugins/generator/src/main/javadoc/org/richfaces/cdk/MVC.png
Log:
start component class renderer implementation
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/LibraryBuilder.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/LibraryBuilder.java 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/LibraryBuilder.java 2009-08-17
23:31:33 UTC (rev 15187)
@@ -28,7 +28,7 @@
import org.richfaces.builder.templates.RendererTemplateParser;
import org.richfaces.cdk.CdkContext.SourceType;
import org.richfaces.cdk.CdkWriter.OutputType;
-import org.richfaces.cdk.apt.CdkCompiler;
+import org.richfaces.cdk.apt.AptBuilder;
import org.richfaces.cdk.apt.CdkProcessor;
import org.richfaces.cdk.apt.ComponentProcessor;
import org.richfaces.cdk.generate.java.ComponentClassGenerator;
@@ -87,7 +87,9 @@
*/
public ComponentLibrary buildModel(SourceType type) throws CdkException {
ModelBuilder modelBuilder = getBuilderFor(type);
- return modelBuilder.build();
+ ComponentLibrary library = modelBuilder.build();
+ getVerifier().verify(library);
+ return library;
}
/**
@@ -108,6 +110,7 @@
library = model;
}
}
+ getVerifier().verify(library);
return library;
}
@@ -159,7 +162,7 @@
protected ModelBuilder getBuilderFor(SourceType type) throws CdkException {
ModelBuilder builder;
if (StandardSources.JAVA_SOURCES.equals(type)) {
- builder = new CdkCompiler();
+ builder = new AptBuilder();
} else if (StandardSources.FACES_CONFIGS.equals(type)) {
builder = new FacesConfigParser();
} else if (StandardSources.RENDERER_TEMPLATES.equals(type)) {
@@ -171,4 +174,9 @@
builder.init(getContext());
return builder;
}
+
+ protected Verifier getVerifier(){
+ // TODO - put verifier implementation into context ?
+ return new VerifierImpl(getContext());
+ }
}
Added: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/Verifier.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/Verifier.java
(rev 0)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/Verifier.java 2009-08-17
23:31:33 UTC (rev 15187)
@@ -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 org.richfaces.cdk.model.ComponentLibrary;
+
+/**
+ * <p class="changed_added_4_0">Interface for CDK library model
verifier.</p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+public interface Verifier {
+
+ /**
+ * <p class="changed_added_4_0">Perform verify procedure on the library
model.</p>
+ * @param library
+ * @throws CdkException
+ */
+ public void verify(ComponentLibrary library) throws CdkException;
+
+}
Property changes on:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/Verifier.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/VerifierImpl.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/VerifierImpl.java
(rev 0)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/VerifierImpl.java 2009-08-17
23:31:33 UTC (rev 15187)
@@ -0,0 +1,50 @@
+/*
+ * $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 org.richfaces.cdk.model.ComponentLibrary;
+
+/**
+ * <p class="changed_added_4_0"></p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+public class VerifierImpl implements Verifier {
+
+ private final CdkContext context;
+
+ public VerifierImpl(CdkContext context) {
+ this.context = context;
+ }
+
+ /* (non-Javadoc)
+ * @see org.richfaces.cdk.Verifier#verify(org.richfaces.cdk.model.ComponentLibrary)
+ */
+ @Override
+ public void verify(ComponentLibrary library) throws CdkException {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Property changes on:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/VerifierImpl.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/AptBuilder.java (from
rev 15186,
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/CdkCompiler.java)
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/AptBuilder.java
(rev 0)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/AptBuilder.java 2009-08-17
23:31:33 UTC (rev 15187)
@@ -0,0 +1,261 @@
+/*
+ * $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.apt;
+
+import java.io.File;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.Locale;
+
+import javax.annotation.processing.Processor;
+import javax.tools.Diagnostic;
+import javax.tools.DiagnosticListener;
+import javax.tools.JavaCompiler;
+import javax.tools.JavaFileObject;
+import javax.tools.StandardJavaFileManager;
+import javax.tools.ToolProvider;
+import javax.tools.Diagnostic.Kind;
+import javax.tools.JavaCompiler.CompilationTask;
+
+import org.richfaces.cdk.CdkContext;
+import org.richfaces.cdk.CdkException;
+import org.richfaces.cdk.Logger;
+import org.richfaces.cdk.LoggerFactory;
+import org.richfaces.cdk.ModelBuilder;
+import org.richfaces.cdk.StandardSources;
+import org.richfaces.cdk.model.ComponentLibrary;
+
+import com.google.common.collect.Lists;
+
+/**
+ * <p class="changed_added_4_0">
+ * That class compiles files from sources and process annotations
+ * </p>
+ *
+ * @author asmirnov(a)exadel.com
+ *
+ */
+public class AptBuilder implements ModelBuilder {
+
+ private static final Logger log = LoggerFactory.getLogger();
+
+ private VirtualFileManager fileManager;
+
+ private Iterable<String> options;
+
+ private JavaCompiler javaCompiler;
+
+ private Locale locale;
+
+ private CdkContext context;
+
+ private boolean initialized = false;
+
+ /**
+ * <p class="changed_added_4_0">Builder method that creates and
initializes compiler instance.
+ * That instance can be reused for consecuence processing.</p>
+ * @param context
+ * @return
+ */
+ @Override
+ public void init(CdkContext context) {
+ this.context = context;
+ JavaCompiler javaCompiler = ToolProvider.getSystemJavaCompiler();
+ setJavaCompiler(javaCompiler);
+ ArrayList<String> options = new ArrayList<String>();
+ options.add("-proc:only");
+ options.add("-implicit:class");
+ options.add("-verbose");
+ ClassLoader classPathLoader = context.getLoader();
+ StringBuilder classPathOption = new StringBuilder();
+ boolean hasClassPathElement=false;
+ while (null != classPathLoader && classPathLoader instanceof URLClassLoader)
{
+ URLClassLoader urlLoader = (URLClassLoader) classPathLoader;
+ for (URL cpElement : urlLoader.getURLs()) {
+ if(hasClassPathElement){
+ classPathOption.append(File.pathSeparatorChar);
+ } else {
+ options.add("-classpath");
+ hasClassPathElement = true;
+ }
+ classPathOption.append(cpElement.toExternalForm());
+ }
+ classPathLoader = classPathLoader.getParent();
+ }
+ if (hasClassPathElement) {
+ options.add(classPathOption.toString());
+ log.info("Compiler classpath:" + classPathOption);
+
+ }
+ if(null != context.getJavaSource()){
+ options.add("-sourcepath");
+ options.add(context.getJavaSource().getAbsolutePath());
+ }
+ if(null != context.getJavaSourceOutput() || null != context.getResourceOutput()){
+ options.add("-s");
+ StringBuilder generatedSourceFolders = new StringBuilder();
+ if(null != context.getJavaSourceOutput()){
+ generatedSourceFolders.append(context.getJavaSourceOutput().getAbsolutePath());
+ }
+ if(null != context.getResourceOutput()){
+ if(generatedSourceFolders.length()>0){
+ generatedSourceFolders.append(File.pathSeparatorChar);
+ }
+ generatedSourceFolders.append(context.getResourceOutput().getAbsolutePath());
+ }
+ options.add(generatedSourceFolders.toString());
+ }
+ setOptions(options);
+ // TODO - provide source files locale.
+ setLocale(Locale.getDefault());
+ // TODO -set locale and charset for platform-independent processing. Provide own
diagnostics listener.
+ StandardJavaFileManager stdFileManager = javaCompiler
+ .getStandardFileManager(null, null, null);
+ // TODO - use standard file manager for all tasks.
+ VirtualFileManager fileManager = new VirtualFileManager(stdFileManager,
+ context.getLoader());
+ fileManager.setJavaSourceDirectory(context.getJavaSource());
+ setFileManager(fileManager);
+ initialized = true;
+ }
+
+ @Override
+ public ComponentLibrary build() throws CdkException {
+ if(!initialized){
+ throw new CdkException("Annotation processor is not initialized");
+ }
+ ComponentLibrary library = new ComponentLibrary();
+ ComponentProcessor processor = new ComponentProcessor(context,library);
+ process(context.getSources(StandardSources.JAVA_SOURCES),processor);
+ return library;
+ }
+ /**
+ * <p class="changed_added_4_0">That method process source files and
call appropriate annotation processors</p>
+ * @param sources
+ * @param processors
+ * @throws AptException
+ */
+ protected void process(Iterable<File> sources, Processor...processors) throws
AptException {
+ final List<String> messages = Lists.newArrayList();
+ DiagnosticListener<JavaFileObject> listener = new
DiagnosticListener<JavaFileObject>() {
+
+ @Override
+ public void report(Diagnostic<? extends JavaFileObject> diagnostic) {
+ log.debug("LOG: " + diagnostic.getMessage(null));
+ if(Kind.ERROR.equals(diagnostic.getKind())){
+ messages.add(diagnostic.getMessage(null));
+ }
+ }
+
+ };
+ ArrayList<VirtualJavaFileObject> sourceObjects = new
ArrayList<VirtualJavaFileObject>();
+ for (File file : sources) {
+ VirtualJavaFileObject sourceObject = new VirtualJavaFileSystemObject(file);
+ sourceObjects.add(sourceObject);
+ }
+ CompilationTask task = getJavaCompiler().getTask(null, getFileManager(), listener,
getOptions(), null, sourceObjects);
+ task.setProcessors(Arrays.asList(processors));
+ task.setLocale(locale);
+ if(!task.call()){
+ throw new AptException("Compilation error: "+messages);
+ }
+ }
+
+
+ /**
+ * <p class="changed_added_4_0">
+ * </p>
+ *
+ * @return the options
+ */
+ protected Iterable<String> getOptions() {
+ return options;
+ }
+
+ /**
+ * <p class="changed_added_4_0">
+ * </p>
+ *
+ * @param options
+ * the options to set
+ */
+ protected void setOptions(Iterable<String> options) {
+ this.options = options;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the fileManager
+ */
+ protected VirtualFileManager getFileManager() {
+ return fileManager;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @param fileManager the fileManager to set
+ */
+ protected void setFileManager(VirtualFileManager fileManager) {
+ this.fileManager = fileManager;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @param javaCompiler the javaCompiler to set
+ */
+ protected void setJavaCompiler(JavaCompiler javaCompiler) {
+ this.javaCompiler = javaCompiler;
+ }
+
+ /**
+ * <p class="changed_added_4_0">
+ * </p>
+ *
+ * @return the javaCompiler
+ */
+ protected JavaCompiler getJavaCompiler() {
+ return javaCompiler;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the locale
+ */
+ public Locale getLocale() {
+ return locale;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @param locale the locale to set
+ */
+ public void setLocale(Locale locale) {
+ this.locale = locale;
+ }
+
+}
Property changes on:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/AptBuilder.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Deleted:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/CdkCompiler.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/CdkCompiler.java 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/CdkCompiler.java 2009-08-17
23:31:33 UTC (rev 15187)
@@ -1,261 +0,0 @@
-/*
- * $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.apt;
-
-import java.io.File;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-import java.util.Locale;
-
-import javax.annotation.processing.Processor;
-import javax.tools.Diagnostic;
-import javax.tools.DiagnosticListener;
-import javax.tools.JavaCompiler;
-import javax.tools.JavaFileObject;
-import javax.tools.StandardJavaFileManager;
-import javax.tools.ToolProvider;
-import javax.tools.Diagnostic.Kind;
-import javax.tools.JavaCompiler.CompilationTask;
-
-import org.richfaces.cdk.CdkContext;
-import org.richfaces.cdk.CdkException;
-import org.richfaces.cdk.Logger;
-import org.richfaces.cdk.LoggerFactory;
-import org.richfaces.cdk.ModelBuilder;
-import org.richfaces.cdk.StandardSources;
-import org.richfaces.cdk.model.ComponentLibrary;
-
-import com.google.common.collect.Lists;
-
-/**
- * <p class="changed_added_4_0">
- * That class compiles files from sources and process annotations
- * </p>
- *
- * @author asmirnov(a)exadel.com
- *
- */
-public class CdkCompiler implements ModelBuilder {
-
- private static final Logger log = LoggerFactory.getLogger();
-
- private VirtualFileManager fileManager;
-
- private Iterable<String> options;
-
- private JavaCompiler javaCompiler;
-
- private Locale locale;
-
- private CdkContext context;
-
- private boolean initialized = false;
-
- /**
- * <p class="changed_added_4_0">Builder method that creates and
initializes compiler instance.
- * That instance can be reused for consecuence processing.</p>
- * @param context
- * @return
- */
- @Override
- public void init(CdkContext context) {
- this.context = context;
- JavaCompiler javaCompiler = ToolProvider.getSystemJavaCompiler();
- setJavaCompiler(javaCompiler);
- ArrayList<String> options = new ArrayList<String>();
- options.add("-proc:only");
- options.add("-implicit:class");
- options.add("-verbose");
- ClassLoader classPathLoader = context.getLoader();
- StringBuilder classPathOption = new StringBuilder();
- boolean hasClassPathElement=false;
- while (null != classPathLoader && classPathLoader instanceof URLClassLoader)
{
- URLClassLoader urlLoader = (URLClassLoader) classPathLoader;
- for (URL cpElement : urlLoader.getURLs()) {
- if(hasClassPathElement){
- classPathOption.append(File.pathSeparatorChar);
- } else {
- options.add("-classpath");
- hasClassPathElement = true;
- }
- classPathOption.append(cpElement.toExternalForm());
- }
- classPathLoader = classPathLoader.getParent();
- }
- if (hasClassPathElement) {
- options.add(classPathOption.toString());
- log.info("Compiler classpath:" + classPathOption);
-
- }
- if(null != context.getJavaSource()){
- options.add("-sourcepath");
- options.add(context.getJavaSource().getAbsolutePath());
- }
- if(null != context.getJavaSourceOutput() || null != context.getResourceOutput()){
- options.add("-s");
- StringBuilder generatedSourceFolders = new StringBuilder();
- if(null != context.getJavaSourceOutput()){
- generatedSourceFolders.append(context.getJavaSourceOutput().getAbsolutePath());
- }
- if(null != context.getResourceOutput()){
- if(generatedSourceFolders.length()>0){
- generatedSourceFolders.append(File.pathSeparatorChar);
- }
- generatedSourceFolders.append(context.getResourceOutput().getAbsolutePath());
- }
- options.add(generatedSourceFolders.toString());
- }
- setOptions(options);
- // TODO - provide source files locale.
- setLocale(Locale.getDefault());
- // TODO -set locale and charset for platform-independent processing. Provide own
diagnostics listener.
- StandardJavaFileManager stdFileManager = javaCompiler
- .getStandardFileManager(null, null, null);
- // TODO - use standard file manager for all tasks.
- VirtualFileManager fileManager = new VirtualFileManager(stdFileManager,
- context.getLoader());
- fileManager.setJavaSourceDirectory(context.getJavaSource());
- setFileManager(fileManager);
- initialized = true;
- }
-
- @Override
- public ComponentLibrary build() throws CdkException {
- if(!initialized){
- throw new CdkException("Annotation processor is not initialized");
- }
- ComponentLibrary library = new ComponentLibrary();
- ComponentProcessor processor = new ComponentProcessor(context,library);
- process(context.getSources(StandardSources.JAVA_SOURCES),processor);
- return library;
- }
- /**
- * <p class="changed_added_4_0">That method process source files and
call appropriate annotation processors</p>
- * @param sources
- * @param processors
- * @throws AptException
- */
- protected void process(Iterable<File> sources, Processor...processors) throws
AptException {
- final List<String> messages = Lists.newArrayList();
- DiagnosticListener<JavaFileObject> listener = new
DiagnosticListener<JavaFileObject>() {
-
- @Override
- public void report(Diagnostic<? extends JavaFileObject> diagnostic) {
- log.debug("LOG: " + diagnostic.getMessage(null));
- if(Kind.ERROR.equals(diagnostic.getKind())){
- messages.add(diagnostic.getMessage(null));
- }
- }
-
- };
- ArrayList<VirtualJavaFileObject> sourceObjects = new
ArrayList<VirtualJavaFileObject>();
- for (File file : sources) {
- VirtualJavaFileObject sourceObject = new VirtualJavaFileSystemObject(file);
- sourceObjects.add(sourceObject);
- }
- CompilationTask task = getJavaCompiler().getTask(null, getFileManager(), listener,
getOptions(), null, sourceObjects);
- task.setProcessors(Arrays.asList(processors));
- task.setLocale(locale);
- if(!task.call()){
- throw new AptException("Compilation error: "+messages);
- }
- }
-
-
- /**
- * <p class="changed_added_4_0">
- * </p>
- *
- * @return the options
- */
- protected Iterable<String> getOptions() {
- return options;
- }
-
- /**
- * <p class="changed_added_4_0">
- * </p>
- *
- * @param options
- * the options to set
- */
- protected void setOptions(Iterable<String> options) {
- this.options = options;
- }
-
- /**
- * <p class="changed_added_4_0"></p>
- * @return the fileManager
- */
- protected VirtualFileManager getFileManager() {
- return fileManager;
- }
-
- /**
- * <p class="changed_added_4_0"></p>
- * @param fileManager the fileManager to set
- */
- protected void setFileManager(VirtualFileManager fileManager) {
- this.fileManager = fileManager;
- }
-
- /**
- * <p class="changed_added_4_0"></p>
- * @param javaCompiler the javaCompiler to set
- */
- protected void setJavaCompiler(JavaCompiler javaCompiler) {
- this.javaCompiler = javaCompiler;
- }
-
- /**
- * <p class="changed_added_4_0">
- * </p>
- *
- * @return the javaCompiler
- */
- protected JavaCompiler getJavaCompiler() {
- return javaCompiler;
- }
-
- /**
- * <p class="changed_added_4_0"></p>
- * @return the locale
- */
- public Locale getLocale() {
- return locale;
- }
-
- /**
- * <p class="changed_added_4_0"></p>
- * @param locale the locale to set
- */
- public void setLocale(Locale locale) {
- this.locale = locale;
- }
-
-}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/CdkProcessor.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/CdkProcessor.java 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/CdkProcessor.java 2009-08-17
23:31:33 UTC (rev 15187)
@@ -195,16 +195,16 @@
* <p class="changed_added_4_0">
* Get all classes annotated with particular annotation.
* </p>
- *
+ * @param round
+ * current round environment.
* @param annotation
* annotation class.
- * @param round
- * current round environment.
+ *
* @return {@link Set} of all classes annotated with {@code annotation}
* type.
*/
protected Set<? extends TypeElement> getClassesAnnotatedWith(
- Class<? extends Annotation> annotation, RoundEnvironment round) {
+ RoundEnvironment round, Class<? extends Annotation> annotation) {
Set<TypeElement> classes = Sets.newHashSet();
Set<? extends Element> annotatedWith = round
.getElementsAnnotatedWith(annotation);
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/ComponentProcessor.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/ComponentProcessor.java 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/apt/ComponentProcessor.java 2009-08-17
23:31:33 UTC (rev 15187)
@@ -25,25 +25,19 @@
import java.util.Set;
-import javax.annotation.processing.ProcessingEnvironment;
import javax.annotation.processing.RoundEnvironment;
import javax.annotation.processing.SupportedAnnotationTypes;
-import javax.lang.model.element.Element;
import javax.lang.model.element.Modifier;
import javax.lang.model.element.TypeElement;
import javax.lang.model.type.MirroredTypeException;
-import javax.lang.model.type.MirroredTypesException;
-import javax.lang.model.type.TypeMirror;
import org.richfaces.cdk.CdkContext;
-import org.richfaces.cdk.NamingConventions;
import org.richfaces.cdk.annotations.Attribute;
import org.richfaces.cdk.annotations.Attributes;
import org.richfaces.cdk.annotations.Component;
import org.richfaces.cdk.annotations.Family;
import org.richfaces.cdk.model.ClassDescription;
import org.richfaces.cdk.model.ComponentLibrary;
-import org.richfaces.cdk.model.InvalidNameException;
import org.richfaces.cdk.model.Property;
import org.richfaces.cdk.model.Component.Type;
import org.richfaces.cdk.util.Strings;
@@ -82,88 +76,57 @@
RoundEnvironment roundEnv) {
if (null != annotations && !annotations.isEmpty()) {
ComponentLibrary library = getLibrary();
- NamingConventions namingUtils = getContext().getNamingConventions();
- // Process all component classes.
+ // Process all component classes annotated with CDK @Component.
Set<? extends TypeElement> componentClasses = getClassesAnnotatedWith(
- Component.class, roundEnv);
- for (TypeElement component : componentClasses) {
+ roundEnv, Component.class);
+ for (TypeElement componentElement : componentClasses) {
try {
// Process class-level annotations.
// Calculate type for base UI component class.
- // TODO - encpsulate that into simple utility classes call.
- Component componentAnnotation = component
+ // TODO - encapsulate that into simple utility classes call.
+ Component componentAnnotation = componentElement
.getAnnotation(Component.class);
- String baseClassName = component.getQualifiedName()
- .toString();
- String componentType = namingUtils.inferComponentType(
- componentAnnotation.type(), baseClassName);
- // Create/get component instance.
- org.richfaces.cdk.model.Component componentModel = library
- .createComponent(componentType)
- .setClassName(
- namingUtils.inferUIComponentClass(
- componentType, componentAnnotation
- .className(),
- baseClassName, component
+ org.richfaces.cdk.model.Component component = new
org.richfaces.cdk.model.Component();
+ // Should that component be generated ?
+ component.setExists(!componentElement
.getModifiers().contains(
- Modifier.ABSTRACT)))
- .setBaseClassName(
- namingUtils.inferUIComponentBaseClass(
- componentType, baseClassName,
- component.getModifiers().contains(
- Modifier.ABSTRACT)));
- // Component Family. TODO - get it from 'COMPONENT_FAMILY'
- // field or infer by NamingConventios.
- Family family = component.getAnnotation(Family.class);
- componentModel
- .setFamily(namingUtils.inferUIComponentFamily(componentType,family.value()));
+ Modifier.ABSTRACT));
+ component.setBaseClass(new ClassDescription(componentElement.getQualifiedName()
+ .toString()));
+ if(!Strings.isEmpty(componentAnnotation.type())){
+ component.setType(new Type(componentAnnotation.type()));
+ }
+ // Generated class name.
+ if(!Strings.isEmpty(componentAnnotation
+ .className())){
+ component.setComponentClass(new
ClassDescription(componentAnnotation.className()));
+ component.setExists(false);
+ }
+ // Component family
+ if(!Strings.isEmpty(componentAnnotation
+ .family())){
+ // @Component annotation fiels
+ component.setFamily(componentAnnotation.family());
+ } else if(null != componentElement.getAnnotation(Family.class)){
+ // @Family annotation.
+ component
+ .setFamily(componentElement.getAnnotation(Family.class).value());
+ } else {
+ // TODO - find static final COMPONENT_FAMILY string ?
+ }
// JavaDoc comments
- componentModel.setDescription(this.processingEnv
- .getElementUtils().getDocComment(component));
+ component.setDescription(this.processingEnv
+ .getElementUtils().getDocComment(componentElement));
// TODO - process Events attribute.
// TODO - renderers, ....
// Process attributes.
- Set<BeanProperty> properties = getBeanPropertiesAnnotatedWith(
- Attribute.class, component);
- // TODO - encapsulate attribute builder into utility class.
- for (BeanProperty beanProperty : properties) {
- Property atribute = componentModel
- .addAttribute(beanProperty.getName());
- // Documentation
- atribute.setDescription(beanProperty.getDocComment());
- // Type.
- atribute.setPropertyClass(beanProperty
- .getType().toString());
- // Flags.
- atribute.setExists(beanProperty.isExists());
- }
- Attributes attributes = component
- .getAnnotation(Attributes.class);
- if (null != attributes) {
- Attribute[] attributes2 = attributes.value();
- for (Attribute attributeAnnotation : attributes2) {
- Property attribute = componentModel
- .addAttribute(attributeAnnotation.name());
- attribute.setExists(false);
- try {
- Class<?> type = attributeAnnotation.type();
- attribute
- .setPropertyClass(type
- .getName());
- } catch (MirroredTypeException ex) {
- attribute.setPropertyClass(ex
- .getTypeMirror().toString());
- }
- // TODO - process additional properties.
- }
- }
- // TODO - Process standard information for parent classes
- // and intrfaces.
- } catch (InvalidNameException e) {
+ processAttributes(componentElement, component);
+ library.getComponents().add(component);
+ } catch (Exception e) {
// rise error and continue.
processingEnv.getMessager().printMessage(
javax.tools.Diagnostic.Kind.ERROR, e.getMessage(),
- component);
+ componentElement);
continue;
}
}
@@ -172,12 +135,49 @@
return false;
}
+ protected void processAttributes(TypeElement componentElement,
+ org.richfaces.cdk.model.Component component) {
+ Set<BeanProperty> properties = getBeanPropertiesAnnotatedWith(
+ Attribute.class, componentElement);
+ // TODO - encapsulate attribute builder into utility class.
+ for (BeanProperty beanProperty : properties) {
+ Property atribute = component
+ .addAttribute(beanProperty.getName());
+ // Documentation
+ atribute.setDescription(beanProperty.getDocComment());
+ // Type.
+ atribute.setType(new ClassDescription(beanProperty
+ .getType().toString()));
+ // Flags.
+ atribute.setExists(beanProperty.isExists());
+ }
+ Attributes attributes = componentElement
+ .getAnnotation(Attributes.class);
+ if (null != attributes) {
+ Attribute[] attributes2 = attributes.value();
+ for (Attribute attributeAnnotation : attributes2) {
+ Property attribute = component
+ .addAttribute(attributeAnnotation.name());
+ attribute.setExists(false);
+ try {
+ Class<?> type = attributeAnnotation.type();
+ attribute
+ .setType(new ClassDescription(type
+ .getName()));
+ } catch (MirroredTypeException ex) {
+ attribute.setType(new ClassDescription(ex
+ .getTypeMirror().toString()));
+ }
+ // TODO - process additional properties.
+ }
+ }
+ // TODO - Process standard information for parent classes
+ // and intrfaces.
+ }
+
public ComponentLibrary getLibrary() {
return library;
}
- protected ClassDescription createClassDescription(TypeMirror mirror) {
- return getLibrary().createClassDescription(mirror.toString());
- }
}
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/freemarker/CdkConfiguration.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/freemarker/CdkConfiguration.java 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/freemarker/CdkConfiguration.java 2009-08-17
23:31:33 UTC (rev 15187)
@@ -37,6 +37,7 @@
*/
public class CdkConfiguration extends Configuration {
+ private static final String TEMPLATES = "/META-INF/templates";
private final CdkContext context;
/**
@@ -51,7 +52,7 @@
super();
this.context = context;
// TODO set proper template loader.
- setClassForTemplateLoading(context.getClass(), "/META-INF/templates");
+ setClassForTemplateLoading(context.getClass(), TEMPLATES);
// TODO create an object wrapper for library model.
setObjectWrapper(new LibraryModelWrapper());
// Add context variables
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/freemarker/FreeMarkerRenderer.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/freemarker/FreeMarkerRenderer.java 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/freemarker/FreeMarkerRenderer.java 2009-08-17
23:31:33 UTC (rev 15187)
@@ -25,6 +25,7 @@
import java.io.FileWriter;
import java.io.IOException;
+import java.io.Writer;
import org.richfaces.cdk.CdkContext;
import org.richfaces.cdk.CdkException;
@@ -78,7 +79,7 @@
protected boolean processComponent(C c, P param) {
try {
- FileWriter out = new FileWriter(getOutputFile(c));
+ Writer out = getOutput(c);
template.process(c, out);
out.close();
} catch (IOException e) {
@@ -92,6 +93,10 @@
return false;
}
+ protected Writer getOutput(C c) throws IOException {
+ return new FileWriter(getOutputFile(c));
+ }
+
protected abstract String getOutputFile(C c);
protected abstract boolean isMyComponent(JsfComponent c);
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Component.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Component.java 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Component.java 2009-08-17
23:31:33 UTC (rev 15187)
@@ -31,14 +31,14 @@
/**
* <p class="changed_added_4_0">Reference to component library for
which that component is belong to.</p>
*/
- private final ComponentLibrary library;
+ private ComponentLibrary library;
/**
* <p class="changed_added_4_0">
* Component type
* </p>
*/
- private final Type type;
+ private Type type;
/**
* <p class="changed_added_4_0">
@@ -118,18 +118,6 @@
private ComponentExtension extension;
- /**
- * <p class="changed_added_4_0">Constructor. That class can be
instantiated by model-package members only.
- * </p>
- *
- * @param type
- * the type to set
- */
- Component(ComponentLibrary library, Type type) {
- this.library = library;
- this.type = type;
- }
-
@Override
public <R, P> R accept(LibraryVisitor<R, P> visitor, P param) {
return visitor.visit(this, param);
@@ -140,13 +128,23 @@
*
* @see org.richfaces.cdk.model.JsfComponent#getType()
*/
+ @Override
@XmlElement(name="component-type",required=true)
- public JsfType getType() {
+ public Type getType() {
return type;
}
+
/**
* <p class="changed_added_4_0"></p>
+ * @param type the type to set
+ */
+ public void setType(Type type) {
+ this.type = type;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
* @return the extension
*/
@XmlElement(name="component-extensions")
@@ -199,7 +197,7 @@
* the componentClass to set
*/
@XmlElement(name="component-class")
- void setComponentClass(ClassDescription componentClass) {
+ public void setComponentClass(ClassDescription componentClass) {
this.componentClass = componentClass;
}
@@ -209,8 +207,6 @@
*
* @return the baseClass
*/
- @XmlElementWrapper(name="component-extensions")
- @XmlElement(namespace=ComponentLibrary.CDK_EXTENSIONS_NAMESPACE)
public ClassDescription getBaseClass() {
return baseClass;
}
@@ -222,38 +218,10 @@
* @param baseClass
* the baseClass to set
*/
- void setBaseClass(ClassDescription baseClass) {
+ public void setBaseClass(ClassDescription baseClass) {
this.baseClass = baseClass;
}
- /**
- * <p class="changed_added_4_0">Create and set {@link ClassDescription}
for component class.</p>
- * @param className canonical name for component class.
- * @return component instance itself for chain calls.
- */
- public Component setClassName(String className) {
- ClassDescription classDescription = library
- .createClassDescription(className);
- setComponentClass(classDescription);
- return this;
- }
-
- /**
- * <p class="changed_added_4_0">Create and set {@link ClassDescription}
for base generated component class .</p>
- * @param className canonical name for component super class.
- * @return component instance itself for chain calls.
- */
- public Component setBaseClassName(String className) {
- if (!Strings.isEmpty(className)) {
- ClassDescription classDescription = library
- .createClassDescription(className);
- setBaseClass(classDescription);
- } else {
- setBaseClass(null);
- }
- return this;
- }
-
/* (non-Javadoc)
* @see org.richfaces.cdk.model.DescriptionGroup#getDescription()
*/
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ComponentLibrary.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ComponentLibrary.java 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ComponentLibrary.java 2009-08-17
23:31:33 UTC (rev 15187)
@@ -43,6 +43,7 @@
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
@@ -72,23 +73,22 @@
*/
private static final long serialVersionUID = -6055670836731899832L;
- private final Set<Component> components = Sets.newHashSet();
+ private final List<Component> components = Lists.newArrayList();
- private final Set<ClassDescription> classes = Sets.newHashSet();
/**
* <p class="changed_added_4_0">
* JSF renderer associated with that library
* </p>
*/
- private final List<Renderer> renderers = new ArrayList<Renderer>();
+ private final List<Renderer> renderers = Lists.newArrayList();
- private final List<Converter> converters = new ArrayList<Converter>();
+ private final List<Converter> converters = Lists.newArrayList();
- private final List<Validator> validators = new ArrayList<Validator>();
+ private final List<Validator> validators = Lists.newArrayList();
- private final List<Behavior> behaviors = new ArrayList<Behavior>();
+ private final List<Behavior> behaviors = Lists.newArrayList();
- private final List<Listener> listeners = new ArrayList<Listener>();
+ private final List<Listener> listeners = Lists.newArrayList();
/**
* <p class="changed_added_4_0">
@@ -166,7 +166,8 @@
component = find(components, componentType);
} catch (NoSuchElementException e) {
if (create) {
- component = new Component(this,componentType);
+ component = new Component();
+ component.setType(componentType);
components.add(component);
}
}
@@ -194,27 +195,8 @@
/**
* <p class="changed_added_4_0">
- * Gets or creates {@link ClassDescription} object.
* </p>
*
- * @param className
- * @return
- */
- public ClassDescription createClassDescription(String className) {
- ClassDescription result;
- try {
- result = find(classes, new ClassDescription.Type(className));
- } catch (NoSuchElementException e) {
- result = new ClassDescription(className);
- classes.add(result);
- }
- return result;
- }
-
- /**
- * <p class="changed_added_4_0">
- * </p>
- *
* @return the renderers
*/
public List<Renderer> getRenderers() {
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Property.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Property.java 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Property.java 2009-08-17
23:31:33 UTC (rev 15187)
@@ -39,7 +39,7 @@
/**
* <p class="changed_added_4_0">Bean property name of component
attribute</p>
*/
- private final String name;
+ private String name;
private ClassDescription type;
@@ -86,10 +86,13 @@
* <p class="changed_added_4_0"></p>
* @param name
*/
- Property(String name) {
+ public Property(String name) {
this.name = name;
}
+ public Property() {
+ }
+
/**
* <p class="changed_added_4_0"></p>
* @return the name
@@ -101,6 +104,13 @@
/**
* <p class="changed_added_4_0"></p>
+ * @param name
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+ /**
+ * <p class="changed_added_4_0"></p>
* @return the description
*/
public String getDescription() {
@@ -159,19 +169,11 @@
* <p class="changed_added_4_0"></p>
* @param type the type to set
*/
- void setType(ClassDescription type) {
+ public void setType(ClassDescription type) {
this.type = type;
}
- @XmlElement(name = "property-class")
- public void setPropertyClass(String propertyClass) {
- if (!Strings.isEmpty(propertyClass)) {
- ClassDescription type = new ClassDescription(propertyClass);
- setType(type);
- }
- }
-
/**
* <p class="changed_added_4_0"></p>
* @return the dafaultValue
Modified: root/cdk/trunk/plugins/generator/src/main/javadoc/org/richfaces/cdk/MVC.dia
===================================================================
(Binary files differ)
Modified: root/cdk/trunk/plugins/generator/src/main/javadoc/org/richfaces/cdk/MVC.png
===================================================================
(Binary files differ)
Deleted:
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/VM_global_library.vm
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/VM_global_library.vm 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/VM_global_library.vm 2009-08-17
23:31:33 UTC (rev 15187)
@@ -1,12 +0,0 @@
-#macro( quietnull $a)
-
-#if($a)$a#end
-
-#end
-
-
-
-
-
-
-
Deleted:
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/component.vm
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/component.vm 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/component.vm 2009-08-17
23:31:33 UTC (rev 15187)
@@ -1,202 +0,0 @@
-/**
- * GENERATED FILE - DO NOT EDIT
- *
- */
-
-package $package;
-
-#foreach($import in $imports)
-import $import ;
-#end
-
-import javax.faces.context.FacesContext;
-import javax.faces.el.ValueBinding;
-#if(${generator.key})
-
-import java.io.IOException;
-import javax.faces.FacesException;
-import org.richfaces.framework.util.base64.Codec;
-#end
-
-/**
- * Component-Type ${component.name}
- * Component-Family ${component.family}
- #if(${component.renderer})
- * Renderer-Type ${component.renderer.name}
- #end
- * ${component.xmlEncodedDescription}
- */
- public class $component.simpleClassName extends $component.superclass {
-
- public static final String COMPONENT_TYPE = "${component.name}";
-
- /**
- * Constructor to init default renderers
- */
- public $component.simpleClassName (){
- #if(${component.renderer})
- setRendererType("${component.renderer.name}");
- #end
- }
-
-// Component properties fields
-#set( $fiedCounter = 1 )
-#foreach( $prop in $component.properties )
- #if( !$prop.exist )
- /**
- * $prop.name
- * ${prop.xmlEncodedDescription}
- */
- #if($prop.simpleType)
- private $prop.simpleClassName _$prop.name = ${prop.defaultvalue};
- /**
- * Flag indicated what $prop.name is set.
- */
- private boolean _${prop.name}Set = false;
- #set( $fiedCounter = $fiedCounter+2)
- #else
- private $prop.simpleClassName _$prop.name = null; /* Default is
${prop.defaultvalue}*/
- #set( $fiedCounter = $fiedCounter+1)
- #end
-#end
-#end
-
-// Getters-setters
-#foreach( $prop in $component.properties )
- #if( !$prop.exist )
- /**
- * ${prop.xmlEncodedDescription}
- * Setter for $prop.name
- * @param $prop.name - new value
- */
- public void ${prop.setterName}( $prop.simpleClassName __$prop.name ){
- this._${prop.name} = __$prop.name;
- #if($prop.simpleType)
- this._${prop.name}Set = true;
- #end
- }
-
-
- /**
- * ${prop.xmlEncodedDescription}
- * Getter for $prop.name
- * @return $prop.name value from local variable or value bindings
- */
- public $prop.simpleClassName ${prop.getterName}( ){
- #if($prop.simpleType)
- if(this._${prop.name}Set){
- return this._${prop.name};
- }
- ValueBinding vb = getValueBinding("${prop.name}");
- if (vb != null) {
- ${prop.boxingClass} value = (${prop.boxingClass})
vb.getValue(getFacesContext());
- if (null == value) {
- return this._${prop.name};
- }
- return (value.${prop.classname}Value());
- } else {
- return (this._${prop.name});
- }
- #else
- if (null != this._${prop.name})
- {
- return this._${prop.name};
- #if( !$prop.isInstanceof("javax.faces.el.MethodBinding") &&
!$prop.isInstanceof("javax.faces.el.ValueBinding"))
- }
- ValueBinding vb = getValueBinding("${prop.name}");
- if (null != vb){
- return (${prop.simpleClassName})vb.getValue(getFacesContext());
- #end
- } else {
- return ${prop.defaultvalue};
- }
- #end
- }
- #if($prop.raw)
- /**
- * ${prop.xmlEncodedDescription}
- * Raw Setter for $prop.name
- * @param $prop.name - new value
- */
- public void ${prop.setterName}Raw( $prop.simpleClassName __$prop.name ){
- this._${prop.name} = __$prop.name;
- }
- /**
- * ${prop.xmlEncodedDescription}
- * Raw ( bypadd bindings ) Getter for $prop.name
- * @return $prop.name value from local variable
- */
- public $prop.simpleClassName ${prop.getterName}Raw( ){
- return this._${prop.name};
- }
- #end
- #end
-#end
-
-#if( ${component.family} )
-// Component family.
- public static final String COMPONENT_FAMILY = "${component.family}";
-
- public String getFamily() {
- return COMPONENT_FAMILY;
- }
-#end
-
-// Save state
-// ----------------------------------------------------- StateHolder Methods
-
-
- public Object saveState(FacesContext context) {
- Object values[] = new Object[${fiedCounter}];
- values[0] = super.saveState(context);
-#set($currentField = 1)
-#foreach( $prop in $component.properties )
- #if( !$prop.exist )
- #if($prop.simpleType)
- values[${currentField}] = new ${prop.boxingClass}(_$prop.name);
- #set( $currentField = $currentField+1)
- values[${currentField}] = Boolean.valueOf(_${prop.name}Set);
- #set( $currentField = $currentField+1)
- #else
- #if(!${prop.attachedstate} )
- values[${currentField}] = _$prop.name;
- #else
- values[${currentField}] = saveAttachedState(context, _$prop.name );
- #end
- #set( $currentField = $currentField+1)
- #end
-
- #end
-#end
- return values;
- }
-
-
- public void restoreState(FacesContext context, Object state) {
- Object values[] = (Object[]) state;
- super.restoreState(context, values[0]);
-#set($currentField = 1)
-#foreach( $prop in $component.properties )
- #if( !$prop.exist )
- #if($prop.simpleType)
- _$prop.name =
((${prop.boxingClass})values[${currentField}]).${prop.classname}Value();
- #set( $currentField = $currentField+1)
- _${prop.name}Set = ((Boolean)values[${currentField}]).booleanValue();
- #set( $currentField = $currentField+1)
- #else
- #if( !${prop.attachedstate} )
- _$prop.name = (${prop.simpleClassName})values[${currentField}] ;
- #else
- _$prop.name =
(${prop.simpleClassName})restoreAttachedState(context,values[${currentField}] );
- #end
- #set( $currentField = $currentField+1)
- #end
-
- #end
-#end
-
-
- }
-// Utilites
-
-}
\ No newline at end of file
Deleted:
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/componentTag.vm
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/componentTag.vm 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/componentTag.vm 2009-08-17
23:31:33 UTC (rev 15187)
@@ -1,149 +0,0 @@
-/**
- * GENERATED FILE - DO NOT EDIT
- *
- */
-package ${tag.packageName};
-
-#foreach($import in $imports)
-import $import ;
-#end
-import javax.faces.component.UIComponent;
-import ${component.classname};
-
-public class $tag.simpleClassName extends $tag.superclass {
-
-// Fields
-#foreach( $prop in $component.properties )
- #if( !$prop.existintag )
- /*
- * $prop.name
- * ${prop.xmlEncodedDescription}
- */
- private String _$prop.name = null;
-
- #end
-#end
-// Setters
-#foreach( $prop in $component.properties )
- #if( !$prop.existintag )
- /*
- * $prop.name
- * ${prop.xmlEncodedDescription}
- */
- /*
- * $prop.description
- * Setter for $prop.name
- * @param $prop.name - new value
- */
- public void ${prop.setterName}( String __${prop.name} ){
- this._${prop.name} = __${prop.name};
- }
-
- #end
- #if( $prop.alias)
- /*
- * ${prop.xmlEncodedDescription}
- * Setter for alias of $prop.name as $prop.alias
- * @param $prop.name - new value
- */
- public void set${prop.upperFirstChar($prop.alias)}( String __${prop.alias} ){
- this.${prop.setterName}(__${prop.alias});
- }
- #end
-#end
-// Release
-
- /* (non-Javadoc)
- * @see org.richfaces.components.taglib.html.HtmlCommandButtonTagBase#release()
- */
- public void release()
- {
- // TODO Auto-generated method stub
- super.release();
-#foreach( $prop in $component.properties )
- #if( !$prop.existintag )
- this._${prop.name} = null;
- #end
-#end
- }
-
- /* (non-Javadoc)
- * @see
org.richfaces.components.taglib.html.HtmlCommandButtonTagBase#setProperties(javax.faces.component.UIComponent)
- */
- protected void setProperties(UIComponent component)
- {
- // TODO Auto-generated method stub
- super.setProperties(component);
-
-#foreach( $prop in $component.properties )
- #if( !$prop.existintag )
- #if(!$prop.el)
- if(null != this._${prop.name} && isValueReference(this._${prop.name})){
- throw new IllegalArgumentException("Component ${component.name} with Id " +
component.getClientId(getFacesContext()) +" not allowed EL expression for property
${prop.name}");
- }
- #end
- #if($prop.name == "action")
- setActionProperty(component, this._${prop.name});
- #elseif($prop.name == "actionListener")
- setActionListenerProperty(component, this._${prop.name});
- #elseif($prop.name == "converter")
- setConverterProperty(component, this._${prop.name});
- #elseif($prop.name == "validator")
- setValidatorProperty(component, this._${prop.name});
- #elseif($prop.name == "valueChangeListener")
- setValueChangedListenerProperty(component, this._${prop.name});
- #elseif($prop.name == "value")
- setValueProperty(component, this._${prop.name});
- #elseif( $prop.isInstanceof("javax.faces.el.MethodBinding") )
- if(null != this._${prop.name}){
- if (isValueReference(this._${prop.name}))
- {
- MethodBinding mb =
getFacesContext().getApplication().createMethodBinding(this._${prop.name},
- new
Class[]{${prop.methodArgsClasses}});
- ((${component.simpleClassName})component).${prop.setterName}(mb);
- }
- else
- {
- getFacesContext().getExternalContext().log("Component " +
component.getClientId(getFacesContext()) + " has invalid ${prop.name} value: " +
this._${prop.name});
- }
- }
- #elseif($prop.elonly || $prop.isInstanceof("javax.faces.el.ValueBinding") )
- setValueBinding(component, "${prop.name}",this._${prop.name});
- #elseif(${prop.simpleType})
- // Simple type - ${prop.simpleClassName}
- set${prop.boxingClass}Property(component,
"${prop.name}",this._${prop.name});
- #elseif($prop.classname == "java.lang.Boolean" || $prop.classname ==
"java.lang.Integer" || $prop.classname == "java.lang.Long")
- set${prop.simpleClassName}Property(component,
"${prop.name}",this._${prop.name});
- #elseif( $prop.classname == "java.lang.String")
- setStringProperty(component, "${prop.name}",this._${prop.name});
- #elseif( $prop.classname == "java.lang.Object")
- // TODO - handle object
- setStringProperty(component, "${prop.name}",this._${prop.name});
- #else
- // TODO - setup properties for other cases.
- // name ${prop.name} with type $prop.classname
- #end
- #end
-#end
- }
-
- /* (non-Javadoc)
- * @see javax.faces.webapp.UIComponentTag#getComponentType()
- */
- public String getComponentType() {
- // TODO Auto-generated method stub
- return "${component.name}";
- }
-
- /* (non-Javadoc)
- * @see javax.faces.webapp.UIComponentTag#getRendererType()
- */
- public String getRendererType() {
- #if($renderer)
- return "${renderer.name}";
- #else
- return null;
- #end
- }
-
-}
Deleted:
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/componenttest.vm
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/componenttest.vm 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/componenttest.vm 2009-08-17
23:31:33 UTC (rev 15187)
@@ -1,147 +0,0 @@
-/**
- * GENERATED FILE - DO NOT EDIT
- *
- */
-
-package $package;
-
-#foreach($import in $imports)
-import $import ;
-#end
-
-import com.gargoylesoftware.htmlunit.Page;
-import javax.faces.component.UIForm;
-import javax.faces.component.html.HtmlForm;
-import javax.faces.context.FacesContext;
-import javax.faces.el.ValueBinding;
-import javax.faces.component.UIViewRoot;
-
-import org.richfaces.tests.MockValueBinding;
-
-//import ${component.classname};
-#if(${generator.key})
-
-import java.io.IOException;
-import javax.faces.FacesException;
-import org.richfaces.framework.util.base64.Codec;
-#end
-
-public class $component.test.simpleClassName extends $component.test.superclassname {
-
-// public static final String COMPONENT_TYPE = "${component.name}";
-
-
-#set( $fiedCounter = 1 )
-#foreach( $prop in $component.properties )
- #if( !$prop.exist )
- #if($prop.simpleType)
- private boolean _${prop.name}Set = false;
- #set( $fiedCounter = $fiedCounter+2)
- #else
- #set( $fiedCounter = $fiedCounter+1)
- #end
-#end
-#end
-
- private $component.simpleClassName component;
- private UIForm form;
-// private FacesContext context;
-
- /**
- * Constructor to init default renderers
- */
- public $component.test.simpleClassName (String name){
- super(name);
- }
-
- /*
- * setup the tets
- */
- public void setUp() throws Exception {
- super.setUp();
- component = new ${component.simpleClassName}();
- form = new HtmlForm();
- form.setId("form");
- facesContext.getViewRoot().getChildren().add(form);
-
- component.setId("component");
-#foreach( $prop in $component.properties )
- #if(!$prop.exist && !$prop.elonly &&
!$prop.classname.startsWith("javax.faces."))
- component.${prop.setterName}($testDataGenerator.getTestData(${prop}) );
- #end
-#end
-
- form.getChildren().add(component);
-
- }
-
- /*
- * setup the tets
- */
- public void tearDown() throws Exception{
- super.tearDown();
- component = null;
- form = null;
- }
-
- public void testComponent() throws Exception {
- #if(${component.renderer})
- assertEquals("${component.renderer.name}", component.getRendererType());
- #end
-
-// values[0] = component.saveState(facesContext);
-
- }
-/*
- public void testDefaultValues(){
-
- }
-*/
- public void testContext(){
-
- Object state = component.saveState(facesContext);
-/*
- UIViewRoot root = facesContext.getViewRoot();
- root.processDecodes(facesContext);
- root.processValidators(facesContext);
- root.processUpdates(facesContext);
- root.processApplication(facesContext);
-*/
- testRestoreState(state);
- }
-
- public void testGetters() {
- ${component.simpleClassName} component = new ${component.simpleClassName}();
-
-#foreach( $prop in $component.properties )
- #if(!$prop.exist && !$prop.elonly &&
!$prop.classname.startsWith("javax.faces."))
- component.setValueBinding("${prop.name}", new
MockValueBinding($testDataGenerator.getTestVeData(${prop}),
${testDataGenerator.getTestVeClass(${prop})}.class));
- assertEquals($testDataGenerator.getTestData(${prop}), component.${prop.getterName}());
- component.${prop.setterName}($testDataGenerator.getTestData1(${prop}) );
- assertEquals($testDataGenerator.getTestData1(${prop}),
component.${prop.getterName}());
- #end
-#end
-
-
- }
-
- private void testRestoreState(Object state){
- ${component.simpleClassName} restoredComponent = new ${component.simpleClassName}();
- restoredComponent.restoreState(facesContext, state);
-
-#foreach( $prop in $component.properties )
- #if(!$prop.exist)
- assertEquals(component.${prop.getterName}(), restoredComponent.${prop.getterName}());
- #end
-#end
-
- }
-
- private void assertEquals(double d1, double d2) {
- assertEquals(d1, d2, 0);
- }
-
- private void assertEquals(float d1, float d2) {
- assertEquals(d1, d2, 0);
- }
-}
Deleted:
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/converter.vm
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/converter.vm 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/converter.vm 2009-08-17
23:31:33 UTC (rev 15187)
@@ -1,221 +0,0 @@
-package $package;
-
-#foreach($import in $imports)
-import $import ;
-#end
-
- import javax.faces.context.FacesContext;
- import javax.faces.el.ValueBinding;
-import javax.faces.component.StateHolder;
-
- /**
- * Converter-Id ${converter.id}
- * ${converter.xmlEncodedDescription}
- */
-
-public class $converter.simpleClassName extends $converter.superclass
#if(${converter.stateHolderRequired} &&
!${converter.superclassImplementsStateHolder})implements StateHolder#end
- {
-
- public static final String CONVERTER_ID = "${converter.id}";
-
-
-
- // Conveter properties fields
-
-#set( $fieldCounter = 0 )
- #foreach( $prop in $converter.properties )
-
-#if( !$prop.exist )
- /**
- * $prop.name
- * ${prop.xmlEncodedDescription}
- */
-
-#if($prop.simpleType)
- private $prop.simpleClassName _$prop.name = ${prop.defaultvalue};
- /**
- * Flag indicated that $prop.name is set.
- */
- private boolean _${prop.name}Set = false;
-#set( $fieldCounter = $fieldCounter+2)
-#else
- private $prop.simpleClassName _$prop.name = null; /* Default is
${prop.defaultvalue}*/
-#set( $fieldCounter = $fieldCounter+1)
- #end
-#end
-#end
-
- // Getters and setters
- #foreach( $prop in $converter.properties )
-
-#if( !$prop.exist )
- /**
- * ${prop.xmlEncodedDescription}
- * Setter for $prop.name
- */
- public void ${prop.setterName}( $prop.simpleClassName __$prop.name )
- {
- this._${prop.name} = __$prop.name;
-
-#if($prop.simpleType)
- this._${prop.name}Set = true;
-
-#end
- }
-
- /**
- * ${prop.xmlEncodedDescription}
- * Getter for $prop.name
- * @return $prop.name value from local variable or value binding
- */
- public $prop.simpleClassName ${prop.getterName}()
- {
- ValueBinding vb = getValueBinding("${prop.name}");
-
-#if($prop.simpleType)
- if(this._${prop.name}Set)
- {
- return this._${prop.name};
-
- return (this._${prop.name});
- }
- }
-
-#else
- if (null != this._${prop.name})
- {
- return this._${prop.name};
- }
-
-#if( !$prop.isInstanceof("javax.faces.el.MethodBinding") &&
!$prop.isInstanceof("javax.faces.el.ValueBinding"))
- else if (null != vb)
- {
- return (${prop.simpleClassName})vb.getValue(getFacesContext());
- }
-
-#end
- else
- {
- return ${prop.defaultvalue};
- }
-
-#end
- }
- #if($prop.raw)
- /**
- * ${prop.xmlEncodedDescription}
- * Raw Setter for $prop.name
- * @param $prop.name - new value
- */
-
- {
- return this._${prop.name};
- }
- #end
-#end
-#end
-
-#if($converter.stateHolderRequired)
-
- // Save state
- // ----------------------------------------------------- StateHolder Methods
-
- private boolean _transient;
-
-#if(${converter.superclassImplementsStateHolder})
-#set($currentField=1)
-#set($fieldCounter = $fieldCounter+1)
-#else
-#set($currentField=0)
-#end
- public Object saveState(FacesContext context) {
-
-#if(${converter.superSaveStateMethodExists})
- Object values[] = new Object[${fieldCounter}];
- values[0] = super.saveState(context);
-#else
- Object values[] = new Object[${fieldCounter}];
-#end
-#foreach( $prop in $converter.properties )
-#if( !$prop.exist )
-#if($prop.simpleType)
- values[${currentField}] = new ${prop.boxingClass}(_$prop.name);
-#set( $currentField = $currentField+1)
- values[${currentField}] = Boolean.valueOf(_${prop.name}Set);
-#set( $currentField = $currentField+1)
-#else
-#if(!${prop.attachedstate} )
- values[${currentField}] = _$prop.name;
-#else
- values[${currentField}] = saveAttachedState(context, _$prop.name );
- #end
-
-#set( $currentField = $currentField+1)
-#end
-#end
-#end
- return values;
- }
-
-
-#if(${converter.superclassImplementsStateHolder})
-#set($currentField=1)
-#else
-#set($currentField=0)
-#end
- public void restoreState(FacesContext context, Object state) {
-#if(${converter.superRestoreStateMethodExists})
- Object values[] = (Object[]) state;
- super.restoreState(context, values[0]);
-#else
- Object values[] = (Object[]) state;
-#end
-#foreach( $prop in $converter.properties )
-#if( !$prop.exist )
-#if($prop.simpleType)
- _$prop.name =
((${prop.boxingClass})values[${currentField}]).${prop.classname}Value();
-#set( $currentField = $currentField+1)
- _${prop.name}Set = ((Boolean)values[${currentField}]).booleanValue();
-#set( $currentField = $currentField+1)
-#else
-#if( !${prop.attachedstate} )
- _$prop.name = (${prop.simpleClassName})values[${currentField}] ;
-#else
- _$prop.name =
(${prop.simpleClassName})restoreAttachedState(context,values[${currentField}] );
- #end
-#set( $currentField = $currentField+1)
-#end
-
-#end
-#end
- }
-
-#if(!$converter.superIsTransientMethodExists)
- public boolean isTransient()
- {
- return _transient;
- }
-#end
-
-#if(!$converter.superSetTransientMethodExists)
- public void setTransient(boolean newTransientValue)
- {
- this._transient = newTransientValue;
- }
-#end
-
-#end
-
- // Utilites
-
- private FacesContext getFacesContext()
- {
- return FacesContext.getCurrentInstance();
- }
-
- private ValueBinding getValueBinding(String name)
- {
- return getFacesContext().getApplication().createValueBinding(name);
- }
-
- }
Deleted:
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/converterTag.vm
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/converterTag.vm 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/converterTag.vm 2009-08-17
23:31:33 UTC (rev 15187)
@@ -1,95 +0,0 @@
-/**
- * GENERATED FILE - DO NOT EDIT
- *
- */
-package ${tag.packageName};
-
-#foreach($import in $imports)
-import $import ;
-#end
-import javax.faces.component.UIComponent;
-import javax.faces.convert.Converter;
-import javax.faces.webapp.UIComponentTag;
-import javax.faces.context.FacesContext;
-import javax.faces.el.ValueBinding;
-import org.apache.commons.beanutils.ConvertUtils;
-import javax.servlet.jsp.JspException;
-import ${converter.classname};
-
-public class $tag.simpleClassName extends $tag.superclass
-{
-
-// Fields
-#foreach( $prop in $converter.properties )
-#if( !$prop.existintag )
- /*
- * $prop.name
- * ${prop.xmlEncodedDescription}
- */
- private String _$prop.name = null;
-
-#end
-#end
-// Setters
-#foreach( $prop in $converter.properties )
-#if( !$prop.existintag )
- /*
- * $prop.description
- * Setter for $prop.name
- * @param $prop.name - new value
- */
- public void ${prop.setterName}(String __${prop.name})
- {
- this._${prop.name} = __${prop.name};
- }
-
-#end
-#if( $prop.alias)
- /*
- * ${prop.xmlEncodedDescription}
- * Setter for alias of $prop.name as $prop.alias
- * @param $prop.name - new value
- */
- public void set${prop.upperFirstChar($prop.alias)}(String __${prop.alias})
- {
- this.${prop.setterName}(__${prop.alias});
- }
-#end
-#end
-
- protected Converter createConverter() throws JspException
- {
- ${converter.simpleClassName} converter = (${converter.simpleClassName})
FacesContext.getCurrentInstance().getApplication().createConverter("${converter.id}");
- _setProperties(converter);
- return converter;
- }
-
- // Support method to wire in attributes
- private void _setProperties(${converter.simpleClassName} converter) throws JspException
- {
- FacesContext facesContext = FacesContext.getCurrentInstance();
-#foreach( $prop in $converter.properties )
-#if( !$prop.existintag )
- if (_${prop.name} != null)
- {
-#if( ${prop.el} )
- if (UIComponentTag.isValueReference(_${prop.name}))
- {
- ValueBinding vb =
facesContext.getApplication().createValueBinding(_${prop.name});
- converter.${prop.setterName}((${prop.simpleClassName})
vb.getValue(facesContext));
- }
-#if (!${prop.elonly})
- else
- {
- converter.${prop.setterName}((${prop.simpleClassName})
ConvertUtils.convert(_${prop.name}, ${prop.simpleClassName}.class));
- }
-#end
- }
-#else
- converter.${prop.setterName}((${prop.simpleClassName})
ConvertUtils.convert(_${prop.name}, ${prop.simpleClassName}.class));
-#end
-#end
-#end
- }
-
-}
Deleted:
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/facelets.taglib.vm
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/facelets.taglib.vm 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/facelets.taglib.vm 2009-08-17
23:31:33 UTC (rev 15187)
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE facelet-taglib PUBLIC
- "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN"
- "http://java.sun.com/dtd/facelet-taglib_1_0.dtd">
-<facelet-taglib
xmlns="http://java.sun.com/JSF/Facelet">
- <namespace>${taglib.uri}</namespace>
-
-${taglib.includeContent}
-
-#foreach( $component in ${components})
-#if($component.tag)
- <tag>
- <tag-name>${component.tag.name}</tag-name>
- <component>
- <component-type>${component.name}</component-type>
-#if(${component.renderer})
- <renderer-type>
- ${component.renderer.name}
- </renderer-type>
-#end
-#if(${component.taghandler})
- <handler-class>
- ${component.taghandler.classname}
- </handler-class>
-#end
- </component>
-
- </tag>
-#end
-#end
-
-
-#foreach( $listener in ${listeners})
- <tag>
- <tag-name>${listener.name}</tag-name>
-#if(${listener.taghandler})
- <handler-class>
- ${listener.taghandler.classname}
- </handler-class>
-#end
-
- </tag>
-#end
-
-</facelet-taglib>
\ No newline at end of file
Deleted:
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/faces-config.vm
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/faces-config.vm 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/faces-config.vm 2009-08-17
23:31:33 UTC (rev 15187)
@@ -1,127 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces
Config 1.1//EN"
-
"http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
-<faces-config>
-
-${facesConfig.includeContent}
-
-#foreach( $validator in ${validators})
- <validator>
- #if(${validator.description})
- <description>${validator.description}</description>
- #end
- #if(${validator.displayname})
- <display-name>${validator.displayname}</display-name>
- #end
- #if(${validator.icon})
- <icon>${validator.icon}</icon>
- #end
- <validator-id>${validator.id}</validator-id>
- <validator-class>${validator.classname}</validator-class>
- </validator>
-#end
-
-#foreach( $converter in ${converters})
- <converter>
- #if(${converter.description})
- <description>${converter.description}</description>
- #end
- #if(${converter.displayname})
- <display-name>${converter.displayname}</display-name>
- #end
- #if(${converter.icon})
- <icon>${converter.icon}</icon>
- #end
- #if(${converter.id})
- <converter-id>${converter.id}</converter-id>
- #end
- #if(${converter.forclass})
- <converter-for-class>${converter.forclass}</converter-for-class>
- #end
-
- <converter-class>${converter.classname}</converter-class>
-
- </converter>
-#end
-
-
-
-#foreach( $component in ${components})
-#if( $component.generate )
- <component>
- #if(${component.description})
- <description>${component.xmlEncodedDescription}</description>
- #end
- #if(${component.displayname})
- <display-name>${component.xmlEncodedDisplayname}</display-name>
- #end
- <component-type>${component.name}</component-type>
- <component-class>${component.classname}</component-class>
-
-#foreach( $facet in $component.facets)
- <facet>
- #if(${facet.description})
- <description>${facet.xmlEncodedDescription}</description>
- #end
- #if(${facet.displayname})
- <display-name>${facet.xmlEncodedDisplayname}</display-name>
- #end
- <facet-name>${facet.name}</facet-name>
- </facet>
-#end
- #if(${component.renderer})
- <component-extension>
- <component-family>${component.family}</component-family>
- <renderer-type>${component.renderer.name}</renderer-type>
- </component-extension>
- #end
- </component>
-#end
-#end
-
-#foreach( $renderkit in $facesConfig.renderKits)
- <render-kit>
- #if(${renderkit.renderkitid})
- <render-kit-id>${renderkit.renderkitid}</render-kit-id>
- #if(${renderkit.renderkitclass})
- <render-kit-class>${renderkit.renderkitclass}</render-kit-class>
- #end
- #end
-#foreach( $component in $components)
- #if($component.renderer)
- #set($rendererClass = $renderkit.rendererClass($component.renderer.classname) )
- #if( $component.renderer.generate ||
$facesConfig.rendererExists("${rendererClass}"))
- <renderer>
- <component-family>${component.family}</component-family>
- <renderer-type>
- ${component.renderer.name}
- </renderer-type>
- <renderer-class>
- ${rendererClass}
- </renderer-class>
- </renderer>
- #end
- #end
-#end
-
-#foreach($renderer in $renderers)
- #set($rendererClass = $renderkit.rendererClass($renderer.classname) )
- #if( $renderer.generate || $facesConfig.rendererExists("${rendererClass}"))
- <renderer>
- <component-family>${renderer.family}</component-family>
- <renderer-type>
- ${renderer.name}
- </renderer-type>
- <renderer-class>
- ${rendererClass}
- </renderer-class>
- </renderer>
- #end
-#end
-
-
- </render-kit>
-#end
-
-
-</faces-config>
Deleted:
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/listener_tag.vm
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/listener_tag.vm 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/listener_tag.vm 2009-08-17
23:31:33 UTC (rev 15187)
@@ -1,221 +0,0 @@
-/**
- * GENERATED FILE - DO NOT EDIT
- *
- * License Agreement.
- *
- * JBoss RichFaces 3.1 - Ajax4jsf Component Library
- *
- * 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 ${tag.packageName};
-
-#foreach($import in $imports)
-import $import ;
-#end
-import ${listener.componentclass};
-
-import javax.faces.application.Application;
-import javax.faces.component.UIComponent;
-import javax.faces.context.FacesContext;
-import javax.faces.el.EvaluationException;
-import javax.faces.el.ValueBinding;
-import javax.faces.webapp.UIComponentTag;
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.tagext.TagSupport;
-
-import org.apache.commons.beanutils.ConvertUtils;
-
-import org.richfaces.Messages;
-
-
-public class $tag.simpleClassName extends TagSupport {
-
- private static final long serialVersionUID = -274448680242671987L;
-
- private String type;
- private String binding;
-
- public int doStartTag() throws JspException {
-
- UIComponentTag parentTag = UIComponentTag
- .getParentUIComponentTag(pageContext);
-
- if (parentTag == null) {
- throw new JspException(Messages.getMessage(
- Messages.NO_UI_COMPONENT_TAG_ANCESTOR_ERROR, this
- .getClass().getName()));
- }
-
- if (type == null && binding == null) {
- throw new JspException("Either of the following attributes is "
- + "required: type binding");
- }
-
- // Process only newly created components
- if (parentTag.getCreated()) {
-
- FacesContext context = FacesContext.getCurrentInstance();
- Application application = context.getApplication();
-
- ${listener.listenerclass} listener = null;
-
- UIComponent component = parentTag.getComponentInstance();
-
- // First try to access listener binding
- if (binding != null) {
- ValueBinding valueBinding = application
- .createValueBinding(binding);
-
- try {
- listener = (${listener.listenerclass}) valueBinding
- .getValue(context);
- } catch (EvaluationException e) {
- throw new JspException(e);
- }
- }
-
- // Then try to instantiate it by type attribute
- if (listener == null) {
-
- String className = null;
-
- if (UIComponentTag.isValueReference(type)) {
-
- try {
- className = (String) application.createValueBinding(
- type).getValue(context);
- } catch (EvaluationException e) {
- throw new JspException(e);
- }
-
- } else {
- className = type;
- }
-
- if (className == null) {
- throw new JspException("Type attribute resolved to null.");
- }
-
- try {
- listener = (${listener.listenerclass}) Class.forName(className)
- .newInstance();
- } catch (Exception e) {
- throw new JspException(Messages.getMessage(
- Messages.INSTANTIATE_LISTENER_ERROR, className,
- component.getId()), e);
- }
-
- }
-
- #foreach( $prop in $listener.properties )
- #if( !$prop.existintag )
- if (_${prop.name} != null)
- {
- #if( ${prop.el} )
- if (UIComponentTag.isValueReference(_${prop.name}))
- {
- ValueBinding vb = application.createValueBinding(_${prop.name});
- listener.${prop.setterName}((${prop.simpleClassName})
vb.getValue(facesContext));
- }
- #if (!${prop.elonly})
- else
- {
- listener.${prop.setterName}((${prop.simpleClassName})
ConvertUtils.convert(_${prop.name}, ${prop.simpleClassName}.class));
- }
- #end
- }
- #else
- listener.${prop.setterName}((${prop.simpleClassName})
ConvertUtils.convert(_${prop.name}, ${prop.simpleClassName}.class));
- #end
- #end
- #end
-
- // If listener was found/created, append it to component
- if (listener != null) {
- (($listener.componentclass) component)
- .${listener.methodname}(listener);
- }
-
-
- }
-
- return SKIP_BODY;
- }
-
- public String getType() {
- return type;
- }
-
- public void setType(String type) {
- this.type = type;
- }
-
- public String getBinding() {
- return binding;
- }
-
- public void setBinding(String binding) {
- this.binding = binding;
- }
-
- public void release() {
- type = null;
- binding = null;
- }
-
-// Fields
-#foreach( $prop in $listener.properties )
-#if( !$prop.existintag )
- /*
- * $prop.name
- * ${prop.xmlEncodedDescription}
- */
- private String _$prop.name = null;
-
-#end
-#end
-// Setters
-#foreach( $prop in $listener.properties )
-#if( !$prop.existintag )
- /*
- * $prop.description
- * Setter for $prop.name
- * @param $prop.name - new value
- */
- public void ${prop.setterName}(String __${prop.name})
- {
- this._${prop.name} = __${prop.name};
- }
-
-#end
-#if( $prop.alias)
- /*
- * ${prop.xmlEncodedDescription}
- * Setter for alias of $prop.name as $prop.alias
- * @param $prop.name - new value
- */
- public void set${prop.upperFirstChar($prop.alias)}(String __${prop.alias})
- {
- this.${prop.setterName}(__${prop.alias});
- }
-#end
-#end
-
-
-
-
-}
Deleted:
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/listener_taghandler.vm
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/listener_taghandler.vm 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/listener_taghandler.vm 2009-08-17
23:31:33 UTC (rev 15187)
@@ -1,101 +0,0 @@
-/**
- * GENERATED FILE - DO NOT EDIT
- *
- */
-
-package ${tag.packageName};
-
-#foreach($import in $imports)
-import $import ;
-#end
-import javax.faces.component.UIComponent;
-import ${listener.componentclass};
-
-import java.io.IOException;
-
-import javax.faces.*;
-import javax.faces.el.*;
-
-import javax.el.*;
-
-import com.sun.facelets.*;
-import com.sun.facelets.el.*;
-import com.sun.facelets.tag.*;
-import com.sun.facelets.tag.jsf.*;
-
-public class $tag.simpleClassName extends TagHandler {
-
- private Class listenerType;
-
- private final TagAttribute type;
-
- private final TagAttribute binding;
-
- public ${tag.simpleClassName}(TagConfig config) {
- super(config);
- this.binding = this.getAttribute("binding");
- this.type = this.getAttribute("type");
- if (type != null) {
- if (!type.isLiteral()) {
- throw new TagAttributeException(this.tag, this.type, "Must be
literal");
- }
- try {
- this.listenerType = Class.forName(type.getValue());
- } catch (Exception e) {
- throw new TagAttributeException(this.tag, this.type, e);
- }
- }
- }
-
- public void apply(FaceletContext ctx, UIComponent parent)
- throws IOException, FacesException, FaceletException, ELException {
- if (parent instanceof $listener.componentclass) {
- // only process if parent was just created
- if (parent.getParent() == null) {
- ${listener.componentclass} src = (${listener.componentclass}) parent;
- ${listener.listenerclass} listener = null;
- ValueExpression ve = null;
- if (this.binding != null) {
- ve = this.binding.getValueExpression(ctx,
- ${listener.listenerclass}.class);
- listener = (${listener.listenerclass}) ve.getValue(ctx);
- }
- if (listener == null) {
- try {
- listener = (${listener.listenerclass})
listenerType.newInstance();
- } catch (Exception e) {
- throw new TagAttributeException(this.tag, this.type,
e.getCause());
- }
- if (ve != null) {
- ve.setValue(ctx, ve);
- }
- }
- #foreach($prop in $listener.properties)
- #if( !$prop.existintag )
- TagAttribute attribute;
- #if( $prop.required )
- attribute = getRequiredAttribute("${prop.name}");
- #else
- attribute = getAttribute("${prop.name}");
- #end
- if (attribute != null) {
- ValueBinding binding;
-
- binding = new LegacyValueBinding(
- attribute.getValueExpression(ctx,
- ${prop.classname}.class));
-
- listener.${prop.setterName}(binding);
- }
- #end
- #end
-
- src.${listener.methodname}(listener);
- }
- } else {
- throw new TagException(this.tag,
- "Parent is not of type ${listener.componentclass}, type is:
" + parent);
- }
- }
-
-}
Deleted:
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/renderer.vm
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/renderer.vm 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/renderer.vm 2009-08-17
23:31:33 UTC (rev 15187)
@@ -1,25 +0,0 @@
-/**
- * GENERATED FILE - DO NOT EDIT
- *
- */
-package ${package};
-
-import ${component.classname};
-import ${renderer.superclass};
-
-/**
- * @author shura (latest modification by $Author: alexsmirnov $)
- * @version $Revision: 1.1.2.2 $ $Date: 2007/01/03 21:05:15 $
- *
- */
-public class ${renderer.simpleClassName} extends ${renderer.superclass} {
-
- /**
- * @see org.richfaces.renderkit.RendererBase#getComponentClass()
- */
- protected Class getComponentClass() {
- // Expected component class for rendering
- return ${component.simpleClassName}.class;
- }
-
-}
Deleted:
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/resources-config.vm
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/resources-config.vm 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/resources-config.vm 2009-08-17
23:31:33 UTC (rev 15187)
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<resource-config>
-<!-- Include manual created resource -->
-${resourcesConfig.includeContent}
-
-#foreach( $key in ${classResources.keySet()})
- <resource class="${classResources.get($key)}">
- <name>${key}</name>
- </resource>
-#end
-
-#foreach( $key in ${pathResources.keySet()})
- <resource>
- <name>${key}</name>
- <path>${pathResources.get($key)}</path>
- </resource>
-#end
-</resource-config>
Deleted:
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/resources-dependencies.vm
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/resources-dependencies.vm 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/resources-dependencies.vm 2009-08-17
23:31:33 UTC (rev 15187)
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<components>
- <namespace>$uri</namespace>
-
-#foreach( $key in ${components.keySet()})
- <component>
- <name>$key</name>
-
- #set($componentEntry = ${components.get($key)})
- #set($scripts = ${componentEntry.get("scripts")})
- #set($styles = ${componentEntry.get("styles")})
-
- #if(!${scripts.isEmpty()})
- <scripts>
- #foreach($script in $scripts)
- <script>$script</script>
- #end
- </scripts>
- #end
-
- #if(!${styles.isEmpty()})
- <styles>
- #foreach($style in $styles)
- <style>$style</style>
- #end
- </styles>
- #end
- </component>
-#end
-
-</components>
Deleted: root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/tag.vm
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/tag.vm 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/tag.vm 2009-08-17
23:31:33 UTC (rev 15187)
@@ -1,154 +0,0 @@
-/**
- * GENERATED FILE - DO NOT EDIT
- *
- */
-package ${tag.packageName};
-
-#foreach($import in $imports)
-import $import ;
-#end
-import javax.faces.component.UIComponent;
-import ${component.classname};
-
-/**
- * @author shura (latest modification by $Author: alexsmirnov $)
- * @version $Revision: 1.1.2.2 $ $Date: 2007/01/03 21:05:14 $
- *
- */
-public class $tag.simpleClassName extends $tag.superclass {
-
-// Fields
-#foreach( $prop in $component.properties )
- #if( !$prop.existintag )
- /*
- * $prop.name
- * ${prop.xmlEncodedDescription}
- */
- private String _$prop.name = null;
-
- #end
-#end
-// Setters
-#foreach( $prop in $component.properties )
- #if( !$prop.existintag )
- /*
- * $prop.name
- * ${prop.xmlEncodedDescription}
- */
- /*
- * $prop.description
- * Setter for $prop.name
- * @param $prop.name - new value
- */
- public void ${prop.setterName}( String __${prop.name} ){
- this._${prop.name} = __${prop.name};
- }
-
- #end
- #if( $prop.alias)
- /*
- * ${prop.xmlEncodedDescription}
- * Setter for alias of $prop.name as $prop.alias
- * @param $prop.name - new value
- */
- public void set${prop.upperFirstChar($prop.alias)}( String __${prop.alias} ){
- this.${prop.setterName}(__${prop.alias});
- }
- #end
-#end
-// Release
-
- /* (non-Javadoc)
- * @see org.richfaces.components.taglib.html.HtmlCommandButtonTagBase#release()
- */
- public void release()
- {
- // TODO Auto-generated method stub
- super.release();
-#foreach( $prop in $component.properties )
- #if( !$prop.existintag )
- this._${prop.name} = null;
- #end
-#end
- }
-
- /* (non-Javadoc)
- * @see
org.richfaces.components.taglib.html.HtmlCommandButtonTagBase#setProperties(javax.faces.component.UIComponent)
- */
- protected void setProperties(UIComponent component)
- {
- // TODO Auto-generated method stub
- super.setProperties(component);
-
-#foreach( $prop in $component.properties )
- #if( !$prop.existintag )
- #if(!$prop.el)
- if(null != this._${prop.name} && isValueReference(this._${prop.name})){
- throw new IllegalArgumentException("Component ${component.name} with Id " +
component.getClientId(getFacesContext()) +" not allowed EL expression for property
${prop.name}");
- }
- #end
- #if($prop.name == "action")
- setActionProperty(component, this._${prop.name});
- #elseif($prop.name == "actionListener")
- setActionListenerProperty(component, this._${prop.name});
- #elseif($prop.name == "converter")
- setConverterProperty(component, this._${prop.name});
- #elseif($prop.name == "validator")
- setValidatorProperty(component, this._${prop.name});
- #elseif($prop.name == "valueChangeListener")
- setValueChangedListenerProperty(component, this._${prop.name});
- #elseif($prop.name == "value")
- setValueProperty(component, this._${prop.name});
- #elseif($prop.elonly || $prop.isInstanceof("javax.faces.el.ValueBinding") )
- setValueBinding(component, "${prop.name}",this._${prop.name});
- #elseif(${prop.simpleType})
- // Simple type - ${prop.simpleClassName}
- set${prop.boxingClass}Property(component,
"${prop.name}",this._${prop.name});
- #elseif($prop.classname == "java.lang.Boolean" || $prop.classname ==
"java.lang.Integer" || $prop.classname == "java.lang.Long")
- set${prop.simpleClassName}Property(component,
"${prop.name}",this._${prop.name});
- #elseif( $prop.classname == "java.lang.String")
- setStringProperty(component, "${prop.name}",this._${prop.name});
- #elseif( $prop.classname == "java.lang.Object")
- // TODO - handle object
- setStringProperty(component, "${prop.name}",this._${prop.name});
- #elseif( $prop.isInstanceof("javax.faces.el.MethodBinding") )
- if(null != this._${prop.name}){
- if (isValueReference(this._${prop.name}))
- {
- MethodBinding mb =
getFacesContext().getApplication().createMethodBinding(this._${prop.name},
- new
Class[]{${prop.methodArgsClasses}});
- ((${component.simpleClassName})component).${prop.setterName}(mb);
- }
- else
- {
- getFacesContext().getExternalContext().log("Component " +
component.getClientId(getFacesContext()) + " has invalid ${prop.name} value: " +
this._${prop.name});
- }
- }
- #else
- // TODO - setup properties for other cases.
- // name ${prop.name} with type $prop.classname
- #end
- #end
-#end
- }
-
- /* (non-Javadoc)
- * @see javax.faces.webapp.UIComponentTag#getComponentType()
- */
- public String getComponentType() {
- // TODO Auto-generated method stub
- return "${component.name}";
- }
-
- /* (non-Javadoc)
- * @see javax.faces.webapp.UIComponentTag#getRendererType()
- */
- public String getRendererType() {
- #if($renderer)
- return "${renderer.name}";
- #else
- return null;
- #end
- }
-
-}
Deleted:
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/taghandler.vm
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/taghandler.vm 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/taghandler.vm 2009-08-17
23:31:33 UTC (rev 15187)
@@ -1,102 +0,0 @@
-/**
- * GENERATED FILE - DO NOT EDIT
- *
- */
-
-package ${tag.packageName};
-
-#foreach($import in $imports)
-import $import ;
-#end
-import javax.faces.component.UIComponent;
-import ${component.classname};
-import com.sun.facelets.tag.jsf.ComponentHandler;
-import com.sun.facelets.tag.jsf.ComponentConfig;
-
-import com.sun.facelets.*;
-import com.sun.facelets.el.*;
-import com.sun.facelets.tag.*;
-/**
- * @author shura (latest modification by $Author: ishabalov $)
- * @version $Revision: 1.1.2.4 $ $Date: 2007/02/20 20:58:03 $
- *
- */
-public class $tag.simpleClassName extends $tag.superclass {
-
-
- private static final ${tag.simpleClassName}MetaRule metaRule = new
${tag.simpleClassName}MetaRule();
-
-
-
- public ${tag.simpleClassName}(ComponentConfig config)
- {
- super(config);
- }
-// Metarule
- protected MetaRuleset createMetaRuleset(Class type)
- {
- MetaRuleset m = super.createMetaRuleset(type);
- m.addRule(metaRule);
- return m;
- }
-
- /**
- * @author shura (latest modification by $Author: ishabalov $)
- * @version $Revision: 1.1.2.4 $ $Date: 2007/02/20 20:58:03 $
- *
- */
- static class ${tag.simpleClassName}MetaRule extends MetaRule{
-
- /* (non-Javadoc)
- * @see com.sun.facelets.tag.MetaRule#applyRule(java.lang.String,
com.sun.facelets.tag.TagAttribute, com.sun.facelets.tag.MetadataTarget)
- */
- public Metadata applyRule(String name, TagAttribute attribute, MetadataTarget meta) {
- if (meta.isTargetInstanceOf(${component.simpleClassName}.class)) {
- #foreach($prop in $component.properties)
- #if( !$prop.existintag )
- #if( $prop.isInstanceof("javax.faces.el.MethodBinding") )
- if ("${prop.name}".equals(name)) {
- return new ${prop.name}Mapper(attribute);
- }
-
- #end
- #end
- #end
- }
- return null;
- }
-
- }
-
-#foreach($prop in $component.properties)
-#if( !$prop.existintag )
-
- #if( $prop.isInstanceof("javax.faces.el.MethodBinding") )
-
- static class ${prop.name}Mapper extends Metadata {
-
- private static final Class[] SIGNATURE = new Class[] {${prop.methodArgsClasses}};
-
- private final TagAttribute _action;
- /**
- * @param attribute
- */
- public ${prop.name}Mapper(TagAttribute attribute) {
- _action = attribute;
- }
-
- /* (non-Javadoc)
- * @see com.sun.facelets.tag.Metadata#applyMetadata(com.sun.facelets.FaceletContext,
java.lang.Object)
- */
- public void applyMetadata(FaceletContext ctx, Object instance) {
- ((${component.simpleClassName}) instance)
- .${prop.setterName}(new LegacyMethodBinding(this._action
- .getMethodExpression(ctx, null,
- SIGNATURE)));
- }
-
- }
- #end
- #end
- #end
-}
Deleted: root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/taglib.vm
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/taglib.vm 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/taglib.vm 2009-08-17
23:31:33 UTC (rev 15187)
@@ -1,195 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library
1.2//EN"
-
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
-<taglib>
- <tlib-version>${taglib.tlibversion}</tlib-version>
- <jsp-version>${taglib.jspversion}</jsp-version>
-#if(${taglib.shortname})
- <short-name>${taglib.shortname}</short-name>
-#end
- <uri>${taglib.uri}</uri>
-#if(${taglib.description})
- <description>${taglib.description}</description>
-#end
-${taglib.includeContent}
-
-#foreach( $component in ${components})
- #if($component.tag)
- <tag>
- <name>${component.tag.name}</name>
- <tag-class>${component.tag.classname}</tag-class>
- <body-content>${component.tag.bodyContent}</body-content>
- #if(${component.tag.displayname})
- <display-name>${component.tag.xmlEncodedDisplayname}</display-name>
- #elseif(${component.displayname})
- <display-name>${component.xmlEncodedDisplayname}</display-name>
- #end
- #if(${component.tag.description})
- <description>${component.tag.xmlEncodedDescription}</description>
- #else
- <description>${component.xmlEncodedDescription}</description>
- #end
- #foreach( $prop in ${component.properties} )
- #if( !${prop.hidden} && !${prop.disabled} )
- <attribute>
- <name>${prop.name}</name>
- #if(${prop.required})
- <required>true</required>
- #end
- <rtexprvalue>false</rtexprvalue>
- <description>${prop.xmlEncodedDescription}</description>
- </attribute>
- #if( $prop.alias )
- <attribute>
- <name>${prop.alias}</name>
- <rtexprvalue>false</rtexprvalue>
- <description>Alias for ${prop.name} :
${prop.xmlEncodedDescription}</description>
- </attribute>
- #end
- #end
- #end
-</tag>
-#end
-#end
-
-#foreach( $validator in ${validators})
- #if($validator.tag)
- <tag>
- <name>${validator.tag.name}</name>
- <tag-class>${validator.tag.classname}</tag-class>
- <body-content>${validator.tag.bodyContent}</body-content>
- #if(${validator.tag.displayname})
- <display-name>${validator.tag.xmlEncodedDisplayname}</display-name>
- #elseif(${validator.displayname})
- <display-name>${validator.xmlEncodedDisplayname}</display-name>
- #end
- #if(${validator.tag.description})
- <description>${validator.tag.xmlEncodedDescription}</description>
- #elseif(${validator.xmlEncodedDescription})
- <description>${validator.xmlEncodedDescription}</description>
- #end
- #foreach( $prop in ${validator.properties} )
- #if( !${prop.hidden} && !${prop.disabled} )
- <attribute>
- <name>${prop.name}</name>
- #if(${prop.required})
- <required>true</required>
- #end
- <rtexprvalue>false</rtexprvalue>
- <description>${prop.xmlEncodedDescription}</description>
- </attribute>
- #if( $prop.alias )
- <attribute>
- <name>${prop.alias}</name>
- <rtexprvalue>false</rtexprvalue>
- <description>Alias for ${prop.name} :
${prop.xmlEncodedDescription}</description>
- </attribute>
- #end
- #end
- #end
-</tag>
-#end
-#end
-
-#foreach( $converter in ${converters})
- #if($converter.tag)
- <tag>
- <name>${converter.tag.name}</name>
- <tag-class>${converter.tag.classname}</tag-class>
- <body-content>${converter.tag.bodyContent}</body-content>
- #if(${converter.tag.displayname})
- <display-name>${converter.tag.xmlEncodedDisplayname}</display-name>
- #elseif(${converter.displayname})
- <display-name>${converter.xmlEncodedDisplayname}</display-name>
- #end
- #if(${converter.tag.description})
- <description>${converter.tag.xmlEncodedDescription}</description>
- #elseif(${converter.xmlEncodedDescription})
- <description>${converter.xmlEncodedDescription}</description>
- #end
- #foreach( $prop in ${converter.properties} )
- #if( !${prop.hidden} && !${prop.disabled} )
- <attribute>
- <name>${prop.name}</name>
- #if(${prop.required})
- <required>true</required>
- #end
- <rtexprvalue>false</rtexprvalue>
- <description>${prop.xmlEncodedDescription}</description>
- </attribute>
- #if( $prop.alias )
- <attribute>
- <name>${prop.alias}</name>
- <rtexprvalue>false</rtexprvalue>
- <description>Alias for ${prop.name} :
${prop.xmlEncodedDescription}</description>
- </attribute>
- #end
- #end
- #end
-</tag>
-#end
-#end
-
-#foreach( $listener in ${listeners})
- #if($listener.tag)
- <tag>
- #if($listener.tag.name)
- <name>${listener.tag.name}</name>
- #else
- <name>${listener.name}</name>
- #end
- <tag-class>${listener.tag.classname}</tag-class>
- <body-content>${listener.tag.bodyContent}</body-content>
- #if(${listener.tag.displayname})
- <display-name>${listener.tag.xmlEncodedDisplayname}</display-name>
- #elseif(${listener.displayname})
- <display-name>${listener.xmlEncodedDisplayname}</display-name>
- #end
- #if(${listener.tag.description})
- <description>${listener.tag.xmlEncodedDescription}</description>
- #elseif(${listener.xmlEncodedDescription})
- <description>${listener.xmlEncodedDescription}</description>
- #end
-
- <attribute>
- <name>type</name>
- <rtexprvalue>false</rtexprvalue>
- <description>
- Attribute defines the fully qualified Java class name for listener
- </description>
- </attribute>
-
- <attribute>
- <name>binding</name>
- <rtexprvalue>false</rtexprvalue>
- <description>
- The attribute takes a value-binding expression for a component property of a backing
bean
- </description>
- </attribute>
-
-
- #foreach( $prop in ${listener.properties} )
- #if( !${prop.hidden} && !${prop.disabled} )
- <attribute>
- <name>${prop.name}</name>
- #if(${prop.required})
- <required>true</required>
- #end
- <rtexprvalue>false</rtexprvalue>
- <description>${prop.xmlEncodedDescription}</description>
- </attribute>
- #if( $prop.alias )
- <attribute>
- <name>${prop.alias}</name>
- <rtexprvalue>false</rtexprvalue>
- <description>Alias for ${prop.name} :
${prop.xmlEncodedDescription}</description>
- </attribute>
- #end
- #end
- #end
-</tag>
-#end
-#end
-
-
-</taglib>
\ No newline at end of file
Deleted:
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/tagtest.vm
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/tagtest.vm 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/tagtest.vm 2009-08-17
23:31:33 UTC (rev 15187)
@@ -1,173 +0,0 @@
-/**
- * GENERATED FILE - DO NOT EDIT
- *
- */
-package ${tag.packageName};
-
-#foreach($import in $imports)
-import $import ;
-#end
-import javax.faces.component.UIComponent;
-import javax.faces.webapp.UIComponentTag;
-import ${component.classname};
-import javax.faces.application.Application;
-import javax.faces.el.ValueBinding;
-import javax.servlet.Servlet;
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequestWrapper;
-import javax.servlet.http.HttpSession;
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.JspWriter;
-import javax.servlet.jsp.PageContext;
-import javax.servlet.jsp.el.ExpressionEvaluator;
-import javax.servlet.jsp.el.VariableResolver;
-import javax.servlet.jsp.tagext.Tag;
-import java.io.IOException;
-import java.util.Enumeration;
-
-
-
-/**
- * @author shura (latest modification by $Author: alexsmirnov $)
- * @version $Revision: 1.1.2.2 $ $Date: 2007/01/03 21:05:14 $
- *
- */
-public class $tag.test.simpleClassName extends $tag.test.superclassname {
-
-
- private $tag.simpleClassName tag;
-
- /**
- * Constructor to init default renderers
- */
- public ${tag.test.simpleClassName} (String name){
- super(name);
- }
-
-
- public void setUp() throws Exception {
- super.setUp();
- tag = new ${tag.simpleClassName}();
- tag.setParent(new UIComponentTag(){
-
- public String getComponentType() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public String getRendererType() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public int doStartTag() throws JspException {
- // TODO Auto-generated method stub
- return Tag.EVAL_BODY_INCLUDE;
- }
-
- public int doEndTag() throws JspException {
- // TODO Auto-generated method stub
- return Tag.EVAL_BODY_INCLUDE;
- }
-
- });
-
- }
-
- public void tearDown() throws Exception {
- super.tearDown();
- tag = null;
- }
-
-
- public void testSetPropertiesUIComponent() {
- ${component.simpleClassName} component = new ${component.simpleClassName}();
- // create binding
- Application application = null;
- ValueBinding binding = null;
-
- #foreach( $prop in $tag.properties )
- #if($prop.el)
- application = facesContext.getApplication();
- binding = application.createValueBinding(component.getOnclick());
- component.setValueBinding("${prop.name}", binding);
- #if($prop.classname == "java.lang.String")
- component.${prop.setterName}( " __$prop.name" );
- #elseif($prop.classname == "java.lang.Boolean")
- component.${prop.setterName}( new Boolean(true) );
- #end
- #end
- //tag.${prop.setterName}("__${prop.name}");
- #end
-
- tag.setProperties(component);
-
-/*
- #foreach( $prop in $component.properties )
- #if( !$prop.existintag )
- #if(!$prop.el)
- if(isValueReference(this._${prop.name})){
- throw new IllegalArgumentException("Component ${component.name} with Id " +
component.getClientId(getFacesContext() +" not allowed EL expression for property
${prop.name}")
- }
- #end
- #if($prop.name == "action")
-
- setActionProperty(component, tag._${prop.name});
- #elseif($prop.name == "actionListener")
- setActionListenerProperty(component, this._${prop.name});
- #elseif($prop.name == "converter")
- setConverterProperty(component, this._${prop.name});
- #elseif($prop.name == "validator")
- setValidatorProperty(component, this._${prop.name});
- #elseif($prop.name == "valueChangeListener")
- setValueChangedListenerProperty(component, this._${prop.name});
- #elseif($prop.name == "value")
- setValueProperty(component, this._${prop.name});
- #elseif($prop.elonly || $prop.isInstanceof("javax.faces.el.ValueBinding") )
- setValueBinding(component, "${prop.name}",this._${prop.name});
- #elseif(${prop.simpleType})
- // Simple type - ${prop.simpleClassName}
- set${prop.boxingClass}Property(component,
"${prop.name}",this._${prop.name});
- #elseif($prop.classname == "java.lang.Boolean" || $prop.classname ==
"java.lang.Integer" || $prop.classname == "java.lang.Long")
- set${prop.simpleClassName}Property(component,
"${prop.name}",this._${prop.name});
- #elseif( $prop.classname == "java.lang.String")
- setStringProperty(component, "${prop.name}",this._${prop.name});
- #elseif( $prop.classname == "java.lang.Object")
- // TODO - handle object
- setStringProperty(component, "${prop.name}",this._${prop.name});
- #elseif( $prop.isInstanceof("javax.faces.el.MethodBinding") )
- if(null != this._${prop.name}){
- if (isValueReference(this._${prop.name}))
- {
- MethodBinding mb =
getFacesContext().getApplication().createMethodBinding(this._${prop.name},
- new
Class[]{${prop.methodArgsClasses}});
- ((${component.simpleClassName})component).${prop.setterName}(mb);
- }
- else
- {
- getFacesContext().getExternalContext().log("Component " +
component.getClientId(getFacesContext()) + " has invalid ${prop.name} value: " +
this._${prop.name});
- }
- }
- #else
- // TODO - setup properties for other cases.
- // name ${prop.name} with type $prop.classname
- #end
- #end
- #end
-*/
- }
-
- public void testGetRendererType(){
- assertNotNull(tag.getRendererType());
- }
-
- public void testGetComponentType(){
- assertNotNull(tag.getComponentType());
- }
-
-
-}
Deleted:
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/validator.vm
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/validator.vm 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/validator.vm 2009-08-17
23:31:33 UTC (rev 15187)
@@ -1,232 +0,0 @@
-package $package;
-
-#foreach($import in $imports)
-import $import ;
-#end
-
-import javax.faces.context.FacesContext;
-import javax.faces.el.ValueBinding;
-import javax.faces.component.StateHolder;
-
-/**
- * Validator-Id ${validator.id}
- * ${validator.xmlEncodedDescription}
- */
-public class $validator.simpleClassName extends $validator.superclass
#if(${validator.stateHolderRequired} &&
!${validator.superclassImplementsStateHolder})implements StateHolder#end
-{
-
- public static final String VALIDATOR_ID = "${validator.id}";
-
- /**
- * Default no-args contstructor
- */
- public $validator.simpleClassName ()
- {
- }
-
-// Validator properties fields
-#set( $fieldCounter = 0 )
-#foreach( $prop in $validator.properties )
-#if( !$prop.exist )
- /**
- * $prop.name
- * ${prop.xmlEncodedDescription}
- */
-#if($prop.simpleType)
- private $prop.simpleClassName _$prop.name = ${prop.defaultvalue};
- /**
- * Flag indicated that $prop.name is set.
- */
- private boolean _${prop.name}Set = false;
-#set( $fieldCounter = $fieldCounter+2)
-#else
- private $prop.simpleClassName _$prop.name = null; /* Default is
${prop.defaultvalue}*/
-#set( $fieldCounter = $fieldCounter+1)
-#end
-#end
-#end
-
-// Getters and setters
-#foreach( $prop in $validator.properties )
-#if( !$prop.exist )
- /**
- * ${prop.xmlEncodedDescription}
- * Setter for $prop.name
- * @param $prop.name - new value
- */
- public void ${prop.setterName}( $prop.simpleClassName __$prop.name )
- {
- this._${prop.name} = __$prop.name;
-#if($prop.simpleType)
- this._${prop.name}Set = true;
-#end
- }
-
- /**
- * ${prop.xmlEncodedDescription}
- * Getter for $prop.name
- * @return $prop.name value from local variable or value binding
- */
- public $prop.simpleClassName ${prop.getterName}()
- {
- ValueBinding vb = getValueBinding(_${prop.name});
-#if($prop.simpleType)
- if(this._${prop.name}Set)
- {
- return this._${prop.name};
- }
- if (vb != null)
- {
- ${prop.boxingClass} value = (${prop.boxingClass}) vb.getValue(getFacesContext());
- if (null == value)
- {
- return this._${prop.name};
- }
- //return (value.${prop.classname}Value());
- } else
- {
- return (this._${prop.name});
- }
- }
-#else
- if (null != this._${prop.name})
- {
- return this._${prop.name};
- }
-#if( !$prop.isInstanceof("javax.faces.el.MethodBinding") &&
!$prop.isInstanceof("javax.faces.el.ValueBinding"))
- else if (null != vb)
- {
- return (${prop.simpleClassName})vb.getValue(getFacesContext());
- }
-#end
- else
- {
- return ${prop.defaultvalue};
- }
- }
-#end
-#if($prop.raw)
- /**
- * ${prop.xmlEncodedDescription}
- * Raw Setter for $prop.name
- * @param $prop.name - new value
- */
- public void ${prop.setterName}Raw( $prop.simpleClassName __$prop.name )
- {
- this._${prop.name} = __$prop.name;
- }
- /*
- * ${prop.xmlEncodedDescription}
- * Raw ( bypadd bindings ) Getter for $prop.name
- * @return $prop.name value from local variable
- */
- public $prop.simpleClassName ${prop.getterName}Raw()
- {
- return this._${prop.name};
- }
-#end
-#end
-#end
-
-
-#if($validator.stateHolderRequired)
-
- // Save state
- // ----------------------------------------------------- StateHolder Methods
-
- private boolean _transient;
-#if(${validator.superclassImplementsStateHolder})
-#set($currentField=1)
-#set( $fieldCounter = $fieldCounter+1)
-#else
-#set($currentField=0)
-#end
- public Object saveState(FacesContext context) {
-#if(${validator.superSaveStateMethodExists})
- Object values[] = new Object[${fieldCounter}];
- values[0] = super.saveState(context);
-#else
- Object values[] = new Object[${fieldCounter}];
-#end
-#foreach( $prop in $validator.properties )
-#if( !$prop.exist )
-#if($prop.simpleType)
- values[${currentField}] = new ${prop.boxingClass}(_$prop.name);
-#set( $currentField = $currentField+1)
- values[${currentField}] = Boolean.valueOf(_${prop.name}Set);
-#set( $currentField = $currentField+1)
-#else
-#if(!${prop.attachedstate} )
- values[${currentField}] = _$prop.name;
-#else
- values[${currentField}] = saveAttachedState(context, _$prop.name );
-#end
-#set( $currentField = $currentField+1)
-#end
-#end
-#end
- return values;
- }
-
-#if(${validator.superclassImplementsStateHolder})
-#set($currentField=1)
-#else
-#set($currentField=0)
-#end
- public void restoreState(FacesContext context, Object state) {
-#if(${validator.superRestoreStateMethodExists})
- Object values[] = (Object[]) state;
- super.restoreState(context, values[0]);
-#else
- Object values[] = (Object[]) state;
-#end
-#foreach( $prop in $validator.properties )
-#if( !$prop.exist )
-#if($prop.simpleType)
- _$prop.name =
((${prop.boxingClass})values[${currentField}]).${prop.classname}Value();
-#set( $currentField = $currentField+1)
- _${prop.name}Set = ((Boolean)values[${currentField}]).booleanValue();
-#set( $currentField = $currentField+1)
-#else
-#if( !${prop.attachedstate} )
- _$prop.name = (${prop.simpleClassName})values[${currentField}] ;
-#else
- _$prop.name =
(${prop.simpleClassName})restoreAttachedState(context,values[${currentField}] );
-#end
-#set( $currentField = $currentField+1)
-#end
-
-#end
-#end
- }
-
-#if(!$validator.superIsTransientMethodExists)
- public boolean isTransient()
- {
- return _transient;
- }
-#end
-
-#if(!$validator.superSetTransientMethodExists)
- public void setTransient(boolean newTransientValue)
- {
- this._transient = newTransientValue;
- }
-#end
-
-#end
-
-
-// Utilites
-
- private FacesContext getFacesContext()
- {
- return FacesContext.getCurrentInstance();
- }
-
- private ValueBinding getValueBinding(String name)
- {
- return getFacesContext().getApplication().createValueBinding(name);
- }
-
-}
\ No newline at end of file
Deleted:
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/validatorTag.vm
===================================================================
---
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/validatorTag.vm 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/main/resources/META-INF/templates/validatorTag.vm 2009-08-17
23:31:33 UTC (rev 15187)
@@ -1,96 +0,0 @@
-/**
- * GENERATED FILE - DO NOT EDIT
- *
- */
-package ${tag.packageName};
-
-#foreach($import in $imports)
-import $import ;
-#end
-import javax.faces.component.UIComponent;
-import javax.faces.webapp.UIComponentTag;
-import javax.faces.validator.Validator;
-import org.apache.commons.beanutils.ConvertUtils;
-import javax.faces.context.FacesContext;
-import javax.servlet.jsp.JspException;
-import javax.faces.el.ValueBinding;
-import ${validator.classname};
-
-public class $tag.simpleClassName extends $tag.superclass {
-
- //private String validatorId = "${validator.id}";
-
-
-// Fields
-#foreach( $prop in $validator.properties )
-#if( !$prop.existintag )
- /*
- * $prop.name
- * ${prop.xmlEncodedDescription}
- */
- private String _$prop.name = null;
-
-#end
-#end
-// Setters
-#foreach( $prop in $validator.properties )
-#if( !$prop.existintag )
- /*
- * $prop.description
- * Setter for $prop.name
- * @param $prop.name - new value
- */
- public void ${prop.setterName}( String __${prop.name} )
- {
- this._${prop.name} = __${prop.name};
- }
-
-#end
-#if( $prop.alias)
- /*
- * ${prop.xmlEncodedDescription}
- * Setter for alias of $prop.name as $prop.alias
- * @param $prop.name - new value
- */
- public void set${prop.upperFirstChar($prop.alias)}( String __${prop.alias} )
- {
- this.${prop.setterName}(__${prop.alias});
- }
-#end
-#end
-
- protected Validator createValidator() throws JspException
- {
- ${validator.simpleClassName} validator = (${validator.simpleClassName})
FacesContext.getCurrentInstance().getApplication().createValidator("${validator.id}");
- _setProperties(validator);
- return validator;
- }
-
- // Support method to wire in properties
- private void _setProperties(${validator.simpleClassName} validator) throws JspException
- {
- FacesContext facesContext = FacesContext.getCurrentInstance();
-#foreach( $prop in $validator.properties )
-#if( !$prop.existintag )
- if (_${prop.name} != null)
- {
-#if( ${prop.el} )
- if (UIComponentTag.isValueReference(_${prop.name}))
- {
- ValueBinding vb =
facesContext.getApplication().createValueBinding(_${prop.name});
- validator.${prop.setterName}((${prop.simpleClassName})
vb.getValue(facesContext));
- }
-#if (!${prop.elonly})
- else
- {
- validator.${prop.setterName}((${prop.simpleClassName})
ConvertUtils.convert(_${prop.name}, ${prop.simpleClassName}.class));
- }
-#end
- }
-#else
- validator.${prop.setterName}((${prop.simpleClassName})
ConvertUtils.convert(_${prop.name}, ${prop.simpleClassName}.class));
-#end
-#end
-#end
- }
-}
Copied:
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/apt/CdkProcessorTest.java
(from rev 15186,
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/apt/ProcessorTest.java)
===================================================================
---
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/apt/CdkProcessorTest.java
(rev 0)
+++
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/apt/CdkProcessorTest.java 2009-08-17
23:31:33 UTC (rev 15187)
@@ -0,0 +1,347 @@
+/*
+ * $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.apt;
+
+import static org.easymock.EasyMock.*;
+import static org.junit.Assert.*;
+import static javax.lang.model.util.ElementFilter.*;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.Set;
+import java.util.logging.LogManager;
+
+import javax.annotation.processing.ProcessingEnvironment;
+import javax.annotation.processing.Processor;
+import javax.annotation.processing.RoundEnvironment;
+import javax.annotation.processing.SupportedAnnotationTypes;
+import javax.annotation.processing.SupportedSourceVersion;
+import javax.lang.model.SourceVersion;
+import javax.lang.model.element.TypeElement;
+import javax.tools.JavaFileObject;
+import javax.tools.SimpleJavaFileObject;
+
+import org.easymock.Capture;
+import org.easymock.CaptureType;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.richfaces.cdk.CdkContext;
+import org.richfaces.cdk.annotations.Attribute;
+import org.richfaces.cdk.annotations.Component;
+import org.richfaces.cdk.apt.CdkProcessor.BeanProperty;
+import org.richfaces.cdk.model.ComponentLibrary;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterables;
+
+/**
+ * <p class="changed_added_4_0">
+ * </p>
+ *
+ * @author asmirnov(a)exadel.com
+ *
+ */
+public class CdkProcessorTest {
+
+ private static final String ANNOTATION2 = TestAnnotation2.class.getName();
+
+ private static abstract class TestProcessor extends CdkProcessor {
+
+ protected ComponentLibrary library;
+
+ protected int numOfComponents;
+
+ public TestProcessor(CdkContext context) {
+ super(context);
+ }
+
+ @Override
+ public synchronized void init(ProcessingEnvironment processingEnv) {
+ super.init(processingEnv);
+ }
+
+ @Override
+ public synchronized boolean isInitialized() {
+ return super.isInitialized();
+ }
+
+ @Override
+ public Set<String> getSupportedAnnotationTypes() {
+ // Process all annotations
+ return ImmutableSet.of("*");
+ }
+
+ }
+
+ private static final String INTERFACE_JAVA =
"org/richfaces/cdk/apt/TestInterface.java";
+ private static final String SUB_CLASS_JAVA =
"org/richfaces/cdk/apt/TestSubClass.java";
+ private static final String CLASS_JAVA =
"org/richfaces/cdk/apt/TestClass.java";
+ private static final ImmutableSet<String> PROCESS_ANNOTATIONS = ImmutableSet
+ .of(TestAnnotation.class.getName());
+ private static final String COMPONENT_CLASS_JAVA =
"org/richfaces/cdk/test/component/AbstractTestComponent.java";
+
+ private File testSourceDirectory;
+ private ClassLoader testLoader;
+
+ @Before
+ public void setUp() throws Exception {
+ testSourceDirectory = getJavaFile("test.source.properties")
+ .getParentFile();
+ InputStream stream = this.getClass().getResourceAsStream(
+ "logging.properties");
+ if (null != stream) {
+ try {
+ LogManager.getLogManager().readConfiguration(stream);
+ } catch (Exception e) {
+ // Ignore it.
+ } finally {
+ try {
+ stream.close();
+ } catch (IOException e) {
+ // Ignore it.
+ }
+ }
+ }
+ }
+
+ @After
+ public void tearDown() {
+ testSourceDirectory = null;
+ }
+
+ /**
+ * Test method for
+ * {@link org.richfaces.cdk.apt.CdkProcessor#process(java.util.Set,
javax.annotation.processing.RoundEnvironment)}
+ * .
+ *
+ * @throws Exception
+ */
+ @Test
+ public void testProcess() throws Exception {
+ // Prepare Mock compilation context.
+ CdkContext cdkContext = createMock(CdkContext.class);
+ expect(cdkContext.getJavaSource()).andStubReturn(testSourceDirectory);
+ expect(cdkContext.getJavaSourceOutput()).andStubReturn(null);
+ expect(cdkContext.getResourceOutput()).andStubReturn(null);
+ expect(cdkContext.getLoader()).andStubReturn(
+ TestAnnotation.class.getClassLoader());
+ replay(cdkContext);
+
+ Processor processor = createMock(Processor.class);
+ processor.init((ProcessingEnvironment) anyObject());
+ expect(processor.getSupportedOptions()).andReturn(
+ ImmutableSet.<String> of());
+ // processor.process(null,null);
+ Capture<Set<? extends TypeElement>> capturedTypes = new Capture<Set<?
extends TypeElement>>();
+ expect(
+ processor.process(capture(capturedTypes),
+ capture(new Capture<RoundEnvironment>()))).andReturn(
+ true).times(2);
+ expect(processor.getSupportedAnnotationTypes()).andReturn(
+ ImmutableSet.of(TestAnnotation.class.getName()));
+ expect(processor.getSupportedSourceVersion()).andReturn(
+ SourceVersion.RELEASE_6);
+ replay(processor);
+ AptBuilder compiler = new AptBuilder();
+ compiler.init(cdkContext);
+ compiler.process(ImmutableList.of(getJavaFile(CLASS_JAVA)), processor);
+ verify(cdkContext, processor);
+ }
+
+ /**
+ * Test method for
+ * {@link org.richfaces.cdk.apt.CdkProcessor#process(java.util.Set,
javax.annotation.processing.RoundEnvironment)}
+ * .
+ *
+ * @throws Exception
+ */
+ @Test
+ public void testProcessSubClass() throws Exception {
+ // Prepare Mock compilation context.
+ CdkContext cdkContext = createMock(CdkContext.class);
+ expect(cdkContext.getJavaSource()).andStubReturn(testSourceDirectory);
+ expect(cdkContext.getJavaSourceOutput()).andStubReturn(null);
+ expect(cdkContext.getResourceOutput()).andStubReturn(null);
+ expect(cdkContext.getLoader()).andStubReturn(
+ TestAnnotation2.class.getClassLoader());
+ replay(cdkContext);
+
+ Processor processor = createMock(Processor.class);
+ processor.init((ProcessingEnvironment) anyObject());
+ expect(processor.getSupportedOptions()).andReturn(
+ ImmutableSet.<String> of());
+ // processor.process(null,null);
+ Capture<Set<? extends TypeElement>> capturedTypes = new Capture<Set<?
extends TypeElement>>(
+ CaptureType.FIRST);
+ expect(
+ processor.process(capture(capturedTypes),
+ capture(new Capture<RoundEnvironment>()))).andReturn(
+ true).times(2);
+ expect(processor.getSupportedAnnotationTypes()).andReturn(
+ ImmutableSet.of(TestAnnotation2.class.getName()));
+ expect(processor.getSupportedSourceVersion()).andReturn(
+ SourceVersion.RELEASE_6);
+ replay(processor);
+ AptBuilder compiler = new AptBuilder();
+ compiler.init(cdkContext);
+ compiler.process(ImmutableList.of(getJavaFile(SUB_CLASS_JAVA),
+ getJavaFile(CLASS_JAVA)), processor);
+ verify(cdkContext, processor);
+ Set<? extends TypeElement> elements = capturedTypes.getValue();
+ assertFalse(elements.isEmpty());
+ assertEquals("TestAnnotation2", elements.iterator().next()
+ .getSimpleName().toString());
+ }
+
+ /**
+ * Test method for
+ * {@link org.richfaces.cdk.apt.CdkProcessor#getClassesAnnotatedWith(RoundEnvironment,
Class)}
+ * .
+ *
+ * @throws Exception
+ */
+ @Test
+ public void testGetClassesAnnotatedWith() throws Exception {
+ // Prepare Mock compilation context.
+ CdkContext cdkContext = createMock(CdkContext.class);
+ expect(cdkContext.getJavaSource()).andStubReturn(testSourceDirectory);
+ expect(cdkContext.getJavaSourceOutput()).andStubReturn(null);
+ expect(cdkContext.getResourceOutput()).andStubReturn(null);
+ expect(cdkContext.getLoader()).andStubReturn(
+ TestAnnotation2.class.getClassLoader());
+ replay(cdkContext);
+ TestProcessor processor = new TestProcessor(cdkContext) {
+ @Override
+ public boolean process(Set<? extends TypeElement> annotations,
+ RoundEnvironment roundEnv) {
+ if (!roundEnv.processingOver()) {
+ this.numOfComponents = getClassesAnnotatedWith(
+ roundEnv, Component.class).size();
+
+ }
+ return true;
+ }
+ };
+ // ComponentLibrary library = new
+ // ComponentLibrary("org.richfaces.cdk.test");
+ // processor.library = library;
+ AptBuilder compiler = new AptBuilder();
+ compiler.init(cdkContext);
+ compiler.process(ImmutableList.of(getJavaFile(COMPONENT_CLASS_JAVA)),
+ processor);
+ verify(cdkContext);
+ assertTrue(processor.isInitialized());
+ assertEquals(1, processor.numOfComponents);
+ }
+
+ /**
+ * Test method for
+ * {@link org.richfaces.cdk.apt.CdkProcessor#getClassesAnnotatedWith(RoundEnvironment,
Class)}
+ * .
+ *
+ * @throws Exception
+ */
+ @Test
+ public void testGetPropertiesAnnotatedWith() throws Exception {
+ // Prepare Mock compilation context.
+ CdkContext cdkContext = createMock(CdkContext.class);
+ expect(cdkContext.getJavaSource()).andStubReturn(testSourceDirectory);
+ expect(cdkContext.getJavaSourceOutput()).andStubReturn(null);
+ expect(cdkContext.getResourceOutput()).andStubReturn(null);
+ expect(cdkContext.getLoader()).andStubReturn(
+ TestAnnotation2.class.getClassLoader());
+ replay(cdkContext);
+ TestProcessor processor = new TestProcessor(cdkContext) {
+ @Override
+ public boolean process(Set<? extends TypeElement> annotations,
+ RoundEnvironment roundEnv) {
+ if (!roundEnv.processingOver()) {
+ TypeElement typeElement = getClassesAnnotatedWith(
+ roundEnv, Component.class).iterator().next();
+ Set<BeanProperty> beanProperties =
getBeanPropertiesAnnotatedWith(Attribute.class, typeElement);
+ assertEquals(3, beanProperties.size());
+ BeanProperty property = Iterables.get(beanProperties,2);
+ assertEquals("foo", property.getName());
+ assertEquals("int", property.getType().toString());
+ assertNull(property.getDocComment());
+
+ property = Iterables.get(beanProperties,1);
+ assertEquals("testValue", property.getName());
+ assertEquals("java.util.List<java.lang.String>",
property.getType().toString());
+ assertEquals(" Test Attribute\n", property.getDocComment());
+
+ property = Iterables.get(beanProperties,0);
+ assertEquals("barValue", property.getName());
+ assertEquals("java.util.List<M>", property.getType().toString());
+ assertEquals(" Bar Attribute\n", property.getDocComment());
+// assertEquals("<M>" ,property.getTypeParameters());
+
+ numOfComponents++;
+ }
+ return true;
+ }
+ };
+ // ComponentLibrary library = new
+ // ComponentLibrary("org.richfaces.cdk.test");
+ // processor.library = library;
+ AptBuilder compiler = new AptBuilder();
+ compiler.init(cdkContext);
+ compiler.process(ImmutableList.of(getJavaFile(COMPONENT_CLASS_JAVA)),
+ processor);
+ verify(cdkContext);
+ assertTrue(processor.isInitialized());
+ assertEquals(1, processor.numOfComponents);
+ }
+ /**
+ * <p class="changed_added_4_0">
+ * </p>
+ *
+ * @param name
+ * TODO
+ * @return
+ * @throws URISyntaxException
+ */
+ private JavaFileObject getJavaFileObject(String name)
+ throws URISyntaxException {
+ final File classFile = getJavaFile(name);
+ SimpleJavaFileObject fileObject = new VirtualJavaFileSystemObject(
+ classFile);
+ return fileObject;
+ }
+
+ private File getJavaFile(String name) throws URISyntaxException {
+ ClassLoader classLoader = this.getClass().getClassLoader();
+ URL testResource = classLoader.getResource(name);
+ URI testUri = testResource.toURI();
+ final File classFile = new File(testUri);
+ return classFile;
+ }
+
+}
Property changes on:
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/apt/CdkProcessorTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/apt/ComponentProcessorTest.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/apt/ComponentProcessorTest.java
(rev 0)
+++
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/apt/ComponentProcessorTest.java 2009-08-17
23:31:33 UTC (rev 15187)
@@ -0,0 +1,142 @@
+/*
+ * $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.apt;
+
+import static org.easymock.EasyMock.*;
+import static org.junit.Assert.*;
+import static javax.lang.model.util.ElementFilter.*;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.Collection;
+import java.util.Set;
+import java.util.logging.LogManager;
+
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.richfaces.cdk.CdkContext;
+import org.richfaces.cdk.model.Component;
+import org.richfaces.cdk.model.ComponentLibrary;
+import org.richfaces.cdk.model.Property;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterables;
+
+/**
+ * <p class="changed_added_4_0">
+ * </p>
+ *
+ * @author asmirnov(a)exadel.com
+ *
+ */
+public class ComponentProcessorTest {
+
+
+ private static final String INTERFACE_JAVA =
"org/richfaces/cdk/apt/TestInterface.java";
+ private static final String SUB_CLASS_JAVA =
"org/richfaces/cdk/apt/TestSubClass.java";
+ private static final String CLASS_JAVA =
"org/richfaces/cdk/apt/TestClass.java";
+ private static final ImmutableSet<String> PROCESS_ANNOTATIONS = ImmutableSet
+ .of(TestAnnotation.class.getName());
+ private static final String COMPONENT_CLASS_JAVA =
"org/richfaces/cdk/test/component/AbstractTestComponent.java";
+
+ private File testSourceDirectory;
+ private ClassLoader testLoader;
+
+ @Before
+ public void setUp() throws Exception {
+ testSourceDirectory = getJavaFile("test.source.properties")
+ .getParentFile();
+ InputStream stream = this.getClass().getResourceAsStream(
+ "logging.properties");
+ if (null != stream) {
+ try {
+ LogManager.getLogManager().readConfiguration(stream);
+ } catch (Exception e) {
+ // Ignore it.
+ } finally {
+ try {
+ stream.close();
+ } catch (IOException e) {
+ // Ignore it.
+ }
+ }
+ }
+ }
+
+ @After
+ public void tearDown() {
+ testSourceDirectory = null;
+ }
+
+ /**
+ * Test method for
+ * {@link org.richfaces.cdk.apt.CdkProcessor#process(java.util.Set,
javax.annotation.processing.RoundEnvironment)}
+ * .
+ *
+ * @throws Exception
+ */
+ @Test
+ public void testProcess() throws Exception {
+ // Prepare Mock compilation context.
+ CdkContext cdkContext = createMockContext();
+ ComponentLibrary library = new ComponentLibrary();
+ ComponentProcessor processor = new ComponentProcessor(cdkContext,library);
+ AptBuilder compiler = new AptBuilder();
+ compiler.init(cdkContext);
+ compiler.process(ImmutableList.of(getJavaFile(COMPONENT_CLASS_JAVA)), processor);
+ verify(cdkContext);
+ Collection<Component> components = library.getComponents();
+ assertEquals(1, components.size());
+ Component component = Iterables.get(components, 0);
+ Collection<Property> attributes = component.getAttributes();
+ assertEquals(3, attributes.size());
+ }
+
+ private CdkContext createMockContext() {
+ CdkContext cdkContext = createMock(CdkContext.class);
+ expect(cdkContext.getJavaSource()).andStubReturn(testSourceDirectory);
+ expect(cdkContext.getJavaSourceOutput()).andStubReturn(null);
+ expect(cdkContext.getResourceOutput()).andStubReturn(null);
+ expect(cdkContext.getLoader()).andStubReturn(
+ TestAnnotation.class.getClassLoader());
+ replay(cdkContext);
+ return cdkContext;
+ }
+
+ private File getJavaFile(String name) throws URISyntaxException {
+ ClassLoader classLoader = this.getClass().getClassLoader();
+ URL testResource = classLoader.getResource(name);
+ URI testUri = testResource.toURI();
+ final File classFile = new File(testUri);
+ return classFile;
+ }
+
+}
Property changes on:
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/apt/ComponentProcessorTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Deleted:
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/apt/ProcessorTest.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/apt/ProcessorTest.java 2009-08-17
15:48:55 UTC (rev 15186)
+++
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/apt/ProcessorTest.java 2009-08-17
23:31:33 UTC (rev 15187)
@@ -1,347 +0,0 @@
-/*
- * $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.apt;
-
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.*;
-import static javax.lang.model.util.ElementFilter.*;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.Set;
-import java.util.logging.LogManager;
-
-import javax.annotation.processing.ProcessingEnvironment;
-import javax.annotation.processing.Processor;
-import javax.annotation.processing.RoundEnvironment;
-import javax.annotation.processing.SupportedAnnotationTypes;
-import javax.annotation.processing.SupportedSourceVersion;
-import javax.lang.model.SourceVersion;
-import javax.lang.model.element.TypeElement;
-import javax.tools.JavaFileObject;
-import javax.tools.SimpleJavaFileObject;
-
-import org.easymock.Capture;
-import org.easymock.CaptureType;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.richfaces.cdk.CdkContext;
-import org.richfaces.cdk.annotations.Attribute;
-import org.richfaces.cdk.annotations.Component;
-import org.richfaces.cdk.apt.CdkProcessor.BeanProperty;
-import org.richfaces.cdk.model.ComponentLibrary;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Iterables;
-
-/**
- * <p class="changed_added_4_0">
- * </p>
- *
- * @author asmirnov(a)exadel.com
- *
- */
-public class ProcessorTest {
-
- private static final String ANNOTATION2 = TestAnnotation2.class.getName();
-
- private static abstract class TestProcessor extends CdkProcessor {
-
- protected ComponentLibrary library;
-
- protected int numOfComponents;
-
- public TestProcessor(CdkContext context) {
- super(context);
- }
-
- @Override
- public synchronized void init(ProcessingEnvironment processingEnv) {
- super.init(processingEnv);
- }
-
- @Override
- public synchronized boolean isInitialized() {
- return super.isInitialized();
- }
-
- @Override
- public Set<String> getSupportedAnnotationTypes() {
- // Process all annotations
- return ImmutableSet.of("*");
- }
-
- }
-
- private static final String INTERFACE_JAVA =
"org/richfaces/cdk/apt/TestInterface.java";
- private static final String SUB_CLASS_JAVA =
"org/richfaces/cdk/apt/TestSubClass.java";
- private static final String CLASS_JAVA =
"org/richfaces/cdk/apt/TestClass.java";
- private static final ImmutableSet<String> PROCESS_ANNOTATIONS = ImmutableSet
- .of(TestAnnotation.class.getName());
- private static final String COMPONENT_CLASS_JAVA =
"org/richfaces/cdk/test/component/AbstractTestComponent.java";
-
- private File testSourceDirectory;
- private ClassLoader testLoader;
-
- @Before
- public void setUp() throws Exception {
- testSourceDirectory = getJavaFile("test.source.properties")
- .getParentFile();
- InputStream stream = this.getClass().getResourceAsStream(
- "logging.properties");
- if (null != stream) {
- try {
- LogManager.getLogManager().readConfiguration(stream);
- } catch (Exception e) {
- // Ignore it.
- } finally {
- try {
- stream.close();
- } catch (IOException e) {
- // Ignore it.
- }
- }
- }
- }
-
- @After
- public void tearDown() {
- testSourceDirectory = null;
- }
-
- /**
- * Test method for
- * {@link org.richfaces.cdk.apt.CdkProcessor#process(java.util.Set,
javax.annotation.processing.RoundEnvironment)}
- * .
- *
- * @throws Exception
- */
- @Test
- public void testProcess() throws Exception {
- // Prepare Mock compilation context.
- CdkContext cdkContext = createMock(CdkContext.class);
- expect(cdkContext.getJavaSource()).andStubReturn(testSourceDirectory);
- expect(cdkContext.getJavaSourceOutput()).andStubReturn(null);
- expect(cdkContext.getResourceOutput()).andStubReturn(null);
- expect(cdkContext.getLoader()).andStubReturn(
- TestAnnotation.class.getClassLoader());
- replay(cdkContext);
-
- Processor processor = createMock(Processor.class);
- processor.init((ProcessingEnvironment) anyObject());
- expect(processor.getSupportedOptions()).andReturn(
- ImmutableSet.<String> of());
- // processor.process(null,null);
- Capture<Set<? extends TypeElement>> capturedTypes = new Capture<Set<?
extends TypeElement>>();
- expect(
- processor.process(capture(capturedTypes),
- capture(new Capture<RoundEnvironment>()))).andReturn(
- true).times(2);
- expect(processor.getSupportedAnnotationTypes()).andReturn(
- ImmutableSet.of(TestAnnotation.class.getName()));
- expect(processor.getSupportedSourceVersion()).andReturn(
- SourceVersion.RELEASE_6);
- replay(processor);
- CdkCompiler compiler = new CdkCompiler();
- compiler.init(cdkContext);
- compiler.process(ImmutableList.of(getJavaFile(CLASS_JAVA)), processor);
- verify(cdkContext, processor);
- }
-
- /**
- * Test method for
- * {@link org.richfaces.cdk.apt.CdkProcessor#process(java.util.Set,
javax.annotation.processing.RoundEnvironment)}
- * .
- *
- * @throws Exception
- */
- @Test
- public void testProcessSubClass() throws Exception {
- // Prepare Mock compilation context.
- CdkContext cdkContext = createMock(CdkContext.class);
- expect(cdkContext.getJavaSource()).andStubReturn(testSourceDirectory);
- expect(cdkContext.getJavaSourceOutput()).andStubReturn(null);
- expect(cdkContext.getResourceOutput()).andStubReturn(null);
- expect(cdkContext.getLoader()).andStubReturn(
- TestAnnotation2.class.getClassLoader());
- replay(cdkContext);
-
- Processor processor = createMock(Processor.class);
- processor.init((ProcessingEnvironment) anyObject());
- expect(processor.getSupportedOptions()).andReturn(
- ImmutableSet.<String> of());
- // processor.process(null,null);
- Capture<Set<? extends TypeElement>> capturedTypes = new Capture<Set<?
extends TypeElement>>(
- CaptureType.FIRST);
- expect(
- processor.process(capture(capturedTypes),
- capture(new Capture<RoundEnvironment>()))).andReturn(
- true).times(2);
- expect(processor.getSupportedAnnotationTypes()).andReturn(
- ImmutableSet.of(TestAnnotation2.class.getName()));
- expect(processor.getSupportedSourceVersion()).andReturn(
- SourceVersion.RELEASE_6);
- replay(processor);
- CdkCompiler compiler = new CdkCompiler();
- compiler.init(cdkContext);
- compiler.process(ImmutableList.of(getJavaFile(SUB_CLASS_JAVA),
- getJavaFile(CLASS_JAVA)), processor);
- verify(cdkContext, processor);
- Set<? extends TypeElement> elements = capturedTypes.getValue();
- assertFalse(elements.isEmpty());
- assertEquals("TestAnnotation2", elements.iterator().next()
- .getSimpleName().toString());
- }
-
- /**
- * Test method for
- * {@link org.richfaces.cdk.apt.CdkProcessor#getClassesAnnotatedWith(Class,
RoundEnvironment)}
- * .
- *
- * @throws Exception
- */
- @Test
- public void testGetClassesAnnotatedWith() throws Exception {
- // Prepare Mock compilation context.
- CdkContext cdkContext = createMock(CdkContext.class);
- expect(cdkContext.getJavaSource()).andStubReturn(testSourceDirectory);
- expect(cdkContext.getJavaSourceOutput()).andStubReturn(null);
- expect(cdkContext.getResourceOutput()).andStubReturn(null);
- expect(cdkContext.getLoader()).andStubReturn(
- TestAnnotation2.class.getClassLoader());
- replay(cdkContext);
- TestProcessor processor = new TestProcessor(cdkContext) {
- @Override
- public boolean process(Set<? extends TypeElement> annotations,
- RoundEnvironment roundEnv) {
- if (!roundEnv.processingOver()) {
- this.numOfComponents = getClassesAnnotatedWith(
- Component.class, roundEnv).size();
-
- }
- return true;
- }
- };
- // ComponentLibrary library = new
- // ComponentLibrary("org.richfaces.cdk.test");
- // processor.library = library;
- CdkCompiler compiler = new CdkCompiler();
- compiler.init(cdkContext);
- compiler.process(ImmutableList.of(getJavaFile(COMPONENT_CLASS_JAVA)),
- processor);
- verify(cdkContext);
- assertTrue(processor.isInitialized());
- assertEquals(1, processor.numOfComponents);
- }
-
- /**
- * Test method for
- * {@link org.richfaces.cdk.apt.CdkProcessor#getClassesAnnotatedWith(Class,
RoundEnvironment)}
- * .
- *
- * @throws Exception
- */
- @Test
- public void testGetPropertiesAnnotatedWith() throws Exception {
- // Prepare Mock compilation context.
- CdkContext cdkContext = createMock(CdkContext.class);
- expect(cdkContext.getJavaSource()).andStubReturn(testSourceDirectory);
- expect(cdkContext.getJavaSourceOutput()).andStubReturn(null);
- expect(cdkContext.getResourceOutput()).andStubReturn(null);
- expect(cdkContext.getLoader()).andStubReturn(
- TestAnnotation2.class.getClassLoader());
- replay(cdkContext);
- TestProcessor processor = new TestProcessor(cdkContext) {
- @Override
- public boolean process(Set<? extends TypeElement> annotations,
- RoundEnvironment roundEnv) {
- if (!roundEnv.processingOver()) {
- TypeElement typeElement = getClassesAnnotatedWith(
- Component.class, roundEnv).iterator().next();
- Set<BeanProperty> beanProperties =
getBeanPropertiesAnnotatedWith(Attribute.class, typeElement);
- assertEquals(3, beanProperties.size());
- BeanProperty property = Iterables.get(beanProperties,2);
- assertEquals("foo", property.getName());
- assertEquals("int", property.getType().toString());
- assertNull(property.getDocComment());
-
- property = Iterables.get(beanProperties,1);
- assertEquals("testValue", property.getName());
- assertEquals("java.util.List<java.lang.String>",
property.getType().toString());
- assertEquals(" Test Attribute\n", property.getDocComment());
-
- property = Iterables.get(beanProperties,0);
- assertEquals("barValue", property.getName());
- assertEquals("java.util.List<M>", property.getType().toString());
- assertEquals(" Bar Attribute\n", property.getDocComment());
-// assertEquals("<M>" ,property.getTypeParameters());
-
- numOfComponents++;
- }
- return true;
- }
- };
- // ComponentLibrary library = new
- // ComponentLibrary("org.richfaces.cdk.test");
- // processor.library = library;
- CdkCompiler compiler = new CdkCompiler();
- compiler.init(cdkContext);
- compiler.process(ImmutableList.of(getJavaFile(COMPONENT_CLASS_JAVA)),
- processor);
- verify(cdkContext);
- assertTrue(processor.isInitialized());
- assertEquals(1, processor.numOfComponents);
- }
- /**
- * <p class="changed_added_4_0">
- * </p>
- *
- * @param name
- * TODO
- * @return
- * @throws URISyntaxException
- */
- private JavaFileObject getJavaFileObject(String name)
- throws URISyntaxException {
- final File classFile = getJavaFile(name);
- SimpleJavaFileObject fileObject = new VirtualJavaFileSystemObject(
- classFile);
- return fileObject;
- }
-
- private File getJavaFile(String name) throws URISyntaxException {
- ClassLoader classLoader = this.getClass().getClassLoader();
- URL testResource = classLoader.getResource(name);
- URI testUri = testResource.toURI();
- final File classFile = new File(testUri);
- return classFile;
- }
-
-}
Added:
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/freemarker/FreeMarkerRendererTest.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/freemarker/FreeMarkerRendererTest.java
(rev 0)
+++
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/freemarker/FreeMarkerRendererTest.java 2009-08-17
23:31:33 UTC (rev 15187)
@@ -0,0 +1,112 @@
+package org.richfaces.cdk.freemarker;
+
+import static org.easymock.EasyMock.*;
+import static org.junit.Assert.*;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.StringWriter;
+import java.io.Writer;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.logging.LogManager;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.richfaces.cdk.CdkContext;
+import org.richfaces.cdk.CdkException;
+import org.richfaces.cdk.apt.TestAnnotation;
+import org.richfaces.cdk.model.Component;
+import org.richfaces.cdk.model.JsfComponent;
+
+public class FreeMarkerRendererTest {
+
+ private File testSourceDirectory;
+ private ClassLoader testLoader;
+
+ @Before
+ public void setUp() throws Exception {
+ testSourceDirectory = getJavaFile("test.source.properties")
+ .getParentFile();
+ InputStream stream = this.getClass().getResourceAsStream(
+ "logging.properties");
+ if (null != stream) {
+ try {
+ LogManager.getLogManager().readConfiguration(stream);
+ } catch (Exception e) {
+ // Ignore it.
+ } finally {
+ try {
+ stream.close();
+ } catch (IOException e) {
+ // Ignore it.
+ }
+ }
+ }
+ }
+
+ @After
+ public void tearDown() {
+ testSourceDirectory = null;
+ }
+ @Test
+ public void testRender() {
+ fail("Not yet implemented");
+ }
+
+ @Test
+ public void testProcessComponent() throws Exception {
+ final StringWriter output = new StringWriter();
+ Component component = new Component();
+ component.setType(new Component.Type("foo.Bar"));
+ FreeMarkerRenderer<Component, Boolean> renderer = new
FreeMarkerRenderer<Component, Boolean>(){
+
+ @Override
+ protected String getOutputFile(Component c) {
+ return null;
+ }
+
+ @Override
+ protected Writer getOutput(Component c) throws IOException {
+ return output;
+ }
+ @Override
+ protected String getTemplateName() {
+
+ return "testComponent.ftl";
+ }
+
+ @Override
+ protected boolean isMyComponent(JsfComponent c) {
+ return true;
+ }
+ };
+ CdkContext cdkContext = createMockContext();
+ renderer.init(cdkContext);
+ renderer.processComponent(component, Boolean.TRUE);
+ assertEquals("foo.Bar", output.toString());
+ }
+
+ private CdkContext createMockContext() {
+ CdkContext cdkContext = createMock(CdkContext.class);
+ expect(cdkContext.getJavaSource()).andStubReturn(testSourceDirectory);
+ expect(cdkContext.getJavaSourceOutput()).andStubReturn(null);
+ expect(cdkContext.getResourceOutput()).andStubReturn(null);
+ expect(cdkContext.getLoader()).andStubReturn(
+ testLoader);
+ replay(cdkContext);
+ return cdkContext;
+ }
+
+ private File getJavaFile(String name) throws URISyntaxException {
+ ClassLoader classLoader = this.getClass().getClassLoader();
+ URL testResource = classLoader.getResource(name);
+ URI testUri = testResource.toURI();
+ final File classFile = new File(testUri);
+ return classFile;
+ }
+
+}
Property changes on:
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/freemarker/FreeMarkerRendererTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/JaxbMarshallTest.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/JaxbMarshallTest.java
(rev 0)
+++
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/JaxbMarshallTest.java 2009-08-17
23:31:33 UTC (rev 15187)
@@ -0,0 +1,90 @@
+/*
+ * $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.jaxb;
+
+
+import static org.easymock.EasyMock.*;
+import static org.junit.Assert.*;
+import static javax.lang.model.util.ElementFilter.*;
+
+import java.io.StringReader;
+import java.util.Set;
+
+import javax.xml.bind.JAXB;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.richfaces.cdk.jaxb.model.Child;
+import org.richfaces.cdk.jaxb.model.Root;
+
+/**
+ * <p class="changed_added_4_0"></p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+public class JaxbMarshallTest {
+
+ private static final String XML_PROLOG = "<?xml version=\"1.0\"
encoding=\"UTF-8\"?>\n";
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @throws java.lang.Exception
+ */
+ @Before
+ public void setUp() throws Exception {
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @throws java.lang.Exception
+ */
+ @After
+ public void tearDown() throws Exception {
+ }
+
+ @Test
+ public void testRootElement() throws Exception {
+ String xml=XML_PROLOG+
+ "<root-config xmlns='http://foo.bar/schema'
><name>foo</name><children><id>xxx</id><value>bar</value></children></root-config>";
+ StringReader reader = new StringReader(xml);
+ Root root = JAXB.unmarshal(reader, Root.class);
+ assertEquals("foo", root.getName());
+ Set<Child> children = root.getChildren();
+ assertEquals(1,children.size());
+ assertEquals("xxx",children.iterator().next().getId());
+ }
+ @Test
+ public void testUniqueElement() throws Exception {
+ String xml=XML_PROLOG+
+ "<root-config xmlns='http://foo.bar/schema'
><name>foo</name><children><id>xxx</id><value>bar</value></children><children><id>xxx</id><value>baz</value></children></root-config>";
+ StringReader reader = new StringReader(xml);
+ Root root = JAXB.unmarshal(reader, Root.class);
+ assertEquals("foo", root.getName());
+ Set<Child> children = root.getChildren();
+ assertEquals(1,children.size());
+ assertEquals("xxx",children.iterator().next().getId());
+ assertEquals("baz",children.iterator().next().getValue());
+ }
+}
Property changes on:
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/JaxbMarshallTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/model/Child.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/model/Child.java
(rev 0)
+++
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/model/Child.java 2009-08-17
23:31:33 UTC (rev 15187)
@@ -0,0 +1,111 @@
+/*
+ * $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.jaxb.model;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * <p class="changed_added_4_0"></p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+(a)XmlType(name="ChildType",namespace=Root.HTTP_FOO_BAR_SCHEMA)
+public class Child implements Id {
+
+ private String id;
+
+ private String value;
+
+
+ /* (non-Javadoc)
+ * @see org.richfaces.cdk.jaxb.model.Id#getId()
+ */
+ @XmlElement(namespace=Root.HTTP_FOO_BAR_SCHEMA)
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @param id the id to set
+ */
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the value
+ */
+ @XmlElement(namespace=Root.HTTP_FOO_BAR_SCHEMA)
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @param value the value to set
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#hashCode()
+ */
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((id == null) ? 0 : id.hashCode());
+ return result;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (!(obj instanceof Child)) {
+ return false;
+ }
+ Child other = (Child) obj;
+ if (id == null) {
+ if (other.id != null) {
+ return false;
+ }
+ } else if (!id.equals(other.id)) {
+ return false;
+ }
+ return true;
+ }
+
+}
Property changes on:
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/model/Child.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/model/Id.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/model/Id.java
(rev 0)
+++
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/model/Id.java 2009-08-17
23:31:33 UTC (rev 15187)
@@ -0,0 +1,14 @@
+package org.richfaces.cdk.jaxb.model;
+
+import javax.xml.bind.annotation.XmlElement;
+
+public interface Id {
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the id
+ */
+ @XmlElement(namespace = Root.HTTP_FOO_BAR_SCHEMA)
+ public String getId();
+
+}
\ No newline at end of file
Property changes on:
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/model/Id.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/model/Root.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/model/Root.java
(rev 0)
+++
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/model/Root.java 2009-08-17
23:31:33 UTC (rev 15187)
@@ -0,0 +1,82 @@
+/*
+ * $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.jaxb.model;
+
+import java.util.Set;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import com.google.common.collect.Sets;
+
+/**
+ * <p class="changed_added_4_0"></p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+(a)XmlRootElement(name="root-config",namespace=Root.HTTP_FOO_BAR_SCHEMA)
+public class Root {
+
+ public static final String HTTP_FOO_BAR_SCHEMA = "http://foo.bar/schema";
+
+ public static final String EXTENSIONS_NAMESPACE =
"http://foo.bar/extensions";
+
+ private String name;
+
+ private Set<Child> children = Sets.newHashSet();
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the name
+ */
+ @XmlElement(namespace=HTTP_FOO_BAR_SCHEMA)
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @param name the name to set
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the children
+ */
+ @XmlElement(namespace=HTTP_FOO_BAR_SCHEMA)
+ public Set<Child> getChildren() {
+ return children;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @param children the children to set
+ */
+ public void setChildren(Set<Child> children) {
+ this.children = children;
+ }
+}
Property changes on:
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/model/Root.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/model/package-info.java
===================================================================
---
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/model/package-info.java
(rev 0)
+++
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/model/package-info.java 2009-08-17
23:31:33 UTC (rev 15187)
@@ -0,0 +1,24 @@
+/**
+ * <h2>CDK library model classes used by all generation tasks.</h2>
+ * <p>CDK architecture seems like MVC-pattern implementation. The controller {@link
org.richfaces.cdk.LibraryBuilder} class
+ * generates model from different sources ( Java Annotations, XML files and so on ). That
model will be used to generate all necessary
+ * classes by the appropriate "renderers" that act as 'View' part of
pattern.</p>
+ * <p>That model:</p>
+ * <ul>
+ * <li>Contains all information about JSF library components and their
properties</li>
+ * <li>Encapsulates restrictions and references for model components, therefore it
should be modified by model metods only.</li>
+ * <li>Encapsulates <a
href="http://www.jboss.org/community/docs/DOC-13693">CDK naming
conventions</a></li>
+ * <li>Provides 'Visitor' pattern methods. see {@link LibraryVisitor} for
reference.</li>
+ * </ul>
+ *
+ */
+(a)XmlAccessorType(XmlAccessType.NONE)
+(a)javax.xml.bind.annotation.XmlSchema(namespace=Root.HTTP_FOO_BAR_SCHEMA ,
+ xmlns = {(a)javax.xml.bind.annotation.XmlNs( prefix = "",
+ namespaceURI = Root.HTTP_FOO_BAR_SCHEMA ),
+ @javax.xml.bind.annotation.XmlNs( prefix = "ext",
+ namespaceURI = Root.EXTENSIONS_NAMESPACE ) })
+package org.richfaces.cdk.jaxb.model;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAccessType;
+
Property changes on:
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/jaxb/model/package-info.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
root/cdk/trunk/plugins/generator/src/test/resources/META-INF/templates/testComponent.ftl
===================================================================
---
root/cdk/trunk/plugins/generator/src/test/resources/META-INF/templates/testComponent.ftl
(rev 0)
+++
root/cdk/trunk/plugins/generator/src/test/resources/META-INF/templates/testComponent.ftl 2009-08-17
23:31:33 UTC (rev 15187)
@@ -0,0 +1 @@
+${type}
\ No newline at end of file