Employee example cleanup
diff --git a/dbws/dbws.simple/.settings/org.eclipse.core.resources.prefs b/dbws/dbws.simple/.settings/org.eclipse.core.resources.prefs
index cdfe4f1..f022440 100644
--- a/dbws/dbws.simple/.settings/org.eclipse.core.resources.prefs
+++ b/dbws/dbws.simple/.settings/org.eclipse.core.resources.prefs
@@ -1,5 +1,4 @@
eclipse.preferences.version=1
-encoding//src/main/java=UTF-8
encoding//src/test/java=UTF-8
encoding//src/test/resources=UTF-8
encoding/<project>=UTF-8
diff --git a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/diagnostics/Diagnostics.java b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/diagnostics/Diagnostics.java
index 7c49489..6387f7f 100644
--- a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/diagnostics/Diagnostics.java
+++ b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/diagnostics/Diagnostics.java
@@ -86,7 +86,7 @@
}
return trace;
}
-
+
public void clear() {
this.traces.set(null);
}
@@ -125,5 +125,12 @@
return entries;
}
+ public void truncate(int length, String message) {
+ if (getEntries().size() > length) {
+ this.entries = this.entries.subList(0, length - 1);
+ this.entries.add(message);
+ }
+ }
+
}
}
diff --git a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/diagnostics/DiagnosticsInterceptor.java b/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/diagnostics/DiagnosticsInterceptor.java
deleted file mode 100644
index 8d2d789..0000000
--- a/jpa/employee/employee.model/src/main/java/eclipselink/example/jpa/employee/services/diagnostics/DiagnosticsInterceptor.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
- * which accompanies this distribution.
- * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
- * and the Eclipse Distribution License is available at
- * http://www.eclipse.org/org/documents/edl-v10.php.
- *
- * Contributors:
- * dclarke - initial
- ******************************************************************************/
-package eclipselink.example.jpa.employee.services.diagnostics;
-
-import javax.ejb.EJB;
-import javax.interceptor.AroundInvoke;
-import javax.interceptor.Interceptor;
-import javax.interceptor.InvocationContext;
-
-/**
- * TODO
- *
- * @author dclarke
- * @since EclipseLink 2.4.2
- */
-@Interceptor
-public class DiagnosticsInterceptor {
-
- private Diagnostics diagnostics;
-
- @EJB
- public void setDiagnostics(Diagnostics diagnostics) {
- this.diagnostics = diagnostics;
- }
-
- public Diagnostics getDiagnostics() {
- return diagnostics;
- }
-
- @AroundInvoke
- public Object intercept(InvocationContext ctx) throws Exception {
- System.out.println("*** DiagnosticsInterceptor intercepting " + ctx.getMethod().getName());
-
- try {
- return ctx.proceed();
- } finally {
- if (!ctx.getMethod().getName().equals("getDiagnostics")) {
- System.out.println("*** DiagnosticsInterceptor exiting");
- }
- }
- }
-
-}
diff --git a/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/EditEmployeeTest.java b/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/EditEmployeeTest.java
index 36bee03..732c05b 100644
--- a/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/EditEmployeeTest.java
+++ b/jpa/employee/employee.model/src/test/java/eclipselink/example/jpa/employee/test/services/EditEmployeeTest.java
@@ -14,7 +14,6 @@
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
-import javax.persistence.OptimisticLockException;
import org.junit.After;
import org.junit.AfterClass;
diff --git a/jpa/employee/employee.web-js/.settings/org.eclipse.wst.html.core.prefs b/jpa/employee/employee.web-js/.settings/org.eclipse.wst.html.core.prefs
new file mode 100644
index 0000000..38ff1b2
--- /dev/null
+++ b/jpa/employee/employee.web-js/.settings/org.eclipse.wst.html.core.prefs
@@ -0,0 +1,39 @@
+attrDuplicate=2
+attrInvalidName=2
+attrInvalidValue=2
+attrNameMismatch=2
+attrUndefName=-1
+attrUndefValue=2
+attrValueEqualsMissing=2
+attrValueMismatch=1
+attrValueUnclosed=2
+cdataInvalidContent=2
+cdataUnclosed=1
+commentInvalidContent=2
+commentUnclosed=1
+docDoctypeUnclosed=1
+docDuplicateTag=1
+docInvalidChar=2
+docInvalidContent=2
+eclipse.preferences.version=1
+elemCoexistence=2
+elemDuplicate=2
+elemEndInvalidCase=1
+elemInvalidContent=2
+elemInvalidDirective=1
+elemInvalidEmptyTag=2
+elemInvalidName=1
+elemInvalidText=2
+elemMissingEnd=2
+elemMissingStart=2
+elemStartInvalidCase=2
+elemUnclosedEndTag=1
+elemUnclosedStartTag=1
+elemUnknownName=2
+elemUnnecessaryEnd=2
+piInvalidContent=2
+piUnclosed=1
+piUndefined=2
+refInvalidContent=2
+resourceNotFound=2
+use-project-settings=true
diff --git a/jpa/employee/employee.web-js/.settings/org.eclipse.wst.jsdt.core.prefs b/jpa/employee/employee.web-js/.settings/org.eclipse.wst.jsdt.core.prefs
new file mode 100644
index 0000000..c077bb1
--- /dev/null
+++ b/jpa/employee/employee.web-js/.settings/org.eclipse.wst.jsdt.core.prefs
@@ -0,0 +1,39 @@
+eclipse.preferences.version=1
+org.eclipse.wst.jsdt.core.compiler.problem.deprecation=warning
+org.eclipse.wst.jsdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.wst.jsdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.wst.jsdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.wst.jsdt.core.compiler.problem.duplicateLocalVariables=warning
+org.eclipse.wst.jsdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.wst.jsdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.wst.jsdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.wst.jsdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.looseVarDecleration=warning
+org.eclipse.wst.jsdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.wst.jsdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.nullReference=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.optionalSemicolon=warning
+org.eclipse.wst.jsdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.undefinedField=warning
+org.eclipse.wst.jsdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.uninitializedGlobalVariable=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.uninitializedLocalVariable=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.unresolvedFieldReference=error
+org.eclipse.wst.jsdt.core.compiler.problem.unresolvedMethodReference=error
+org.eclipse.wst.jsdt.core.compiler.problem.unresolvedTypeReference=error
+org.eclipse.wst.jsdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.wst.jsdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.wst.jsdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.wst.jsdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.wst.jsdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.wst.jsdt.core.compiler.problem.unusedPrivateMember=warning
+semanticValidation=enabled
diff --git a/jpa/employee/employee.web/.settings/org.eclipse.core.resources.prefs b/jpa/employee/employee.web/.settings/org.eclipse.core.resources.prefs
index 5e09596..7f60f10 100644
--- a/jpa/employee/employee.web/.settings/org.eclipse.core.resources.prefs
+++ b/jpa/employee/employee.web/.settings/org.eclipse.core.resources.prefs
@@ -1,6 +1,7 @@
eclipse.preferences.version=1
encoding//src/main/java=UTF-8
encoding//src/main/java/eclipselink/example/jpa/employee/web/EditEmployee.java=UTF-8
+encoding//src/main/java/eclipselink/example/jpa/employee/web/Navigation.java=UTF-8
encoding//src/main/resources=UTF-8
encoding//src/test/java=UTF-8
encoding/<project>=UTF-8
diff --git a/jpa/employee/employee.web/.settings/org.eclipse.wst.html.core.prefs b/jpa/employee/employee.web/.settings/org.eclipse.wst.html.core.prefs
new file mode 100644
index 0000000..467372b
--- /dev/null
+++ b/jpa/employee/employee.web/.settings/org.eclipse.wst.html.core.prefs
@@ -0,0 +1,39 @@
+attrDuplicate=2
+attrInvalidName=2
+attrInvalidValue=2
+attrNameMismatch=2
+attrUndefName=2
+attrUndefValue=2
+attrValueEqualsMissing=2
+attrValueMismatch=1
+attrValueUnclosed=2
+cdataInvalidContent=2
+cdataUnclosed=1
+commentInvalidContent=2
+commentUnclosed=1
+docDoctypeUnclosed=1
+docDuplicateTag=1
+docInvalidChar=2
+docInvalidContent=2
+eclipse.preferences.version=1
+elemCoexistence=2
+elemDuplicate=2
+elemEndInvalidCase=1
+elemInvalidContent=2
+elemInvalidDirective=1
+elemInvalidEmptyTag=2
+elemInvalidName=1
+elemInvalidText=2
+elemMissingEnd=2
+elemMissingStart=2
+elemStartInvalidCase=2
+elemUnclosedEndTag=1
+elemUnclosedStartTag=1
+elemUnknownName=-1
+elemUnnecessaryEnd=2
+piInvalidContent=2
+piUnclosed=1
+piUndefined=2
+refInvalidContent=2
+resourceNotFound=2
+use-project-settings=true
diff --git a/jpa/employee/employee.web/.settings/org.eclipse.wst.jsdt.core.prefs b/jpa/employee/employee.web/.settings/org.eclipse.wst.jsdt.core.prefs
new file mode 100644
index 0000000..046bdbf
--- /dev/null
+++ b/jpa/employee/employee.web/.settings/org.eclipse.wst.jsdt.core.prefs
@@ -0,0 +1,39 @@
+eclipse.preferences.version=1
+org.eclipse.wst.jsdt.core.compiler.problem.deprecation=warning
+org.eclipse.wst.jsdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.wst.jsdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.wst.jsdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.wst.jsdt.core.compiler.problem.duplicateLocalVariables=warning
+org.eclipse.wst.jsdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.wst.jsdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.wst.jsdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.wst.jsdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.looseVarDecleration=warning
+org.eclipse.wst.jsdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.wst.jsdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.nullReference=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.optionalSemicolon=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.undefinedField=warning
+org.eclipse.wst.jsdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.uninitializedGlobalVariable=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.uninitializedLocalVariable=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.unresolvedFieldReference=error
+org.eclipse.wst.jsdt.core.compiler.problem.unresolvedMethodReference=error
+org.eclipse.wst.jsdt.core.compiler.problem.unresolvedTypeReference=error
+org.eclipse.wst.jsdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.wst.jsdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.wst.jsdt.core.compiler.problem.unusedLocal=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.wst.jsdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.wst.jsdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.wst.jsdt.core.compiler.problem.unusedPrivateMember=warning
+semanticValidation=enabled
diff --git a/jpa/employee/employee.web/.settings/org.eclipse.wst.xml.core.prefs b/jpa/employee/employee.web/.settings/org.eclipse.wst.xml.core.prefs
new file mode 100644
index 0000000..6732777
--- /dev/null
+++ b/jpa/employee/employee.web/.settings/org.eclipse.wst.xml.core.prefs
@@ -0,0 +1,18 @@
+attributeHasNoValue=2
+eclipse.preferences.version=1
+endTagWithAttributes=2
+honourAllSchemaLocations=true
+indicateNoGrammar=-1
+indiciateNoDocumentElement=-1
+markupValidation=false
+missingClosingBracket=2
+missingClosingQuote=2
+missingEndTag=2
+missingQuotes=2
+missingStartTag=2
+missingTagName=2
+namespaceInPITarget=2
+use-project-settings=true
+whitespaceAtStart=2
+whitespaceBeforeTagName=2
+xinclude=true
diff --git a/jpa/employee/employee.web/pom.xml b/jpa/employee/employee.web/pom.xml
index d1c9df9..4132bc7 100644
--- a/jpa/employee/employee.web/pom.xml
+++ b/jpa/employee/employee.web/pom.xml
@@ -62,6 +62,7 @@
<build>
+ <finalName>employe.web</finalName>
<defaultGoal>package</defaultGoal>
<plugins>
diff --git a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/Admin.java b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/Admin.java
index 3e75548..f53169c 100644
--- a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/Admin.java
+++ b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/Admin.java
@@ -15,10 +15,14 @@
import java.util.List;
import javax.ejb.EJB;
+import javax.faces.application.FacesMessage;
+import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;
-import javax.faces.bean.RequestScoped;
+import javax.faces.context.FacesContext;
import eclipselink.example.jpa.employee.services.AdminBean;
+import eclipselink.example.jpa.employee.services.diagnostics.Diagnostics;
+import eclipselink.example.jpa.employee.services.diagnostics.Diagnostics.SQLTrace;
/**
* TODO
@@ -27,14 +31,25 @@
* @since EclipseLink 2.4.2
*/
@ManagedBean
-@RequestScoped
+@ApplicationScoped
public class Admin {
private AdminBean adminBean;
private List<String> typeNames;
- private boolean displaySql = false;
+ boolean sqlTraceEnabled = true;
+
+ private Diagnostics diagnostics;
+
+ public Diagnostics getDiagnostics() {
+ return diagnostics;
+ }
+
+ @EJB
+ public void setDiagnostics(Diagnostics diagnostics) {
+ this.diagnostics = diagnostics;
+ }
public AdminBean getAdminBean() {
return adminBean;
@@ -62,22 +77,6 @@
return typeNames;
}
- public boolean isDisplaySql() {
- return displaySql;
- }
-
- public void setDisplaySql(boolean displaySql) {
- this.displaySql = displaySql;
- }
-
- public void toggleSqlDisplay() {
- this.displaySql = !this.displaySql;
- }
-
- public String getToggleSqlDisplayButton() {
- return isDisplaySql() ? "Disable SQL Display" : "Enable SQL Display";
- }
-
public String getCacheSize(String typeName) {
int size = getAdminBean().getCacheSize(typeName);
if (size < 0) {
@@ -86,4 +85,22 @@
return Integer.toString(size);
}
+ public boolean isSqlTraceEnabled() {
+ return getDiagnostics().isEnabled();
+ }
+
+ public String getMessages() {
+ SQLTrace trace = getDiagnostics().getTrace(true);
+
+ if (isSqlTraceEnabled() && trace != null) {
+ // Truncate at 5 messages
+ trace.truncate(5, "... SQL trace truncated");
+
+ for (String entry : trace.getEntries()) {
+ FacesContext.getCurrentInstance().addMessage("SQL", new FacesMessage(entry));
+ }
+ }
+ return null;
+ }
+
}
diff --git a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/DiagnosticsTrace.java b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/DiagnosticsTrace.java
deleted file mode 100644
index 715aa28..0000000
--- a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/DiagnosticsTrace.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2013 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
- * which accompanies this distribution.
- * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
- * and the Eclipse Distribution License is available at
- * http://www.eclipse.org/org/documents/edl-v10.php.
- *
- * Contributors:
- * dclarke - initial
- ******************************************************************************/
-package eclipselink.example.jpa.employee.web;
-
-import javax.ejb.EJB;
-import javax.faces.application.FacesMessage;
-import javax.faces.bean.ManagedBean;
-import javax.faces.bean.RequestScoped;
-import javax.faces.context.FacesContext;
-
-import eclipselink.example.jpa.employee.services.diagnostics.Diagnostics;
-import eclipselink.example.jpa.employee.services.diagnostics.Diagnostics.SQLTrace;
-
-/**
- * TODO
- *
- * @author dclarke
- * @since EclipseLink 2.4.2
- */
-@ManagedBean
-@RequestScoped
-public class DiagnosticsTrace {
-
- private Diagnostics diagnostics;
-
- public Diagnostics getDiagnostics() {
- return diagnostics;
- }
-
- @EJB
- public void setDiagnostics(Diagnostics diagnostics) {
- this.diagnostics = diagnostics;
- }
-
- public String getMessages() {
- SQLTrace trace = getDiagnostics().getTrace(true);
-
- if (trace != null) {
- for (String entry : trace.getEntries()) {
- FacesContext.getCurrentInstance().addMessage("SQL", new FacesMessage(entry));
- }
- }
- return null;
- }
-
-}
diff --git a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EditEmployee.java b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EditEmployee.java
index 1fce81b..3403a0b 100644
--- a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EditEmployee.java
+++ b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EditEmployee.java
@@ -43,10 +43,6 @@
private EmployeeRepository repository;
- protected static final String PAGE = "/employee/edit";
- protected static final String PAGE_REDIRECT = "/employee/edit?faces-redirect=true";
- protected static final String INDEX_PAGE = "/index?faces-redirect=true";
-
public EmployeeRepository getRepository() {
return repository;
}
@@ -120,7 +116,7 @@
}
public String cancel() {
- return INDEX_PAGE;
+ return Navigation.INDEX_REDIRECT;
}
/**
@@ -159,5 +155,5 @@
getEmployee().removePhoneNumber(phone);
return null;
}
-
+
}
diff --git a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EmployeeResults.java b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EmployeeResults.java
index 9ca6b7d..eda1330 100644
--- a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EmployeeResults.java
+++ b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/EmployeeResults.java
@@ -137,7 +137,13 @@
Flash flashScope = FacesContext.getCurrentInstance().getExternalContext().getFlash();
flashScope.put("employee", employee);
- return EditEmployee.PAGE;
+ return Navigation.EDIT;
}
+ public String delete(Employee employee) {
+ Flash flashScope = FacesContext.getCurrentInstance().getExternalContext().getFlash();
+ flashScope.put("employee", employee);
+
+ return Navigation.EDIT;
+ }
}
diff --git a/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/Navigation.java b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/Navigation.java
new file mode 100644
index 0000000..630ed3a
--- /dev/null
+++ b/jpa/employee/employee.web/src/main/java/eclipselink/example/jpa/employee/web/Navigation.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2013 Oracle. All rights reserved.
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
+ * which accompanies this distribution.
+ * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
+ * and the Eclipse Distribution License is available at
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * Contributors:
+ * dclarke - initial
+ ******************************************************************************/
+package eclipselink.example.jpa.employee.web;
+
+import javax.faces.bean.ManagedBean;
+import javax.faces.bean.RequestScoped;
+
+import eclipselink.example.jpa.employee.model.Employee;
+
+/**
+ * Backing bean to edit or create an {@link Employee}.
+ *
+ * @author dclarke
+ * @since EclipseLink 2.3.0
+ */
+@ManagedBean
+@RequestScoped
+public class Navigation {
+
+ protected static final String INDEX_REDIRECT = "/index?faces-redirect=true";
+ protected static final String ABOUT_REDIRECT = "/about?faces-redirect=true";
+ protected static final String ADMIN_REDIRECT = "/admin?faces-redirect=true";
+ protected static final String EDIT = "/employee/edit";
+ protected static final String EDIT_REDIRECT = EDIT + "?faces-redirect=true";
+ protected static final String SEARCH_REDIRECT = "employee/search?faces-redirect=true";
+
+ public String home() {
+ return INDEX_REDIRECT;
+ }
+
+ public String about() {
+ return ABOUT_REDIRECT;
+ }
+
+ public String admin() {
+ return ADMIN_REDIRECT;
+ }
+
+ public String edit() {
+ return EDIT_REDIRECT;
+ }
+
+ public String search() {
+ return SEARCH_REDIRECT;
+ }
+
+}
diff --git a/jpa/employee/employee.web/src/main/webapp/WEB-INF/template.jsf b/jpa/employee/employee.web/src/main/webapp/WEB-INF/template.jsf
index f6a94e9..4e6a702 100644
--- a/jpa/employee/employee.web/src/main/webapp/WEB-INF/template.jsf
+++ b/jpa/employee/employee.web/src/main/webapp/WEB-INF/template.jsf
@@ -23,11 +23,11 @@
<h1 class="title">Employee Example</h1>
<nav> <h:form>
<ul>
- <li><h:commandLink action="/index?faces-redirect=true"
+ <li><h:commandLink action="#{navigation.home}"
value="Home" /></li>
- <li><h:commandLink action="/about?faces-redirect=true"
+ <li><h:commandLink action="#{navigation.about}"
value="About" /></li>
- <li><h:commandLink action="/admin?faces-redirect=true"
+ <li><h:commandLink action="#{navigation.admin}"
value="Admin" /></li>
</ul>
</h:form></nav> </header>
@@ -47,7 +47,7 @@
</div>
</div>
- <h:outputText value="#{diagnosticsTrace.messages}" />
+ <h:outputText value="#{admin.messages}"/>
<div id="footer-container">
<footer class="wrapper"> <h:messages /> </footer>
</div>
diff --git a/jpa/employee/employee.web/src/main/webapp/about.xhtml b/jpa/employee/employee.web/src/main/webapp/about.xhtml
index d95804c..0b3b2ca 100644
--- a/jpa/employee/employee.web/src/main/webapp/about.xhtml
+++ b/jpa/employee/employee.web/src/main/webapp/about.xhtml
@@ -13,8 +13,7 @@
<p>This example illustrates how EclipseLink can be used</p>
<h2>Links</h2>
<ul>
- <a href="http://wiki.eclipse.org/EclipseLink/Examples/JPA/Employee">Wiki
- page</a>
+ <li><a href="http://wiki.eclipse.org/EclipseLink/Examples/JPA/Employee">Wiki page</a></li>
</ul>
</ui:define>
diff --git a/jpa/employee/employee.web/src/main/webapp/employee/results.xhtml b/jpa/employee/employee.web/src/main/webapp/employee/results.xhtml
index 1b0c2bc..d271358 100644
--- a/jpa/employee/employee.web/src/main/webapp/employee/results.xhtml
+++ b/jpa/employee/employee.web/src/main/webapp/employee/results.xhtml
@@ -28,6 +28,8 @@
<h:column>
<h:commandButton value="Edit" action="#{employeeResults.edit(emp)}"
class="button-small" />
+ <h:commandButton value="Delete" action="#{employeeResults.delete(emp)}"
+ class="button-small" rendered="false"/>
</h:column>
<f:facet name="footer" rendered="#{employeeResults.hasPaging}">
diff --git a/jpa/employee/employee.web/src/main/webapp/index.xhtml b/jpa/employee/employee.web/src/main/webapp/index.xhtml
index 1b7c01e..ffc89a8 100644
--- a/jpa/employee/employee.web/src/main/webapp/index.xhtml
+++ b/jpa/employee/employee.web/src/main/webapp/index.xhtml
@@ -25,13 +25,13 @@
</div>
<div align="right">
<h:commandLink value="Advanced Search"
- action="employee/search?faces-redirect=true" />
+ action="#{navigation.search}" />
</div>
</h:panelGroup>
<h:panelGroup>
<div align="center">
- <h:commandButton action="/employee/edit?faces-redirect=true"
- value="Create" class="menu-button" />
+ <h:commandButton action="#{navigation.edit}" value="Create"
+ class="menu-button" />
</div>
</h:panelGroup>
</h:panelGrid>