diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/GlobalPropertiesBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/GlobalPropertiesBean.java index 3ea423fd4ee8d2f455bc9fd5476b4cc8b26342fc..7ce2185227c0446a749e7804fc2c3358c80b7cd3 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/GlobalPropertiesBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/GlobalPropertiesBean.java @@ -20,6 +20,8 @@ import java.io.IOException; import java.util.Properties; import java.util.ResourceBundle; +import javax.faces.application.FacesMessage; +import javax.faces.application.FacesMessage.Severity; import javax.faces.bean.ApplicationScoped; import javax.faces.bean.ManagedBean; import javax.faces.context.FacesContext; @@ -29,11 +31,11 @@ import kieker.common.logging.LogFactory; /** * The class {@link GlobalPropertiesBean} is an application-scoped JSF bean, containing the necessary properties and constants for the application. It reads them - * from one or more properties-files to allow the simple modification of parameters without a necessary recompiling of the whole application.<br> + * from one or more properties-files and resource bundles to allow the simple modification of parameters without a necessary recompiling of the whole + * application.<br> * It is application-scoped as only one instance of this class is necessary. * * @author Nils Christian Ehmke - * @version 1.0 */ @ManagedBean @ApplicationScoped @@ -77,12 +79,12 @@ public final class GlobalPropertiesBean { } catch (final IOException ex) { // If this exception occurs there isn't much we can do. This means the resource isn't available. We can't shutdown the whole application, so instead we // log the error. - GlobalPropertiesBean.LOG.error("An error occured during the loading of the properties", ex); + GlobalPropertiesBean.LOG.error("An error occured during the initialization of the propertiess.", ex); } } /** - * Delivers the default theme. + * This method delivers the default theme stored in the properties file. * * @return The value of the property. */ @@ -91,7 +93,8 @@ public final class GlobalPropertiesBean { } /** - * Delivers the name of the theme cookie. + * This method delivers the name of the theme cookie stored in the properties file. This cookie name should only be used to (re)store the current user's look and + * feel. * * @return The value of the property. */ @@ -100,7 +103,7 @@ public final class GlobalPropertiesBean { } /** - * Delivers the key name of the theme within the faces context. + * This method delivers the key name of the theme within the faces context. This key can be used to load the default theme from the faces context if necessary. * * @return The value of the property. */ @@ -109,7 +112,7 @@ public final class GlobalPropertiesBean { } /** - * Delivers the redirecting-link to the project overview page. + * This method delivers the redirecting-link to the project overview page. * * @return The value of the property. */ @@ -118,7 +121,7 @@ public final class GlobalPropertiesBean { } /** - * Delivers the name of the cookie for the grid size within the analysis editor. + * This method delivers the name of the cookie for the grid size within the analysis editor. * * @return The value of the property. */ @@ -127,7 +130,7 @@ public final class GlobalPropertiesBean { } /** - * Delivers the name of the cookie for the grid color within the analysis editor. + * This method delivers the name of the cookie for the grid color within the analysis editor. * * @return The value of the property. */ @@ -136,7 +139,7 @@ public final class GlobalPropertiesBean { } /** - * Delivers the default grid size within the analysis editor. + * This method delivers the default grid size within the analysis editor. * * @return The value of the property. */ @@ -145,7 +148,7 @@ public final class GlobalPropertiesBean { } /** - * Delivers the default grid color within the analysis editor. + * This method delivers the default grid color within the analysis editor. * * @return The value of the property. */ @@ -153,52 +156,126 @@ public final class GlobalPropertiesBean { return this.globalProperties.getProperty(GlobalPropertiesBean.PROPERTY_ANALYSIS_EDITOR_DEFAULT_GRID_COLOR); } + /** + * This method delivers the localized message, which can be used if the loading of a project resulted in an exception. + * + * @return The value of the property. + */ public String getMsgProjectLoadingException() { return GlobalPropertiesBean.getLocalizedString(GlobalPropertiesBean.PROPERTY_MSG_PROJECT_LOADING_EXCEPTION); } + /** + * This method delivers the localized message, which can be used if a project has been saved. + * + * @return The value of the property. + */ public String getMsgProjectSaved() { return GlobalPropertiesBean.getLocalizedString(GlobalPropertiesBean.PROPERTY_MSG_PROJECT_SAVED); } + /** + * This method delivers the localized message, which can be used if the creation of a plugin resulted in an exception. + * + * @return The value of the property. + */ public String getMsgPluginCreationException() { return GlobalPropertiesBean.getLocalizedString(GlobalPropertiesBean.PROPERTY_MSG_PLUGIN_CREATION_EXCEPTION); } + /** + * This method delivers the localized message, which can be used if he creation of a repository resulted in an exception. + * + * @return The value of the property. + */ public String getMsgRepositoryCreationException() { return GlobalPropertiesBean.getLocalizedString(GlobalPropertiesBean.PROPERTY_MSG_REPOSITORY_CREATION_EXCEPTION); } + /** + * This method delivers the localized message, which can be used if a library has been uploaded. + * + * @return The value of the property. + */ public String getMsgLibraryUploaded() { return GlobalPropertiesBean.getLocalizedString(GlobalPropertiesBean.PROPERTY_MSG_LIBRARY_UPLOADED); } + /** + * This method delivers the localized message, which can be used if a project has been created. + * + * @return The value of the property. + */ public String getMsgProjectCreated() { return GlobalPropertiesBean.getLocalizedString(GlobalPropertiesBean.PROPERTY_MSG_PROJECT_CREATED); } + /** + * This method delivers the localized message, which can be used if the saving of a project failed. + * + * @return The value of the property. + */ public String getMsgProjectSavingException() { return GlobalPropertiesBean.getLocalizedString(GlobalPropertiesBean.PROPERTY_MSG_PROJECT_SAVING_EXCEPTION); } + /** + * This method delivers the localized message, which can be used if a project does not exist. + * + * @return The value of the property. + */ public String getMsgProjectNotExistingException() { return GlobalPropertiesBean.getLocalizedString(GlobalPropertiesBean.PROPERTY_MSG_PROJECT_NOT_EXISTING_EXCEPTION); } + /** + * This method delivers the localized message, which can be used if a project has been modified externally. + * + * @return The value of the property. + */ public String getMsgProjectModified() { return GlobalPropertiesBean.getLocalizedString(GlobalPropertiesBean.PROPERTY_MSG_PROJECT_MODIFIED); } + /** + * This method delivers the localized message, which can be used if a library does not exist. + * + * @return The value of the property. + */ public String getMsgLibraryExistingException() { return GlobalPropertiesBean.getLocalizedString(GlobalPropertiesBean.PROPERTY_MSG_LIBRARY_EXISTING_EXCEPTION); } + /** + * This method delivers the localized message, which can be used if the uploading of a library failed. + * + * @return The value of the property. + */ public String getMsgLibraryUploadingException() { return GlobalPropertiesBean.getLocalizedString(GlobalPropertiesBean.PROPERTY_MSG_LIBRARY_UPLOADING_EXCEPTION); } + /** + * Delivers the localized property for the given key. + * + * @param key + * They key of the property. + * @return The value for the current locale (in the current faces context) from the common resource bundle. + */ private static String getLocalizedString(final String key) { // Get the correct resource bundle for the current language (taken from the current context) and search it for the given key return ResourceBundle.getBundle(GlobalPropertiesBean.RESOURCE_BUNDLE_NAME, FacesContext.getCurrentInstance().getELContext().getLocale()).getString(key); } + + /** + * This method shows the current user a message by using the growl-component of PrimeFaces. + * + * @param severity + * The severity of the message. + * @param msg + * The message itself. + */ + public static void showMessage(final Severity severity, final String msg) { + FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(severity, "", msg)); + } } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ProjectsBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ProjectsBean.java index d2273bd0230aa54960211c045ff511335f8923ed..233d1cf27b9d34c8cf5fc0b1e44f41b19a2912cc 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ProjectsBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ProjectsBean.java @@ -24,10 +24,8 @@ import java.util.List; import javax.annotation.PostConstruct; import javax.faces.application.FacesMessage; -import javax.faces.application.FacesMessage.Severity; import javax.faces.bean.ApplicationScoped; import javax.faces.bean.ManagedBean; -import javax.faces.context.FacesContext; import kieker.analysis.model.analysisMetaModel.MIProject; import kieker.common.logging.Log; @@ -47,7 +45,6 @@ import kieker.webgui.common.exception.ProjectNotExistingException; * As this bean contains the whole list of the available projects, it is application scoped. There is no reason for multiple instances of this class. * * @author Nils Christian Ehmke - * @version 1.0 */ @ManagedBean @ApplicationScoped @@ -59,6 +56,7 @@ public final class ProjectsBean { private static final String DEFAULT_ANALYSIS_STATE = ""; private final List<String> projects = Collections.synchronizedList(new ArrayList<String>()); + private final IProjectManagerFacade projectManagerFacade = ProjectManagerFacade.getInstance(); /** @@ -95,15 +93,15 @@ public final class ProjectsBean { // If there were no exception, everything went well. We can add the project to our list. this.projects.add(project); // Inform the user - ProjectsBean.showMessage(FacesMessage.SEVERITY_INFO, "Project created."); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_INFO, "Project created."); // Update the list of the "calling" bean CurrentProjectOverviewBean.getCurrentInstance().updateLists(); } catch (final IOException ex) { ProjectsBean.LOG.error("An error occured while creating the project.", ex); - ProjectsBean.showMessage(FacesMessage.SEVERITY_ERROR, "An error occured while creating the project."); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_ERROR, "An error occured while creating the project."); } catch (final ProjectAlreadyExistingException ex) { ProjectsBean.LOG.info("A project with the same name exists already.", ex); - ProjectsBean.showMessage(FacesMessage.SEVERITY_WARN, "A project with the same name exists already."); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_WARN, "A project with the same name exists already."); } } @@ -126,19 +124,19 @@ public final class ProjectsBean { // If there were no exception, everything went well. We can add the project to our list. this.projects.add(destinationProject); // Inform the user - ProjectsBean.showMessage(FacesMessage.SEVERITY_INFO, "Project created."); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_INFO, "Project created."); // Update the list of the "calling" bean CurrentProjectOverviewBean.getCurrentInstance().updateLists(); } catch (final IOException ex) { ProjectsBean.LOG.error("An error occured while creating the project.", ex); - ProjectsBean.showMessage(FacesMessage.SEVERITY_ERROR, "An error occured while creating the project."); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_ERROR, "An error occured while creating the project."); ex.printStackTrace(); } catch (final ProjectAlreadyExistingException ex) { ProjectsBean.LOG.info("A project with the same name exists already.", ex); - ProjectsBean.showMessage(FacesMessage.SEVERITY_WARN, "A project with the same name exists already."); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_WARN, "A project with the same name exists already."); } catch (final ProjectNotExistingException ex) { ProjectsBean.LOG.info("A project with the given name does not exist.", ex); - ProjectsBean.showMessage(FacesMessage.SEVERITY_WARN, "A project with the given name does not exist."); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_WARN, "A project with the given name does not exist."); } } @@ -213,16 +211,4 @@ public final class ProjectsBean { return ProjectsBean.DEFAULT_ANALYSIS_STATE; } } - - /** - * This method shows the current user a message by using the growl-component of PrimeFaces. - * - * @param severity - * The severity of the message. - * @param msg - * The message itself. - */ - private static void showMessage(final Severity severity, final String msg) { - FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(severity, "", msg)); - } } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ThemeSwitcherBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ThemeSwitcherBean.java index 1edbb59b835ebc32a92d838748a85daf666d6b36..a07118a6463fe9336d160a716d814495ca61d087 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ThemeSwitcherBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/application/ThemeSwitcherBean.java @@ -30,7 +30,6 @@ import javax.faces.bean.ManagedBean; * As the list with the available themes is a static list, this class is an application scoped JSF managed bean. * * @author Nils Christian Ehmke - * @version 1.0 */ @ManagedBean @ApplicationScoped diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/StringBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/StringBean.java index 670ede8f97aa78d4a32d53e867f016f9be9ab316..bc613022f5d27b17c22fc77996867b79024d2494 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/StringBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/request/StringBean.java @@ -25,7 +25,6 @@ import javax.faces.bean.RequestScoped; * For technical reasons this bean is a request scoped bean. * * @author Nils Christian Ehmke - * @version 1.0 */ @ManagedBean @RequestScoped diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentConfigurationBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentConfigurationBean.java index 76c6776181afb5e65efcc4399a8607bdc0cb7cdc..02994fee3e7091a92d7bb6f66effa55a35f9d15c 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentConfigurationBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/CurrentConfigurationBean.java @@ -33,7 +33,6 @@ import kieker.webgui.beans.application.GlobalPropertiesBean; * It is session-scoped as only one instance per user is necessary. * * @author Nils Christian Ehmke - * @version 1.0 */ @ManagedBean @SessionScoped diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/UserBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/UserBean.java index a8234979fab1fbf4cc200a5d0138b07121b1804c..04fa8a0d5bb649deddc3dad488e62a1394e4672a 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/UserBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/session/UserBean.java @@ -27,7 +27,6 @@ import kieker.webgui.beans.application.GlobalPropertiesBean; * This class is a JSF managed bean with session scope. This means also that it is possible to login the same user multiple times. * * @author Nils Christian Ehmke - * @version 1.0 */ @ManagedBean @SessionScoped @@ -65,10 +64,21 @@ public final class UserBean { this.userName = name; } + /** + * Delivers the stored password. + * + * @return The password. + */ public String getPassword() { return this.password; } + /** + * Sets the password which should be stored in this bean. + * + * @param password + * The new value for the password. + */ public void setPassword(final String password) { this.password = password; } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorBean.java index a86b2db7bf2e6c53a880058412db431532a0fcf0..948bdda9d1d145bf11550221806b8bd415fa4bda 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorBean.java @@ -26,7 +26,6 @@ import java.util.Collections; import java.util.List; import javax.faces.application.FacesMessage; -import javax.faces.application.FacesMessage.Severity; import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedProperty; import javax.faces.bean.ViewScoped; @@ -83,7 +82,6 @@ import org.eclipse.emf.ecore.EObject; * the type {@link Object} instead of more specific types to avoid incompatibilities between the multiple loaded classes. * * @author Nils Christian Ehmke - * @version 1.0 */ @ManagedBean @ViewScoped @@ -141,6 +139,7 @@ public final class CurrentAnalysisEditorBean { */ private EObject selectedComponent; private final IProjectManagerFacade projectManagerFacade = ProjectManagerFacade.getInstance(); + @ManagedProperty(value = "#{projectsBean}") private ProjectsBean projectsBean; @@ -245,11 +244,11 @@ public final class CurrentAnalysisEditorBean { } } catch (final ProjectLoadException ex) { CurrentAnalysisEditorBean.LOG.error("An error occured while loading the project.", ex); - CurrentAnalysisEditorBean.showMessage(FacesMessage.SEVERITY_ERROR, this.globalPropertiesBean.getMsgProjectLoadingException()); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_ERROR, this.globalPropertiesBean.getMsgProjectLoadingException()); } catch (final NullPointerException ex) { // This exception can occur, when a property has not been initialized CurrentAnalysisEditorBean.LOG.error("An error occured while loading the project.", ex); - CurrentAnalysisEditorBean.showMessage(FacesMessage.SEVERITY_ERROR, this.globalPropertiesBean.getMsgProjectLoadingException()); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_ERROR, this.globalPropertiesBean.getMsgProjectLoadingException()); } } } @@ -345,24 +344,23 @@ public final class CurrentAnalysisEditorBean { } for (final Class<?> plugin : plugins) { - if (!Modifier.isAbstract(plugin.getModifiers())) { - // Make also sure that the current plugin is not "programmaticOnly" - final Annotation annotationPlugin = plugin.getAnnotation(this.classAndMethodContainer.getPluginAnnotationClass()); - final boolean programmaticOnly = (Boolean) ClassAndMethodContainer.invokeMethod(this.classAndMethodContainer.getPluginProgrammaticOnlyMethod(), - annotationPlugin, false); - if (!programmaticOnly) { - // The following cast results in the unchecked-cast-warnings, but we know that the cast should be correct. - if (this.classAndMethodContainer.getAbstractFilterPluginClass().isAssignableFrom(plugin)) { - this.availableFilters.add((Class<AbstractFilterPlugin>) plugin); - } else { - if (this.classAndMethodContainer.getAbstractReaderPluginClass().isAssignableFrom(plugin)) { - this.availableReaders.add((Class<AbstractReaderPlugin>) plugin); - } + // Make sure that the current plugin is neither abstract nor "programmaticOnly" + final Annotation annotationPlugin = plugin.getAnnotation(this.classAndMethodContainer.getPluginAnnotationClass()); + final boolean programmaticOnly = (Boolean) ClassAndMethodContainer.invokeMethod(this.classAndMethodContainer.getPluginProgrammaticOnlyMethod(), + annotationPlugin, false); + final boolean isAbstract = Modifier.isAbstract(plugin.getModifiers()); + + if (!isAbstract && !programmaticOnly) { + // The following cast results in the unchecked-cast-warnings, but we know that the cast should be correct. + if (this.classAndMethodContainer.getAbstractFilterPluginClass().isAssignableFrom(plugin)) { + this.availableFilters.add((Class<AbstractFilterPlugin>) plugin); + } else { + if (this.classAndMethodContainer.getAbstractReaderPluginClass().isAssignableFrom(plugin)) { + this.availableReaders.add((Class<AbstractReaderPlugin>) plugin); } } } } - } } @@ -676,7 +674,7 @@ public final class CurrentAnalysisEditorBean { final MIDependency lib; synchronized (this) { this.projectManagerFacade.uploadLibrary(file, this.projectName); - CurrentAnalysisEditorBean.showMessage(FacesMessage.SEVERITY_INFO, this.globalPropertiesBean.getMsgLibraryUploaded()); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_INFO, this.globalPropertiesBean.getMsgLibraryUploaded()); // As it seem to have worked, we can add the library to our model. lib = this.factory.createDependency(); lib.setFilePath(file.getFileName()); @@ -690,19 +688,19 @@ public final class CurrentAnalysisEditorBean { this.initializeToolPalette(); } catch (final LibraryAlreadyExistingException ex) { CurrentAnalysisEditorBean.LOG.info("A library with the same name exists already.", ex); - CurrentAnalysisEditorBean.showMessage(FacesMessage.SEVERITY_WARN, this.globalPropertiesBean.getMsgLibraryExistingException()); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_WARN, this.globalPropertiesBean.getMsgLibraryExistingException()); } catch (final IOException ex) { CurrentAnalysisEditorBean.LOG.error("An error occured while uploading the library.", ex); - CurrentAnalysisEditorBean.showMessage(FacesMessage.SEVERITY_ERROR, this.globalPropertiesBean.getMsgLibraryUploadingException()); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_ERROR, this.globalPropertiesBean.getMsgLibraryUploadingException()); } catch (final ProjectLoadException ex) { CurrentAnalysisEditorBean.LOG.error("An error occured while uploading the library.", ex); - CurrentAnalysisEditorBean.showMessage(FacesMessage.SEVERITY_ERROR, this.globalPropertiesBean.getMsgLibraryUploadingException()); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_ERROR, this.globalPropertiesBean.getMsgLibraryUploadingException()); } catch (final ProjectNotExistingException ex) { CurrentAnalysisEditorBean.LOG.error("Project does not exist.", ex); - CurrentAnalysisEditorBean.showMessage(FacesMessage.SEVERITY_ERROR, this.globalPropertiesBean.getMsgProjectNotExistingException()); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_ERROR, this.globalPropertiesBean.getMsgProjectNotExistingException()); } catch (final LibraryLoadException ex) { CurrentAnalysisEditorBean.LOG.error("An error occured while uploading the library.", ex); - CurrentAnalysisEditorBean.showMessage(FacesMessage.SEVERITY_ERROR, this.globalPropertiesBean.getMsgLibraryUploadingException()); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_ERROR, this.globalPropertiesBean.getMsgLibraryUploadingException()); } } @@ -767,20 +765,20 @@ public final class CurrentAnalysisEditorBean { synchronized (this) { try { this.projectManagerFacade.saveProject(this.projectName, this.project, this.timeStamp, overwriteNewerProject); - CurrentAnalysisEditorBean.showMessage(FacesMessage.SEVERITY_INFO, this.globalPropertiesBean.getMsgProjectSaved()); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_INFO, this.globalPropertiesBean.getMsgProjectSaved()); // Update the time stamp! this.resetTimeStamp(); } catch (final IOException ex) { CurrentAnalysisEditorBean.LOG.error("An error occured while saving the project.", ex); - CurrentAnalysisEditorBean.showMessage(FacesMessage.SEVERITY_ERROR, this.globalPropertiesBean.getMsgProjectSavingException()); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_ERROR, this.globalPropertiesBean.getMsgProjectSavingException()); } catch (final NewerProjectException ex) { CurrentAnalysisEditorBean.LOG.info("The project has been modified externally in the meanwhile.", ex); - CurrentAnalysisEditorBean.showMessage(FacesMessage.SEVERITY_WARN, this.globalPropertiesBean.getMsgProjectModified()); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_WARN, this.globalPropertiesBean.getMsgProjectModified()); // Give the user the possibility to force-save the project RequestContext.getCurrentInstance().execute("forceSaveDlg.show()"); } catch (final ProjectNotExistingException ex) { CurrentAnalysisEditorBean.LOG.error("The project does not exist.", ex); - CurrentAnalysisEditorBean.showMessage(FacesMessage.SEVERITY_ERROR, this.globalPropertiesBean.getMsgProjectNotExistingException()); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_ERROR, this.globalPropertiesBean.getMsgProjectNotExistingException()); } } } @@ -898,7 +896,7 @@ public final class CurrentAnalysisEditorBean { } } catch (final NoClassDefFoundError ex) { // This exception can occur if (for example) a class is missing - CurrentAnalysisEditorBean.showMessage(FacesMessage.SEVERITY_ERROR, this.globalPropertiesBean.getMsgRepositoryCreationException()); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_ERROR, this.globalPropertiesBean.getMsgRepositoryCreationException()); CurrentAnalysisEditorBean.LOG.error("An error occured during the creation of the repository. Check the dependencies.", ex); } } @@ -939,7 +937,7 @@ public final class CurrentAnalysisEditorBean { } } catch (final NoClassDefFoundError ex) { // This exception can occur if (for example) a class is missing - CurrentAnalysisEditorBean.showMessage(FacesMessage.SEVERITY_ERROR, this.globalPropertiesBean.getMsgPluginCreationException()); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_ERROR, this.globalPropertiesBean.getMsgPluginCreationException()); CurrentAnalysisEditorBean.LOG.error("An error occured during the creation of the plugin. Check the dependencies.", ex); } } @@ -1032,18 +1030,6 @@ public final class CurrentAnalysisEditorBean { } } - /** - * This method shows the current user a message by using the growl-component of PrimeFaces. - * - * @param severity - * The severity of the message. - * @param msg - * The message itself. - */ - private static void showMessage(final Severity severity, final String msg) { - FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(severity, "", msg)); - } - /** * The getter for the property {@link CurrentAnalysisEditorBean#currentConfigurationBean}. * @@ -1194,10 +1180,21 @@ public final class CurrentAnalysisEditorBean { } } + /** + * The getter for the property {@link CurrentAnalysisEditorBean#globalPropertiesBean}. + * + * @return The current value of the property. + */ public GlobalPropertiesBean getGlobalPropertiesBean() { return this.globalPropertiesBean; } + /** + * The setter for the property {@link CurrentAnalysisEditorBean#globalPropertiesBean}. + * + * @param globalPropertiesBean + * The new value of the property. + */ public void setGlobalPropertiesBean(final GlobalPropertiesBean globalPropertiesBean) { this.globalPropertiesBean = globalPropertiesBean; } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorGraphBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorGraphBean.java index 030cab757185ed5396bb4ad4f9656859619d5257..bb3d0bd55473384ef3704e866eeff8de6ded0fcf 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorGraphBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentAnalysisEditorGraphBean.java @@ -46,7 +46,6 @@ import org.eclipse.emf.ecore.EObject; * problems. * * @author Nils Christian Ehmke - * @version 1.0 */ @ManagedBean @ViewScoped diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitBean.java index 7ec0410abe451f02a0caca28e919b43662b18b27..fa600e6282edb873c49958a357f0c1c196ceb7d6 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitBean.java @@ -19,7 +19,6 @@ package kieker.webgui.beans.view; import java.io.IOException; import javax.faces.application.FacesMessage; -import javax.faces.application.FacesMessage.Severity; import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedProperty; import javax.faces.bean.ViewScoped; @@ -29,6 +28,7 @@ import kieker.analysis.model.analysisMetaModel.MIProject; import kieker.analysis.model.analysisMetaModel.MIView; import kieker.common.logging.Log; import kieker.common.logging.LogFactory; +import kieker.webgui.beans.application.GlobalPropertiesBean; import kieker.webgui.beans.application.ProjectsBean; import kieker.webgui.common.ClassAndMethodContainer; import kieker.webgui.common.IProjectManagerFacade; @@ -43,7 +43,6 @@ import kieker.webgui.common.exception.ProjectNotExistingException; * problems. * * @author Nils Christian Ehmke - * @version 1.0 */ @ManagedBean @ViewScoped @@ -56,6 +55,7 @@ public final class CurrentCockpitBean { private MIProject project; private MIView activeView; private ClassAndMethodContainer classAndMethodContainer; + @ManagedProperty(value = "#{projectsBean}") private ProjectsBean projectsBean; @@ -132,14 +132,14 @@ public final class CurrentCockpitBean { } } catch (final ProjectNotExistingException ex) { CurrentCockpitBean.LOG.error("An error occured while loading the project.", ex); - CurrentCockpitBean.showMessage(FacesMessage.SEVERITY_ERROR, "An error occured while loading the project."); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_ERROR, "An error occured while loading the project."); } catch (final IOException ex) { CurrentCockpitBean.LOG.error("An error occured while loading the project.", ex); - CurrentCockpitBean.showMessage(FacesMessage.SEVERITY_ERROR, "An error occured while loading the project."); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_ERROR, "An error occured while loading the project."); } catch (final NullPointerException ex) { // This exception occurs, when the projectsBean has not been initialized CurrentCockpitBean.LOG.error("An error occured while loading the project.", ex); - CurrentCockpitBean.showMessage(FacesMessage.SEVERITY_ERROR, "An error occured while loading the project."); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_ERROR, "An error occured while loading the project."); } } } @@ -219,16 +219,4 @@ public final class CurrentCockpitBean { this.activeView = activeView; } } - - /** - * This method shows the current user a message by using the growl-component of PrimeFaces. - * - * @param severity - * The severity of the message. - * @param msg - * The message itself. - */ - private static void showMessage(final Severity severity, final String msg) { - FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(severity, "", msg)); - } } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitEditorBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitEditorBean.java index c680b71e8ddb387e4abb41205de501d56a2bca7f..929d33c23a4bf8abb8c847cd44fab64add75937e 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitEditorBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentCockpitEditorBean.java @@ -24,7 +24,6 @@ import java.util.List; import java.util.UUID; import javax.faces.application.FacesMessage; -import javax.faces.application.FacesMessage.Severity; import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedProperty; import javax.faces.bean.ViewScoped; @@ -42,6 +41,7 @@ import kieker.analysis.model.analysisMetaModel.impl.MAnalysisMetaModelFactory; import kieker.analysis.plugin.AbstractPlugin; import kieker.common.logging.Log; import kieker.common.logging.LogFactory; +import kieker.webgui.beans.application.GlobalPropertiesBean; import kieker.webgui.beans.application.ProjectsBean; import kieker.webgui.common.ClassAndMethodContainer; import kieker.webgui.common.IProjectManagerFacade; @@ -59,7 +59,6 @@ import org.primefaces.event.TabChangeEvent; * problems. * * @author Nils Christian Ehmke - * @version 1.0 */ @ManagedBean @ViewScoped @@ -88,8 +87,10 @@ public final class CurrentCockpitEditorBean { * This is the currently selected view. */ private MIView activeView; + @ManagedProperty(value = "#{projectsBean}") private ProjectsBean projectsBean; + private final IProjectManagerFacade projectManagerFacade = ProjectManagerFacade.getInstance(); private ClassAndMethodContainer classAndMethodContainer; private ClassLoader classLoader; @@ -141,7 +142,7 @@ public final class CurrentCockpitEditorBean { } } catch (final ProjectLoadException ex) { CurrentCockpitEditorBean.LOG.error("An error occured while loading the project.", ex); - CurrentCockpitEditorBean.showMessage(FacesMessage.SEVERITY_ERROR, "An error occured while loading the project."); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_ERROR, "An error occured while loading the project."); } } } @@ -256,36 +257,24 @@ public final class CurrentCockpitEditorBean { synchronized (this) { try { this.projectManagerFacade.saveProject(this.projectName, this.project, this.timeStamp, overwriteNewerProject); - CurrentCockpitEditorBean.showMessage(FacesMessage.SEVERITY_INFO, "Project saved."); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_INFO, "Project saved."); // Update the time stamp! this.resetTimeStamp(); } catch (final IOException ex) { CurrentCockpitEditorBean.LOG.error("An error occured while saving the projet.", ex); - CurrentCockpitEditorBean.showMessage(FacesMessage.SEVERITY_ERROR, "An error occured while saving the project."); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_ERROR, "An error occured while saving the project."); } catch (final NewerProjectException ex) { CurrentCockpitEditorBean.LOG.info("The project has been modified externally in the meanwhile.", ex); - CurrentCockpitEditorBean.showMessage(FacesMessage.SEVERITY_WARN, "The project has been modified externally in the meanwhile."); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_WARN, "The project has been modified externally in the meanwhile."); // Give the user the possibility to force-save the project RequestContext.getCurrentInstance().execute("forceSaveDlg.show()"); } catch (final ProjectNotExistingException ex) { CurrentCockpitEditorBean.LOG.error("A project with the given name does not exist.", ex); - CurrentCockpitEditorBean.showMessage(FacesMessage.SEVERITY_ERROR, "A project with the given name does not exist."); + GlobalPropertiesBean.showMessage(FacesMessage.SEVERITY_ERROR, "A project with the given name does not exist."); } } } - /** - * This method shows the current user a message by using the growl-component of PrimeFaces. - * - * @param severity - * The severity of the message. - * @param msg - * The message itself. - */ - private static void showMessage(final Severity severity, final String msg) { - FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(severity, "", msg)); - } - /** * This method sets the time stamp to the current system time. */ diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentControllerBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentControllerBean.java index c115ae7871a1fad873779f807cc4f4e2f36ec1e5..864df7ce37b94f801cd7d496812cb300b6a5cef3 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentControllerBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentControllerBean.java @@ -45,7 +45,6 @@ import kieker.webgui.common.exception.ProjectNotExistingException; * make sure that one user (even in one session) can open multiple projects at a time without causing any problems. * * @author Nils Christian Ehmke - * @version 1.0 */ @ManagedBean @ViewScoped @@ -288,7 +287,7 @@ public final class CurrentControllerBean { } /** - * Delivers the available log entries. + * Delivers the available log entries of the current analysis controller instance. * * @return The current log entries. */ @@ -301,6 +300,11 @@ public final class CurrentControllerBean { } } + /** + * Delivers the available log entries of the current view. + * + * @return The current log entries. + */ public Collection<String> getViewLog() { return this.logEntries; } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentProjectOverviewBean.java b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentProjectOverviewBean.java index 50865909c2cb99d7b9f92d42c85d8eb63ca2e62a..fdefb1fcc7333f678a78708d54b8d78771289e38 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentProjectOverviewBean.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/beans/view/CurrentProjectOverviewBean.java @@ -35,7 +35,6 @@ import org.primefaces.event.SelectEvent; * The class is a JSF managed bean with view scope. * * @author Nils Christian Ehmke - * @version 1.0 */ @ManagedBean @ViewScoped @@ -90,7 +89,7 @@ public final class CurrentProjectOverviewBean { * This method should only be called automatically by the JVM to update the projects list. */ @PostConstruct - protected void init() { + protected void initialialize() { this.updateLists(); } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/ClassAndMethodContainer.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/ClassAndMethodContainer.java index 267dd7f74b2e963e16678728b985ba960f4dbe42..db1936b2b003622bcdcfb514c75a919983049422 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/ClassAndMethodContainer.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/ClassAndMethodContainer.java @@ -51,7 +51,6 @@ import kieker.webgui.common.exception.ProjectLoadException; * loader. This will result in multiple version of one and the same class and therefore in problems, if one doesn't use the correct class version. * * @author Nils Christian Ehmke - * @version 1.0 */ public final class ClassAndMethodContainer { @@ -244,6 +243,7 @@ public final class ClassAndMethodContainer { @SuppressWarnings("unchecked") public ClassAndMethodContainer(final ClassLoader classLoader) throws ProjectLoadException { try { + // For the first: Use the classloader the load all classes we will need. this.logImplWebguiLoggingClass = classLoader.loadClass(LogImplWebguiLogging.class.getName()); this.analysisControllerWithMappingClass = classLoader.loadClass(AnalysisControllerWithMapping.class.getName()); @@ -258,6 +258,7 @@ public final class ClassAndMethodContainer { this.plainTextClass = classLoader.loadClass(PlainText.class.getName()); this.imageClass = classLoader.loadClass(Image.class.getName()); + // Now we load the more specific annotation classes this.pluginAnnotationClass = (Class<? extends Annotation>) classLoader.loadClass(Plugin.class.getName()); this.repositoryAnnotationClass = (Class<? extends Annotation>) classLoader.loadClass(Repository.class.getName()); this.propertyAnnotationClass = (Class<? extends Annotation>) classLoader.loadClass(Property.class.getName()); @@ -266,6 +267,7 @@ public final class ClassAndMethodContainer { this.repositoryPortAnnotationClass = (Class<? extends Annotation>) classLoader.loadClass(RepositoryPort.class.getName()); this.displayAnnotationClass = (Class<? extends Annotation>) classLoader.loadClass(Display.class.getName()); + // The following part has to be done carefully: The methods will be loaded via the name this.pluginDescriptionMethod = this.pluginAnnotationClass.getMethod("description", new Class<?>[0]); this.repositoryDescriptionMethod = this.repositoryAnnotationClass.getMethod("description", new Class<?>[0]); this.pluginConfigurationMethod = this.pluginAnnotationClass.getMethod("configuration", new Class<?>[0]); @@ -308,6 +310,7 @@ public final class ClassAndMethodContainer { } this.analysisControllerThreadJoin = joinMethod; + // Now the constructors this.analysisControllerThreadConstructor = this.analysisControllerThreadClass.getConstructor(this.analysisControllerClass); } catch (final ClassNotFoundException ex) { ClassAndMethodContainer.LOG.error(ClassAndMethodContainer.MSG_LOAD_EXCEPTION, ex); @@ -711,18 +714,38 @@ public final class ClassAndMethodContainer { return this.repositoryDependenciesMethod; } + /** + * The getter-method for the field {@link ClassAndMethodContainer#pluginProgrammaticOnlyMethod}. + * + * @return The value of the field. + */ public Method getPluginProgrammaticOnlyMethod() { return this.pluginProgrammaticOnlyMethod; } + /** + * The getter-method for the field {@link ClassAndMethodContainer#repositoryProgrammaticOnlyMethod}. + * + * @return The value of the field. + */ public Method getRepositoryProgrammaticOnlyMethod() { return this.repositoryProgrammaticOnlyMethod; } + /** + * The getter-method for the field {@link ClassAndMethodContainer#logImplWebguiLoggingClass}. + * + * @return The value of the field. + */ public Class<?> getLogImplWebguiLoggingClass() { return this.logImplWebguiLoggingClass; } + /** + * The getter-method for the field {@link ClassAndMethodContainer#logImplWebguiLoggingClassGetEntriesMethod}. + * + * @return The value of the field. + */ public Method getLogImplWebguiLoggingClassGetEntriesMethod() { return this.logImplWebguiLoggingClassGetEntriesMethod; } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/EnvironmentLoaderListener.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/EnvironmentLoaderListener.java index e80a11265316afd1207321f01b1a48caab294807..8ad0da88452ccfe8cff6bdc13645da5c928d3c9b 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/EnvironmentLoaderListener.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/EnvironmentLoaderListener.java @@ -19,8 +19,21 @@ package kieker.webgui.common; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; +/** + * The {@link EnvironmentLoaderListener} is a context listener, which will be activated during the initialization of the application. It is used to initialize some + * environment properties for the webgui. + * + * @author Nils Christian Ehmke + */ public class EnvironmentLoaderListener implements ServletContextListener { + /** + * Creates a new instance of this class. <b>Do not call this constructor manually. It will only be accessed by the servlet container.</b> + */ + public EnvironmentLoaderListener() { + // No code necessary + } + @Override public void contextDestroyed(final ServletContextEvent event) { // No code necessary diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/IProjectManagerFacade.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/IProjectManagerFacade.java index ea8c5fac07fa380091d85b5aa342a65eecf3d42a..32f407805052e558708c0e0b8d471b09a7dbe180 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/IProjectManagerFacade.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/IProjectManagerFacade.java @@ -42,7 +42,6 @@ import org.primefaces.model.UploadedFile; * synchronization. Latter should be guaranteed by the facade, which means that multiple requests for the same project do not go wrong. * * @author Nils Christian Ehmke - * @version 1.0 */ public interface IProjectManagerFacade { @@ -336,5 +335,14 @@ public interface IProjectManagerFacade { */ public STATE getCurrentState(final String projectName) throws ProjectNotExistingException; + /** + * This method delivers the available log entries of the analysis controller of the given project. + * + * @param projectName + * The name of the project. + * @return An array containing the entries of the log. + * @throws AnalysisStateException + * If the analysis is in an invalid state to deliver the entries. + */ public Object[] getLogEntries(final String projectName) throws AnalysisStateException; } diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/ProjectManagerFacade.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/ProjectManagerFacade.java index c9e22cf7df527012896a08d2b748b2c0d6f8113b..45836656cf5bea3df20f248f7f7fad5348c63b84 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/ProjectManagerFacade.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/ProjectManagerFacade.java @@ -45,7 +45,6 @@ import org.primefaces.model.UploadedFile; * This is an implemented facade for the project management. For technical reasons it is a singleton class. * * @author Nils Christian Ehmke - * @version 1.0 */ public final class ProjectManagerFacade implements IProjectManagerFacade { diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/AbstractKiekerWebGUIException.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/AbstractKiekerWebGUIException.java index 95aebd5f410b1338e17e65e5cdc51d04cc6f31c2..129d007a6d729df8a302ed0108be39425f49086e 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/AbstractKiekerWebGUIException.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/AbstractKiekerWebGUIException.java @@ -20,7 +20,6 @@ package kieker.webgui.common.exception; * This is the abstract base for all other exceptions used in this application. * * @author Nils Christian Ehmke - * @version 1.0 */ public abstract class AbstractKiekerWebGUIException extends RuntimeException { diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/AnalysisInitializationException.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/AnalysisInitializationException.java index c856fb2e977e9c1b47803ca3d682a04161d7d2d0..735ea76cd0f74cc1cd627ff0f5d07389f088f40a 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/AnalysisInitializationException.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/AnalysisInitializationException.java @@ -20,7 +20,6 @@ package kieker.webgui.common.exception; * This class represents an exception occurring when the analysis is instantiated. * * @author Nils Christian Ehmke - * @version 1.0 */ public final class AnalysisInitializationException extends AbstractKiekerWebGUIException { /** diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/AnalysisStateException.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/AnalysisStateException.java index e16168dbef438a7a092c5bdf5bb809c545e74135..e9b2aa180eee74040041c3bd0d31cfaf023aeb30 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/AnalysisStateException.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/AnalysisStateException.java @@ -20,7 +20,6 @@ package kieker.webgui.common.exception; * This class represents an exception occurring when the analysis is in an invalid state for the ordered method. * * @author Nils Christian Ehmke - * @version 1.0 */ public final class AnalysisStateException extends AbstractKiekerWebGUIException { /** diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/DisplayNotFoundException.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/DisplayNotFoundException.java index 0245fade2e38125b81867bb4b50dd70bafe56a57..8733d7e2536f4183d9f35d306e37eefbf33eb9e9 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/DisplayNotFoundException.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/DisplayNotFoundException.java @@ -20,7 +20,6 @@ package kieker.webgui.common.exception; * This exception occurs when a display object has been ordered, which is not available. * * @author Nils Christian Ehmke - * @version 1.0 */ public final class DisplayNotFoundException extends AbstractKiekerWebGUIException { /** diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/LibraryAlreadyExistingException.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/LibraryAlreadyExistingException.java index f8df52c547928cff93141342ca69953cb929d2e7..e00ee053bb0cb1c87ca301c480dd99c55300fd30 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/LibraryAlreadyExistingException.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/LibraryAlreadyExistingException.java @@ -20,7 +20,6 @@ package kieker.webgui.common.exception; * This exception shows that a library with the same name exists already. * * @author Nils Christian Ehmke - * @version 1.0 */ public final class LibraryAlreadyExistingException extends AbstractKiekerWebGUIException { /** diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/LibraryLoadException.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/LibraryLoadException.java index b0ce67b58a586179a963e528d07162f491966888..cc1e81aac269f1892a4d39f6fba3bd6ace4d1e4f 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/LibraryLoadException.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/LibraryLoadException.java @@ -20,7 +20,6 @@ package kieker.webgui.common.exception; * This exception shows that an error occurred while loading a library. * * @author Nils Christian Ehmke - * @version 1.0 */ public final class LibraryLoadException extends AbstractKiekerWebGUIException { /** diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/NewerProjectException.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/NewerProjectException.java index f00af8143a8c18f773a5a9e95ee3f7846b8cc50e..1e01d3f43fc2668b3a93168529d7e8227797d8e5 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/NewerProjectException.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/NewerProjectException.java @@ -21,7 +21,6 @@ package kieker.webgui.common.exception; * meanwhile. * * @author Nils Christian Ehmke - * @version 1.0 */ public final class NewerProjectException extends AbstractKiekerWebGUIException { /** diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/ProjectAlreadyExistingException.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/ProjectAlreadyExistingException.java index 38ee03195bf3834d16f30c694f5da2829c5b7169..ed759df65f8f7f746be377b9b6f0f1a9d4c3fd79 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/ProjectAlreadyExistingException.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/ProjectAlreadyExistingException.java @@ -20,7 +20,6 @@ package kieker.webgui.common.exception; * This exception shows that an project with the same name exists already. * * @author Nils Christian Ehmke - * @version 1.0 */ public final class ProjectAlreadyExistingException extends AbstractKiekerWebGUIException { /** diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/ProjectLoadException.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/ProjectLoadException.java index fb596d09d6c08f4f96cfd0f9a95a12432d920626..c1f7d74ff3bab0024ed25b1e8ea077f174a8b2cd 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/ProjectLoadException.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/ProjectLoadException.java @@ -19,7 +19,6 @@ package kieker.webgui.common.exception; * This exception ocurs when something goes wrong during the loading/opening of a given project. * * @author Nils Christian Ehmke - * @version 1.0 */ public final class ProjectLoadException extends AbstractKiekerWebGUIException { /** diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/ProjectNotExistingException.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/ProjectNotExistingException.java index 613edfba0a243226b1fe82403cfbd0d7d5f4a5b0..7432e277ab5abd391521df9ef4701c0d0bb5823c 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/ProjectNotExistingException.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/exception/ProjectNotExistingException.java @@ -20,7 +20,6 @@ package kieker.webgui.common.exception; * This exception shows that a project with the given name does not exist or does no longer exist. * * @author Nils Christian Ehmke - * @version 1.0 */ public final class ProjectNotExistingException extends AbstractKiekerWebGUIException { /** diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/ACManager.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/ACManager.java index 469c7ade95f2c866a7d421fdef1e7b58e3adcabc..1605ec1a9d21747edd3e79b429e9f9e7eb82bcd2 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/ACManager.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/ACManager.java @@ -29,7 +29,6 @@ import kieker.webgui.common.exception.ProjectNotExistingException; * instantiate, start and to stop them. This is also a singleton instance. * * @author Nils Christian Ehmke - * @version 1.0 */ public final class ACManager { /** @@ -148,6 +147,15 @@ public final class ACManager { analysis.stop(); } + /** + * This method delivers the available log entries of the analysis controller of the given project. + * + * @param projectName + * The name of the project. + * @return An array containing the entries of the log. + * @throws AnalysisStateException + * If the analysis is in an invalid state to deliver the entries. + */ public Object[] getLogEntries(final String projectName) throws AnalysisStateException { // The analysis for the given project must exist! if (!this.analyses.containsKey(projectName)) { diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/Analysis.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/Analysis.java index 91302501f1946775a45de87f1167e509d9c2de5b..74180ef306d141f8c85ae3f615a218fcd8da9b65 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/Analysis.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/Analysis.java @@ -22,8 +22,6 @@ import java.lang.reflect.Method; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import javax.annotation.PostConstruct; - import kieker.analysis.AnalysisController; import kieker.common.logging.Log; import kieker.common.logging.LogFactory; @@ -36,7 +34,6 @@ import kieker.webgui.common.exception.ProjectLoadException; * An analysis within the web gui. * * @author Nils Christian Ehmke - * @version 1.0 */ public final class Analysis { private static final Log LOG = LogFactory.getLog(Analysis.class); @@ -155,6 +152,11 @@ public final class Analysis { return this.updateDisplaysThread.getDisplay(viewName, displayName); } + /** + * Delivers the log entries for the current analysis. + * + * @return An array containing the log entries (if available). + */ public Object[] getLogEntries() { return (Object[]) ClassAndMethodContainer.invokeClassMethod(Analysis.this.classAndMethodContainer.getLogImplWebguiLoggingClassGetEntriesMethod(), null, AnalysisController.class.getName()); @@ -167,7 +169,7 @@ public final class Analysis { * @author Nils Christian Ehmke * @version 1.0 */ - private class UpdateDisplaysThread extends Thread { + private static class UpdateDisplaysThread extends Thread { private static final long SLEEP_TIME_MS = 2 * 1000; // private final Object pluginMap; @@ -182,48 +184,6 @@ public final class Analysis { // this.pluginMap = object; } - /** - * This method initializes the class. <b>Do not call this method. The method is managed by the class loader.</b> - */ - @PostConstruct - protected void initialize() { - // Initialize the hashmaps and the necessary objects - // for (final MIView view : Analysis.this.modelProject.getViews()) { - // final Map<String, Object> viewMap = new ConcurrentHashMap<String, Object>(); // NOPMD (Use of concurrent hash map) - // this.displayObjects.put(view.getName(), viewMap); - // for (final MIDisplayConnector displayConnector : view.getDisplayConnectors()) { - // final Method displayMethod = this.getDisplayMethod(this.pluginMap.get(displayConnector.getDisplay().getParent()).getClass(), - // displayConnector.getDisplay().getName()); - - // Make sure that the method really exists and that is has the correct parameters - /* - * if ((displayMethod != null) && (displayMethod.getParameterTypes().length == 1)) { - * final Class<?> parameterType = displayMethod.getParameterTypes()[0]; - * final Object displayObject; - * // Get the correct type - * if (Analysis.this.classAndMethodContainer.getImageClass().isAssignableFrom(parameterType)) { - * displayObject = new Image(); - * } else { - * if (Analysis.this.classAndMethodContainer.getPlainTextClass().isAssignableFrom(parameterType)) { - * displayObject = new PlainText(); - * } else { - * if (Analysis.this.classAndMethodContainer.getHtmlTextClass().isAssignableFrom(parameterType)) { - * displayObject = new HtmlText(); - * } else { - * displayObject = null; - * } - * } - * } - * if (displayObject != null) { - * viewMap.put(displayConnector.getName(), displayObject); - * this.methodMap.put(displayObject, displayMethod); - * } - * } - */ - // } - // } - } - /** * Delivers the correct method to be invoked for an update of the display. * @@ -276,26 +236,6 @@ public final class Analysis { public void run() { // Run until we final have been interrupted while (!this.terminated) { - // for (final MIView view : Analysis.this.modelProject.getViews()) { - // this.displayObjects.get(view.getName()); - // for (final MIDisplayConnector displayConnector : view.getDisplayConnectors()) { - // final Object displayObject = viewMap.get(displayConnector.getName()); - // final Object pluginObject = this.pluginMap.get(displayConnector.getDisplay().getParent()); - // Update the display object - // try { - // this.methodMap.get(displayObject).invoke(pluginObject, displayObject); - // } catch (final IllegalAccessException ex) { - // Analysis.LOG.error("An error occured while updating the display.", ex); - // } catch (final IllegalArgumentException ex) { - // Analysis.LOG.error("An error occured while updating the display.", ex); - // } catch (final InvocationTargetException ex) { - // Analysis.LOG.error("An error occured while updating the display.", ex); - // } catch (final NullPointerException ex) { // NOPMD - // Analysis.LOG.error("An error occured while updating the display.", ex); - // } - // } - // } - // Wait a little bit. try { Thread.sleep(UpdateDisplaysThread.SLEEP_TIME_MS); diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/FSManager.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/FSManager.java index 9471f215c86af6d77d5064d152456484346c4969..4c1d148a855ac412fd0f6e05650d8c279902c1f8 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/FSManager.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/FSManager.java @@ -55,7 +55,6 @@ import org.primefaces.model.UploadedFile; * This class <b>does not</b> use any kind of synchronization to handle the access to the projects. * * @author Nils Christian Ehmke - * @version 1.0 */ public final class FSManager { /** diff --git a/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/PluginFinder.java b/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/PluginFinder.java index 44f4d7e24affa0c0fedb99eea25ea7d560f38969..3f95ce2921134dce506b093d39dc7fd8083807c3 100644 --- a/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/PluginFinder.java +++ b/Kieker.WebGUI/src/main/java/kieker/webgui/common/util/PluginFinder.java @@ -30,7 +30,6 @@ import kieker.webgui.common.ClassAndMethodContainer; * This tool class can be used to find all plugins and repositories within a given jar file - assuming that the given class loader knows these jars. * * @author Nils Christian Ehmke - * @version 1.0 */ public final class PluginFinder { diff --git a/Kieker.WebGUI/src/main/resources/lang/Common_en.properties b/Kieker.WebGUI/src/main/resources/lang/Common_en.properties index c6c2733f06fca30feac6f792aaaf9bc082d0d764..5b4af740775aa962d85f5bb99975dd30708b4ded 100644 --- a/Kieker.WebGUI/src/main/resources/lang/Common_en.properties +++ b/Kieker.WebGUI/src/main/resources/lang/Common_en.properties @@ -63,4 +63,4 @@ msgProjectSavingException = An error occured while saving the project. msgProjectNotExistingException = The project does not exist. msgProjectModified = The project has been modified externally in the meanwhile. msgLibraryExistingException = A library with the same name exists already. -msgLibraryUploadingException = "An error occured while uploading the library. \ No newline at end of file +msgLibraryUploadingException = An error occured while uploading the library. \ No newline at end of file diff --git a/Kieker.WebGUI/src/main/webapp/CockpitEditorPage.xhtml b/Kieker.WebGUI/src/main/webapp/CockpitEditorPage.xhtml index b6e59eba7f9f0138445b5384a0349d945c0be7c1..4d1852923a078b598ad6f96a67492abf6899e89d 100644 --- a/Kieker.WebGUI/src/main/webapp/CockpitEditorPage.xhtml +++ b/Kieker.WebGUI/src/main/webapp/CockpitEditorPage.xhtml @@ -4,8 +4,7 @@ xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" - xmlns:p="http://primefaces.org/ui" - xmlns:c="http://java.sun.com/jsp/jstl/core"> + xmlns:p="http://primefaces.org/ui"> <f:metadata> <f:viewParam name="projectName" value="#{currentCockpitEditorBean.projectName}"/> diff --git a/Kieker.WebGUI/src/main/webapp/CockpitPage.xhtml b/Kieker.WebGUI/src/main/webapp/CockpitPage.xhtml index 87be9c1acb345a9aceca59a3b510df6a70353726..23237ab04b0907759f38738a4ad5455f5f9ca3be 100644 --- a/Kieker.WebGUI/src/main/webapp/CockpitPage.xhtml +++ b/Kieker.WebGUI/src/main/webapp/CockpitPage.xhtml @@ -4,8 +4,7 @@ xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" - xmlns:p="http://primefaces.org/ui" - xmlns:c="http://java.sun.com/jsp/jstl/core"> + xmlns:p="http://primefaces.org/ui"> <f:metadata> <f:viewParam name="projectName" value="#{currentCockpitBean.projectName}"/> diff --git a/Kieker.WebGUI/src/main/webapp/LoginPage.xhtml b/Kieker.WebGUI/src/main/webapp/LoginPage.xhtml index 654ffa44f1b23f84c389bdf0e2acac04ea5170ff..2d77381547b2e0a8067624fc1e880ed7ee9550a7 100644 --- a/Kieker.WebGUI/src/main/webapp/LoginPage.xhtml +++ b/Kieker.WebGUI/src/main/webapp/LoginPage.xhtml @@ -46,7 +46,7 @@ <div class="hint-panel"> <h:outputText value="#{localizedLoginMessages.hint}"/> </div> - + <p:growl sticky="true" autoUpdate="true" widgetVar="growlComp"/> </div> </h:form> diff --git a/Kieker.WebGUI/src/main/webapp/WEB-INF/faces-config.xml b/Kieker.WebGUI/src/main/webapp/WEB-INF/faces-config.xml index 47d8e1ab7ca408a0b79a1718d1a5c87fb0b38567..3dbdab732711b410f342f82d5f85dabe911fa61f 100644 --- a/Kieker.WebGUI/src/main/webapp/WEB-INF/faces-config.xml +++ b/Kieker.WebGUI/src/main/webapp/WEB-INF/faces-config.xml @@ -1,11 +1,9 @@ <?xml version='1.0' encoding='UTF-8'?> -<!-- =========== FULL CONFIGURATION FILE ================================== --> - <faces-config version="2.1" - xmlns="http://java.sun.com/xml/ns/javaee" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd"> + xmlns="http://java.sun.com/xml/ns/javaee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd"> <application> <locale-config> diff --git a/Kieker.WebGUI/src/main/webapp/WEB-INF/pretty-config.xml b/Kieker.WebGUI/src/main/webapp/WEB-INF/pretty-config.xml index 4555ca09cc7b5ea84b8f778af7bc3e5f0036862f..cec5a14ca86ad9ad7c3c0a64b8d284c063b9e0bb 100644 --- a/Kieker.WebGUI/src/main/webapp/WEB-INF/pretty-config.xml +++ b/Kieker.WebGUI/src/main/webapp/WEB-INF/pretty-config.xml @@ -1,8 +1,6 @@ - <pretty-config xmlns="http://ocpsoft.com/prettyfaces/3.3.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://ocpsoft.com/prettyfaces/3.3.2 - http://ocpsoft.com/xml/ns/prettyfaces/ocpsoft-pretty-faces-3.3.2.xsd"> + xsi:schemaLocation="http://ocpsoft.com/prettyfaces/3.3.2 http://ocpsoft.com/xml/ns/prettyfaces/ocpsoft-pretty-faces-3.3.2.xsd"> <url-mapping id="home"> <pattern value="/Kieker.WebGUI/" /> diff --git a/Kieker.WebGUI/src/main/webapp/WEB-INF/web.xml b/Kieker.WebGUI/src/main/webapp/WEB-INF/web.xml index f296c05d880fb51b706a8c2725550940933d5235..c58433e5778e0a833deae87be2ed771a431fc9d8 100644 --- a/Kieker.WebGUI/src/main/webapp/WEB-INF/web.xml +++ b/Kieker.WebGUI/src/main/webapp/WEB-INF/web.xml @@ -1,5 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> -<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> +<web-app version="3.0" + xmlns="http://java.sun.com/xml/ns/javaee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <!-- This parameter determines that the state is saved on the server. --> <context-param> @@ -45,6 +48,7 @@ <url-pattern>/faces/*</url-pattern> </servlet-mapping> + <!-- Session timeout is 30 minutes. --> <session-config> <session-timeout> 30 @@ -92,6 +96,7 @@ <dispatcher>ERROR</dispatcher> </filter-mapping> + <!-- This listener will be used by the webgui itself to initialize the environment. --> <listener> <listener-class>kieker.webgui.common.EnvironmentLoaderListener</listener-class> </listener> diff --git a/Kieker.WebGUI/src/main/webapp/css/AnalysisEditorPage.css b/Kieker.WebGUI/src/main/webapp/css/AnalysisEditorPage.css index ad5c6237d5f408cdd70ea1594b11d88fe2c65cd3..1889c5a7f121f75d7f0751e5c42c3ef13f268434 100644 --- a/Kieker.WebGUI/src/main/webapp/css/AnalysisEditorPage.css +++ b/Kieker.WebGUI/src/main/webapp/css/AnalysisEditorPage.css @@ -1,23 +1,13 @@ @charset "UTF-8"; -/* The following parts are necessary for the configuration of the graph. */ -.block { - position: absolute; -} -.connector { - background-color: #FF9900; -} - /* This is necessary to remove the border from the datalist */ .ui-datalist * { border : 0px !important; } +/* The following parts are necessary for the configuration of the graph. */ #center-container { height:100%; -} - -#center-container { width:100%; } diff --git a/Kieker.WebGUI/src/main/webapp/css/FlowEditor.css b/Kieker.WebGUI/src/main/webapp/css/FlowEditor.css index e442b7aab89218a9db809aadfcc8a86ba734611f..eb0b8e77bcc6002603699b20d9087faad23bb02a 100644 --- a/Kieker.WebGUI/src/main/webapp/css/FlowEditor.css +++ b/Kieker.WebGUI/src/main/webapp/css/FlowEditor.css @@ -1,3 +1,5 @@ +@charset "UTF-8"; + #inner-details { font-size:12px; } diff --git a/Kieker.WebGUI/src/main/webapp/css/Icons.css b/Kieker.WebGUI/src/main/webapp/css/Icons.css index 9e575ab1bc7d7cfad129863b4d72b96816659f7a..5349a4a1c572782027d541cdf41927a8fbb649bb 100644 --- a/Kieker.WebGUI/src/main/webapp/css/Icons.css +++ b/Kieker.WebGUI/src/main/webapp/css/Icons.css @@ -1,3 +1,5 @@ +@charset "UTF-8"; + .ui-icon-close { background: url('../img/icons/Close.png') no-repeat !important; height:16px; diff --git a/Kieker.WebGUI/src/main/webapp/dialogs/AnalysisEditorPageDialogs.xhtml b/Kieker.WebGUI/src/main/webapp/dialogs/AnalysisEditorPageDialogs.xhtml index 1e0a36fe230a1a89f75c8da1b8871d1f3b998a4a..910b08738b19cdace2e9f8cbf0042bd16c77a833 100644 --- a/Kieker.WebGUI/src/main/webapp/dialogs/AnalysisEditorPageDialogs.xhtml +++ b/Kieker.WebGUI/src/main/webapp/dialogs/AnalysisEditorPageDialogs.xhtml @@ -2,12 +2,9 @@ xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets" - xmlns:f="http://java.sun.com/jsf/core" xmlns:p="http://primefaces.org/ui"> - <p:dialog id="manageLibrariesDlg" header="#{localizedMessages.libraries}" resizable="false" - modal="true" widgetVar="manageLibrariesDialog"> - + <p:dialog id="manageLibrariesDlg" header="#{localizedMessages.libraries}" resizable="false" modal="true" widgetVar="manageLibrariesDialog"> <h:form id="dependenciesForm"> <p:dataTable id="currentDependencies" value="#{currentAnalysisEditorBean.libraries}" var="dependency" paginator="true" rows="10" paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" > diff --git a/Kieker.WebGUI/src/main/webapp/dialogs/CockpitEditorPageDialogs.xhtml b/Kieker.WebGUI/src/main/webapp/dialogs/CockpitEditorPageDialogs.xhtml index 7cf24bef1e50d41aa3c24ed556e632ea30f79d2f..7e8beecc8c7b849c9eaafcab32640a735cb125d6 100644 --- a/Kieker.WebGUI/src/main/webapp/dialogs/CockpitEditorPageDialogs.xhtml +++ b/Kieker.WebGUI/src/main/webapp/dialogs/CockpitEditorPageDialogs.xhtml @@ -2,14 +2,12 @@ xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets" - xmlns:f="http://java.sun.com/jsf/core" - xmlns:p="http://primefaces.org/ui" - xmlns:c="http://java.sun.com/jsp/jstl/core"> + xmlns:p="http://primefaces.org/ui"> <!-- ******************************************************************************** --> <!-- This is the dialog to create a new view. --> <p:dialog id="newViewDlg" header="New View" resizable="false" modal="true" widgetVar="newViewDialog"> - <!-- Make sure that closing of the dialog also clears the input field. --> + <!-- Make sure that closing the dialog also clears the input field. --> <p:ajax event="close" update="newViewDialogForm:newViewInputText" /> <h:form id="newViewDialogForm"> diff --git a/Kieker.WebGUI/src/main/webapp/dialogs/ProjectOverviewPageDialogs.xhtml b/Kieker.WebGUI/src/main/webapp/dialogs/ProjectOverviewPageDialogs.xhtml index 5325a06e8bfec5a03978547e2231cd657173f3ab..f9f0b4aa0fbf6db85b74a9ea1232660b572a039c 100644 --- a/Kieker.WebGUI/src/main/webapp/dialogs/ProjectOverviewPageDialogs.xhtml +++ b/Kieker.WebGUI/src/main/webapp/dialogs/ProjectOverviewPageDialogs.xhtml @@ -2,9 +2,7 @@ xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:ui="http://java.sun.com/jsf/facelets" - xmlns:f="http://java.sun.com/jsf/core" - xmlns:p="http://primefaces.org/ui" - xmlns:c="http://java.sun.com/jsp/jstl/core"> + xmlns:p="http://primefaces.org/ui"> <!-- ******************************************************************************** --> <!-- This is the dialog to create a new project. --> diff --git a/Kieker.WebGUI/src/main/webapp/dialogs/settingsDialog.xhtml b/Kieker.WebGUI/src/main/webapp/dialogs/settingsDialog.xhtml index 6fd5eb519eafb699ea9d4caf22907482f1f42c99..f13fd987afa8effa744f66a9c35f0be9cec52175 100644 --- a/Kieker.WebGUI/src/main/webapp/dialogs/settingsDialog.xhtml +++ b/Kieker.WebGUI/src/main/webapp/dialogs/settingsDialog.xhtml @@ -5,8 +5,7 @@ xmlns:f="http://java.sun.com/jsf/core" xmlns:p="http://primefaces.org/ui"> - <p:dialog id="settingsDialog" header="#{localizedMessages.settings}" resizable="false" - modal="true" widgetVar="settingsDlg"> + <p:dialog id="settingsDialog" header="#{localizedMessages.settings}" resizable="false" modal="true" widgetVar="settingsDlg"> <h:form> <p:tabView> <p:tab title="#{localizedMessages.common}">