Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

https://issues.jboss.org/browse/FORGE-305 #121

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
29 changes: 23 additions & 6 deletions dist/src/main/resources/bin/forge.bat
Expand Up @@ -28,11 +28,11 @@

@echo off

@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM set %USERHOME% to equivalent of $HOME
if "%USERHOME%" == "" (set "USERHOME=%HOMEDRIVE%%HOMEPATH%")

@REM Execute a user defined script before this one
if exist "%HOME%\forgerc_pre.bat" call "%HOME%\forgerc_pre.bat"
if exist "%USERHOME%\forgerc_pre.bat" call "%USERHOME%\forgerc_pre.bat"

set ERROR_CODE=0

Expand All @@ -51,7 +51,7 @@ echo.
goto error

:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto chkFHome
if exist "%JAVA_HOME%\bin\java.exe" goto chkJVersion

echo.
echo ERROR: JAVA_HOME is set to an invalid directory.
Expand All @@ -61,6 +61,23 @@ echo location of your Java installation
echo.
goto error

:chkJVersion
set PATH="%JAVA_HOME%\bin";%PATH%

for /f "tokens=3" %%g in ('java -version 2^>^&1 ^| findstr /i "version"') do (
set JAVAVER=%%g
)
for /f "delims=. tokens=1-3" %%v in ("%JAVAVER%") do (
set JAVAVER_MINOR=%%w
)

if %JAVAVER_MINOR% geq 6 goto chkFHome

echo.
echo A Java 1.6 or higher JRE is required to run Forge. "%JAVA_HOME%\bin\java.exe" is version %JAVAVER%
echo.
goto error

:chkFHome
if not "%FORGE_HOME%"=="" goto valFHome

Expand Down Expand Up @@ -140,7 +157,7 @@ goto runForge
@REM Start Forge
:runForge
set FORGE_MAIN_CLASS=org.jboss.forge.shell.Bootstrap
%FORGE_JAVA_EXE% %FORGE_OPTS% "-Dforge.home=%FORGE_HOME%" -Dforge.shell.colorEnabled=true -jar %JBOSS_MODULES% -modulepath "%FORGE_HOME%\modules;%HOME%\.forge\plugins" org.jboss.forge %FORGE_CMD_LINE_ARGS%
%FORGE_JAVA_EXE% %FORGE_OPTS% "-Dforge.home=%FORGE_HOME%" -Dforge.shell.colorEnabled=true -jar %JBOSS_MODULES% -modulepath "%FORGE_HOME%\modules;%USERHOME%\.forge\plugins" org.jboss.forge %FORGE_CMD_LINE_ARGS%
if ERRORLEVEL 1 goto error
goto end

Expand All @@ -164,7 +181,7 @@ goto postExec
@endlocal & set ERROR_CODE=%ERROR_CODE%

:postExec
if exist "%HOME%\forgerc_post.bat" call "%HOME%\forgerc_post.bat"
if exist "%USERHOME%\forgerc_post.bat" call "%USERHOME%\forgerc_post.bat"

if "%FORGE_TERMINATE_CMD%" == "on" exit %ERROR_CODE%

Expand Down
5 changes: 5 additions & 0 deletions scaffold-faces/pom.xml
Expand Up @@ -59,6 +59,11 @@
<artifactId>forge-javaee-impl</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.forge</groupId>
<artifactId>forge-dev-plugins</artifactId>
<scope>test</scope>
</dependency>

</dependencies>

Expand Down
Expand Up @@ -60,6 +60,7 @@
import org.jboss.forge.shell.ShellPrompt;
import org.jboss.forge.shell.plugins.Alias;
import org.jboss.forge.shell.plugins.RequiresFacet;
import org.jboss.forge.shell.util.Streams;
import org.jboss.forge.spec.javaee.CDIFacet;
import org.jboss.forge.spec.javaee.EJBFacet;
import org.jboss.forge.spec.javaee.FacesFacet;
Expand Down Expand Up @@ -99,7 +100,7 @@
* writing Metawidget plugins, see <a href="http://metawidget.org/documentation.php">the Metawidget documentation</a>.
* <p>
* This Facet does <em>not</em> require Metawidget to be in the final project.
*
*
* @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a>
* @author Richard Kennard
*/
Expand Down Expand Up @@ -470,8 +471,7 @@ protected void loadTemplates()
if (this.backingBeanTemplate == null)
{
this.backingBeanTemplate = this.compiler.compile(BACKING_BEAN_TEMPLATE);
String template = String.valueOf(this.backingBeanTemplate
.getCompiledTemplate().getTemplate());
String template = Streams.toString(this.backingBeanTemplate.getSourceTemplateResource().getInputStream());
this.backingBeanTemplateQbeMetawidgetIndent = parseIndent(template, "@{qbeMetawidget}");
}
if (this.viewUtilsTemplate == null)
Expand All @@ -485,33 +485,29 @@ protected void loadTemplates()
if (this.viewTemplate == null)
{
this.viewTemplate = this.compiler.compile(VIEW_TEMPLATE);
String template = String.valueOf(this.viewTemplate
.getCompiledTemplate().getTemplate());
String template = Streams.toString(this.viewTemplate.getSourceTemplateResource().getInputStream());
this.viewTemplateNamespaces = parseNamespaces(template);
this.viewTemplateEntityMetawidgetIndent = parseIndent(template, "@{metawidget}");
}
if (this.createTemplate == null)
{
this.createTemplate = this.compiler.compile(CREATE_TEMPLATE);
String template = String.valueOf(this.createTemplate
.getCompiledTemplate().getTemplate());
String template = Streams.toString(this.createTemplate.getSourceTemplateResource().getInputStream());
this.createTemplateNamespaces = parseNamespaces(template);
this.createTemplateEntityMetawidgetIndent = parseIndent(template, "@{metawidget}");
}
if (this.searchTemplate == null)
{
this.searchTemplate = this.compiler.compile(SEARCH_TEMPLATE);
String template = String.valueOf(this.searchTemplate
.getCompiledTemplate().getTemplate());
String template = Streams.toString(this.searchTemplate.getSourceTemplateResource().getInputStream());
this.searchTemplateNamespaces = parseNamespaces(template);
this.searchTemplateSearchMetawidgetIndent = parseIndent(template, "@{searchMetawidget}");
this.searchTemplateBeanMetawidgetIndent = parseIndent(template, "@{beanMetawidget}");
}
if (this.navigationTemplate == null)
{
this.navigationTemplate = this.compiler.compile(NAVIGATION_TEMPLATE);
String template = String.valueOf(this.navigationTemplate
.getCompiledTemplate().getTemplate());
String template = Streams.toString(this.navigationTemplate.getSourceTemplateResource().getInputStream());
this.navigationTemplateIndent = parseIndent(template, "@{navigation}");
}
if (this.errorTemplate == null)
Expand Down
Expand Up @@ -25,6 +25,7 @@
import static org.metawidget.inspector.InspectionResultConstants.*;
import static org.metawidget.inspector.faces.StaticFacesInspectionResultConstants.*;

import java.util.List;
import java.util.Map;

import javax.persistence.Embedded;
Expand All @@ -33,6 +34,9 @@
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;

import org.jboss.forge.parser.java.EnumConstant;
import org.jboss.forge.parser.java.JavaEnum;
import org.jboss.forge.scaffold.faces.metawidget.inspector.propertystyle.ForgePropertyStyle.ForgeProperty;
import org.metawidget.inspector.impl.BaseObjectInspector;
import org.metawidget.inspector.impl.BaseObjectInspectorConfig;
import org.metawidget.inspector.impl.propertystyle.Property;
Expand Down Expand Up @@ -76,7 +80,8 @@ protected Map<String, String> inspectProperty(Property property)

// OneToOne

if ( property.isAnnotationPresent(OneToOne.class) || property.isAnnotationPresent(Embedded.class)) {
if (property.isAnnotationPresent(OneToOne.class) || property.isAnnotationPresent(Embedded.class))
{

attributes.put(ONE_TO_ONE, TRUE);
}
Expand All @@ -103,12 +108,25 @@ protected Map<String, String> inspectProperty(Property property)
attributes.put(N_TO_MANY, TRUE);
}

return attributes;
}
// Enums

@Override
protected Map<String, String> inspectEntity(String declaredClass, String actualClass) throws Exception
{
return super.inspectEntity(declaredClass, actualClass);
if ( property instanceof ForgeProperty ) {

List<EnumConstant<JavaEnum>> enumConstants = ((ForgeProperty) property).getEnumConstants();

if (enumConstants != null)
{
List<String> lookup = CollectionUtils.newArrayList();

for (EnumConstant<JavaEnum> anEnum : enumConstants)
{
lookup.add(anEnum.getName());
}

attributes.put(LOOKUP, CollectionUtils.toString(lookup));
}
}

return attributes;
}
}
Expand Up @@ -29,13 +29,16 @@
import java.util.List;
import java.util.Map;

import org.jboss.forge.parser.java.EnumConstant;
import org.jboss.forge.parser.java.Field;
import org.jboss.forge.parser.java.FieldHolder;
import org.jboss.forge.parser.java.JavaEnum;
import org.jboss.forge.parser.java.JavaSource;
import org.jboss.forge.parser.java.Method;
import org.jboss.forge.parser.java.MethodHolder;
import org.jboss.forge.parser.java.Parameter;
import org.jboss.forge.parser.java.Type;
import org.jboss.forge.parser.java.impl.JavaEnumImpl;
import org.jboss.forge.project.Project;
import org.jboss.forge.project.facets.JavaSourceFacet;
import org.metawidget.inspector.iface.InspectorException;
Expand Down Expand Up @@ -142,16 +145,14 @@ protected Map<String, Property> inspectProperties(final String type)

// Lookup properties

JavaSource<?> clazz = sourceForName(type);
JavaSource<?> clazz = sourceForName(this.project,type);

if (clazz == null)
if (clazz instanceof MethodHolder<?>)
{
return properties;
lookupGetters(properties, (MethodHolder<?>) clazz);
lookupSetters(properties, (MethodHolder<?>) clazz);
}

lookupGetters(properties, (MethodHolder<?>) clazz);
lookupSetters(properties, (MethodHolder<?>) clazz);

return properties;
}
catch (Exception e)
Expand Down Expand Up @@ -211,7 +212,7 @@ protected void lookupGetters(final Map<String, Property> properties, final Metho

properties
.put(propertyName,
new ForgeProperty(propertyName, returnType, method, null, privateField));
new ForgeProperty(propertyName, returnType, method, null, privateField, this.project));
}
}

Expand Down Expand Up @@ -317,7 +318,7 @@ protected void lookupSetters(final Map<String, Property> properties, final Metho
propertyName,
new ForgeProperty(propertyName, existingForgeProperty.getType(),
existingForgeProperty.getReadMethod(), method, getPrivateField((FieldHolder<?>) clazz,
propertyName)));
propertyName), this.project));
continue;
}

Expand All @@ -330,7 +331,7 @@ protected void lookupSetters(final Map<String, Property> properties, final Metho

properties
.put(propertyName,
new ForgeProperty(propertyName, type, null, method, privateField));
new ForgeProperty(propertyName, type, null, method, privateField, this.project));
}
}

Expand Down Expand Up @@ -402,11 +403,11 @@ protected Field<?> getPrivateField(final FieldHolder<?> fieldHolder, final Strin
// Private methods
//

private JavaSource<?> sourceForName(final String type)
/*package private*/ static JavaSource<?> sourceForName(final Project project, final String type)
{
try
{
JavaSourceFacet javaSourceFact = this.project.getFacet(JavaSourceFacet.class);
JavaSourceFacet javaSourceFact = project.getFacet(JavaSourceFacet.class);
return javaSourceFact.getJavaResource(type).getJavaSource();
}
catch (FileNotFoundException e)
Expand Down Expand Up @@ -434,13 +435,16 @@ public static class ForgeProperty

private final Field<?> privateField;

private final Project project;

//
// Constructor
//

public ForgeProperty(final String name, final String type, final Method<?> readMethod,
final Method<?> writeMethod,
final Field<?> privateField)
final Field<?> privateField,
final Project project)
{
super(name, type);

Expand All @@ -455,6 +459,7 @@ public ForgeProperty(final String name, final String type, final Method<?> readM
}

this.privateField = privateField;
this.project = project;
}

//
Expand Down Expand Up @@ -511,6 +516,17 @@ public <T extends Annotation> T getAnnotation(final Class<T> annotationClass)
return null;
}

public List<EnumConstant<JavaEnum>> getEnumConstants()
{
JavaSource<?> source = sourceForName( this.project, getType() );

if ( source instanceof JavaEnumImpl ) {
return ((JavaEnumImpl) source).getFields();
}

return null;
}

@Override
public String getGenericType()
{
Expand Down Expand Up @@ -541,13 +557,11 @@ public String getGenericType()

public Method<?> getReadMethod()
{

return this.readMethod;
}

public Method<?> getWriteMethod()
{

return this.writeMethod;
}
}
Expand Down
Expand Up @@ -229,6 +229,7 @@ public StaticXmlWidget buildWidget(String elementName, Map<String, String> attri
}
}
}

// Delegate to next WidgetBuilder in the chain

return null;
Expand Down
Expand Up @@ -83,12 +83,28 @@ public StaticJavaWidget buildWidget(String elementName, Map<String, String> attr
new JavaStatement("int " + name + " = this.search.get" + StringUtils.capitalize(name) + "()"));
JavaStatement ifNotEmpty = new JavaStatement("if (" + name + " != 0)");
ifNotEmpty.getChildren().add(
new JavaStatement("predicatesList.add(builder.equal(root.get(\"" + name + "\")," + name + "))"));
new JavaStatement("predicatesList.add(builder.equal(root.get(\"" + name + "\"), " + name + "))"));
toReturn.getChildren().add(ifNotEmpty);
return toReturn;
}

// Lookup
// LOOKUP

if (attributes.containsKey(LOOKUP))
{
StaticJavaStub toReturn = new StaticJavaStub();
JavaStatement getValue = new JavaStatement(ClassUtils.getSimpleName(type) + " " + name + " = this.search.get"
+ StringUtils.capitalize(name) + "()");
getValue.putImport(type);
toReturn.getChildren().add(getValue);
JavaStatement ifNotEmpty = new JavaStatement("if (" + name + " != null)");
ifNotEmpty.getChildren().add(
new JavaStatement("predicatesList.add(builder.equal(root.get(\"" + name + "\"), " + name + "))"));
toReturn.getChildren().add(ifNotEmpty);
return toReturn;
}

// FACES_LOOKUP

if (attributes.containsKey(FACES_LOOKUP))
{
Expand All @@ -99,7 +115,7 @@ public StaticJavaWidget buildWidget(String elementName, Map<String, String> attr
toReturn.getChildren().add(getValue);
JavaStatement ifNotEmpty = new JavaStatement("if (" + name + " != null && " + name + ".getId() != null)");
ifNotEmpty.getChildren().add(
new JavaStatement("predicatesList.add(builder.equal(root.get(\"" + name + "\")," + name + "))"));
new JavaStatement("predicatesList.add(builder.equal(root.get(\"" + name + "\"), " + name + "))"));
toReturn.getChildren().add(ifNotEmpty);
return toReturn;
}
Expand Down