From cedric.staub at wyona.com Wed Sep 1 14:57:55 2010 From: cedric.staub at wyona.com (Cedric Staub) Date: Wed Sep 1 14:58:20 2010 Subject: [Yanel-dev] Create many, many groups and users script Message-ID: <20100901125755.GB7459@clarice.wyona.com> Hello there The from-scratch-realm contains a shell script that allows one to create many, many groups and users for testing. Sadly, the script is broken. 1. It prints "\n" instead of actual newlines 2. It doesn't add the new "" tag to users 3. The output is just not very nice in general :-) So, I fixed it. Patch is attached. Please note the difference between tabs and spaces in the shell script... Save the attachment rather than copy/pasting the contents of the script. Cheers Cedric -------------- next part -------------- Index: src/realms/from-scratch-realm-template/ac-identities/create-many-many-groups-and-users.sh =================================================================== --- src/realms/from-scratch-realm-template/ac-identities/create-many-many-groups-and-users.sh (revision 52644) +++ src/realms/from-scratch-realm-template/ac-identities/create-many-many-groups-and-users.sh (working copy) @@ -1,17 +1,34 @@ #!/bin/sh -echo "Create many, many, many groups and users ..." +echo "Create many, many, many groups and users..." -count=0 -while [ $count -lt 1000 ] -do - echo "\n\nExample Group $count\n" > groups/group$count.xml - count=`expr $count + 1` +# Number of users and groups to create +count_users=1000 +count_groups=1000 + +# Generate groups +for n in `seq 1 $count_groups`; do + cat - > groups/group${n}.xml <<-EOF + + + Example Group ${n} + + EOF done -count=0 -while [ $count -lt 1000 ] -do - echo "\n\nExample User $count\nuser$count@yanel.org\nen\n5ebe2294ecd0e0f08eab7690d2a6ee69\n\nadmin\n\n" > users/user$count.xml - count=`expr $count + 1` +# Generate users +for n in `seq 1 $count_users`; do + cat - > users/user${n}.xml <<-EOF + + + Example User ${n} + user${n}@yanel.org + en + 5ebe2294ecd0e0f08eab7690d2a6ee69 + + admin + + + + EOF done From cedric.staub at wyona.com Wed Sep 1 15:06:06 2010 From: cedric.staub at wyona.com (Cedric Staub) Date: Wed Sep 1 15:06:32 2010 Subject: [Yanel-dev] User management resource: pagination In-Reply-To: <20100831091720.GB4867@clarice.wyona.com> References: <20100831091720.GB4867@clarice.wyona.com> Message-ID: <20100901130606.GC7459@clarice.wyona.com> Hello Here is the next version of my patch. It does not include a search feature yet, but it now uses iterators instead of arrays and is substantially faster as a result. I attached both a patch for Yanel and a patch for the security library. Please note note that Yarep does not support using iterators yet, so loading the nodes from Yarep is still slow. However, the User objects are only created when they are actually used now (as opposed to before). So to summarize: with this patch it'll still be slow but not as slow as the current implementation ;-). Cheers Cedric -------------- next part -------------- Index: htdocs/list-users.jelly =================================================================== --- htdocs/list-users.jelly (revision 52644) +++ htdocs/list-users.jelly (working copy) @@ -3,6 +3,11 @@

Users

+

+ Showing users ${resource.getLowerBound()} through ${resource.getUpperBound()} + out of a total of ${resource.getTotalUsers()}. +

+ @@ -16,13 +21,23 @@ -
ID${user.getName()} ${user.getEmail()} Update/Edit Delete
+ +

+ + ? Prev +   + + Page ${resource.getCurrentPage()}/${resource.getTotalPages()} + +   + Next ? + +

+ Create new user Index: src/java/org/wyona/yanel/impl/resources/ListUsersResource.java =================================================================== --- src/java/org/wyona/yanel/impl/resources/ListUsersResource.java (revision 52644) +++ src/java/org/wyona/yanel/impl/resources/ListUsersResource.java (working copy) @@ -1,5 +1,5 @@ /* - * Copyright 2006 Wyona + * Copyright 2010 Wyona * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,25 +16,167 @@ package org.wyona.yanel.impl.resources; -import org.wyona.security.core.api.AccessManagementException; import org.wyona.security.core.api.User; import org.wyona.security.core.api.UserManager; +import org.wyona.security.core.api.AccessManagementException; import org.wyona.yanel.impl.resources.usecase.UsecaseException; import org.wyona.yanel.impl.resources.usecase.UsecaseResource; +import java.lang.System; +import java.lang.Integer; +import java.lang.Boolean; +import java.util.List; +import java.util.LinkedList; +import java.util.Iterator; + /** - * + * Resource to list all users. */ public class ListUsersResource extends UsecaseResource { + // Constants + private static final int DEFAULT_ITEMS_PER_PAGE = 100; - public User[] getUsers() throws UsecaseException { + // Variables + private int currentPage = 1; + private int totalPages = 1; + private int itemsPerPage = 1; + private int lowerBound = 1; + private int upperBound = 1; + private int totalUsers = 0; + private boolean hasNext = false; + private List users = null; + private boolean initialized = false; + + /** + * Initialize all variables. + * This function intializes various private variables. You don't need + * to call this function, it will be called automatically the first time + * you access a variable and the object finds that it is not initialized. + */ + private void initVars() throws UsecaseException { UserManager userManager = getRealm().getIdentityManager().getUserManager(); + + // Pagination + // Current page try { - return userManager.getUsers(true); + String p = getParameterAsString("page"); + currentPage = Integer.parseInt(p); + if(currentPage < 1) currentPage = 1; + } catch(Exception e) { + currentPage = 1; + } + + // Items per page + try { + String i = getResourceConfigProperty("items-per-page"); + itemsPerPage = Integer.parseInt(i); + if(itemsPerPage < 1) itemsPerPage = 1; + } catch(Exception e) { + itemsPerPage = DEFAULT_ITEMS_PER_PAGE; + } + + // Result + try { + // All users matching search term, + // or all users overall if search term is empty + Iterator allUsers; + allUsers = userManager.getAllUsers(); + + // Boundaries... + lowerBound = (currentPage-1)*itemsPerPage; + upperBound = lowerBound+itemsPerPage-1; + totalUsers = userManager.getUserCount(); + totalPages = totalUsers/itemsPerPage+1; + + int idx = 0; + users = new LinkedList(); + while(allUsers.hasNext()) { + User current = allUsers.next(); + if(idx >= lowerBound && idx < upperBound) { + users.add(current); + } + idx = idx + 1; + } + + if(idx < upperBound) { + hasNext = false; + upperBound = idx; + } else { + hasNext = true; + } + + lowerBound++; + initialized = true; } catch (AccessManagementException e) { + initialized = false; throw new UsecaseException(e.toString(), e); } } + /** + * Get users on current page. + */ + public Iterator getUsers() throws UsecaseException { + if(!initialized) initVars(); + return users.iterator(); + } + + /** + * Get the current page being displayed. + */ + public String getCurrentPage() throws UsecaseException { + if(!initialized) initVars(); + return Integer.toString(currentPage); + } + + /** + * Get the lower bound being displayed. + * For example, if we're on page 2 and there are + * 10 users being displayed per page, this value + * will be 11 - because the first user on the page + * is user number 11 in the array. + */ + public String getLowerBound() throws UsecaseException { + if(!initialized) initVars(); + return Integer.toString(lowerBound); + } + + /** + * Get the upper bound being displayed. + * For example, if we're on page 2 and there are + * 10 users being displayed per page, this value + * will be 20 - because the last user on the page + * is user number 20 in the array. + */ + public String getUpperBound() throws UsecaseException { + if(!initialized) initVars(); + return Integer.toString(upperBound); + } + + /** + * Get the total amount of pages. + */ + public String getTotalPages() throws UsecaseException { + if(!initialized) initVars(); + return Integer.toString(totalPages); + } + + /** + * Get the total amount of existing users. + */ + public String getTotalUsers() throws UsecaseException { + if(!initialized) initVars(); + return Integer.toString(totalUsers); + } + + /** + * Check if there is another page. + * Return true if there is another page beyond the + * current one, false if there is not. + */ + public String hasNext() throws UsecaseException { + if(!initialized) initVars(); + return Boolean.toString(hasNext); + } } -------------- next part -------------- Index: src/impl/java/org/wyona/security/impl/yarep/YarepUserManager.java =================================================================== --- src/impl/java/org/wyona/security/impl/yarep/YarepUserManager.java (revision 52863) +++ src/impl/java/org/wyona/security/impl/yarep/YarepUserManager.java (working copy) @@ -97,6 +97,20 @@ throw new AccessManagementException(errorMsg, e); } } + + /** + * Get user count. + */ + public int getUserCount() { + log.info("Load users from repository '" + identitiesRepository.getConfigFile() + "'"); + try { + Node usersParentNode = getUsersParentNode(); + Node[] userNodes = usersParentNode.getNodes(); + return userNodes.length; + } catch(Exception e) { + return 0; + } + } /** * Loads a specific user from persistance storage into memory @@ -319,7 +333,7 @@ * @see org.wyona.security.core.api.UserManager#getAllUsers() */ public java.util.Iterator getAllUsers() throws AccessManagementException { - return new YarepUsersIterator(); + return new YarepUsersIterator(identityManager, identitiesRepository, cacheEnabled, resolveGroupsAtCreation); } /** Index: src/impl/java/org/wyona/security/impl/yarep/YarepUsersIterator.java =================================================================== --- src/impl/java/org/wyona/security/impl/yarep/YarepUsersIterator.java (revision 52863) +++ src/impl/java/org/wyona/security/impl/yarep/YarepUsersIterator.java (working copy) @@ -1,34 +1,112 @@ package org.wyona.security.impl.yarep; import org.apache.log4j.Logger; +import org.apache.avalon.framework.configuration.Configuration; +import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder; +import java.util.List; +import java.util.LinkedList; +import java.util.Iterator; +import java.lang.UnsupportedOperationException; + +import org.wyona.security.core.api.User; +import org.wyona.security.core.api.IdentityManager; +import org.wyona.security.core.api.AccessManagementException; + +import org.wyona.yarep.core.Node; +import org.wyona.yarep.core.Repository; + /** - * + * Yarep users iterator. + * Warning! This implementation does not scale, because + * Yarep doesn't have the ability to give us an Iterator. + * Therefore, we have to request all nodes in an array, + * which somehow defeats the purpose of this iterator. + * But until Yarep gains that capability, we're don't + * have much of a choice. */ -public class YarepUsersIterator implements java.util.Iterator { - +public class YarepUsersIterator extends YarepUserManager implements java.util.Iterator { + // Constants private static Logger log = Logger.getLogger(YarepUsersIterator.class); + private static DefaultConfigurationBuilder configBuilder = new DefaultConfigurationBuilder(true); + // Variables + private int totalUsers; + private int currentUser; + private List userNodeList; + private Iterator listIterator; + /** + * Constructor. + */ + public YarepUsersIterator(IdentityManager identityManager, + Repository identitiesRepository, + boolean cacheEnabled, + boolean resolveGroupsAtCreation) + throws AccessManagementException { + // Call parent + super(identityManager, identitiesRepository, cacheEnabled, resolveGroupsAtCreation); + log.info("Load users from repository '" + identitiesRepository.getConfigFile() + "'"); + + // TODO: This is inefficient! If Yarep were able to + // return an iterator instead of an array, this could + // be done in a more effective manner, but until Yarep + // gains that capability we're currently stuck like this. + try { + Node usersParentNode = super.getUsersParentNode(); + Node[] userNodes = usersParentNode.getNodes(); + + userNodeList = new LinkedList(); + for(Node n : userNodes) { + if(n.isResource()) { + userNodeList.add(n); + } + } + + listIterator = userNodeList.listIterator(); + } catch(Exception e) { + String errorMsg = "Could not read users from repository: " + e.getMessage(); + log.error(errorMsg, e); + throw new AccessManagementException(errorMsg, e); + } + } + + /** * @see java.util.Iterator#hasNext() */ + @Override public boolean hasNext() { - log.error("TODO: Not implemented yet!"); - return false; + return listIterator.hasNext(); } /** * @see java.util.Iterator#next() */ + @Override public Object next() { - log.error("TODO: Not implemented yet!"); + Node n = listIterator.next(); + try { + Configuration config = configBuilder.build(n.getInputStream()); + // Also support identity for backwards compatibility + if(config.getName().equals(YarepUser.USER) || config.getName().equals("identity")) { + User user = super.constructUser(this.identityManager, n); + log.debug("User (re)loaded: " + n.getName() + ", " + user.getID()); + return user; + } + } catch(Exception e) { + // We can't throw an exception here, if this user + // is invalid/broken we'll just have to return null. + log.error(e.getMessage(), e); + } + return null; } /** * @see java.util.Iterator#remove() */ - public void remove() { - log.error("TODO: Not implemented yet!"); + @Override + public void remove() throws UnsupportedOperationException { + throw new UnsupportedOperationException("Not implemented."); } } Index: src/impl/java/org/wyona/security/impl/ldap/LDAPUserManagerImpl.java =================================================================== --- src/impl/java/org/wyona/security/impl/ldap/LDAPUserManagerImpl.java (revision 52863) +++ src/impl/java/org/wyona/security/impl/ldap/LDAPUserManagerImpl.java (working copy) @@ -44,6 +44,19 @@ } /** + * @see org.wyona.security.core.api.UserManager#getUserCount() + */ + public int getUserCount() { + log.error("TODO: LDAP Yarep Implementation not finished yet! Use Yarep-only implementation instead."); + try { + return new org.wyona.security.impl.yarep.YarepUserManager(identityManager, identitiesRepository, cacheEnabled, resolveGroupsAtCreation).getUserCount(); + } catch(Exception e) { + log.error(e.getMessage(), e); + return 0; + } + } + + /** * @see org.wyona.security.core.api.UserManager#removeUser(String) */ public void removeUser(String userName) throws AccessManagementException { Index: src/core/java/org/wyona/security/core/api/UserManager.java =================================================================== --- src/core/java/org/wyona/security/core/api/UserManager.java (revision 52863) +++ src/core/java/org/wyona/security/core/api/UserManager.java (working copy) @@ -31,6 +31,11 @@ java.util.Iterator getUsers(String query) throws AccessManagementException; /** + * Get total number of users. + */ + int getUserCount(); + + /** * Gets all users in no particular order, whereas provides a parameter to tell the implementation to refresh possibly cached entries * * XXX: this does not scale UI-wise for many users: cf. {@link UserManager#getUsers()} for rationale. From cedric.staub at wyona.com Thu Sep 2 09:57:32 2010 From: cedric.staub at wyona.com (Cedric Staub) Date: Thu Sep 2 09:57:58 2010 Subject: [Yanel-dev] Access logging Message-ID: <20100902075732.GA6304@clarice.wyona.com> Hello I recently had a conversation where, in the context of access logging, the following idea came up: what if a resource wants to append additional information to the access log, e.g. for auditing? Imagine the following scenario: you have a resource which can display assets from various sources. From the information in the access log you can't infer which source a request accessed. Now we'd like to append a new field, say "source", to the access log containing that information. That means, the resource should have a way of appending arbitrary additional fields to the access log. I suppose this should be as generic as possible, so: 1. I would add a new private variable of type Map to the Resource class, including a function appendFieldToAccessLog. This makes it possible for all resources to append additional info to the access log by simply calling that function. Also include a getter method. 2. In YanelServlet, extend the function doLogAccess so that it reads the variables from the resource and appends them to the access log. This way, a resource can just call appendFieldToAccessLog in order to add additional information to the access log, and Yanel will take care of it. This seems like the simplest solution to me, but I'm open to ideas. Nevertheless, I will start working on a proof-of-concept patch shortly. Feedback is very welcome! Cheers Cedric From cedric.staub at wyona.com Thu Sep 2 10:05:16 2010 From: cedric.staub at wyona.com (Cedric Staub) Date: Thu Sep 2 10:05:42 2010 Subject: [Yanel-dev] About cookies Message-ID: <20100902080516.GB6304@clarice.wyona.com> Hello Something else I recently stumbled upon: when Yanel creates a cookie, it writes a timestamp to that cookie. But timestamps are not unique... If we have more than one request per second we'll have multiple users with the same cookie and we won't be able to distinguish them anymore. The code actually knows this and includes a TODO and I think this is certainly something that should be fixed. I suggest instead of timestamps we could use random UUIDs or perhaps a combination of both? Well, what do YOU think? ;-) Cheers Cedric From michael.wechner at wyona.com Thu Sep 2 10:15:56 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Thu Sep 2 10:16:17 2010 Subject: [Yanel-dev] About cookies In-Reply-To: <20100902080516.GB6304@clarice.wyona.com> References: <20100902080516.GB6304@clarice.wyona.com> Message-ID: <4C7F5D3C.6090604@wyona.com> Cedric Staub wrote: > Hello > > Something else I recently stumbled upon: when Yanel creates a cookie, it > writes a timestamp to that cookie. But timestamps are not unique... If we > have more than one request per second we'll have multiple users with > the same cookie and we won't be able to distinguish them anymore. > > The code actually knows this and includes a TODO and I think this is > certainly something that should be fixed. I suggest instead of > timestamps we could use random UUIDs I think UUID should be sufficient > or perhaps a combination of both? > > Well, what do YOU think? ;-) > happy to accept patches ;-) Thanks Michael > Cheers > Cedric > From cedric.staub at wyona.com Thu Sep 2 10:24:46 2010 From: cedric.staub at wyona.com (Cedric Staub) Date: Thu Sep 2 10:25:37 2010 Subject: [Yanel-dev] About cookies In-Reply-To: <4C7F5D3C.6090604@wyona.com> References: <20100902080516.GB6304@clarice.wyona.com> <4C7F5D3C.6090604@wyona.com> Message-ID: <20100902082446.GA24175@clarice.wyona.com> On Thu, Sep 02, 2010 at 09:15:56AM +0100, Michael Wechner wrote: > happy to accept patches ;-) Here you go. Cheers, Cedric -------------- next part -------------- Index: src/webapp/src/java/org/wyona/yanel/servlet/AccessLog.java =================================================================== --- src/webapp/src/java/org/wyona/yanel/servlet/AccessLog.java (revision 52644) +++ src/webapp/src/java/org/wyona/yanel/servlet/AccessLog.java (working copy) @@ -4,7 +4,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.util.Date; +import java.util.UUID; import java.net.URLEncoder; import java.io.UnsupportedEncodingException; @@ -112,7 +112,8 @@ Cookie c = getYanelAnalyticsCookie(request); if (c != null) return c; - Cookie analyticsCookie = new Cookie(ANALYTICS_COOKIE_NAME, "YA-" + new Date().getTime()); // TODO: getTime() is not unique! + String value = "YA-" + UUID.randomUUID(); + Cookie analyticsCookie = new Cookie(ANALYTICS_COOKIE_NAME, value); analyticsCookie.setMaxAge(31536000); // 1 year //analyticsCookie.setMaxAge(86400); // 1 day analyticsCookie.setPath(request.getContextPath()); From michael.wechner at wyona.com Thu Sep 2 10:42:04 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Thu Sep 2 10:42:25 2010 Subject: [Yanel-dev] About cookies In-Reply-To: <20100902082446.GA24175@clarice.wyona.com> References: <20100902080516.GB6304@clarice.wyona.com> <4C7F5D3C.6090604@wyona.com> <20100902082446.GA24175@clarice.wyona.com> Message-ID: <4C7F635C.7000201@wyona.com> Cedric Staub wrote: > On Thu, Sep 02, 2010 at 09:15:56AM +0100, Michael Wechner wrote: > >> happy to accept patches ;-) >> > > Here you go. > Thanks very much. Btw, did you consider backwards-compatibility? AFAIK we don't parse the cookie "YA-xxxxxxx" at some later stage, but maybe I missed something. Thanks Michael > Cheers, Cedric > From cedric.staub at wyona.com Thu Sep 2 10:45:48 2010 From: cedric.staub at wyona.com (Cedric Staub) Date: Thu Sep 2 10:46:23 2010 Subject: [Yanel-dev] About cookies In-Reply-To: <4C7F635C.7000201@wyona.com> References: <20100902080516.GB6304@clarice.wyona.com> <4C7F5D3C.6090604@wyona.com> <20100902082446.GA24175@clarice.wyona.com> <4C7F635C.7000201@wyona.com> Message-ID: <20100902084545.GB24175@clarice.wyona.com> On Thu, Sep 02, 2010 at 09:42:04AM +0100, Michael Wechner wrote: > Btw, did you consider backwards-compatibility? AFAIK we don't parse the > cookie "YA-xxxxxxx" > at some later stage, but maybe I missed something. Haven't found any code that does this. Also, I've been using it on my local Yanel and all realms I have installed are still working. Cheers Cedric From cedric.staub at wyona.com Thu Sep 2 11:56:51 2010 From: cedric.staub at wyona.com (Cedric Staub) Date: Thu Sep 2 11:58:23 2010 Subject: [Yanel-dev] Access logging In-Reply-To: <20100902075732.GA6304@clarice.wyona.com> References: <20100902075732.GA6304@clarice.wyona.com> Message-ID: <20100902095649.GC24175@clarice.wyona.com> Hello Here is a first version of my patch. Resources can now use appendFieldToLog to append a new field to the log entry generated by the current request. I noticed that the contact-form resourced already does something like this, but by simply generating a second log entry, which is not very nice. So I modified the contact form to use the the new functions. Example: In a resource, you can call appendFieldToLog("email", resource.getParameter("email")) which will result in a log entry with e.g. email:cedric.staub%40wyona.com in the access log file. Feedback is welcome. By the way, I also improved the performance of the access log by replacing string appends with a StringBuilder and I inserted some Javadocs along the way as well. Cheers Cedric -------------- next part -------------- Index: src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java =================================================================== --- src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java (revision 52939) +++ src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java (working copy) @@ -1121,7 +1121,7 @@ - Or authentication was successful and web authenticator sends a redirect */ if(logAccessEnabled) { - doLogAccess(request, response); + doLogAccess(request, response, null); } return response; } else { @@ -1872,7 +1872,7 @@ if (view.getMimeType() != null) { // TODO: Add more mime types or rather make it configurable if (view.getMimeType().indexOf("html") > 0 || view.getMimeType().indexOf("pdf") > 0 || view.getMimeType().indexOf("video") >= 0) { - doLogAccess(request, response); + doLogAccess(request, response, res); } } } @@ -1908,7 +1908,7 @@ if(logAccessEnabled) { if (mimeType != null) { if (mimeType.indexOf("html") > 0 || mimeType.indexOf("pdf") > 0) { // INFO: Only HTML pages and PDFs etc. should be logged, but no images, CSS, etc. Check the mime-type instead the suffix or use JavaScript or Pixel - doLogAccess(request, response); + doLogAccess(request, response, res); } } } @@ -2358,7 +2358,7 @@ /** * Log browser history of each user */ - private void doLogAccess(HttpServletRequest request, HttpServletResponse response) { + private void doLogAccess(HttpServletRequest request, HttpServletResponse response, Resource res) { Cookie cookie = AccessLog.getYanelAnalyticsCookie(request, response); // TBD: What about a cluster, performance/scalability? See for example http://www.oreillynet.com/cs/user/view/cs_msg/17399 (also see Tomcat conf/server.xml extra = null; + if(res != null) extra = res.getLogFields(); + if(extra == null) extra = new HashMap(); + extra.put("u", identity.getUsername()); + logAccess.info(AccessLog.getLogMessage(request, response, realm.getID(), extra)); } else { // INFO: Log access of anonymous user - String requestURL = request.getRequestURL().toString(); - // TODO: Also log referer as entry point - //logAccess.info(requestURL + " r:" + realm.getID() + " c:" + cookie.getValue() + " ref:" + request.getHeader("referer") + " ua:" + request.getHeader("User-Agent")); - logAccess.info(AccessLog.getLogMessage(request, response, realm.getID())); + java.util.Map extra = null; + if(res != null) extra = res.getLogFields(); + logAccess.info(AccessLog.getLogMessage(request, response, realm.getID(), extra)); } //log.warn("DEBUG: Referer: " + request.getHeader(HTTP_REFERRER)); } catch(Exception e) { // Catch all exceptions, because we do not want to throw exceptions because of logging browser history Index: src/core/java/org/wyona/yanel/core/Resource.java =================================================================== --- src/core/java/org/wyona/yanel/core/Resource.java (revision 52939) +++ src/core/java/org/wyona/yanel/core/Resource.java (working copy) @@ -27,7 +27,7 @@ import org.wyona.yanel.core.map.Realm; /** - * + * The mother of all resources. */ public abstract class Resource { @@ -44,78 +44,92 @@ protected HttpServletResponse response; private Environment environment; protected Map parameters; + private Map logFields; public static final String DEFAULT_LANGUAGE = "en"; /** - * + * Constructor. */ public Resource() { rtd = null; this.parameters = new HashMap(); + this.logFields = new HashMap(); } /** - * + * Set resource type definition. */ public void setRTD(ResourceTypeDefinition rtd) { this.rtd = rtd; } /** - * + * Get resource type definition. */ public ResourceTypeDefinition getRTD() { return rtd; } /** - * + * Set Yanel. */ public void setYanel(Yanel yanel) { this.yanel = yanel; } /** - * + * Get Yanel. */ public Yanel getYanel() { return yanel; } /** - * + * Get universal resource type name. */ public String getResourceTypeUniversalName() { return rtd.getResourceTypeUniversalName(); } /** - * + * Get local resource type name. */ public String getResourceTypeLocalName() { return rtd.getResourceTypeLocalName(); } /** - * + * Get resource type namespace. */ public String getResourceTypeNamespace() { return rtd.getResourceTypeNamespace(); } + /** + * Get path. + */ public String getPath() { return path; } + /** + * Set path. + */ public void setPath(String path) { this.path = path; } + /** + * Get realm. + */ public Realm getRealm() { return realm; } + /** + * Set realm. + */ public void setRealm(Realm realm) { this.realm = realm; } @@ -313,13 +327,42 @@ return getRTI().getProperties(name); } + /** + * Get environment. + */ public Environment getEnvironment() { return environment; } + /** + * Set environment. + */ public void setEnvironment(Environment environment) { this.environment = environment; this.request = environment.getRequest(); this.response = environment.getResponse(); } + + /** + * Append a field to the access log. + * For example, if you call this function with the + * parameters "source" and "xml", then "source:xml" + * will be appended to the access log line of the + * current request. + * + * @param key The name of the field. + * @param value The value of the field. + */ + public void appendFieldToLog(String key, String value) { + this.logFields.put(key, value); + } + + /** + * Get additional log fields. + * @return Additional a set of key:value pairs that + * should be appended to the access log. + */ + public Map getLogFields() { + return this.logFields; + } } Index: src/webapp/src/java/org/wyona/yanel/servlet/AccessLog.java =================================================================== --- src/webapp/src/java/org/wyona/yanel/servlet/AccessLog.java (revision 52939) +++ src/webapp/src/java/org/wyona/yanel/servlet/AccessLog.java (working copy) @@ -4,8 +4,10 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.util.Date; +import java.util.Map; +import java.util.UUID; import java.net.URLEncoder; +import java.lang.StringBuilder; import java.io.UnsupportedEncodingException; import org.apache.log4j.Logger; @@ -34,16 +36,23 @@ * @param cookieValue Value/UUID of unique persistent cookie * @param referer Referer * @param userAgent User agent, e.g. Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.0.19) Gecko/2010031218 Firefox/3.0.19 + * @param extra Additional fields to be appended. */ - public static String getLogMessage(String requestURL, String realmID, String cookieValue, String referer, String userAgent) { - String result = - encodeLogField("url", requestURL) + - encodeLogField("r", realmID) + - encodeLogField("c", cookieValue) + - encodeLogField("ref", referer) + - encodeLogField("ua", userAgent); + public static String getLogMessage(String requestURL, String realmID, String cookieValue, String referer, String userAgent, Map extra) { + StringBuilder result = new StringBuilder(); + result.append(encodeLogField("url", requestURL)); + result.append(encodeLogField("r", realmID)); + result.append(encodeLogField("c", cookieValue)); + result.append(encodeLogField("ref", referer)); + result.append(encodeLogField("ua", userAgent)); - return result; + if(extra != null) { + for(Map.Entry e : extra.entrySet()) { + result.append(encodeLogField(e.getKey(), e.getValue())); + } + } + + return result.toString(); } /** @@ -68,22 +77,29 @@ /** * Get log message + * @param request The request. + * @param response The response. + * @param realmID The id of the current realm. + * @param extra Additional fields to be appended to the log. */ - public static String getLogMessage(HttpServletRequest request, HttpServletResponse response, String realmID) { + public static String getLogMessage(HttpServletRequest request, HttpServletResponse response, String realmID, Map extra) { Cookie cookie = getYanelAnalyticsCookie(request, response); - return getLogMessage(request.getRequestURL().toString(), realmID, cookie.getValue(), request.getHeader("referer"), request.getHeader("User-Agent")); + return getLogMessage(request.getRequestURL().toString(), realmID, cookie.getValue(), request.getHeader("referer"), request.getHeader("User-Agent"), extra); } /** * Get log message + * @param request The request. + * @param realmID The id of the current realm. + * @param extra Additional fields to be appended to the log. */ - public static String getLogMessage(HttpServletRequest request, String realmID) { + public static String getLogMessage(HttpServletRequest request, String realmID, Map extra) { Cookie cookie = getYanelAnalyticsCookie(request); String cookieValue = null; if (cookie != null) { cookieValue = cookie.getValue(); } - return getLogMessage(request.getRequestURL().toString(), realmID, cookieValue, request.getHeader("referer"), request.getHeader("User-Agent")); + return getLogMessage(request.getRequestURL().toString(), realmID, cookieValue, request.getHeader("referer"), request.getHeader("User-Agent"), extra); } /** @@ -112,7 +128,8 @@ Cookie c = getYanelAnalyticsCookie(request); if (c != null) return c; - Cookie analyticsCookie = new Cookie(ANALYTICS_COOKIE_NAME, "YA-" + new Date().getTime()); // TODO: getTime() is not unique! + String value = "YA-" + UUID.randomUUID(); + Cookie analyticsCookie = new Cookie(ANALYTICS_COOKIE_NAME, value); analyticsCookie.setMaxAge(31536000); // 1 year //analyticsCookie.setMaxAge(86400); // 1 day analyticsCookie.setPath(request.getContextPath()); Index: src/contributions/resources/contact-form/src/java/org/wyona/yanel/impl/resources/contactform/ContactResource.java =================================================================== --- src/contributions/resources/contact-form/src/java/org/wyona/yanel/impl/resources/contactform/ContactResource.java (revision 52939) +++ src/contributions/resources/contact-form/src/java/org/wyona/yanel/impl/resources/contactform/ContactResource.java (working copy) @@ -117,9 +117,7 @@ throw new Exception("there is no spamblock implemented in the form."); } if (request.getParameter("spamblock_hidden").equals("TRyAg41n") && request.getParameter("spamblock_input").equals("8989890")) { - logAccess.info( - org.wyona.yanel.servlet.AccessLog.getLogMessage(request, getRealm().getID()) + - org.wyona.yanel.servlet.AccessLog.encodeLogField("e-mail", request.getParameter("email"))); + appendFieldToLog("email", request.getParameter("email")); javax.servlet.http.Cookie cookie = org.wyona.yanel.servlet.AccessLog.getYanelAnalyticsCookie(request); String cookieValue = null; if (cookie != null) { From bruno.vonrotz at wyona.com Thu Sep 2 14:16:46 2010 From: bruno.vonrotz at wyona.com (Bruno von Rotz) Date: Thu Sep 2 14:17:07 2010 Subject: [Yanel-dev] About cookies In-Reply-To: <20100902080516.GB6304@clarice.wyona.com> References: <20100902080516.GB6304@clarice.wyona.com> Message-ID: <4C7F95AE.50601@wyona.com> A combination of both, I would suggest. Bruno Cedric Staub schrieb: > Hello > > Something else I recently stumbled upon: when Yanel creates a cookie, it > writes a timestamp to that cookie. But timestamps are not unique... If we > have more than one request per second we'll have multiple users with > the same cookie and we won't be able to distinguish them anymore. > > The code actually knows this and includes a TODO and I think this is > certainly something that should be fixed. I suggest instead of > timestamps we could use random UUIDs or perhaps a combination of both? > > Well, what do YOU think? ;-) > > Cheers > Cedric > -- ______________________________ Bruno von Rotz WYONA Hardstrasse 219 CH-8005 Z?rich Switzerland P: +41 44 272 91 61 F: +41 44 272 91 62 skype: wyona-switzerland email: bruno.vonrotz@wyona.com www.wyona.com From michael.wechner at wyona.com Thu Sep 2 16:36:34 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Thu Sep 2 16:36:56 2010 Subject: [Yanel-dev] Access logging In-Reply-To: <20100902095649.GC24175@clarice.wyona.com> References: <20100902075732.GA6304@clarice.wyona.com> <20100902095649.GC24175@clarice.wyona.com> Message-ID: <4C7FB672.8010508@wyona.com> Dear Cedric Thanks very much for your patches. Can you attach them to Bugzilla and assign the review of the various patches to me. Otherwise I am afraid I will loose track of them ;-) Thanks Michael Cedric Staub wrote: > Hello > > Here is a first version of my patch. > > Resources can now use appendFieldToLog to append a new field to the log > entry generated by the current request. I noticed that the contact-form > resourced already does something like this, but by simply generating a > second log entry, which is not very nice. So I modified the contact form > to use the the new functions. > > Example: In a resource, you can call > > appendFieldToLog("email", resource.getParameter("email")) > > which will result in a log entry with e.g. > > email:cedric.staub%40wyona.com > > in the access log file. > > Feedback is welcome. By the way, I also improved the performance of the > access log by replacing string appends with a StringBuilder and I > inserted some Javadocs along the way as well. > > Cheers > Cedric > From cedric.staub at wyona.com Thu Sep 2 17:22:00 2010 From: cedric.staub at wyona.com (Cedric Staub) Date: Thu Sep 2 17:32:28 2010 Subject: [Yanel-dev] Access logging In-Reply-To: <4C7FB672.8010508@wyona.com> References: <20100902075732.GA6304@clarice.wyona.com> <20100902095649.GC24175@clarice.wyona.com> <4C7FB672.8010508@wyona.com> Message-ID: <20100902152200.GH24175@clarice.wyona.com> On Thu, Sep 02, 2010 at 03:36:34PM +0100, Michael Wechner wrote: > Can you attach them to Bugzilla and assign the review of the various > patches to me. Sure, I'll open bug reports as soon as I can get around to it. Cheers Cedric From bugzilla at wyona.com Fri Sep 3 08:57:23 2010 From: bugzilla at wyona.com (bugzilla@wyona.com) Date: Fri Sep 3 09:01:33 2010 Subject: [Yanel-dev] [Bug 7784] New: Patch review: Access logging Message-ID: <20100903065723.106E910CE86@server1.example.com> http://bugzilla.wyona.com/cgi-bin/bugzilla/show_bug.cgi?id=7784 Summary: Patch review: Access logging Product: Yanel Version: unspecified Platform: All OS/Version: All Status: NEW Severity: normal (C) Priority: P2 Component: General AssignedTo: michael.wechner@wyona.org ReportedBy: cedric.staub@wyona.com QAContact: yanel-development@wyona.com With this patch, resources can now use appendFieldToLog to append a new field to the log entry generated by the current request. I noticed that the contact-form resource already does something like this, but by simply generating a second log entry, which is not very nice. So I also modified the contact form to use the the new functions. I will upload the patch as an attachment shortly. -- Configure bugmail: http://bugzilla.wyona.com/cgi-bin/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug, or are watching the QA contact. From bugzilla at wyona.com Fri Sep 3 08:59:20 2010 From: bugzilla at wyona.com (bugzilla@wyona.com) Date: Fri Sep 3 09:03:15 2010 Subject: [Yanel-dev] [Bug 7784] Patch review: Access logging Message-ID: <20100903065920.6CAE310CE86@server1.example.com> http://bugzilla.wyona.com/cgi-bin/bugzilla/show_bug.cgi?id=7784 ------- Comment #1 from cedric.staub@wyona.com 2010-09-03 08:19 ------- Created an attachment (id=1330) --> (http://bugzilla.wyona.com/cgi-bin/bugzilla/attachment.cgi?id=1330&action=view) Access logging patch v1 Here is the patch. -- Configure bugmail: http://bugzilla.wyona.com/cgi-bin/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug, or are watching the QA contact. From bugzilla at wyona.com Fri Sep 3 09:02:26 2010 From: bugzilla at wyona.com (bugzilla@wyona.com) Date: Fri Sep 3 09:09:27 2010 Subject: [Yanel-dev] [Bug 7785] New: Patch review: User management pagination Message-ID: <20100903070226.50CFC10CB54@server1.example.com> http://bugzilla.wyona.com/cgi-bin/bugzilla/show_bug.cgi?id=7785 Summary: Patch review: User management pagination Product: Yanel Version: unspecified Platform: All OS/Version: All Status: NEW Severity: normal (C) Priority: P2 Component: General AssignedTo: michael.wechner@wyona.org ReportedBy: cedric.staub@wyona.com QAContact: yanel-development@wyona.com This patch modifies the security library and the Yanel user-management resource to enable pagination using iterators, which as a result speeds up the displaying of the page for large numbers of users. Please note note that Yarep does not support using iterators yet, so loading the nodes from Yarep is still slow. However, the User objects are only created when they are actually used now (as opposed to before). I will upload the patches as an attachment shortly. -- Configure bugmail: http://bugzilla.wyona.com/cgi-bin/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug, or are watching the QA contact. From bugzilla at wyona.com Fri Sep 3 09:04:33 2010 From: bugzilla at wyona.com (bugzilla@wyona.com) Date: Fri Sep 3 09:09:28 2010 Subject: [Yanel-dev] [Bug 7785] Patch review: User management pagination Message-ID: <20100903070433.4BAEC10CB54@server1.example.com> http://bugzilla.wyona.com/cgi-bin/bugzilla/show_bug.cgi?id=7785 ------- Comment #1 from cedric.staub@wyona.com 2010-09-03 08:24 ------- Created an attachment (id=1331) --> (http://bugzilla.wyona.com/cgi-bin/bugzilla/attachment.cgi?id=1331&action=view) User management (security lib, v1) This patch should apply to the latest revision of the security library. -- Configure bugmail: http://bugzilla.wyona.com/cgi-bin/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug, or are watching the QA contact. From bugzilla at wyona.com Fri Sep 3 09:05:30 2010 From: bugzilla at wyona.com (bugzilla@wyona.com) Date: Fri Sep 3 09:16:12 2010 Subject: [Yanel-dev] [Bug 7785] Patch review: User management pagination Message-ID: <20100903070530.5D5E010CB54@server1.example.com> http://bugzilla.wyona.com/cgi-bin/bugzilla/show_bug.cgi?id=7785 ------- Comment #2 from cedric.staub@wyona.com 2010-09-03 08:25 ------- Created an attachment (id=1332) --> (http://bugzilla.wyona.com/cgi-bin/bugzilla/attachment.cgi?id=1332&action=view) User management (yanel, v1) This patch should apply to the latest revision of Yanel. -- Configure bugmail: http://bugzilla.wyona.com/cgi-bin/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug, or are watching the QA contact. From bugzilla at wyona.com Fri Sep 3 09:08:00 2010 From: bugzilla at wyona.com (bugzilla@wyona.com) Date: Fri Sep 3 09:16:14 2010 Subject: [Yanel-dev] [Bug 7786] New: Patch review: Create many users shell script Message-ID: <20100903070800.0D8C210CE4E@server1.example.com> http://bugzilla.wyona.com/cgi-bin/bugzilla/show_bug.cgi?id=7786 Summary: Patch review: Create many users shell script Product: Yanel Version: unspecified Platform: All OS/Version: All Status: NEW Severity: normal (C) Priority: P2 Component: General AssignedTo: michael.wechner@wyona.org ReportedBy: cedric.staub@wyona.com QAContact: yanel-development@wyona.com The from-scratch-realm contains a shell script that allows one to create many, many groups and users for testing. Sadly, the script is broken. 1. It prints "\n" instead of actual newlines 2. It doesn't add the new "" tag to users 3. The output is just not very nice in general :-) So, I fixed it. Please note the difference between tabs and spaces in the shell script! The tabs are required for it to work correctly. -- Configure bugmail: http://bugzilla.wyona.com/cgi-bin/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug, or are watching the QA contact. From bugzilla at wyona.com Fri Sep 3 09:08:55 2010 From: bugzilla at wyona.com (bugzilla@wyona.com) Date: Fri Sep 3 09:16:21 2010 Subject: [Yanel-dev] [Bug 7786] Patch review: Create many users shell script Message-ID: <20100903070855.CD82310CE72@server1.example.com> http://bugzilla.wyona.com/cgi-bin/bugzilla/show_bug.cgi?id=7786 ------- Comment #1 from cedric.staub@wyona.com 2010-09-03 08:28 ------- Created an attachment (id=1333) --> (http://bugzilla.wyona.com/cgi-bin/bugzilla/attachment.cgi?id=1333&action=view) Create many, many users patch v1 The patch, should apply to latest revision of Yanel. -- Configure bugmail: http://bugzilla.wyona.com/cgi-bin/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug, or are watching the QA contact. From Wayne.Bunting at gurit.com Fri Sep 3 11:00:42 2010 From: Wayne.Bunting at gurit.com (Wayne.Bunting@gurit.com) Date: Fri Sep 3 11:01:07 2010 Subject: [Yanel-dev] AUTO: Wayne Bunting is out of the office. (returning 06/09/2010) Message-ID: I am out of the office until 06/09/2010. I will respond to your message when I return. Note: This is an automated response to your message "[Yanel-dev] [Bug 7784] New: Patch review: Access logging" sent on 03/09/2010 07:57:23. This is the only notification you will receive while this person is away. ********************************************************************* All sales of goods are subject to the terms and conditions of sale (the Conditions) of Gurit (UK) Limited (the Company) which are available on request from the Company or may be viewed on the Gurit Website http://www.gurit.com Any advice given by the Company in connection with the sale of goods or the provision of technical, engineering or other services is given in good faith but the company only warrants that advice in writing and in relation to specific services or a specific project is given with reasonable skill and care. All advice is otherwise given subject to the Conditions. The contents of this message and any attachments are confidential and are intended solely for the attention and use of the addressee only. Information contained in this message may be subject to legal, professional or other privilege or may otherwise be protected by other legal rules. This message should not be copied or forwarded to any other person without the express permission of the sender. If you are not the intended recipient you are not authorised to disclose, copy, distribute or retain this message or any part of it. Gurit (UK) Limited registered offices are: St. Cross Business Park, Newport, Isle of Wight, PO30 5WU, UK The Company is registered in England and Wales. Reg No. 1368806 ********************************************************************* From balz.schreier at gmail.com Fri Sep 3 16:00:36 2010 From: balz.schreier at gmail.com (Balz Schreier) Date: Fri Sep 3 16:01:39 2010 Subject: [Yanel-dev] Logging in Yanel Message-ID: question: yanel logs on level WARN per default. i often see log statements like 1237 2010-09-03 15:56:27,237 [http-8443-Processor24] WARN org.wyona.yanel.core.ResourceTypeRegistry.readResourceTypes():157 - *DEBUG *: Register resource type... should these log messages be logged under DEBUG or what is the reason why DEBUG is in the message content? i hope my configuration is correct like this. cheers balz -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.wyona.org/pipermail/yanel-development/attachments/2010090= 3/429c4d7c/attachment.htm From cedric.staub at wyona.com Fri Sep 3 16:10:45 2010 From: cedric.staub at wyona.com (Cedric Staub) Date: Fri Sep 3 16:15:05 2010 Subject: [Yanel-dev] Logging in Yanel In-Reply-To: References: Message-ID: <20100903141045.GB9812@clarice.wyona.com> On Fri, Sep 03, 2010 at 04:00:36PM +0200, Balz Schreier wrote: > yanel logs on level WARN per default. Yanel uses log4j, dunno what the default config says though. Log4j has functions like log.warn(), log.debug(), ... > i often see log statements like > 1237 2010-09-03 15:56:27,237 [http-8443-Processor24] WARN > org.wyona.yanel.core.ResourceTypeRegistry.readResourceTypes():157 - *DEBUG > *: Register resource type... That means someone wrote log.warn("DEBUG: ..."). Probably for debugging and to avoid having to change the configuration, but then forgot to remove the logging statements I guess? > should these log messages be logged under DEBUG or what is the reason why > DEBUG is in the message content? > i hope my configuration is correct like this. IMHO they should be replaced by log.debug(...) or removed all together. Cheers Cedric From balz.schreier at gmail.com Fri Sep 3 16:22:46 2010 From: balz.schreier at gmail.com (Balz Schreier) Date: Fri Sep 3 16:23:40 2010 Subject: [Yanel-dev] Logging in Yanel In-Reply-To: <20100903141045.GB9812@clarice.wyona.com> References: <20100903141045.GB9812@clarice.wyona.com> Message-ID: I thought that as well because the log4j.properties file contains log4j.rootCategory=3DWARN, A1 I added now a specific line at the end so that the Zwischengas classes are logged with INFO: log4j.logger.com.zwischengas=3DINFO cheers balz On Fri, Sep 3, 2010 at 4:10 PM, Cedric Staub wrote: > On Fri, Sep 03, 2010 at 04:00:36PM +0200, Balz Schreier wrote: > > yanel logs on level WARN per default. > > Yanel uses log4j, dunno what the default config says though. > Log4j has functions like log.warn(), log.debug(), ... > > > i often see log statements like > > 1237 2010-09-03 15:56:27,237 [http-8443-Processor24] WARN > > org.wyona.yanel.core.ResourceTypeRegistry.readResourceTypes():157 - > *DEBUG > > *: Register resource type... > > That means someone wrote log.warn("DEBUG: ..."). Probably for debugging > and to avoid having to change the configuration, but then forgot to > remove the logging statements I guess? > > > should these log messages be logged under DEBUG or what is the reason w= hy > > DEBUG is in the message content? > > i hope my configuration is correct like this. > > IMHO they should be replaced by log.debug(...) or removed all together. > > Cheers > Cedric > -- > Yanel-development mailing list Yanel-development@wyona.com > http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.wyona.org/pipermail/yanel-development/attachments/2010090= 3/7d8cfc49/attachment.htm From michael.wechner at wyona.com Fri Sep 3 17:35:40 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Fri Sep 3 17:40:57 2010 Subject: [Yanel-dev] Logging in Yanel In-Reply-To: <20100903141045.GB9812@clarice.wyona.com> References: <20100903141045.GB9812@clarice.wyona.com> Message-ID: <4C8115CC.60208@wyona.com> Cedric Staub wrote: > On Fri, Sep 03, 2010 at 04:00:36PM +0200, Balz Schreier wrote: > >> yanel logs on level WARN per default. >> > > Yanel uses log4j, dunno what the default config says though. > Log4j has functions like log.warn(), log.debug(), ... > It's WARN, see YANEL_TRUNK/conf/log4j.properties > >> i often see log statements like >> 1237 2010-09-03 15:56:27,237 [http-8443-Processor24] WARN >> org.wyona.yanel.core.ResourceTypeRegistry.readResourceTypes():157 - *DEBUG >> *: Register resource type... >> > > That means someone wrote log.warn("DEBUG: ..."). Probably for debugging > and to avoid having to change the configuration, but then forgot to > remove the logging statements I guess? > correct ;-) Please feel free to patch such occurences > >> should these log messages be logged under DEBUG or what is the reason why >> DEBUG is in the message content? >> i hope my configuration is correct like this. >> > > IMHO they should be replaced by log.debug(...) or removed all together. > yes Thanks Michael > Cheers > Cedric > From michael.wechner at wyona.com Fri Sep 3 17:37:10 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Fri Sep 3 17:40:59 2010 Subject: [Yanel-dev] Logging in Yanel In-Reply-To: References: <20100903141045.GB9812@clarice.wyona.com> Message-ID: <4C811626.20901@wyona.com> Balz Schreier wrote: > I thought that as well because the log4j.properties file contains > log4j.rootCategory=WARN, A1 > > I added now a specific line at the end so that the Zwischengas classes > are logged with INFO: > log4j.logger.com.zwischengas=INFO I guess you did this within YANEL_TRUNK/conf/local/local.log4j.properties which it is made for. Please do not add this to Yanel itself ;-) Thanks Michael > > cheers > balz > > On Fri, Sep 3, 2010 at 4:10 PM, Cedric Staub > wrote: > > On Fri, Sep 03, 2010 at 04:00:36PM +0200, Balz Schreier wrote: > > yanel logs on level WARN per default. > > Yanel uses log4j, dunno what the default config says though. > Log4j has functions like log.warn(), log.debug(), ... > > > i often see log statements like > > 1237 2010-09-03 15:56:27,237 [http-8443-Processor24] WARN > > > org.wyona.yanel.core.ResourceTypeRegistry.readResourceTypes():157 > - *DEBUG > > *: Register resource type... > > That means someone wrote log.warn("DEBUG: ..."). Probably for > debugging > and to avoid having to change the configuration, but then forgot to > remove the logging statements I guess? > > > should these log messages be logged under DEBUG or what is the > reason why > > DEBUG is in the message content? > > i hope my configuration is correct like this. > > IMHO they should be replaced by log.debug(...) or removed all > together. > > Cheers > Cedric > -- > Yanel-development mailing list Yanel-development@wyona.com > > http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development > > From michael.wechner at wyona.com Sun Sep 5 00:21:51 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Sun Sep 5 00:27:17 2010 Subject: [Yanel-dev] org.wyona.yarep.impl.repo.vfs.VirtualFileSystemRepository#getNode(java.lang.String) question In-Reply-To: <4C7CC456.3070006@wyona.com> References: <4C7761E1.60407@wyona.com> <20100827070638.GA3802@clarice.wyona.com> <4C7BBD18.6000001@wyona.com> <20100830151912.GB24080@clarice.wyona.com> <4C7CBD1F.2070801@wyona.com> <4C7CBE9D.4020804@wyona.com> <4C7CC456.3070006@wyona.com> Message-ID: <4C82C67F.7080403@wyona.com> Dear Claudio I have reviewed your patch, but to be honest it is still not clear to me what the actual issue is and how your patch is supposed to solve this issue without creating other issues. I think according to your very first email we rather have to fix String childPath = getPath() + "/" + name; within AbstractNode by checking if getPath().equals("/") and if true, then not append the slash, such that one does not end up with "//hello_world.txt", but rather with "/hello_world.txt". Makes sense? Cheers Michael Claudio Corrodi wrote: > On 08/31/2010 10:34 AM, Michael Wechner wrote: >> Can you send the complete example to this mailing list, I mean your >> spliting configuration for this example? > > It is as follows: > > > > > > But I also tested using this configuration > > > > > > where every file is splitted, not only those under /. > > Cheers, Claudio From bugzilla at wyona.com Mon Sep 6 09:55:52 2010 From: bugzilla at wyona.com (bugzilla@wyona.com) Date: Mon Sep 6 10:00:01 2010 Subject: [Yanel-dev] [Bug 7795] New: Patch review: Strict exists() checking (ViewableV2) Message-ID: <20100906075552.45F6710CD14@server1.example.com> http://bugzilla.wyona.com/cgi-bin/bugzilla/show_bug.cgi?id=7795 Summary: Patch review: Strict exists() checking (ViewableV2) Product: Yanel Version: unspecified Platform: All OS/Version: All Status: NEW Severity: normal (C) Priority: P2 Component: General AssignedTo: michael.wechner@wyona.org ReportedBy: cedric.staub@wyona.com QAContact: yanel-development@wyona.com This patch introduces a new setting (viewable.strict-exists) to web.xml, which allows one to turn on strict exists() checking of ViewableV2 resources. Up to now, if a ViewableV2 resource's exist() function returned false, the request was still completed. This is because some resources don't implement exists() properly. But in some situations this is undesireable: so this patch makes it configurable ;-). Patch will follow shortly. -- Configure bugmail: http://bugzilla.wyona.com/cgi-bin/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug, or are watching the QA contact. From bugzilla at wyona.com Mon Sep 6 09:56:34 2010 From: bugzilla at wyona.com (bugzilla@wyona.com) Date: Mon Sep 6 10:00:03 2010 Subject: [Yanel-dev] [Bug 7795] Patch review: Strict exists() checking (ViewableV2) Message-ID: <20100906075634.1E84210CDFE@server1.example.com> http://bugzilla.wyona.com/cgi-bin/bugzilla/show_bug.cgi?id=7795 ------- Comment #1 from cedric.staub@wyona.com 2010-09-06 09:16 ------- Created an attachment (id=1334) --> (http://bugzilla.wyona.com/cgi-bin/bugzilla/attachment.cgi?id=1334&action=view) ViewableV2: Strict exists() checking patch Should apply to latest Yanel revision. -- Configure bugmail: http://bugzilla.wyona.com/cgi-bin/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug, or are watching the QA contact. From michael.wechner at wyona.com Mon Sep 6 10:04:08 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Mon Sep 6 10:04:37 2010 Subject: [Yanel-dev] session-timeout and cookies Message-ID: <4C84A078.1030300@wyona.com> Hi I have recently edited my session-timeout within web.xml (instead setting it to one minute for testing purposes), but it only had an effect after I have deleted my cookie within the browser. I am not sure if this is a feature or a bug, but it might be good to know anyhow. Cheers Michael From bugzilla at wyona.com Mon Sep 6 10:06:07 2010 From: bugzilla at wyona.com (bugzilla@wyona.com) Date: Mon Sep 6 10:06:10 2010 Subject: [Yanel-dev] [Bug 7795] Patch review: Strict exists() checking (ViewableV2) Message-ID: <20100906080607.79A9210CE3C@server1.example.com> http://bugzilla.wyona.com/cgi-bin/bugzilla/show_bug.cgi?id=7795 cedric.staub@wyona.com changed: What |Removed |Added ---------------------------------------------------------------------------- OtherBugsDependingO| |7690 nThis| | -- Configure bugmail: http://bugzilla.wyona.com/cgi-bin/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug, or are watching the QA contact. From cedric.staub at wyona.com Mon Sep 6 11:09:42 2010 From: cedric.staub at wyona.com (Cedric Staub) Date: Mon Sep 6 11:14:24 2010 Subject: [Yanel-dev] org.wyona.yarep.impl.repo.vfs.VirtualFileSystemRepository#getNode(java.lang.String) question In-Reply-To: <4C82C67F.7080403@wyona.com> References: <4C7761E1.60407@wyona.com> <20100827070638.GA3802@clarice.wyona.com> <4C7BBD18.6000001@wyona.com> <20100830151912.GB24080@clarice.wyona.com> <4C7CBD1F.2070801@wyona.com> <4C7CBE9D.4020804@wyona.com> <4C7CC456.3070006@wyona.com> <4C82C67F.7080403@wyona.com> Message-ID: <20100906090942.GB32537@clarice.wyona.com> On Sun, Sep 05, 2010 at 12:21:51AM +0200, Michael Wechner wrote: > I have reviewed your patch, but to be honest it is still not clear to me > what the actual issue is > and how your patch is supposed to solve this issue without creating > other issues. In general I agree with his solution. If I understand it correctly, it just makes sure the trailing slash is always stripped in order to avoid a double-slash somewhere. The only problem of course is: do other functions/clients depend on the incorrect behaviour and will they break by applying this patch? Well I don't know and we probaly never will unless we actually try it. > I think according to your very first email we rather have to fix > > String childPath = getPath() + "/" + name; > > within AbstractNode by checking if getPath().equals("/") and if true, > then not > append the slash, such that one does not end up with > "//hello_world.txt", but rather with "/hello_world.txt". Certainly the safer solution, but also kind of a workaround. Cheers Cedric From balz.schreier at gmail.com Mon Sep 6 16:47:48 2010 From: balz.schreier at gmail.com (Balz Schreier) Date: Mon Sep 6 16:48:16 2010 Subject: [Yanel-dev] =?iso-8859-1?q?Yanel_Patch_f=FCr_MailUtil?= Message-ID: Skipped content of type multipart/alternative-------------- next part -----= --------- A non-text attachment was scrubbed... Name: MailUtil_Patch_Balz.diff Type: application/octet-stream Size: 619 bytes Desc: not available Url : http://lists.wyona.org/pipermail/yanel-development/attachments/201009= 06/ae955f69/MailUtil_Patch_Balz.obj From michael.wechner at wyona.com Mon Sep 6 23:54:09 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Mon Sep 6 23:54:56 2010 Subject: [Yanel-dev] Re: Yanel Patch =?iso-8859-1?q?f=FCr_MailUtil?= In-Reply-To: References: Message-ID: <4C856301.8080404@wyona.com> Dear Balz Thanks for your patch, whereas I am not sure if it is a bug or a feature. I first need to check the history of this class ----- svn log src/core/java/org/wyona/yanel/core/util/MailUtil.java ------------------------------------------------------------------------ r52649 | michi | 2010-08-24 10:09:58 +0200 (Tue, 24 Aug 2010) | 1 line note about default session added ------------------------------------------------------------------------ r52643 | michi | 2010-08-24 09:49:07 +0200 (Tue, 24 Aug 2010) | 1 line enhanced with charset and mime sub-type ------------------------------------------------------------------------ r47278 | michi | 2010-01-27 12:13:58 +0100 (Wed, 27 Jan 2010) | 1 line reply to address added ------------------------------------------------------------------------ r47265 | michi | 2010-01-27 10:25:38 +0100 (Wed, 27 Jan 2010) | 1 line mail utility class added ------- in order to make a decision. Cheers Michael Balz Schreier wrote: > Hallo Michi, > > ich habe einen Patch f?r MailUtil, siehe Attachment. > > Diff: > > basZeros-MacBook-Pro:trunk baszero$ cat MailUtil_Patch_Balz.diff > Index: src/core/java/org/wyona/yanel/core/util/MailUtil.java > =================================================================== > --- src/core/java/org/wyona/yanel/core/util/MailUtil.java (revision 52939) > +++ src/core/java/org/wyona/yanel/core/util/MailUtil.java (working copy) > @@ -44,7 +44,7 @@ > * > */ > public static void send(String smtpHost, int smtpPort, String > from, String to, String subject, String content) throws > AddressException, MessagingException { > - send(null, -1, from, null, to, subject, content); > + send(smtpHost, smtpPort, from, null, to, subject, content); > } > > /** > > > Kannst du mir sagen, sobald der Patch im Trunk ist? Ich werde das f?r > Zwischengas sicherlich tracken. > > Gruss > Balz From michael.wechner at wyona.com Tue Sep 7 00:21:12 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Tue Sep 7 00:24:04 2010 Subject: [Yanel-dev] Re: Yanel Patch =?ISO-8859-1?Q?f=FCr_MailUtil?= In-Reply-To: <4C856301.8080404@wyona.com> References: <4C856301.8080404@wyona.com> Message-ID: <4C856958.6040906@wyona.com> Michael Wechner wrote: > Dear Balz > > Thanks for your patch, whereas I am not sure if it is a bug or a > feature. I first need to check the history of this class it seems like this method was modified when we have added a reply-to address: svn diff -r47277 src/core/java/org/wyona/yanel/core/util/MailUtil.java Index: src/core/java/org/wyona/yanel/core/util/MailUtil.java =================================================================== --- src/core/java/org/wyona/yanel/core/util/MailUtil.java (revision 47277) +++ src/core/java/org/wyona/yanel/core/util/MailUtil.java (working copy) @@ -21,18 +21,46 @@ /** * @param from From address - * @param from To address + * @param to To address * @param subject Subject of email * @param content Body of email */ public static void send(String from, String to, String subject, String content) throws AddressException, MessagingException { - send(null, -1, from, to, subject, content); + send(null, -1, from, null, to, subject, content); } /** + * @param from From address + * @param replyTo email address (if null, then no reply-to will be set) + * @param to To address + * @param subject Subject of email + * @param content Body of email + */ + public static void send(String from, String replyTo, String to, String subject, String content) throws AddressException, MessagingException { + send(null, -1, from, replyTo, to, subject, content); + } + + /** * */ public static void send(String smtpHost, int smtpPort, String from, String to, String subject, String content) throws AddressException, MessagingException { + send(null, -1, from, null, to, subject, content); + } + + /** + * Send e-mail with a MIME type of "text/plain" and as encoding the platform's default charset + * @param replyTo email address (if null, then no reply-to will be set) + */ + public static void send(String smtpHost, int smtpPort, String from, String replyTo, String to, String subject, String content) throws AddressException, MessagingException { + send(smtpHost, smtpPort, from, replyTo, to, subject, content, java.nio.charset.Charset.defaultCharset().name(), "plain"); + } + + /** + * @param replyTo email address (if null, then no reply-to will be set) + * @param charset Charset, e.g. utf-8 + * @param mimeSubType Mime sub-type, e.g. "html" or "plain" + */ + public static void send(String smtpHost, int smtpPort, String from, String replyTo, String to, String subject, String content, String charset, String mimeSubType) throws AddressException, MessagingException { // Create a mail session Session session = null; if (smtpHost != null && smtpPort >= 0) { @@ -45,16 +73,21 @@ java.util.Properties props = new java.util.Properties(); props.put("mail.smtp.host", "mail.foo.bar"); // Dummy value props.put("mail.smtp.port", "37"); // Dummy value - session = Session.getDefaultInstance(props, null); + session = Session.getDefaultInstance(props, null); // INFO: The dummy values will be ignored, because Yanel (org.wyona.yanel.core.Yanel) sets during initialization the default session! log.warn("Use default mail session: " + session.getProperty("mail.smtp.host") + ":" + session.getProperty("mail.smtp.port")); } // Construct the message - Message msg = new MimeMessage(session); + MimeMessage msg = new MimeMessage(session); msg.setFrom(new InternetAddress(from)); + if (replyTo != null) { + InternetAddress[] replyToAddresses = new InternetAddress[1]; + replyToAddresses[0] = new InternetAddress(replyTo); + msg.setReplyTo(replyToAddresses); + } msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to)); msg.setSubject(subject); - msg.setText(content); + msg.setText(content, charset, mimeSubType); // Send the message Transport.send(msg); So yes I would say this is a bug, but which we never noticed, because it was using the mail settings configured within (local.)yanel.xml ... I will fix it tomorrow after a sleeping cycle ;-) Cheers Michael > > ----- > svn log src/core/java/org/wyona/yanel/core/util/MailUtil.java > ------------------------------------------------------------------------ > r52649 | michi | 2010-08-24 10:09:58 +0200 (Tue, 24 Aug 2010) | 1 line > > note about default session added > ------------------------------------------------------------------------ > r52643 | michi | 2010-08-24 09:49:07 +0200 (Tue, 24 Aug 2010) | 1 line > > enhanced with charset and mime sub-type > ------------------------------------------------------------------------ > r47278 | michi | 2010-01-27 12:13:58 +0100 (Wed, 27 Jan 2010) | 1 line > > reply to address added > ------------------------------------------------------------------------ > r47265 | michi | 2010-01-27 10:25:38 +0100 (Wed, 27 Jan 2010) | 1 line > > mail utility class added > ------- > > in order to make a decision. > > Cheers > > Michael > > Balz Schreier wrote: >> Hallo Michi, >> >> ich habe einen Patch f?r MailUtil, siehe Attachment. >> >> Diff: >> >> basZeros-MacBook-Pro:trunk baszero$ cat MailUtil_Patch_Balz.diff >> Index: src/core/java/org/wyona/yanel/core/util/MailUtil.java >> =================================================================== >> --- src/core/java/org/wyona/yanel/core/util/MailUtil.java (revision >> 52939) >> +++ src/core/java/org/wyona/yanel/core/util/MailUtil.java (working copy) >> @@ -44,7 +44,7 @@ >> * >> */ >> public static void send(String smtpHost, int smtpPort, String >> from, String to, String subject, String content) throws >> AddressException, MessagingException { >> - send(null, -1, from, null, to, subject, content); >> + send(smtpHost, smtpPort, from, null, to, subject, content); >> } >> >> /** >> >> >> Kannst du mir sagen, sobald der Patch im Trunk ist? Ich werde das f?r >> Zwischengas sicherlich tracken. >> >> Gruss >> Balz > From michael.wechner at wyona.com Tue Sep 7 00:34:08 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Tue Sep 7 00:34:45 2010 Subject: [Yanel-dev] Re: Yanel Patch =?ISO-8859-1?Q?f=FCr_MailUtil?= In-Reply-To: <4C856958.6040906@wyona.com> References: <4C856301.8080404@wyona.com> <4C856958.6040906@wyona.com> Message-ID: <4C856C60.6030103@wyona.com> done Sending src/core/java/org/wyona/yanel/core/util/MailUtil.java Transmitting file data . Committed revision 53027. Thanks again for the patch Michael Michael Wechner wrote: > Michael Wechner wrote: >> Dear Balz >> >> Thanks for your patch, whereas I am not sure if it is a bug or a >> feature. I first need to check the history of this class > > it seems like this method was modified when we have added a reply-to > address: > > svn diff -r47277 src/core/java/org/wyona/yanel/core/util/MailUtil.java > Index: src/core/java/org/wyona/yanel/core/util/MailUtil.java > =================================================================== > --- src/core/java/org/wyona/yanel/core/util/MailUtil.java (revision > 47277) > +++ src/core/java/org/wyona/yanel/core/util/MailUtil.java (working > copy) > @@ -21,18 +21,46 @@ > > /** > * @param from From address > - * @param from To address > + * @param to To address > * @param subject Subject of email > * @param content Body of email > */ > public static void send(String from, String to, String subject, > String content) throws AddressException, MessagingException { > - send(null, -1, from, to, subject, content); > + send(null, -1, from, null, to, subject, content); > } > > /** > + * @param from From address > + * @param replyTo email address (if null, then no reply-to will > be set) > + * @param to To address > + * @param subject Subject of email > + * @param content Body of email > + */ > + public static void send(String from, String replyTo, String to, > String subject, String content) throws AddressException, > MessagingException { > + send(null, -1, from, replyTo, to, subject, content); > + } > + > + /** > * > */ > public static void send(String smtpHost, int smtpPort, String > from, String to, String subject, String content) throws > AddressException, MessagingException { > + send(null, -1, from, null, to, subject, content); > + } > + > + /** > + * Send e-mail with a MIME type of "text/plain" and as encoding > the platform's default charset > + * @param replyTo email address (if null, then no reply-to will > be set) > + */ > + public static void send(String smtpHost, int smtpPort, String > from, String replyTo, String to, String subject, String content) > throws AddressException, MessagingException { > + send(smtpHost, smtpPort, from, replyTo, to, subject, content, > java.nio.charset.Charset.defaultCharset().name(), "plain"); > + } > + > + /** > + * @param replyTo email address (if null, then no reply-to will > be set) > + * @param charset Charset, e.g. utf-8 > + * @param mimeSubType Mime sub-type, e.g. "html" or "plain" > + */ > + public static void send(String smtpHost, int smtpPort, String > from, String replyTo, String to, String subject, String content, > String charset, String mimeSubType) throws AddressException, > MessagingException { > // Create a mail session > Session session = null; > if (smtpHost != null && smtpPort >= 0) { > @@ -45,16 +73,21 @@ > java.util.Properties props = new java.util.Properties(); > props.put("mail.smtp.host", "mail.foo.bar"); // Dummy value > props.put("mail.smtp.port", "37"); // Dummy value > - session = Session.getDefaultInstance(props, null); > + session = Session.getDefaultInstance(props, null); // > INFO: The dummy values will be ignored, because Yanel > (org.wyona.yanel.core.Yanel) sets during initialization the default > session! > log.warn("Use default mail session: " + > session.getProperty("mail.smtp.host") + ":" + > session.getProperty("mail.smtp.port")); > } > > // Construct the message > - Message msg = new MimeMessage(session); > + MimeMessage msg = new MimeMessage(session); > msg.setFrom(new InternetAddress(from)); > + if (replyTo != null) { > + InternetAddress[] replyToAddresses = new InternetAddress[1]; > + replyToAddresses[0] = new InternetAddress(replyTo); > + msg.setReplyTo(replyToAddresses); > + } > msg.setRecipient(Message.RecipientType.TO, new > InternetAddress(to)); > msg.setSubject(subject); > - msg.setText(content); > + msg.setText(content, charset, mimeSubType); > > // Send the message > Transport.send(msg); > > > So yes I would say this is a bug, but which we never noticed, because > it was using the mail settings configured within (local.)yanel.xml ... > > I will fix it tomorrow after a sleeping cycle ;-) > > Cheers > > Michael >> >> ----- >> svn log src/core/java/org/wyona/yanel/core/util/MailUtil.java >> ------------------------------------------------------------------------ >> r52649 | michi | 2010-08-24 10:09:58 +0200 (Tue, 24 Aug 2010) | 1 line >> >> note about default session added >> ------------------------------------------------------------------------ >> r52643 | michi | 2010-08-24 09:49:07 +0200 (Tue, 24 Aug 2010) | 1 line >> >> enhanced with charset and mime sub-type >> ------------------------------------------------------------------------ >> r47278 | michi | 2010-01-27 12:13:58 +0100 (Wed, 27 Jan 2010) | 1 line >> >> reply to address added >> ------------------------------------------------------------------------ >> r47265 | michi | 2010-01-27 10:25:38 +0100 (Wed, 27 Jan 2010) | 1 line >> >> mail utility class added >> ------- >> >> in order to make a decision. >> >> Cheers >> >> Michael >> >> Balz Schreier wrote: >>> Hallo Michi, >>> >>> ich habe einen Patch f?r MailUtil, siehe Attachment. >>> >>> Diff: >>> >>> basZeros-MacBook-Pro:trunk baszero$ cat MailUtil_Patch_Balz.diff >>> Index: src/core/java/org/wyona/yanel/core/util/MailUtil.java >>> =================================================================== >>> --- src/core/java/org/wyona/yanel/core/util/MailUtil.java (revision >>> 52939) >>> +++ src/core/java/org/wyona/yanel/core/util/MailUtil.java (working >>> copy) >>> @@ -44,7 +44,7 @@ >>> * >>> */ >>> public static void send(String smtpHost, int smtpPort, String >>> from, String to, String subject, String content) throws >>> AddressException, MessagingException { >>> - send(null, -1, from, null, to, subject, content); >>> + send(smtpHost, smtpPort, from, null, to, subject, content); >>> } >>> >>> /** >>> >>> >>> Kannst du mir sagen, sobald der Patch im Trunk ist? Ich werde das >>> f?r Zwischengas sicherlich tracken. >>> >>> Gruss >>> Balz >> > From balz.schreier at gmail.com Wed Sep 8 10:53:35 2010 From: balz.schreier at gmail.com (Balz Schreier) Date: Wed Sep 8 10:59:03 2010 Subject: [Yanel-dev] =?iso-8859-1?q?Patch_f=FCr_MailUtil?= Message-ID: Skipped content of type multipart/alternative-------------- next part -----= --------- Index: MailUtil.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- MailUtil.java (revision 53045) +++ MailUtil.java (working copy) @@ -1,5 +1,9 @@ package org.wyona.yanel.core.util; = +import java.io.UnsupportedEncodingException; +import java.nio.charset.Charset; +import java.util.Properties; + import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Session; @@ -93,4 +97,82 @@ // Send the message Transport.send(msg); } + = + /** + * @param replyTo + * email address (if null, then no reply-to will be set) + * @param charset + * Charset, e.g. utf-8 + * @param mimeSubType + * Mime sub-type, e.g. "html" or "plain" + * @param fromEmailAdress e.g. abc@gmail.com + * @param fromName e.g. "Alfred Jung" (then the receiver of the mail w= ill see this name instead of the address itself, looks better if supported) + */ + public static void sendAuthenticated(String smtpHost, int smtpPort, St= ring fromEmailAddress, String fromName, String replyTo, String to, + String subject, String content, String charset, String mimeSub= Type, String username, String password) + throws AddressException, MessagingException { + if (username =3D=3D null) { + username =3D "username"; + } + if (password =3D=3D null) { + password =3D "password"; + } + if (charset =3D=3D null) { + charset =3D Charset.defaultCharset().name(); + } + if (mimeSubType =3D=3D null) { + mimeSubType =3D "plain"; + } + // Create a mail session + Session session =3D null; + Properties props =3D new Properties(); + if (smtpHost !=3D null && smtpPort >=3D 0) { + props.put("mail.smtp.host", smtpHost); + props.put("mail.smtp.port", "" + smtpPort); + session =3D Session.getInstance(props, null); + log.warn("Use specific mail session: " + session.getProperty("= mail.smtp.host") + ":" + + session.getProperty("mail.smtp.port")); + } else { + props.put("mail.smtp.host", "mail.foo.bar"); // Dummy value + props.put("mail.smtp.port", "37"); // Dummy value + session =3D Session.getDefaultInstance(props, null); + log.warn("Use default mail session: " + session.getProperty("m= ail.smtp.host") + ":" + + session.getProperty("mail.smtp.port")); + } + + // Construct the message + MimeMessage msg =3D new MimeMessage(session); + if (fromName !=3D null && !("".equals(fromName))) { + try { + msg.setFrom(new InternetAddress(fromEmailAddress, fromName= )); + log.debug("Using fromName =3D "+fromName+" / fromEmail =3D= "+fromEmailAddress); + } catch (UnsupportedEncodingException e) { + msg.setFrom(new InternetAddress(fromEmailAddress)); + log.debug("Using fromEmail only =3D "+fromEmailAddress); + } + } else { + msg.setFrom(new InternetAddress(fromEmailAddress)); + log.debug("Using fromEmail only =3D "+fromEmailAddress); + } + if (replyTo !=3D null && !("".equals(replyTo))) { + InternetAddress[] replyToAddresses =3D new InternetAddress[1]; + replyToAddresses[0] =3D new InternetAddress(replyTo); + msg.setReplyTo(replyToAddresses); + } + msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to)= ); + msg.setSubject(subject); + msg.setText(content, charset, mimeSubType); + + String protocol =3D "smtp"; + props.put("mail." + protocol + ".auth", "true"); + + Transport t =3D session.getTransport(protocol); + log.debug("+++ send mail: before connect"); + t.connect(username, password); + log.debug("+++ send mail: connect ok, now sending..."); + t.sendMessage(msg, msg.getAllRecipients()); + log.debug("+++ send mail OK"); + + } + } From michael.wechner at wyona.com Wed Sep 8 16:20:43 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Wed Sep 8 16:23:11 2010 Subject: [Yanel-dev] Unset language of user Message-ID: <4C879BBB.9070407@wyona.com> Hi I have introduced src/core/java/org/wyona/security/core/api/User.java#unsetLanguage() in order to ... er .. unset the language of a user ;-) This allows for example to switch back to the browser or realm language, instead using a specific user language such as 'en' or 'de'. Cheers Michael From michael.wechner at wyona.com Wed Sep 8 16:23:36 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Wed Sep 8 16:24:04 2010 Subject: [Yanel-dev] Re: Patch =?iso-8859-1?q?f=FCr_MailUtil?= In-Reply-To: References: Message-ID: <4C879C68.4080706@wyona.com> Dear Balz Thanks very much for this patch. I will try to review it shortly. Maybe you can add it to Bugzilla in the meantime to keept track of it :-) Thanks Michi Balz Schreier wrote: > Hoi Michi, > > habe eine neue Methode implementiert und getestet mit dem produktiven > Zwischengas Mail Server. > > Ein neuer Paramter ist "fromName", der ist noch sch?n, damit der > Empf?nger nicht die fromEmailAddress sieht sondern einen "Namen" des > Empf?ngers, > z.b. "Zwischengas Newsletter" anstatt "do-not-reply@zwischengas.com > ". > > Das DIFF ist attached. > > Gruess > Balz From michael.wechner at wyona.com Thu Sep 9 00:03:54 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Thu Sep 9 00:04:25 2010 Subject: [Yanel-dev] OpenJDK Message-ID: <4C88084A.2000302@wyona.com> Hi I have recently tested Yanel on OpenJDK (on Ubuntu) and it seemed to work fine: http://en.wikipedia.org/wiki/OpenJDK http://openjdk.java.net/ Just to let you know ;-) Cheers Michael From Wayne.Bunting at gurit.com Thu Sep 9 05:00:38 2010 From: Wayne.Bunting at gurit.com (Wayne.Bunting@gurit.com) Date: Thu Sep 9 05:01:15 2010 Subject: [Yanel-dev] AUTO: Wayne Bunting is out of the office. (returning 13/09/2010) Message-ID: I am out of the office until 13/09/2010. I will respond to your message when I return. Note: This is an automated response to your message "[Yanel-dev] OpenJDK" sent on 08/09/2010 23:03:54. This is the only notification you will receive while this person is away. ********************************************************************* All sales of goods are subject to the terms and conditions of sale (the Conditions) of Gurit (UK) Limited (the Company) which are available on request from the Company or may be viewed on the Gurit Website http://www.gurit.com Any advice given by the Company in connection with the sale of goods or the provision of technical, engineering or other services is given in good faith but the company only warrants that advice in writing and in relation to specific services or a specific project is given with reasonable skill and care. All advice is otherwise given subject to the Conditions. The contents of this message and any attachments are confidential and are intended solely for the attention and use of the addressee only. Information contained in this message may be subject to legal, professional or other privilege or may otherwise be protected by other legal rules. This message should not be copied or forwarded to any other person without the express permission of the sender. If you are not the intended recipient you are not authorised to disclose, copy, distribute or retain this message or any part of it. Gurit (UK) Limited registered offices are: St. Cross Business Park, Newport, Isle of Wight, PO30 5WU, UK The Company is registered in England and Wales. Reg No. 1368806 ********************************************************************* From michael.wechner at wyona.com Thu Sep 9 23:47:41 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Thu Sep 9 23:48:29 2010 Subject: [Yanel-dev] WMD Editor Message-ID: <4C8955FD.3070805@wyona.com> Hi I have just become aware of http://wmd-editor.com/ Maybe it's worth checking it out and integrating it with Yanel. Cheers Michael From michael.wechner at wyona.com Fri Sep 10 09:23:53 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Fri Sep 10 09:24:26 2010 Subject: [Yanel-dev] Yanel-Box Message-ID: <4C89DD09.2060902@wyona.com> Hi It recently came to me that it would be great to have something like "dropbox" for Yanel, which means on your desktop you would have a folder (e.g. named "yanelbox") to which you can drag and drop files, create sub-folders, edit files, etc. All of these actions would be synchronized with your Yanel CMS server and made available within your personal web-dashboard. From within your web-dashboard you could associate this content with any other part of your website, e.g. publish an OOo document as a regular webpage under a specific URL. There seems to be some efforts re Open Source "dropbox" solutions, e.g. http://www.sparkleshare.org/ and also some "scripted" solutions http://fak3r.com/2009/09/14/howto-build-your-own-open-source-dropbox-clone/ whereas it seems to me it would nice to re-use WebDAV (or some "automatic" SVN) which would make it even less "proprietary" and also open it up to other CMS solutions. The whole thing is really about bridging the gap between the desktop and the Web-CMS, which is still a huge problem in particular for people not familiar with Web-based CMS and it would make life a little bit easier. WDYT? Cheers Michael From etaroza at optaros.com Fri Sep 10 11:04:11 2010 From: etaroza at optaros.com (Evaldas Taroza) Date: Fri Sep 10 11:04:48 2010 Subject: [Yanel-dev] Re: [Yanel-usage] Yanel-Box In-Reply-To: <4C89DD09.2060902@wyona.com> References: <4C89DD09.2060902@wyona.com> Message-ID: I think the idea to use XMPP, or maybe PubSubHubub. The content will probably be "files" and the activity stream, if this stream can then be then represented as social feed then it's great, e.g. plugged to Facebook. However, dropbox is for sharing/backuping files accross computers, it's not really about publishing content to the Web (although they have some sort of picture gallery for folders where there are only pictures). Not sure if the same usecase applies for a WCMS. For bridging the gap between desktop and Web an AIR editor could be a better choice. Evaldas On Fri, Sep 10, 2010 at 9:23 AM, Michael Wechner wrote: > Hi > > It recently came to me that it would be great to have something like > "dropbox" for Yanel, which > means on your desktop you would have a folder (e.g. named "yanelbox") to > which you can drag and drop > files, create sub-folders, edit files, etc. > > All of these actions would be synchronized with your Yanel CMS server > and made available within > your personal web-dashboard. From within your web-dashboard you could > associate this content > with any other part of your website, e.g. publish an OOo document as a > regular webpage under > a specific URL. > > There seems to be some efforts re Open Source "dropbox" solutions, e.g. > > http://www.sparkleshare.org/ > > and also some "scripted" solutions > > http://fak3r.com/2009/09/14/howto-build-your-own-open-source-dropbox-clon= e/ > > whereas it seems to me it would nice to re-use WebDAV (or some > "automatic" SVN) which would > make it even less "proprietary" and also open it up to other CMS solution= s. > > The whole thing is really about bridging the gap between the desktop and > the Web-CMS, which > is still a huge problem in particular for people not familiar with > Web-based CMS and it would make > life a little bit easier. > > WDYT? > > Cheers > > Michael > -- > Yanel-usage mailing list Yanel-usage@wyona.com > http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-usage > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.wyona.org/pipermail/yanel-development/attachments/2010091= 0/f951a851/attachment.htm From michael.wechner at wyona.com Fri Sep 10 11:06:31 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Fri Sep 10 11:07:04 2010 Subject: [Yanel-dev] Re: [Yanel-usage] Yanel-Box In-Reply-To: References: <4C89DD09.2060902@wyona.com> Message-ID: <4C89F517.8040909@wyona.com> Evaldas Taroza wrote: > I think the idea to use XMPP, or maybe PubSubHubub. The content will > probably be "files" and the activity stream, if this stream can then > be then represented as social feed then it's great, e.g. plugged to > Facebook. > > However, dropbox is for sharing/backuping files accross computers, > it's not really about publishing content to the Web (although they > have some sort of picture gallery for folders where there are only > pictures). Not sure if the same usecase applies for a WCMS. For > bridging the gap between desktop and Web an AIR editor could be a > better choice. any specific example you like best? Thanks Michael > > Evaldas > > On Fri, Sep 10, 2010 at 9:23 AM, Michael Wechner > > wrote: > > Hi > > It recently came to me that it would be great to have something like > "dropbox" for Yanel, which > means on your desktop you would have a folder (e.g. named > "yanelbox") to > which you can drag and drop > files, create sub-folders, edit files, etc. > > All of these actions would be synchronized with your Yanel CMS server > and made available within > your personal web-dashboard. From within your web-dashboard you could > associate this content > with any other part of your website, e.g. publish an OOo document as a > regular webpage under > a specific URL. > > There seems to be some efforts re Open Source "dropbox" solutions, > e.g. > > http://www.sparkleshare.org/ > > and also some "scripted" solutions > > http://fak3r.com/2009/09/14/howto-build-your-own-open-source-dropbox-clone/ > > whereas it seems to me it would nice to re-use WebDAV (or some > "automatic" SVN) which would > make it even less "proprietary" and also open it up to other CMS > solutions. > > The whole thing is really about bridging the gap between the > desktop and > the Web-CMS, which > is still a huge problem in particular for people not familiar with > Web-based CMS and it would make > life a little bit easier. > > WDYT? > > Cheers > > Michael > -- > Yanel-usage mailing list Yanel-usage@wyona.com > > http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-usage > > From bugzilla at wyona.com Fri Sep 10 12:03:08 2010 From: bugzilla at wyona.com (bugzilla@wyona.com) Date: Fri Sep 10 12:03:10 2010 Subject: [Yanel-dev] [Bug 7806] New: Patch review: Use random UUIDs in cookies Message-ID: <20100910100308.4B00510CA79@server1.example.com> http://bugzilla.wyona.com/cgi-bin/bugzilla/show_bug.cgi?id=7806 Summary: Patch review: Use random UUIDs in cookies Product: Yanel Version: unspecified Platform: All OS/Version: All Status: NEW Severity: normal (C) Priority: P2 Component: General AssignedTo: michael.wechner@wyona.org ReportedBy: cedric.staub@wyona.com QAContact: yanel-development@wyona.com This patch improves the code in Yanel responsible for cookies, instead of timestamps for identification (which are not unique) we use random UUIDs. Patch will follow shortly. -- Configure bugmail: http://bugzilla.wyona.com/cgi-bin/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug, or are watching the QA contact. From bugzilla at wyona.com Fri Sep 10 12:04:00 2010 From: bugzilla at wyona.com (bugzilla@wyona.com) Date: Fri Sep 10 12:04:01 2010 Subject: [Yanel-dev] [Bug 7806] Patch review: Use random UUIDs in cookies Message-ID: <20100910100400.2F81F10CA7F@server1.example.com> http://bugzilla.wyona.com/cgi-bin/bugzilla/show_bug.cgi?id=7806 ------- Comment #1 from cedric.staub@wyona.com 2010-09-10 11:23 ------- Created an attachment (id=1336) --> (http://bugzilla.wyona.com/cgi-bin/bugzilla/attachment.cgi?id=1336&action=view) Cookies with UUIDs v1 Should apply to latest SVN revision. -- Configure bugmail: http://bugzilla.wyona.com/cgi-bin/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug, or are watching the QA contact. From bugzilla at wyona.com Fri Sep 10 12:09:55 2010 From: bugzilla at wyona.com (bugzilla@wyona.com) Date: Fri Sep 10 12:09:59 2010 Subject: [Yanel-dev] [Bug 7807] New: Patch review: Yanel website: Dynamic snapshot listing Message-ID: <20100910100955.A4DFF10CA7F@server1.example.com> http://bugzilla.wyona.com/cgi-bin/bugzilla/show_bug.cgi?id=7807 Summary: Patch review: Yanel website: Dynamic snapshot listing Product: Yanel Version: unspecified Platform: All OS/Version: All Status: NEW Severity: normal (C) Priority: P2 Component: Yanel Website AssignedTo: michael.wechner@wyona.org ReportedBy: cedric.staub@wyona.com QAContact: yanel-development@wyona.com This patch enables the directory listing resource inside of the Yanel website, and uses it to display the latest binary/source snapshots for UNIX and Windows. With this patch, the download page doesn't have to be updated every time a snapshot is uploaded; the page dyamically displays the latest available snapshots. Note: The homepage is not updated (yet), just the download pages. -- Configure bugmail: http://bugzilla.wyona.com/cgi-bin/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug, or are watching the QA contact. From bugzilla at wyona.com Fri Sep 10 12:10:32 2010 From: bugzilla at wyona.com (bugzilla@wyona.com) Date: Fri Sep 10 12:10:34 2010 Subject: [Yanel-dev] [Bug 7807] Patch review: Yanel website: Dynamic snapshot listing Message-ID: <20100910101032.9616610CA7F@server1.example.com> http://bugzilla.wyona.com/cgi-bin/bugzilla/show_bug.cgi?id=7807 ------- Comment #1 from cedric.staub@wyona.com 2010-09-10 11:29 ------- Created an attachment (id=1337) --> (http://bugzilla.wyona.com/cgi-bin/bugzilla/attachment.cgi?id=1337&action=view) Dynamic snapshots v1 -- Configure bugmail: http://bugzilla.wyona.com/cgi-bin/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug, or are watching the QA contact. From bugzilla at wyona.com Fri Sep 10 15:29:51 2010 From: bugzilla at wyona.com (bugzilla@wyona.com) Date: Fri Sep 10 15:29:53 2010 Subject: [Yanel-dev] [Bug 7807] Patch review: Yanel website: Dynamic snapshot listing Message-ID: <20100910132951.32E0210CAF9@server1.example.com> http://bugzilla.wyona.com/cgi-bin/bugzilla/show_bug.cgi?id=7807 ------- Comment #2 from cedric.staub@wyona.com 2010-09-10 14:49 ------- Created an attachment (id=1338) --> (http://bugzilla.wyona.com/cgi-bin/bugzilla/attachment.cgi?id=1338&action=view) Snapshot uploader v1 This patch adds a yanel-snapshot-uploader resource, which allows automatic snapshot uploading from within Hudson. I will post a sample Hudson config shortly. -- Configure bugmail: http://bugzilla.wyona.com/cgi-bin/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug, or are watching the QA contact. From bugzilla at wyona.com Fri Sep 10 15:33:27 2010 From: bugzilla at wyona.com (bugzilla@wyona.com) Date: Fri Sep 10 15:33:30 2010 Subject: [Yanel-dev] [Bug 7807] Patch review: Yanel website: Dynamic snapshot listing Message-ID: <20100910133327.CE4B910CADC@server1.example.com> http://bugzilla.wyona.com/cgi-bin/bugzilla/show_bug.cgi?id=7807 ------- Comment #3 from cedric.staub@wyona.com 2010-09-10 14:52 ------- Created an attachment (id=1339) --> (http://bugzilla.wyona.com/cgi-bin/bugzilla/attachment.cgi?id=1339&action=view) Hudson sample config v1 Sample Hudson config. To upload a release from a shell, you can do e.g.: --- cd yanel-trunk.working-copy ./build.sh -Dyanel.revision=$SVN_REVISION source-snapshot curl \ -F rp.data=@build/source-snapshots/wyona-yanel-1.0-dev-r$SVN_REVISION-src.zip \ -F name=wyona-yanel-1.0-dev-r$SVN_REVISION-src.zip \ -F parent=snapshots/unix/src \ http://localhost:8080/yanel/yanel-website/upload_snapshot --- -- Configure bugmail: http://bugzilla.wyona.com/cgi-bin/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug, or are watching the QA contact. From bugzilla at wyona.com Sun Sep 12 13:29:26 2010 From: bugzilla at wyona.com (bugzilla@wyona.com) Date: Sun Sep 12 13:30:58 2010 Subject: [Yanel-dev] [Bug 7810] New: Implement a secure connection mechanism for SMTP authentication Message-ID: <20100912112926.C199C10CC20@server1.example.com> http://bugzilla.wyona.com/cgi-bin/bugzilla/show_bug.cgi?id=7810 Summary: Implement a secure connection mechanism for SMTP authentication Product: Yanel Version: unspecified Platform: All OS/Version: All Status: NEW Severity: normal (C) Priority: P2 Component: Security AssignedTo: michael.wechner@wyona.org ReportedBy: michael.wechner@wyona.org QAContact: yanel-development@wyona.com See the classes src/core/java/org/wyona/yanel/core/Yanel.java src/core/java/org/wyona/yanel/core/util/MailUtil.java whereas one could implement TLS or SSL -- Configure bugmail: http://bugzilla.wyona.com/cgi-bin/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug, or are watching the QA contact. From michael.wechner at wyona.com Sun Sep 12 13:29:08 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Sun Sep 12 13:31:01 2010 Subject: [Yanel-dev] SMTP Authentication implemented Message-ID: <4C8CB984.9080201@wyona.com> Hi In order to prevent spam, many mail servers are configured such that relaying messages to other hosts/domains is only possible if one is using SMTP authentication. I have implemented this now for Yanel, whereas one can configure the username and password by setting either within conf/local/local.yanel.xml or within local/apache-tomcat-5.5.20/webapps/yanel/WEB-INF/classes/yanel.xml whereas the implementation is part of the two classes Sending src/core/java/org/wyona/yanel/core/Yanel.java Sending src/core/java/org/wyona/yanel/core/util/MailUtil.java Transmitting file data .. Committed revision 53150. WARNING: The username and password is sent as plain text, because I have not implemented any secure connection mechanism such as TLS or SSL yet, whereas I have made a bugzilla entry: http://bugzilla.wyona.com/cgi-bin/bugzilla/show_bug.cgi?id=7810 Cheers Michael From michael.wechner at wyona.com Sun Sep 12 14:40:34 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Sun Sep 12 14:42:33 2010 Subject: [Yanel-dev] Re: Patch =?iso-8859-1?q?f=FCr_MailUtil?= In-Reply-To: References: Message-ID: <4C8CCA42.6030103@wyona.com> Dear Balz I have reviewed your patch and two notes: 1) Please make sure to use the "fullpath" when generating patches, e.g. Index: src/core/java/org/wyona/yanel/core/util/MailUtil.java instead Index: MailUtil.java because it will make it easier to apply 2) I have implemented the fromName feature by enhancing an existing method and in order to stay backwards compatible introduced the "same" method as deprecated. The authentication I have implemented via the session object in order to make use of the global configuration. I think this way there is less replicated code. I have introduced additionally a "simple" method send(String fromAddress, String fromName, String replyTo, String to, String subject, String content) Btw, I am not sure if you have created a Bugzilla entry for your patch, but if so you might want to send the link to me or close it yourself after testing the new enhancements. Sending src/core/java/org/wyona/yanel/core/util/MailUtil.java Transmitting file data . Committed revision 53151. Cheers Michael Balz Schreier wrote: > Hoi Michi, > > habe eine neue Methode implementiert und getestet mit dem produktiven > Zwischengas Mail Server. > > Ein neuer Paramter ist "fromName", der ist noch sch?n, damit der > Empf?nger nicht die fromEmailAddress sieht sondern einen "Namen" des > Empf?ngers, > z.b. "Zwischengas Newsletter" anstatt "do-not-reply@zwischengas.com > ". > > Das DIFF ist attached. > > Gruess > Balz From n.runnels-moss at sourcesense.com Mon Sep 13 16:00:22 2010 From: n.runnels-moss at sourcesense.com (Nigel Runnels-Moss) Date: Mon Sep 13 16:01:04 2010 Subject: [Yanel-dev] Re: [Yanel-usage] WMD Editor In-Reply-To: <4C8955FD.3070805@wyona.com> References: <4C8955FD.3070805@wyona.com> Message-ID: I've come across Markdown before. This looks like quite a good implementation at face value. N. On Thu, Sep 9, 2010 at 10:47 PM, Michael Wechner wrote: > Hi > > I have just become aware of > > http://wmd-editor.com/ > > Maybe it's worth checking it out and integrating it with Yanel. > > Cheers > > Michael > -- > Yanel-usage mailing list Yanel-usage@wyona.com > http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-usage > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.wyona.org/pipermail/yanel-development/attachments/2010091= 3/8f06ec13/attachment.htm From claudio.corrodi at wyona.com Tue Sep 14 10:26:27 2010 From: claudio.corrodi at wyona.com (Claudio Corrodi) Date: Tue Sep 14 10:27:06 2010 Subject: [Yanel-dev] org.wyona.yarep.impl.repo.vfs.VirtualFileSystemRepository#getNode(java.lang.String) question In-Reply-To: <4C82C67F.7080403@wyona.com> References: <4C7761E1.60407@wyona.com> <20100827070638.GA3802@clarice.wyona.com> <4C7BBD18.6000001@wyona.com> <20100830151912.GB24080@clarice.wyona.com> <4C7CBD1F.2070801@wyona.com> <4C7CBE9D.4020804@wyona.com> <4C7CC456.3070006@wyona.com> <4C82C67F.7080403@wyona.com> Message-ID: <4C8F31B3.8050904@wyona.com> Hi Michael, Attached is the patch for AbstractNode.java as discussed before. Thanks = for your help and reviewing it. Cheers, Claudio On 09/05/2010 12:21 AM, Michael Wechner wrote: > Dear Claudio > > I have reviewed your patch, but to be honest it is still not clear to me > what the actual issue is > and how your patch is supposed to solve this issue without creating > other issues. > > I think according to your very first email we rather have to fix > > String childPath =3D getPath() + "/" + name; > > within AbstractNode by checking if getPath().equals("/") and if true, > then not > append the slash, such that one does not end up with > "//hello_world.txt", but rather with "/hello_world.txt". > > Makes sense? > > Cheers > > Michael > > > Claudio Corrodi wrote: >> On 08/31/2010 10:34 AM, Michael Wechner wrote: >>> Can you send the complete example to this mailing list, I mean your >>> spliting configuration for this example? >> >> It is as follows: >> >> >> >> >> >> But I also tested using this configuration >> >> >> >> >> >> where every file is splitted, not only those under /. >> >> Cheers, Claudio > -------------- next part -------------- A non-text attachment was scrubbed... Name: abstractnode.patch Type: text/x-diff Size: 1167 bytes Desc: not available Url : http://lists.wyona.org/pipermail/yanel-development/attachments/201009= 14/3ef4785b/abstractnode.bin From michael.wechner at wyona.com Tue Sep 14 10:47:36 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Tue Sep 14 10:50:18 2010 Subject: [Yanel-dev] org.wyona.yarep.impl.repo.vfs.VirtualFileSystemRepository#getNode(java.lang.String) question In-Reply-To: <4C8F31B3.8050904@wyona.com> References: <4C7761E1.60407@wyona.com> <20100827070638.GA3802@clarice.wyona.com> <4C7BBD18.6000001@wyona.com> <20100830151912.GB24080@clarice.wyona.com> <4C7CBD1F.2070801@wyona.com> <4C7CBE9D.4020804@wyona.com> <4C7CC456.3070006@wyona.com> <4C82C67F.7080403@wyona.com> <4C8F31B3.8050904@wyona.com> Message-ID: <4C8F36A8.4060102@wyona.com> Claudio Corrodi wrote: > Hi Michael, > > Attached is the patch for AbstractNode.java as discussed before. > Thanks for your help and reviewing it. Thanks your pointing it out and fixing it. It's committed now Sending src/build/dependencies.xml Sending src/build/pom-core.xml Transmitting file data .. Committed revision 53204. Cheers Michael > > Cheers, Claudio > > On 09/05/2010 12:21 AM, Michael Wechner wrote: >> Dear Claudio >> >> I have reviewed your patch, but to be honest it is still not clear to me >> what the actual issue is >> and how your patch is supposed to solve this issue without creating >> other issues. >> >> I think according to your very first email we rather have to fix >> >> String childPath = getPath() + "/" + name; >> >> within AbstractNode by checking if getPath().equals("/") and if true, >> then not >> append the slash, such that one does not end up with >> "//hello_world.txt", but rather with "/hello_world.txt". >> >> Makes sense? >> >> Cheers >> >> Michael >> >> >> Claudio Corrodi wrote: >>> On 08/31/2010 10:34 AM, Michael Wechner wrote: >>>> Can you send the complete example to this mailing list, I mean your >>>> spliting configuration for this example? >>> >>> It is as follows: >>> >>> >>> >>> >>> >>> But I also tested using this configuration >>> >>> >>> >>> >>> >>> where every file is splitted, not only those under /. >>> >>> Cheers, Claudio >> > From bugzilla at wyona.com Fri Sep 17 16:06:02 2010 From: bugzilla at wyona.com (bugzilla@wyona.com) Date: Fri Sep 17 16:06:44 2010 Subject: [Yanel-dev] [Bug 7410] Javadoc does not work Message-ID: <20100917140602.2EEC110CB46@server1.example.com> http://bugzilla.wyona.com/cgi-bin/bugzilla/show_bug.cgi?id=7410 ------- Comment #1 from michael.wechner@wyona.org 2010-09-17 15:24 ------- This bug still has not been resolved, but a workaround is to comment within the file src/build/targets/webapp/webapp.xml the line and re-build Yanel -- Configure bugmail: http://bugzilla.wyona.com/cgi-bin/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug, or are watching the QA contact. From balz.schreier at gmail.com Sat Sep 18 00:31:14 2010 From: balz.schreier at gmail.com (Balz Schreier) Date: Sat Sep 18 00:32:00 2010 Subject: [Yanel-dev] Login Message-ID: Hi, I am quite new to Yanel and one thing I'm still not sure at is the Login mechanism.: - Assume that a lot of content is public (no login required). - Certain areas require the user to login (either by clicking on a LOGIN link or by accessing a protected resource, similar to URLs containing "yanel.toolbar=3Don") 1) What possibilities are "best practices" within yanel to do a Login? 2) Do I need to implement something like YanelServlet.doAccessControl() for my own resources? 3) Shall I trigger the login screen by passing a URL parameter like "?myrealm.usecase=3Dlogin" and if that is available the login process is triggered? 4) The Servlet Spec provides a mechanism to configure protected resources in the web.xml. Is there something similar in Yanel where one can configure URIs that should trigger the login mechanism? Thanks for providing some hints, I guess I'll have to go for 2). Logout on the other hand is easy, adding "yanel.logout=3Dtrue" to any URL. Thanks Cheers Balz -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.wyona.org/pipermail/yanel-development/attachments/2010091= 8/d7f65e58/attachment.htm From michael.wechner at wyona.com Sat Sep 18 00:42:47 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Sat Sep 18 00:43:31 2010 Subject: [Yanel-dev] Login In-Reply-To: References: Message-ID: <4C93EEE7.6000106@wyona.com> Balz Schreier wrote: > Hi, > > I am quite new to Yanel and one thing I'm still not sure at is the > Login mechanism.: > > - Assume that a lot of content is public (no login required). > - Certain areas require the user to login (either by clicking on a > LOGIN link or by accessing a protected resource, similar to URLs > containing "yanel.toolbar=on") > > 1) What possibilities are "best practices" within yanel to do a Login? > 2) Do I need to implement something like > YanelServlet.doAccessControl() for my own resources? > 3) Shall I trigger the login screen by passing a URL parameter like > "?myrealm.usecase=login" and if that is available the login process is > triggered? > 4) The Servlet Spec provides a mechanism to configure protected > resources in the web.xml. Is there something similar in Yanel where > one can configure URIs that should trigger the login mechanism? > > Thanks for providing some hints, I guess I'll have to go for 2). no, only if you want to protect parts of a page, but not if it is just about protecting the page itself I am happy to explain, but want to make sure you have had a look at http://127.0.0.1:8080/yanel/yanel-website/en/documentation/security/access-policies.html ? Please let me know if this documentation is unclear and if so which parts in particular, such that we can improve it. Btw, also have a look at the from scratch realm and "play" with it, by changing policies src/realms/from-scratch-realm-template/ac-policies/ http://127.0.0.1:8080/yanel/from-scratch-realm/en/index.html HTH Michael > > Logout on the other hand is easy, adding "yanel.logout=true" to any URL. > > Thanks > Cheers > Balz From balz.schreier at gmail.com Sat Sep 18 01:54:11 2010 From: balz.schreier at gmail.com (Balz Schreier) Date: Sat Sep 18 02:00:17 2010 Subject: [Yanel-dev] Login In-Reply-To: <4C93EEE7.6000106@wyona.com> References: <4C93EEE7.6000106@wyona.com> Message-ID: Hi Michael, I probably went too fast over that page, I thought it only allows a logical grouping of policies with inheritance according to the hierarchical structure within the policies directory... but now I have seen that you can reflect the structure of a URI... it works! I have now /de/login in the URL and /de/login.policy: Now the login screen appears. Next step is to redirect. I have seen that Yanel provides a redirect resource... Cheers Balz On Sat, Sep 18, 2010 at 12:42 AM, Michael Wechner wrote: > Balz Schreier wrote: > >> Hi, >> >> I am quite new to Yanel and one thing I'm still not sure at is the Login >> mechanism.: >> >> - Assume that a lot of content is public (no login required). >> - Certain areas require the user to login (either by clicking on a LOGIN >> link or by accessing a protected resource, similar to URLs containing >> "yanel.toolbar=3Don") >> >> 1) What possibilities are "best practices" within yanel to do a Login? >> 2) Do I need to implement something like YanelServlet.doAccessControl() >> for my own resources? >> 3) Shall I trigger the login screen by passing a URL parameter like >> "?myrealm.usecase=3Dlogin" and if that is available the login process is >> triggered? >> 4) The Servlet Spec provides a mechanism to configure protected resources >> in the web.xml. Is there something similar in Yanel where one can config= ure >> URIs that should trigger the login mechanism? >> >> Thanks for providing some hints, I guess I'll have to go for 2). >> > > no, only if you want to protect parts of a page, but not if it is just > about protecting the page itself > > I am happy to explain, but want to make sure you have had a look at > > > http://127.0.0.1:8080/yanel/yanel-website/en/documentation/security/acces= s-policies.html > > ? > > Please let me know if this documentation is unclear and if so which parts > in particular, such > that we can improve it. > > Btw, also have a look at the from scratch realm and "play" with it, by > changing policies > > src/realms/from-scratch-realm-template/ac-policies/ > http://127.0.0.1:8080/yanel/from-scratch-realm/en/index.html > > HTH > > Michael > > >> Logout on the other hand is easy, adding "yanel.logout=3Dtrue" to any UR= L. >> >> Thanks >> Cheers >> Balz >> > > -- > Yanel-development mailing list Yanel-development@wyona.com > http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.wyona.org/pipermail/yanel-development/attachments/2010091= 8/24057137/attachment.htm From balz.schreier at gmail.com Sat Sep 18 11:38:12 2010 From: balz.schreier at gmail.com (Balz Schreier) Date: Sat Sep 18 11:45:15 2010 Subject: [Yanel-dev] Re: Using contributed resources In-Reply-To: References: Message-ID: Hi, I guess I've found the solution for what I want to do. In order to use a contributed resource which is available from the yanel trunk, I have added this line to my realm's resources-xml: Now it seems to work fine. Is this the correct way how to use contributed resources from another realm? Thanks, Cheers Balz On Sat, Sep 18, 2010 at 11:13 AM, Balz Schreier wr= ote: > Hi, > > I would like to reuse the redirect resource > (/yanel/src/contributions/resources/redirect). > > According to the documentation: > http://127.0.0.1:8080/yanel/yanel-website/en/documentation/configuration/= resource-types_xml.html, > I have configured this line in my realm's resource-types.xml: > > > > > Somehow, the variable @YANEL_SRC_DIR@ does not get replaced during the bu= ild of YANEL. > If I replace it with a fully qualified value to the yanel source dir, the= resource gets compiled (by yanel's build.sh) and the redirect works fine. > > Any idea, why it does not get replaced? > > > Cheers > Balz > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.wyona.org/pipermail/yanel-development/attachments/2010091= 8/f6f26670/attachment.htm From balz.schreier at gmail.com Sat Sep 18 11:57:48 2010 From: balz.schreier at gmail.com (Balz Schreier) Date: Sat Sep 18 11:58:34 2010 Subject: [Yanel-dev] Patch for Redirect Resource Message-ID: Skipped content of type multipart/alternative-------------- next part -----= --------- Index: src/contributions/resources/redirect/src/java/org/wyona/yanel/impl/r= esources/redirect/RedirectResource.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- src/contributions/resources/redirect/src/java/org/wyona/yanel/impl/reso= urces/redirect/RedirectResource.java (revision 53304) +++ src/contributions/resources/redirect/src/java/org/wyona/yanel/impl/reso= urces/redirect/RedirectResource.java (working copy) @@ -41,6 +41,7 @@ private static Category log =3D Category.getInstance(RedirectResource.= class); = public static String IDENTITY_MAP_KEY =3D "identity-map"; + public static final String RESOURCE_CONFIG_PARAM_HREF =3D "href"; = // Only a temporary variable needed during creation (roundtrip) private String defaultHrefSetByCreator; @@ -72,7 +73,7 @@ = HttpServletResponse response =3D getResponse(); = - String defaultHref =3D getResourceConfigProperty("href"); + String defaultHref =3D getResourceConfigProperty(RESOURCE_CONFIG_P= ARAM_HREF); = if (defaultHref =3D=3D null) throw new Exception("No default redir= ect has been set!"); = @@ -96,7 +97,7 @@ try { if (languageRedirectConfigs[i].getAttribute("code").eq= uals(localizationLanguage)) { response.setStatus(307); - response.setHeader("Location", languageRedirectCon= figs[i].getAttribute("href")); + response.setHeader("Location", languageRedirectCon= figs[i].getAttribute(RESOURCE_CONFIG_PARAM_HREF)); } } catch (Exception e) { log.error(e.getMessage(), e); @@ -117,7 +118,7 @@ try { if (userRedirectConfigs[i].getAttribute("name") = =3D=3D currentUser || (currentUser).equals(userRedirectConfigs[i].getAttrib= ute("name"))) { response.setStatus(307); - response.setHeader("Location", userRedirectCon= figs[i].getAttribute("href")); + response.setHeader("Location", userRedirectCon= figs[i].getAttribute(RESOURCE_CONFIG_PARAM_HREF)); } } catch (Exception e) { log.error(e.getMessage(), e); @@ -188,7 +189,7 @@ */ public HashMap createRTIProperties(HttpServletRequest request) { HashMap map =3D new HashMap(); - map.put("href", request.getParameter("rp." + REDIRECT_URL)); + map.put(RESOURCE_CONFIG_PARAM_HREF, request.getParameter("rp." + R= EDIRECT_URL)); return map; } =20 From michael.wechner at wyona.com Sat Sep 18 22:04:32 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Sat Sep 18 22:05:18 2010 Subject: [Yanel-dev] Login In-Reply-To: References: <4C93EEE7.6000106@wyona.com> Message-ID: <4C951B50.8050804@wyona.com> Balz Schreier wrote: > Hi Michael, > > I probably went too fast over that page, I thought it only allows a > logical grouping of policies with inheritance according to the > hierarchical structure within the policies directory... but now I have > seen that you can reflect the structure of a URI... it works! good to hear > > I have now /de/login in the URL and > /de/login.policy: > > > > > Now the login screen appears. > Next step is to redirect. > I have seen that Yanel provides a redirect resource... yes :-) Cheers Michael > > Cheers > Balz > > > On Sat, Sep 18, 2010 at 12:42 AM, Michael Wechner > > wrote: > > Balz Schreier wrote: > > Hi, > > I am quite new to Yanel and one thing I'm still not sure at is > the Login mechanism.: > > - Assume that a lot of content is public (no login required). > - Certain areas require the user to login (either by clicking > on a LOGIN link or by accessing a protected resource, similar > to URLs containing "yanel.toolbar=on") > > 1) What possibilities are "best practices" within yanel to do > a Login? > 2) Do I need to implement something like > YanelServlet.doAccessControl() for my own resources? > 3) Shall I trigger the login screen by passing a URL parameter > like "?myrealm.usecase=login" and if that is available the > login process is triggered? > 4) The Servlet Spec provides a mechanism to configure > protected resources in the web.xml. Is there something similar > in Yanel where one can configure URIs that should trigger the > login mechanism? > > Thanks for providing some hints, I guess I'll have to go for 2). > > > no, only if you want to protect parts of a page, but not if it is > just about protecting the page itself > > I am happy to explain, but want to make sure you have had a look at > > http://127.0.0.1:8080/yanel/yanel-website/en/documentation/security/access-policies.html > > ? > > Please let me know if this documentation is unclear and if so > which parts in particular, such > that we can improve it. > > Btw, also have a look at the from scratch realm and "play" with > it, by changing policies > > src/realms/from-scratch-realm-template/ac-policies/ > http://127.0.0.1:8080/yanel/from-scratch-realm/en/index.html > > HTH > > Michael > > > Logout on the other hand is easy, adding "yanel.logout=true" > to any URL. > > Thanks > Cheers > Balz > > > -- > Yanel-development mailing list Yanel-development@wyona.com > > http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development > > From michael.wechner at wyona.com Sat Sep 18 22:23:01 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Sat Sep 18 22:23:54 2010 Subject: Using third-party resources types which are available as jar files [WAS: Re: [Yanel-dev] Re: Using contributed resources In-Reply-To: References: Message-ID: <4C951FA5.7020909@wyona.com> Balz Schreier wrote: > Hi, > > I guess I've found the solution for what I want to do. > In order to use a contributed resource which is available from the > yanel trunk, I have added this line to my realm's resources-xml: > > compile="false"/> > you do this in order to register resource types which are available as jar files (e.g. via Maven http://maven2.wyona.org/wyona-org-yanel/yanel-resource-example-world-time/) whereas in order to actually get/download it one needs to declare it as a dependency somewhere, e.g. src/realms/welcome-admin/src/build/dependencies.xml which will then be downloaded and deployed at, e.g. local/apache-tomcat-5.5.20/webapps/yanel/WEB-INF/lib/yanel-resource-example-world-time-1.0-dev-r44371.jar and in order to make it available one needs to register it somewhere, e.g. src/realms/from-scratch-realm-template/resource-types.xml which will then register it within Yanel local/apache-tomcat-5.5.20/webapps/yanel/WEB-INF/classes/resource-types.xml and then one can finally us it, e.g. src/realms/from-scratch-realm-template/res-configs/time.html.yanel-rc or rather http://127.0.0.1:8080/yanel/from-scratch-realm/time.html Cheers Michael > Now it seems to work fine. > Is this the correct way how to use contributed resources from another > realm? > > Thanks, > Cheers > Balz > > > On Sat, Sep 18, 2010 at 11:13 AM, Balz Schreier > > wrote: > > Hi, > > I would like to reuse the redirect resource > (/yanel/src/contributions/resources/redirect). > > According to the documentation: > http://127.0.0.1:8080/yanel/yanel-website/en/documentation/configuration/resource-types_xml.html > , > I have configured this line in my realm's resource-types.xml: > > > > > > Somehow, the variable @YANEL_SRC_DIR@ does not get replaced during the build of YANEL. > > > If I replace it with a fully qualified value to the yanel source dir, the resource gets compiled (by yanel's build.sh) and the redirect works fine. > > > > > Any idea, why it does not get replaced? > > > > Cheers > Balz > > From michael.wechner at wyona.com Sat Sep 18 22:26:52 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Sat Sep 18 22:27:39 2010 Subject: [Yanel-dev] Patch for Redirect Resource In-Reply-To: References: Message-ID: <4C95208C.2090109@wyona.com> Balz Schreier wrote: > Hi Michael, > > I would like to reuse 98% of the redirect resource. > My local redirect resource which extends the yanel redirect resource > is not expecting a URL from the resource config (where to redirect) > but rather from the URL. > To do so, I would like to extend it, so that the resource does not > expect a hardcoded redirect URL anymore. > > For that, I would like to overwrite > Resource.getResourceConfigProperty(): > if the passed key is "href", then I will return my own value instead > of the resource config property. > > As the parameter name "href" is hardcoded in the RedirectResource, I > introduced a public constant, so that I can reuse that key in my > extended class. Can you send me a "configuration/URL" example how you are using this enhanced version? I am asking because I would like to write a test for it ;-) Thanks Michael > > The patch for the RedirectResource is here: > > Index: > src/contributions/resources/redirect/src/java/org/wyona/yanel/impl/resources/redirect/RedirectResource.java > =================================================================== > --- > src/contributions/resources/redirect/src/java/org/wyona/yanel/impl/resources/redirect/RedirectResource.java > (revision 53304) > +++ > src/contributions/resources/redirect/src/java/org/wyona/yanel/impl/resources/redirect/RedirectResource.java > (working copy) > @@ -41,6 +41,7 @@ > private static Category log = > Category.getInstance(RedirectResource.class); > > public static String IDENTITY_MAP_KEY = "identity-map"; > + public static final String RESOURCE_CONFIG_PARAM_HREF = "href"; > > // Only a temporary variable needed during creation (roundtrip) > private String defaultHrefSetByCreator; > @@ -72,7 +73,7 @@ > > HttpServletResponse response = getResponse(); > > - String defaultHref = getResourceConfigProperty("href"); > + String defaultHref = > getResourceConfigProperty(RESOURCE_CONFIG_PARAM_HREF); > > if (defaultHref == null) throw new Exception("No default > redirect has been set!"); > > @@ -96,7 +97,7 @@ > try { > if > (languageRedirectConfigs[i].getAttribute("code").equals(localizationLanguage)) > { > response.setStatus(307); > - response.setHeader("Location", > languageRedirectConfigs[i].getAttribute("href")); > + response.setHeader("Location", > languageRedirectConfigs[i].getAttribute(RESOURCE_CONFIG_PARAM_HREF)); > } > } catch (Exception e) { > log.error(e.getMessage(), e); > @@ -117,7 +118,7 @@ > try { > if > (userRedirectConfigs[i].getAttribute("name") == currentUser || > (currentUser).equals(userRedirectConfigs[i].getAttribute("name"))) { > response.setStatus(307); > - response.setHeader("Location", > userRedirectConfigs[i].getAttribute("href")); > + response.setHeader("Location", > userRedirectConfigs[i].getAttribute(RESOURCE_CONFIG_PARAM_HREF)); > } > } catch (Exception e) { > log.error(e.getMessage(), e); > @@ -188,7 +189,7 @@ > */ > public HashMap createRTIProperties(HttpServletRequest request) { > HashMap map = new HashMap(); > - map.put("href", request.getParameter("rp." + REDIRECT_URL)); > + map.put(RESOURCE_CONFIG_PARAM_HREF, > request.getParameter("rp." + REDIRECT_URL)); > return map; > } > > > > Cheers > Balz From balz.schreier at gmail.com Sun Sep 19 12:46:31 2010 From: balz.schreier at gmail.com (Balz Schreier) Date: Sun Sep 19 12:47:18 2010 Subject: [Yanel-dev] Patch for Redirect Resource In-Reply-To: <4C95208C.2090109@wyona.com> References: <4C95208C.2090109@wyona.com> Message-ID: Hi Michael, the enhanced version is stored in our project's SVN, you should have access: /zwischengas/src/java/com/zwischengas/resource/redirect/LoginRedirect.java What the extension does is: - if a config property is retrieved, the extension verifies whether the key matches the "href" parameter, now available as RedirectResource. RESOURCE_CONFIG_PARAM_HREF - if this parameter is retrieved, the extension returns the value retrieved from the request's parameter instead of the configured value from the resource config. he code is very simple but does its job for me. Cheers Balz On Sat, Sep 18, 2010 at 10:26 PM, Michael Wechner wrote: > Balz Schreier wrote: > >> Hi Michael, >> >> I would like to reuse 98% of the redirect resource. >> My local redirect resource which extends the yanel redirect resource is >> not expecting a URL from the resource config (where to redirect) but rat= her >> from the URL. >> To do so, I would like to extend it, so that the resource does not expect >> a hardcoded redirect URL anymore. >> >> For that, I would like to overwrite Resource.getResourceConfigProperty(): >> if the passed key is "href", then I will return my own value instead of >> the resource config property. >> >> As the parameter name "href" is hardcoded in the RedirectResource, I >> introduced a public constant, so that I can reuse that key in my extended >> class. >> > > Can you send me a "configuration/URL" example how you are using this > enhanced version? > I am asking because I would like to write a test for it ;-) > > Thanks > > Michael > > >> The patch for the RedirectResource is here: >> >> Index: >> src/contributions/resources/redirect/src/java/org/wyona/yanel/impl/resou= rces/redirect/RedirectResource.java >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> --- >> src/contributions/resources/redirect/src/java/org/wyona/yanel/impl/resou= rces/redirect/RedirectResource.java >> (revision 53304) >> +++ >> src/contributions/resources/redirect/src/java/org/wyona/yanel/impl/resou= rces/redirect/RedirectResource.java >> (working copy) >> @@ -41,6 +41,7 @@ >> private static Category log =3D >> Category.getInstance(RedirectResource.class); >> public static String IDENTITY_MAP_KEY =3D "identity-map"; >> + public static final String RESOURCE_CONFIG_PARAM_HREF =3D "href"; >> // Only a temporary variable needed during creation (roundtrip) >> private String defaultHrefSetByCreator; >> @@ -72,7 +73,7 @@ >> HttpServletResponse response =3D getResponse(); >> - String defaultHref =3D getResourceConfigProperty("href"); >> + String defaultHref =3D >> getResourceConfigProperty(RESOURCE_CONFIG_PARAM_HREF); >> if (defaultHref =3D=3D null) throw new Exception("No default re= direct >> has been set!"); >> @@ -96,7 +97,7 @@ >> try { >> if >> (languageRedirectConfigs[i].getAttribute("code").equals(localizationLang= uage)) >> { >> response.setStatus(307); >> - response.setHeader("Location", >> languageRedirectConfigs[i].getAttribute("href")); >> + response.setHeader("Location", >> languageRedirectConfigs[i].getAttribute(RESOURCE_CONFIG_PARAM_HREF)); >> } >> } catch (Exception e) { >> log.error(e.getMessage(), e); >> @@ -117,7 +118,7 @@ >> try { >> if (userRedirectConfigs[i].getAttribute("name") = =3D=3D >> currentUser || >> (currentUser).equals(userRedirectConfigs[i].getAttribute("name"))) { >> response.setStatus(307); >> - response.setHeader("Location", >> userRedirectConfigs[i].getAttribute("href")); >> + response.setHeader("Location", >> userRedirectConfigs[i].getAttribute(RESOURCE_CONFIG_PARAM_HREF)); >> } >> } catch (Exception e) { >> log.error(e.getMessage(), e); >> @@ -188,7 +189,7 @@ >> */ >> public HashMap createRTIProperties(HttpServletRequest request) { >> HashMap map =3D new HashMap(); >> - map.put("href", request.getParameter("rp." + REDIRECT_URL)); >> + map.put(RESOURCE_CONFIG_PARAM_HREF, request.getParameter("rp." + >> REDIRECT_URL)); >> return map; >> } >> >> >> Cheers >> Balz >> > > -- > Yanel-development mailing list Yanel-development@wyona.com > http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.wyona.org/pipermail/yanel-development/attachments/2010091= 9/ad772ed0/attachment.htm From michael.wechner at wyona.com Sun Sep 19 23:56:44 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Sun Sep 19 23:57:30 2010 Subject: [Yanel-dev] Patch for Redirect Resource In-Reply-To: References: <4C95208C.2090109@wyona.com> Message-ID: <4C96871C.7080902@wyona.com> Balz Schreier wrote: > Hi Michael, > > the enhanced version is stored in our project's SVN, you should have > access: > > /zwischengas/src/java/com/zwischengas/resource/redirect/LoginRedirect.java > > What the extension does is: > - if a config property is retrieved, the extension verifies whether > the key matches the "href" parameter, now available > as RedirectResource.RESOURCE_CONFIG_PARAM_HREF > - if this parameter is retrieved, the extension returns the value > retrieved from the request's parameter instead of the configured value > from the resource config. what I mean re an example how does the URL look like? Does it look like something http://127.0.0.1:8080/yanel/MY_REALM/en/login?href=/en/hello-world.html ? Thanks Michael > > he code is very simple but does its job for me. > > Cheers > Balz > > On Sat, Sep 18, 2010 at 10:26 PM, Michael Wechner > > wrote: > > Balz Schreier wrote: > > Hi Michael, > > I would like to reuse 98% of the redirect resource. > My local redirect resource which extends the yanel redirect > resource is not expecting a URL from the resource config > (where to redirect) but rather from the URL. > To do so, I would like to extend it, so that the resource does > not expect a hardcoded redirect URL anymore. > > For that, I would like to overwrite > Resource.getResourceConfigProperty(): > if the passed key is "href", then I will return my own value > instead of the resource config property. > > As the parameter name "href" is hardcoded in the > RedirectResource, I introduced a public constant, so that I > can reuse that key in my extended class. > > > Can you send me a "configuration/URL" example how you are using > this enhanced version? > I am asking because I would like to write a test for it ;-) > > Thanks > > Michael > > > The patch for the RedirectResource is here: > > Index: > src/contributions/resources/redirect/src/java/org/wyona/yanel/impl/resources/redirect/RedirectResource.java > =================================================================== > --- > src/contributions/resources/redirect/src/java/org/wyona/yanel/impl/resources/redirect/RedirectResource.java > (revision 53304) > +++ > src/contributions/resources/redirect/src/java/org/wyona/yanel/impl/resources/redirect/RedirectResource.java > (working copy) > @@ -41,6 +41,7 @@ > private static Category log = > Category.getInstance(RedirectResource.class); > public static String IDENTITY_MAP_KEY = "identity-map"; > + public static final String RESOURCE_CONFIG_PARAM_HREF = > "href"; > // Only a temporary variable needed during creation > (roundtrip) > private String defaultHrefSetByCreator; > @@ -72,7 +73,7 @@ > HttpServletResponse response = getResponse(); > - String defaultHref = getResourceConfigProperty("href"); > + String defaultHref = > getResourceConfigProperty(RESOURCE_CONFIG_PARAM_HREF); > if (defaultHref == null) throw new Exception("No > default redirect has been set!"); > @@ -96,7 +97,7 @@ > try { > if > (languageRedirectConfigs[i].getAttribute("code").equals(localizationLanguage)) > { > response.setStatus(307); > - response.setHeader("Location", > languageRedirectConfigs[i].getAttribute("href")); > + response.setHeader("Location", > languageRedirectConfigs[i].getAttribute(RESOURCE_CONFIG_PARAM_HREF)); > } > } catch (Exception e) { > log.error(e.getMessage(), e); > @@ -117,7 +118,7 @@ > try { > if > (userRedirectConfigs[i].getAttribute("name") == currentUser || > (currentUser).equals(userRedirectConfigs[i].getAttribute("name"))) > { > response.setStatus(307); > - response.setHeader("Location", > userRedirectConfigs[i].getAttribute("href")); > + response.setHeader("Location", > userRedirectConfigs[i].getAttribute(RESOURCE_CONFIG_PARAM_HREF)); > } > } catch (Exception e) { > log.error(e.getMessage(), e); > @@ -188,7 +189,7 @@ > */ > public HashMap createRTIProperties(HttpServletRequest > request) { > HashMap map = new HashMap(); > - map.put("href", request.getParameter("rp." + > REDIRECT_URL)); > + map.put(RESOURCE_CONFIG_PARAM_HREF, > request.getParameter("rp." + REDIRECT_URL)); > return map; > } > > > Cheers > Balz > > > -- > Yanel-development mailing list Yanel-development@wyona.com > > http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development > > From balz.schreier at gmail.com Mon Sep 20 10:22:43 2010 From: balz.schreier at gmail.com (Balz Schreier) Date: Mon Sep 20 10:23:42 2010 Subject: [Yanel-dev] Patch for Redirect Resource In-Reply-To: <4C96871C.7080902@wyona.com> References: <4C95208C.2090109@wyona.com> <4C96871C.7080902@wyona.com> Message-ID: Hi Michael, yes it works like that, except that the parameter is different in my case: "zg.redirect=3D" Cheers balz On Sun, Sep 19, 2010 at 11:56 PM, Michael Wechner wrote: > Balz Schreier wrote: > >> Hi Michael, >> >> the enhanced version is stored in our project's SVN, you should have >> access: >> >> /zwischengas/src/java/com/zwischengas/resource/redirect/LoginRedirect.ja= va >> >> What the extension does is: >> - if a config property is retrieved, the extension verifies whether the >> key matches the "href" parameter, now available as >> RedirectResource.RESOURCE_CONFIG_PARAM_HREF >> - if this parameter is retrieved, the extension returns the value >> retrieved from the request's parameter instead of the configured value f= rom >> the resource config. >> > > what I mean re an example how does the URL look like? Does it look like > something > > http://127.0.0.1:8080/yanel/MY_REALM/en/login?href=3D/en/hello-world.html > > ? > > Thanks > > Michael > >> >> he code is very simple but does its job for me. >> >> Cheers >> Balz >> >> On Sat, Sep 18, 2010 at 10:26 PM, Michael Wechner < >> michael.wechner@wyona.com > wrote: >> >> Balz Schreier wrote: >> >> Hi Michael, >> >> I would like to reuse 98% of the redirect resource. >> My local redirect resource which extends the yanel redirect >> resource is not expecting a URL from the resource config >> (where to redirect) but rather from the URL. >> To do so, I would like to extend it, so that the resource does >> not expect a hardcoded redirect URL anymore. >> >> For that, I would like to overwrite >> Resource.getResourceConfigProperty(): >> if the passed key is "href", then I will return my own value >> instead of the resource config property. >> >> As the parameter name "href" is hardcoded in the >> RedirectResource, I introduced a public constant, so that I >> can reuse that key in my extended class. >> >> >> Can you send me a "configuration/URL" example how you are using >> this enhanced version? >> I am asking because I would like to write a test for it ;-) >> >> Thanks >> >> Michael >> >> >> The patch for the RedirectResource is here: >> >> Index: >> >> src/contributions/resources/redirect/src/java/org/wyona/yanel/impl/reso= urces/redirect/RedirectResource.java >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> --- >> >> src/contributions/resources/redirect/src/java/org/wyona/yanel/impl/reso= urces/redirect/RedirectResource.java >> (revision 53304) >> +++ >> >> src/contributions/resources/redirect/src/java/org/wyona/yanel/impl/reso= urces/redirect/RedirectResource.java >> (working copy) >> @@ -41,6 +41,7 @@ >> private static Category log =3D >> Category.getInstance(RedirectResource.class); >> public static String IDENTITY_MAP_KEY =3D "identity-map"; >> + public static final String RESOURCE_CONFIG_PARAM_HREF =3D >> "href"; >> // Only a temporary variable needed during creation >> (roundtrip) >> private String defaultHrefSetByCreator; >> @@ -72,7 +73,7 @@ >> HttpServletResponse response =3D getResponse(); >> - String defaultHref =3D getResourceConfigProperty("href"= ); >> + String defaultHref =3D >> getResourceConfigProperty(RESOURCE_CONFIG_PARAM_HREF); >> if (defaultHref =3D=3D null) throw new Exception("No >> default redirect has been set!"); >> @@ -96,7 +97,7 @@ >> try { >> if >> >> (languageRedirectConfigs[i].getAttribute("code").equals(localizationLan= guage)) >> { >> response.setStatus(307); >> - response.setHeader("Location", >> languageRedirectConfigs[i].getAttribute("href")); >> + response.setHeader("Location", >> >> languageRedirectConfigs[i].getAttribute(RESOURCE_CONFIG_PARAM_HREF)); >> } >> } catch (Exception e) { >> log.error(e.getMessage(), e); >> @@ -117,7 +118,7 @@ >> try { >> if >> (userRedirectConfigs[i].getAttribute("name") =3D=3D currentUser || >> (currentUser).equals(userRedirectConfigs[i].getAttribute("name"))) >> { >> response.setStatus(307); >> - response.setHeader("Location", >> userRedirectConfigs[i].getAttribute("href")); >> + response.setHeader("Location", >> userRedirectConfigs[i].getAttribute(RESOURCE_CONFIG_PARAM_HREF)); >> } >> } catch (Exception e) { >> log.error(e.getMessage(), e); >> @@ -188,7 +189,7 @@ >> */ >> public HashMap createRTIProperties(HttpServletRequest >> request) { >> HashMap map =3D new HashMap(); >> - map.put("href", request.getParameter("rp." + >> REDIRECT_URL)); >> + map.put(RESOURCE_CONFIG_PARAM_HREF, >> request.getParameter("rp." + REDIRECT_URL)); >> return map; >> } >> >> Cheers >> Balz >> >> >> -- Yanel-development mailing list Yanel-development@wyona.com >> >> >> http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development >> >> >> > -- > Yanel-development mailing list Yanel-development@wyona.com > http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.wyona.org/pipermail/yanel-development/attachments/2010092= 0/d03ca6ce/attachment-0001.htm From balz.schreier at gmail.com Mon Sep 20 11:58:32 2010 From: balz.schreier at gmail.com (Balz Schreier) Date: Mon Sep 20 11:59:28 2010 Subject: [Yanel-dev] Bug in Yanel Toolbar / User Mgmt / Change Password Message-ID: Hi, I noticed the following: change passwords of users via Yanel Toolbar does not work. Sometimes an error appears saying something like "the user already belongs to group ", or the no error appears, but the password does not get changed (login still works with the old password). Can somebody confirm this? Cheers Balz -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.wyona.org/pipermail/yanel-development/attachments/2010092= 0/1416451a/attachment.htm From michael.wechner at wyona.com Tue Sep 21 09:40:20 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Tue Sep 21 09:41:12 2010 Subject: [Yanel-dev] Re-using resources Message-ID: <4C986164.7090109@wyona.com> Hi A colleague of mine had recently a problem of re-using/extending an existing resource type, in particular the redirect resource: src/contributions/resources/redirect/ Normally one would define a dependeny on such a resource type, e.g. but that didn't work. The reason for that was that it did not exist within the local maven repo and the reason for that was that the redirect/build.xml didn't copy it there. It is now fixed :-) but please remember or make sure that the build and pom files are correct, e.g. src/contributions/resources/redirect/build.xml src/contributions/resources/redirect/src/build/pom.xml Cheers Michael From balz.schreier at gmail.com Tue Sep 21 18:05:19 2010 From: balz.schreier at gmail.com (Balz Schreier) Date: Tue Sep 21 18:07:36 2010 Subject: [Yanel-dev] Yanel Jelly Message-ID: Hi Michi, where can I get a quick overview of the tags available from the org.wyona.yanel.impl.jelly.tags.SimpleJellyTagLibrary Thanks Cheers Balz -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.wyona.org/pipermail/yanel-development/attachments/2010092= 1/eaf474dc/attachment.htm From michael.wechner at wyona.com Tue Sep 21 22:44:39 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Tue Sep 21 22:45:28 2010 Subject: [Yanel-dev] Yanel Jelly In-Reply-To: References: Message-ID: <4C991937.4080602@wyona.com> Balz Schreier wrote: > Hi Michi, > > where can I get a quick overview of the tags available from the > > org.wyona.yanel.impl.jelly.tags.SimpleJellyTagLibrary > I am afraid there is no documentation beside the code. As always help on documentation is very much appreciated :-) Cheers Michael > > > Thanks > Cheers > > Balz > From balz.schreier at gmail.com Tue Sep 21 22:59:27 2010 From: balz.schreier at gmail.com (Balz Schreier) Date: Tue Sep 21 23:00:18 2010 Subject: [Yanel-dev] Yanel Jelly In-Reply-To: <4C991937.4080602@wyona.com> References: <4C991937.4080602@wyona.com> Message-ID: And where is the code exactly? I had a quick look at the public svn but did not see this tag lib... Thanks Cheers Balz On Tue, Sep 21, 2010 at 10:44 PM, Michael Wechner wrote: > Balz Schreier wrote: > >> Hi Michi, >> >> where can I get a quick overview of the tags available from the >> org.wyona.yanel.impl.jelly.tags.SimpleJellyTagLibrary >> >> > I am afraid there is no documentation beside the code. > As always help on documentation is very much appreciated :-) > > Cheers > > Michael > >> >> >> Thanks >> Cheers >> >> Balz >> >> > -- > Yanel-development mailing list Yanel-development@wyona.com > http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.wyona.org/pipermail/yanel-development/attachments/2010092= 1/4c96b589/attachment.htm From michael.wechner at wyona.com Tue Sep 21 23:01:56 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Tue Sep 21 23:05:58 2010 Subject: [Yanel-dev] Yanel Jelly In-Reply-To: References: <4C991937.4080602@wyona.com> Message-ID: <4C991D44.9010901@wyona.com> Balz Schreier wrote: > And where is the code exactly? I had a quick look at the public svn > but did not see this tag lib... see https://svn.wyona.com/repos/public/yanel/contributions/resources/creatable-modifiable-deletable-v3 Cheers Michael > > Thanks > Cheers > Balz > > On Tue, Sep 21, 2010 at 10:44 PM, Michael Wechner > > wrote: > > Balz Schreier wrote: > > Hi Michi, > > where can I get a quick overview of the tags available from the > org.wyona.yanel.impl.jelly.tags.SimpleJellyTagLibrary > > > I am afraid there is no documentation beside the code. > As always help on documentation is very much appreciated :-) > > Cheers > > Michael > > > > Thanks > Cheers > > Balz > > > -- > Yanel-development mailing list Yanel-development@wyona.com > > http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development > > From balz.schreier at gmail.com Tue Sep 21 23:37:57 2010 From: balz.schreier at gmail.com (Balz Schreier) Date: Tue Sep 21 23:40:49 2010 Subject: [Yanel-dev] Adding external Maven Repositories to your project Message-ID: Hi, I would like to add some libraries to my realm which are not (yet) available from the Yanel repository. As an example: I would like to add this repository: maven-restlet Public online Restlet repository http://maven.restlet.org Where do I have to configure that in my realm? Then I probably have to add the dependency too: org.restlet.jse org.restlet 2.0.0 Where would that go in my realm? I guess the normal dependencies.xml? Cheers Balz -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.wyona.org/pipermail/yanel-development/attachments/2010092= 1/c98773c3/attachment.htm From baszero at gmail.com Thu Sep 23 14:46:03 2010 From: baszero at gmail.com (basZero) Date: Thu Sep 23 14:46:56 2010 Subject: [Yanel-dev] Input Form validation Message-ID: Hi, I am using Jelly based forms, have my own resources and a dedicated validator for certain fields. all works fine until I would like to do a validation across multiple fields. How can I do that? I looked for possible solutions: - from the validator I only get the resource input item, not the whole input. so there is no chance to get access to the whole form (which would allow me to do some cross-field validation) - I added the whole resource input object to my validator constructor, so that I can later access it when the validator gets called. unfortunately, the validator gets called before the resouce input gets updated (via setUpEditionForm()), so what I get from that stored object is the old values... does not help. for any idea, thanks. cheers balz -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.wyona.org/pipermail/yanel-development/attachments/2010092= 3/53160f5f/attachment.htm From michael.wechner at wyona.com Sat Sep 25 23:06:29 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Sat Sep 25 23:07:30 2010 Subject: [Yanel-dev] Adding external Maven Repositories to your project In-Reply-To: References: Message-ID: <4C9E6455.3040406@wyona.com> Balz Schreier wrote: > Hi, > > I would like to add some libraries to my realm which are not (yet) > available from the Yanel repository. > > As an example: I would like to add this repository: > > > maven-restlet > Public online Restlet repository > http://maven.restlet.org > > > Where do I have to configure that in my realm? > > Then I probably have to add the dependency too: > > > org.restlet.jse > org.restlet > 2.0.0 > > > Where would that go in my realm? I guess the normal dependencies.xml? yes, e.g. YANEL_HOME/src/resources/xml/src/build/dependencies.xml whereas see > Cheers > Balz From michael.wechner at wyona.com Mon Sep 27 21:33:22 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Mon Sep 27 21:34:20 2010 Subject: [Yanel-dev] Compiling/running junit tests of resource types Message-ID: <4CA0F182.8030801@wyona.com> Hi It seems that compiling/running junit tests of resource types has never been really implemented. I have add now a junit target to src/build/resource-types/resource-type.build.xml which means one can do something like ./build.sh -f /Users/michaelwechner/src/MY_REALM/trunk/res-types/MY_RESOURCE_TYPE/build.xml junit -Dtest.class.name=org.wyona.yane.resources.myresource.MyResourceTest I will start adding some actual tests and also will enhance the build process such that the overall test process is executing these tests. Cheers Michael From michael.wechner at wyona.com Tue Sep 28 11:08:49 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Tue Sep 28 11:09:48 2010 Subject: [Yanel-dev] Effective Java Second Edition by Joshua Bloch Message-ID: <4CA1B0A1.7090301@wyona.com> Hi A colleague of mine suggested the following book http://java.sun.com/docs/books/effective/ which might help to improve our Java coding. I don't read many books anymore and I am not affiliated with the author or whatsoever, but thought what the heck and hence post it here ;-) Cheers Michael From n.runnels-moss at sourcesense.com Tue Sep 28 13:10:07 2010 From: n.runnels-moss at sourcesense.com (Nigel Runnels-Moss) Date: Tue Sep 28 13:11:06 2010 Subject: [Yanel-dev] Effective Java Second Edition by Joshua Bloch In-Reply-To: <4CA1B0A1.7090301@wyona.com> References: <4CA1B0A1.7090301@wyona.com> Message-ID: Sorry to be a killjoy but do you have a little more to go on in the way of trusted recommendation other than 'someone told me about this book'? Otherwise I can get more out of searching Amazon's site for java books and going on ratings. N. On Tue, Sep 28, 2010 at 10:08 AM, Michael Wechner wrote: > Hi > > A colleague of mine suggested the following book > > http://java.sun.com/docs/books/effective/ > > which might help to improve our Java coding. > > I don't read many books anymore and I am not affiliated with the author or > whatsoever, > but thought what the heck and hence post it here ;-) > > Cheers > > Michael > -- > Yanel-development mailing list Yanel-development@wyona.com > http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development > From balz.schreier at gmail.com Tue Sep 28 13:25:25 2010 From: balz.schreier at gmail.com (Balz Schreier) Date: Tue Sep 28 13:26:34 2010 Subject: [Yanel-dev] Effective Java Second Edition by Joshua Bloch In-Reply-To: References: <4CA1B0A1.7090301@wyona.com> Message-ID: Dear all, to put some light into this mail thread, I'll add some more details regarding the mentioned book, as I was mentioning it today while talking to Michael. The first edition of the book came out in 2001. The second edition came out in 2008 and was updated for all the new features in Java SE 6. Having read many Java books myself, this is still one the top shots I can really recommend to Java developers (not only people how start to write applications in Java, it's a nice read for very advanced developers too). As written in the introduction of the book, many other books are primarily addressing the following two areas: 1) Language Structure / Grammar 2) Vocabulary: how things are named, API specifics But "Effective Java" addresses only the third area: 3) Usage (the author compares it with learning a new spoken language: first you learn grammar and vocabulary. But very often, the usage must be learned in the real life).. So the book is about patterns, about how to code, compares different coding approaches (e.g. Constructor Overloading versus Static Factories), etc. For me, this book is a "must have read" for all Java developers. The author is very known in the Java eco system, having been involved into many JSRs either as spec lead or key contributor. Usually Joshua Bloch has his "Effective Java" session at Java conferences (JavaOne, Devoxx, Jazoon, ...). Cheers Balz On Tue, Sep 28, 2010 at 1:10 PM, Nigel Runnels-Moss < n.runnels-moss@sourcesense.com> wrote: > Sorry to be a killjoy but do you have a little more to go on in the > way of trusted recommendation other than 'someone told me about this > book'? > > Otherwise I can get more out of searching Amazon's site for java books > and going on ratings. > > N. > > On Tue, Sep 28, 2010 at 10:08 AM, Michael Wechner > wrote: > > Hi > > > > A colleague of mine suggested the following book > > > > http://java.sun.com/docs/books/effective/ > > > > which might help to improve our Java coding. > > > > I don't read many books anymore and I am not affiliated with the author > or > > whatsoever, > > but thought what the heck and hence post it here ;-) > > > > Cheers > > > > Michael > > -- > > Yanel-development mailing list Yanel-development@wyona.com > > http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development > > > -- > Yanel-development mailing list Yanel-development@wyona.com > http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.wyona.org/pipermail/yanel-development/attachments/2010092= 8/73b4542d/attachment.htm From michael.wechner at wyona.com Tue Sep 28 18:36:53 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Tue Sep 28 18:37:54 2010 Subject: [Yanel-dev] Effective Java Second Edition by Joshua Bloch In-Reply-To: References: <4CA1B0A1.7090301@wyona.com> Message-ID: <4CA219A5.2080800@wyona.com> Nigel Runnels-Moss wrote: > Sorry to be a killjoy but do you have a little more to go on in the > way of trusted recommendation other than 'someone told me about this > book'? > see Balz's email Cheers Michael > Otherwise I can get more out of searching Amazon's site for java books > and going on ratings. > > N. > > On Tue, Sep 28, 2010 at 10:08 AM, Michael Wechner > wrote: > >> Hi >> >> A colleague of mine suggested the following book >> >> http://java.sun.com/docs/books/effective/ >> >> which might help to improve our Java coding. >> >> I don't read many books anymore and I am not affiliated with the author or >> whatsoever, >> but thought what the heck and hence post it here ;-) >> >> Cheers >> >> Michael >> -- >> Yanel-development mailing list Yanel-development@wyona.com >> http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development >> >> From michael.wechner at wyona.com Tue Sep 28 18:38:21 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Tue Sep 28 18:39:20 2010 Subject: [Yanel-dev] Effective Java Second Edition by Joshua Bloch In-Reply-To: References: <4CA1B0A1.7090301@wyona.com> Message-ID: <4CA219FD.7010306@wyona.com> Dear Balz Thanks very much for your explanations. Cheers Michael Balz Schreier wrote: > Dear all, > > to put some light into this mail thread, I'll add some more details > regarding the mentioned book, as I was mentioning it today while > talking to Michael. > > The first edition of the book came out in 2001. > The second edition came out in 2008 and was updated for all the new > features in Java SE 6. > > Having read many Java books myself, this is still one the top shots I > can really recommend to Java developers (not only people how start to > write applications in Java, it's a nice read for very advanced > developers too). > > As written in the introduction of the book, many other books are > primarily addressing the following two areas: > 1) Language Structure / Grammar > 2) Vocabulary: how things are named, API specifics > > But "Effective Java" addresses only the third area: > 3) Usage (the author compares it with learning a new spoken language: > first you learn grammar and vocabulary. But very often, the usage must > be learned in the real life).. > > So the book is about patterns, about how to code, compares different > coding approaches (e.g. Constructor Overloading versus Static > Factories), etc. > > For me, this book is a "must have read" for all Java developers. > > The author is very known in the Java eco system, having been involved > into many JSRs either as spec lead or key contributor. > Usually Joshua Bloch has his "Effective Java" session at Java > conferences (JavaOne, Devoxx, Jazoon, ...). > > Cheers > Balz > > > On Tue, Sep 28, 2010 at 1:10 PM, Nigel Runnels-Moss > > wrote: > > Sorry to be a killjoy but do you have a little more to go on in the > way of trusted recommendation other than 'someone told me about this > book'? > > Otherwise I can get more out of searching Amazon's site for java books > and going on ratings. > > N. > > On Tue, Sep 28, 2010 at 10:08 AM, Michael Wechner > > wrote: > > Hi > > > > A colleague of mine suggested the following book > > > > http://java.sun.com/docs/books/effective/ > > > > which might help to improve our Java coding. > > > > I don't read many books anymore and I am not affiliated with the > author or > > whatsoever, > > but thought what the heck and hence post it here ;-) > > > > Cheers > > > > Michael > > -- > > Yanel-development mailing list Yanel-development@wyona.com > > > http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development > > > -- > Yanel-development mailing list Yanel-development@wyona.com > > http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development > > From michael.wechner at wyona.com Tue Sep 28 20:29:28 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Tue Sep 28 20:30:28 2010 Subject: [Yanel-dev] Document Foundation Message-ID: <4CA23408.3090205@wyona.com> FYI: http://www.documentfoundation.org/contact/tdf_release.html Cheers Michael From n.runnels-moss at sourcesense.com Wed Sep 29 10:21:09 2010 From: n.runnels-moss at sourcesense.com (Nigel Runnels-Moss) Date: Wed Sep 29 10:22:08 2010 Subject: [Yanel-dev] Effective Java Second Edition by Joshua Bloch In-Reply-To: <4CA219FD.7010306@wyona.com> References: <4CA1B0A1.7090301@wyona.com> <4CA219FD.7010306@wyona.com> Message-ID: Thank you Balz, that is a recommendation that adds a great deal of value over the original mention. N. On Tue, Sep 28, 2010 at 5:38 PM, Michael Wechner wrote: > Dear Balz > > Thanks very much for your explanations. > > Cheers > > Michael > > Balz Schreier wrote: >> >> Dear all, >> >> to put some light into this mail thread, I'll add some more details >> regarding the mentioned book, as I was mentioning it today while talking to >> Michael. >> >> The first edition of the book came out in 2001. >> The second edition came out in 2008 and was updated for all the new >> features in Java SE 6. >> >> Having read many Java books myself, this is still one the top shots I can >> really recommend to Java developers (not only people how start to write >> applications in Java, it's a nice read for very advanced developers too). >> >> As written in the introduction of the book, many other books are primarily >> addressing the following two areas: >> 1) Language Structure / Grammar >> 2) Vocabulary: how things are named, API specifics >> >> But "Effective Java" addresses only the third area: >> 3) Usage (the author compares it with learning a new spoken language: >> first you learn grammar and vocabulary. But very often, the usage must be >> learned in the real life).. >> >> So the book is about patterns, about how to code, compares different >> coding approaches (e.g. Constructor Overloading versus Static Factories), >> etc. >> >> For me, this book is a "must have read" for all Java developers. >> >> The author is very known in the Java eco system, having been involved into >> many JSRs either as spec lead or key contributor. >> Usually Joshua Bloch has his "Effective Java" session at Java conferences >> (JavaOne, Devoxx, Jazoon, ...). >> >> Cheers >> Balz >> >> >> On Tue, Sep 28, 2010 at 1:10 PM, Nigel Runnels-Moss >> > >> wrote: >> >> ? ?Sorry to be a killjoy but do you have a little more to go on in the >> ? ?way of trusted recommendation other than 'someone told me about this >> ? ?book'? >> >> ? ?Otherwise I can get more out of searching Amazon's site for java books >> ? ?and going on ratings. >> >> ? ?N. >> >> ? ?On Tue, Sep 28, 2010 at 10:08 AM, Michael Wechner >> ? ?> wrote: >> ? ?> Hi >> ? ?> >> ? ?> A colleague of mine suggested the following book >> ? ?> >> ? ?> http://java.sun.com/docs/books/effective/ >> ? ?> >> ? ?> which might help to improve our Java coding. >> ? ?> >> ? ?> I don't read many books anymore and I am not affiliated with the >> ? ?author or >> ? ?> whatsoever, >> ? ?> but thought what the heck and hence post it here ;-) >> ? ?> >> ? ?> Cheers >> ? ?> >> ? ?> Michael >> ? ?> -- >> ? ?> Yanel-development mailing list Yanel-development@wyona.com >> ? ? >> ? ?> http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development >> ? ?> >> ? ?-- >> ? ?Yanel-development mailing list Yanel-development@wyona.com >> ? ? >> ? ?http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development >> >> > > -- > Yanel-development mailing list Yanel-development@wyona.com > http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development > From balz.schreier at gmail.com Wed Sep 29 10:57:25 2010 From: balz.schreier at gmail.com (Balz Schreier) Date: Wed Sep 29 11:00:02 2010 Subject: [Yanel-dev] Effective Java Second Edition by Joshua Bloch In-Reply-To: References: <4CA1B0A1.7090301@wyona.com> <4CA219FD.7010306@wyona.com> Message-ID: Hi Nigel, you're welcome. I actually want to underline again that this book is really exceptional as it is not about any framework nor any specific API, it really just tells you what good code is. Each chapter is one learning, so you can easily read just a chapter and you learnt something... Cheers and have fun with it, should you ever read it. Cheers Balz On Wed, Sep 29, 2010 at 10:21 AM, Nigel Runnels-Moss < n.runnels-moss@sourcesense.com> wrote: > Thank you Balz, that is a recommendation that adds a great deal of > value over the original mention. > > N. > > On Tue, Sep 28, 2010 at 5:38 PM, Michael Wechner > wrote: > > Dear Balz > > > > Thanks very much for your explanations. > > > > Cheers > > > > Michael > > > > Balz Schreier wrote: > >> > >> Dear all, > >> > >> to put some light into this mail thread, I'll add some more details > >> regarding the mentioned book, as I was mentioning it today while talki= ng > to > >> Michael. > >> > >> The first edition of the book came out in 2001. > >> The second edition came out in 2008 and was updated for all the new > >> features in Java SE 6. > >> > >> Having read many Java books myself, this is still one the top shots I > can > >> really recommend to Java developers (not only people how start to write > >> applications in Java, it's a nice read for very advanced developers > too). > >> > >> As written in the introduction of the book, many other books are > primarily > >> addressing the following two areas: > >> 1) Language Structure / Grammar > >> 2) Vocabulary: how things are named, API specifics > >> > >> But "Effective Java" addresses only the third area: > >> 3) Usage (the author compares it with learning a new spoken language: > >> first you learn grammar and vocabulary. But very often, the usage must > be > >> learned in the real life).. > >> > >> So the book is about patterns, about how to code, compares different > >> coding approaches (e.g. Constructor Overloading versus Static > Factories), > >> etc. > >> > >> For me, this book is a "must have read" for all Java developers. > >> > >> The author is very known in the Java eco system, having been involved > into > >> many JSRs either as spec lead or key contributor. > >> Usually Joshua Bloch has his "Effective Java" session at Java > conferences > >> (JavaOne, Devoxx, Jazoon, ...). > >> > >> Cheers > >> Balz > >> > >> > >> On Tue, Sep 28, 2010 at 1:10 PM, Nigel Runnels-Moss > >> >> > >> wrote: > >> > >> Sorry to be a killjoy but do you have a little more to go on in the > >> way of trusted recommendation other than 'someone told me about this > >> book'? > >> > >> Otherwise I can get more out of searching Amazon's site for java > books > >> and going on ratings. > >> > >> N. > >> > >> On Tue, Sep 28, 2010 at 10:08 AM, Michael Wechner > >> > > wrote: > >> > Hi > >> > > >> > A colleague of mine suggested the following book > >> > > >> > http://java.sun.com/docs/books/effective/ > >> > > >> > which might help to improve our Java coding. > >> > > >> > I don't read many books anymore and I am not affiliated with the > >> author or > >> > whatsoever, > >> > but thought what the heck and hence post it here ;-) > >> > > >> > Cheers > >> > > >> > Michael > >> > -- > >> > Yanel-development mailing list Yanel-development@wyona.com > >> > >> > http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development > >> > > >> -- > >> Yanel-development mailing list Yanel-development@wyona.com > >> > >> http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development > >> > >> > > > > -- > > Yanel-development mailing list Yanel-development@wyona.com > > http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development > > > -- > Yanel-development mailing list Yanel-development@wyona.com > http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.wyona.org/pipermail/yanel-development/attachments/2010092= 9/711a57b6/attachment-0001.htm From michael.wechner at wyona.com Wed Sep 29 13:42:18 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Wed Sep 29 13:43:43 2010 Subject: [Yanel-dev] Jelly can drive you crazy ... Message-ID: <4CA3261A.7010108@wyona.com> Hi I just have spent quite some time debugging a Jelly File, because some methods were not public and others have been renamed. These errors were not obvious and hence I was looking at the wrong place for too long until I have realized what the actual error was. I think it would be nice if one could "pre-compile" these Jelly files somehow, such that one could at least recognize such errors during the build process. I don't know if this possible, but any help/pointers is appreciated. Also I need to check if the enabling of # Makes Jelly errors visible, but do not use in production, because it also generates a lot of debug messages #log4j.category.org.apache.commons.jelly.impl.TagScript=TRACE within conf/(local/local.)log4j.properties also might be useful. (haven't tried myself yet, but write this down anyway for anyone stumbling over this thread in the future). Thanks Michael From balz.schreier at gmail.com Thu Sep 30 09:46:12 2010 From: balz.schreier at gmail.com (Balz Schreier) Date: Thu Sep 30 09:47:15 2010 Subject: [Yanel-dev] another recommendation Message-ID: dear all, just to keep up a bit with the recommendation topic, I have to mention my top favorite podcasts: 1) the clear number one for me is: The Java Posse: http://javaposse.com/ for a long time they released the podcast on a weekly basis, now they release it every two weeks, approximately. the members of the java posse are deeply into the Java topics and they talk about SE, ME and EE stuff as well as about any other related technology. it is not only informative and very up-to-date, they also have a great level of humour which makes the podcast really the number one. if you visit JavaOne in San Francisco once, don't miss the live-recording of their episode there (usually in a BOF session in the evening). 2) number two for me would be: http://www.se-radio.net/ I'd be happy to hear about your favorite Java related podcasts. Cheers Balz -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.wyona.org/pipermail/yanel-development/attachments/2010093= 0/b26a8a0d/attachment.htm From balz.schreier at gmail.com Thu Sep 30 10:29:56 2010 From: balz.schreier at gmail.com (Balz Schreier) Date: Thu Sep 30 10:31:00 2010 Subject: [Yanel-dev] Using Image Magick on Mac OS X (Snow Leopard) Message-ID: Dear all, I struggled lately with using Image Magick on Mac OS X (I did not use macports, and snow leopard is shipped with an old ghostscript version). I found out that the easiest way to install it is with MacPorts. Here are the steps you have to do: - You must be a registered Apple Developer. If you do not have an account: http://developer.apple.com/programs/register/ - Download and Install XCode (requires login to your Developer account) : http://developer.apple.com/technologies/tools/xcode.html - Download and Install MacPorts: http://www.macports.org/ - In any Mac OSX Terminal: sudo port install ImageMagick - In any Mac OSX Terminal: sudo port install ghostscript Ready to go ! Cheers Balz -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.wyona.org/pipermail/yanel-development/attachments/2010093= 0/c0b0a0f6/attachment.htm From michael.wechner at wyona.com Thu Sep 30 10:45:00 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Thu Sep 30 10:48:06 2010 Subject: [Yanel-dev] Using Image Magick on Mac OS X (Snow Leopard) In-Reply-To: References: Message-ID: <4CA44E0C.3010303@wyona.com> Balz Schreier wrote: > Dear all, > > I struggled lately with using Image Magick on Mac OS X (I did not use > macports, and snow leopard is shipped with an old ghostscript version). > > I found out that the easiest way to install it is with MacPorts. Here > are the steps you have to do: > > - You must be a registered Apple Developer. If you do not have an > account: http://developer.apple.com/programs/register/ > - Download and Install XCode (requires login to your Developer > account) : http://developer.apple.com/technologies/tools/xcode.html > - Download and Install MacPorts: http://www.macports.org/ > - In any Mac OSX Terminal: sudo port install ImageMagick > - In any Mac OSX Terminal: sudo port install ghostscript > > Ready to go ! thanks very much for this summary. I assume you are using Image Magick instead for example the ImageIO library, because the quality of scaling, etc. is better, right? Thanks Michael > > Cheers > Balz From michael.wechner at wyona.com Thu Sep 30 10:46:49 2010 From: michael.wechner at wyona.com (Michael Wechner) Date: Thu Sep 30 10:48:12 2010 Subject: [Yanel-dev] another recommendation In-Reply-To: References: Message-ID: <4CA44E79.1050703@wyona.com> Balz Schreier wrote: > dear all, > > just to keep up a bit with the recommendation topic, I have to mention > my top favorite podcasts: > > 1) > the clear number one for me is: The Java Posse: http://javaposse.com/ > for a long time they released the podcast on a weekly basis, now they > release it every two weeks, approximately. > the members of the java posse are deeply into the Java topics and they > talk about SE, ME and EE stuff as well as about any other related > technology. > it is not only informative and very up-to-date, they also have a great > level of humour which makes the podcast really the number one. > > if you visit JavaOne in San Francisco once, don't miss the > live-recording of their episode there (usually in a BOF session in the > evening). > > 2) > number two for me would be: http://www.se-radio.net/ > > I'd be happy to hear about your favorite Java related podcasts. unfortunately I don't have any Java related podcasts to recommend, but people interested in ASF related stuff might want to listen to http://feathercast.org/ Cheers Michael > > Cheers > Balz From balz.schreier at gmail.com Thu Sep 30 10:56:29 2010 From: balz.schreier at gmail.com (Balz Schreier) Date: Thu Sep 30 10:57:34 2010 Subject: [Yanel-dev] Using Image Magick on Mac OS X (Snow Leopard) In-Reply-To: <4CA44E0C.3010303@wyona.com> References: <4CA44E0C.3010303@wyona.com> Message-ID: I think that Image IO can only deal with image formats (e.g. from PNG to TIFF etc.) whereas Image Magick can also transform PDFs into JPGs. I don't know the quality of Image IO when it comes to scaling. But what I know for sure is that Java Advanced Imaging delivers very good scaling results: http://java.sun.com/javase/technologies/desktop/media/jai/ The relation between JAI and ImageIO can be seen here: http://java.sun.com/javase/technologies/desktop/media/jai/project/index.html Cheers Balz On Thu, Sep 30, 2010 at 10:45 AM, Michael Wechner wrote: > Balz Schreier wrote: > >> Dear all, >> >> I struggled lately with using Image Magick on Mac OS X (I did not use >> macports, and snow leopard is shipped with an old ghostscript version). >> >> I found out that the easiest way to install it is with MacPorts. Here are >> the steps you have to do: >> >> - You must be a registered Apple Developer. If you do not have an accoun= t: >> http://developer.apple.com/programs/register/ >> - Download and Install XCode (requires login to your Developer account) : >> http://developer.apple.com/technologies/tools/xcode.html >> - Download and Install MacPorts: http://www.macports.org/ >> - In any Mac OSX Terminal: sudo port install ImageMagick >> - In any Mac OSX Terminal: sudo port install ghostscript >> >> Ready to go ! >> > > thanks very much for this summary. > > I assume you are using Image Magick instead for example the ImageIO > library, because the quality of scaling, etc. > is better, right? > > Thanks > > Michael > >> >> Cheers >> Balz >> > > -- > Yanel-development mailing list Yanel-development@wyona.com > http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.wyona.org/pipermail/yanel-development/attachments/2010093= 0/34d93c84/attachment.htm From bugzilla at wyona.com Thu Sep 30 12:04:43 2010 From: bugzilla at wyona.com (bugzilla@wyona.com) Date: Thu Sep 30 12:04:46 2010 Subject: [Yanel-dev] [Bug 7785] Patch review: User management pagination Message-ID: <20100930100443.0BF8E10CBD2@server1.example.com> http://bugzilla.wyona.com/cgi-bin/bugzilla/show_bug.cgi?id=7785 cedric.staub@wyona.com changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #1332 is|0 |1 obsolete| | ------- Comment #3 from cedric.staub@wyona.com 2010-09-30 11:22 ------- Created an attachment (id=1351) --> (http://bugzilla.wyona.com/cgi-bin/bugzilla/attachment.cgi?id=1351&action=view) User management (yanel, v2) Improved version -- Configure bugmail: http://bugzilla.wyona.com/cgi-bin/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug, or are watching the QA contact. From bugzilla at wyona.com Thu Sep 30 12:06:30 2010 From: bugzilla at wyona.com (bugzilla@wyona.com) Date: Thu Sep 30 12:09:19 2010 Subject: [Yanel-dev] [Bug 7785] Patch review: User management pagination Message-ID: <20100930100630.8AD7010CBD2@server1.example.com> http://bugzilla.wyona.com/cgi-bin/bugzilla/show_bug.cgi?id=7785 ------- Comment #4 from cedric.staub@wyona.com 2010-09-30 11:24 ------- Created an attachment (id=1352) --> (http://bugzilla.wyona.com/cgi-bin/bugzilla/attachment.cgi?id=1352&action=view) User management (security lib, v2) Apply this on top of patch v1 (should be in SVN). -- Configure bugmail: http://bugzilla.wyona.com/cgi-bin/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug, or are watching the QA contact. From bugzilla at wyona.com Thu Sep 30 12:13:15 2010 From: bugzilla at wyona.com (bugzilla@wyona.com) Date: Thu Sep 30 12:13:16 2010 Subject: [Yanel-dev] [Bug 7785] Patch review: User management pagination Message-ID: <20100930101315.1EB5C10CBDB@server1.example.com> http://bugzilla.wyona.com/cgi-bin/bugzilla/show_bug.cgi?id=7785 cedric.staub@wyona.com changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #1351 is|0 |1 obsolete| | ------- Comment #5 from cedric.staub@wyona.com 2010-09-30 11:31 ------- Created an attachment (id=1353) --> (http://bugzilla.wyona.com/cgi-bin/bugzilla/attachment.cgi?id=1353&action=view) User management (yanel, v3) Apply this instead of the other (yanel) patches. -- Configure bugmail: http://bugzilla.wyona.com/cgi-bin/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug, or are watching the QA contact. From bugzilla at wyona.com Thu Sep 30 14:35:07 2010 From: bugzilla at wyona.com (bugzilla@wyona.com) Date: Thu Sep 30 14:35:47 2010 Subject: [Yanel-dev] [Bug 7785] Patch review: User management pagination Message-ID: <20100930123507.91C4010CBDC@server1.example.com> http://bugzilla.wyona.com/cgi-bin/bugzilla/show_bug.cgi?id=7785 michael.wechner@wyona.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED ------- Comment #6 from michael.wechner@wyona.org 2010-09-30 13:53 ------- Patches applied, Thanks very much -- Configure bugmail: http://bugzilla.wyona.com/cgi-bin/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug, or are watching the QA contact. From bugzilla at wyona.com Thu Sep 30 16:23:30 2010 From: bugzilla at wyona.com (bugzilla@wyona.com) Date: Thu Sep 30 16:23:32 2010 Subject: [Yanel-dev] [Bug 7807] Patch review: Yanel website: Dynamic snapshot listing Message-ID: <20100930142330.1DCC110CBC1@server1.example.com> http://bugzilla.wyona.com/cgi-bin/bugzilla/show_bug.cgi?id=7807 michael.wechner@wyona.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED -- Configure bugmail: http://bugzilla.wyona.com/cgi-bin/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug, or are watching the QA contact.