Hi Jacques,
This is that same problem with the patch again, please keep an eye out for these as the commits are impossible to review. Thanks Scott HotWax Media http://www.hotwaxmedia.com On 8/11/2009, at 7:18 AM, [hidden email] wrote: > Author: jleroux > Date: Sat Nov 7 18:18:33 2009 > New Revision: 833727 > > URL: http://svn.apache.org/viewvc?rev=833727&view=rev > Log: > A patch from Marc Morin "Resolve java warnings exposed in Eclipse : > framework - webslinger" (https://issues.apache.org/jira/browse/OFBIZ-3121 > ) - OFBIZ-3121 > > Modified: > ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ > CommonsVfsContainer.java > ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ofbiz/ > OfbizComponentProvider.java > ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ofbiz/ > OfbizHomeProvider.java > ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ > EntityHttpUtil.java > ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ > StatsUpdater.java > ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ > WebslingerContextMapper.java > ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ > WebslingerServerEngine.java > > Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ > CommonsVfsContainer.java > URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/CommonsVfsContainer.java?rev=833727&r1=833726&r2=833727&view=diff > = > = > = > = > = > = > = > = > ====================================================================== > --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ > CommonsVfsContainer.java (original) > +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ > CommonsVfsContainer.java Sat Nov 7 18:18:33 2009 > @@ -1,68 +1,66 @@ > -/ > ******************************************************************************* > - * Licensed to the Apache Software Foundation (ASF) under one > - * or more contributor license agreements. See the NOTICE file > - * distributed with this work for additional information > - * regarding copyright ownership. The ASF licenses this file > - * to you under the Apache License, Version 2.0 (the > - * "License"); you may not use this file except in compliance > - * with the License. You may obtain a copy of the License at > - * > - * http://www.apache.org/licenses/LICENSE-2.0 > - * > - * Unless required by applicable law or agreed to in writing, > - * software distributed under the License is distributed on an > - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > - * KIND, either express or implied. See the License for the > - * specific language governing permissions and limitations > - * under the License. > - > *******************************************************************************/ > -package org.ofbiz.commons.vfs; > - > -import java.io.File; > -import java.io.IOException; > -import java.net.MalformedURLException; > - > -import org.apache.commons.vfs.CacheStrategy; > -import org.apache.commons.vfs.FileObject; > -import org.apache.commons.vfs.FileSystemException; > -import org.apache.commons.vfs.FileSystemManager; > -import org.apache.commons.vfs.impl.StandardFileSystemManager; > - > -import org.ofbiz.base.container.Container; > -import org.ofbiz.base.container.ContainerException; > -import org.ofbiz.base.util.UtilMisc; > -import org.webslinger.commons.vfs.VFSUtil; > - > -public class CommonsVfsContainer implements Container { > - private static StandardFileSystemManager sfsm; > - > - public void init(String[] args, String configFile) throws > ContainerException { > - } > - > - public boolean start() throws ContainerException { > - try { > - StandardFileSystemManager sfsm = > VFSUtil.createStandardFileSystemManager(); > - FileObject currentDir = sfsm.resolveFile(new > File(".").toURI().toURL().toString()); > - sfsm.setBaseFile(currentDir); > - CommonsVfsContainer.sfsm = sfsm; > - } catch (FileSystemException e) { > - throw UtilMisc.initCause(new > ContainerException("Initializing StandardFileSystemManager"), e); > - } catch (MalformedURLException e) { > - throw UtilMisc.initCause(new > ContainerException("Initializing StandardFileSystemManager"), e); > - } > - return true; > - } > - > - public void stop() throws ContainerException { > - sfsm.close(); > - sfsm = null; > - } > - > - public static FileObject resolveFile(String uri) throws > IOException { > - return sfsm.resolveFile(uri); > - } > - > - public static FileSystemManager getFileSystemManager() { > - return sfsm; > - } > -} > +/ > ******************************************************************************* > + * Licensed to the Apache Software Foundation (ASF) under one > + * or more contributor license agreements. See the NOTICE file > + * distributed with this work for additional information > + * regarding copyright ownership. The ASF licenses this file > + * to you under the Apache License, Version 2.0 (the > + * "License"); you may not use this file except in compliance > + * with the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, > + * software distributed under the License is distributed on an > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > + * KIND, either express or implied. See the License for the > + * specific language governing permissions and limitations > + * under the License. > + > *******************************************************************************/ > +package org.ofbiz.commons.vfs; > + > +import java.io.File; > +import java.io.IOException; > +import java.net.MalformedURLException; > + > +import org.apache.commons.vfs.FileObject; > +import org.apache.commons.vfs.FileSystemException; > +import org.apache.commons.vfs.FileSystemManager; > +import org.apache.commons.vfs.impl.StandardFileSystemManager; > +import org.ofbiz.base.container.Container; > +import org.ofbiz.base.container.ContainerException; > +import org.ofbiz.base.util.UtilMisc; > +import org.webslinger.commons.vfs.VFSUtil; > + > +public class CommonsVfsContainer implements Container { > + private static StandardFileSystemManager sfsm; > + > + public void init(String[] args, String configFile) throws > ContainerException { > + } > + > + public boolean start() throws ContainerException { > + try { > + StandardFileSystemManager sfsm = > VFSUtil.createStandardFileSystemManager(); > + FileObject currentDir = sfsm.resolveFile(new > File(".").toURI().toURL().toString()); > + sfsm.setBaseFile(currentDir); > + CommonsVfsContainer.sfsm = sfsm; > + } catch (FileSystemException e) { > + throw UtilMisc.initCause(new > ContainerException("Initializing StandardFileSystemManager"), e); > + } catch (MalformedURLException e) { > + throw UtilMisc.initCause(new > ContainerException("Initializing StandardFileSystemManager"), e); > + } > + return true; > + } > + > + public void stop() throws ContainerException { > + sfsm.close(); > + sfsm = null; > + } > + > + public static FileObject resolveFile(String uri) throws > IOException { > + return sfsm.resolveFile(uri); > + } > + > + public static FileSystemManager getFileSystemManager() { > + return sfsm; > + } > +} > > Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ > ofbiz/OfbizComponentProvider.java > URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ofbiz/OfbizComponentProvider.java?rev=833727&r1=833726&r2=833727&view=diff > = > = > = > = > = > = > = > = > ====================================================================== > --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ofbiz/ > OfbizComponentProvider.java (original) > +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ofbiz/ > OfbizComponentProvider.java Sat Nov 7 18:18:33 2009 > @@ -1,58 +1,58 @@ > -/ > ******************************************************************************* > - * Licensed to the Apache Software Foundation (ASF) under one > - * or more contributor license agreements. See the NOTICE file > - * distributed with this work for additional information > - * regarding copyright ownership. The ASF licenses this file > - * to you under the Apache License, Version 2.0 (the > - * "License"); you may not use this file except in compliance > - * with the License. You may obtain a copy of the License at > - * > - * http://www.apache.org/licenses/LICENSE-2.0 > - * > - * Unless required by applicable law or agreed to in writing, > - * software distributed under the License is distributed on an > - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > - * KIND, either express or implied. See the License for the > - * specific language governing permissions and limitations > - * under the License. > - > *******************************************************************************/ > -package org.ofbiz.commons.vfs.ofbiz; > - > -import java.net.URL; > -import java.util.Collection; > -import org.apache.commons.vfs.FileObject; > -import org.apache.commons.vfs.FileSystemException; > -import org.apache.commons.vfs.FileSystemOptions; > -import org.apache.commons.vfs.provider.AbstractFileProvider; > -import > org.apache.commons.vfs.provider.local.DefaultLocalFileProvider; > -import org.ofbiz.base.location.FlexibleLocation; > -import org.ofbiz.base.util.UtilMisc; > -import org.webslinger.commons.vfs.VFSUtil; > - > -public class OfbizComponentProvider extends AbstractFileProvider { > - public Collection getCapabilities() { > - return DefaultLocalFileProvider.capabilities; > - } > - > - public FileObject findFile(FileObject base, String name, > FileSystemOptions properties) throws FileSystemException { > - try { > - //name = name.replaceAll("^ofbiz-component://", ""); > - int nameLength = name.length(); > - int componentNameStart = 16; > - while (componentNameStart < nameLength && > name.charAt(componentNameStart) == '/') componentNameStart++; > - if (componentNameStart == nameLength) throw new > IllegalArgumentException("Invalid name(" + name + ")"); > - int componentNameEnd = componentNameStart; > - while (componentNameEnd < nameLength && > name.charAt(componentNameEnd) != '/') componentNameEnd++; > - if (componentNameEnd == nameLength) throw new > IllegalArgumentException("Invalid name(" + name + ")"); > - int restStart = componentNameEnd; > - while (restStart < nameLength && name.charAt(restStart) > == '/') restStart++; > - if (restStart == nameLength) throw new > IllegalArgumentException("Invalid name(" + name + ")"); > - String componentName = > name.substring(componentNameStart, componentNameEnd); > - URL location = > FlexibleLocation.resolveLocation("component://" + componentName + > "/."); > - FileObject ofbizBase = > getContext().resolveFile(location.toString(), properties); > - return > VFSUtil > .toFileObject(ofbizBase.getFileSystem().getFileSystemManager(), > ofbizBase > .resolveFile(name.substring(restStart)).getURL().toString(), > properties); > - } catch (Exception e) { > - throw UtilMisc.initCause(new > FileSystemException(e.getMessage(), null, e), e); > - } > - } > -} > +/ > ******************************************************************************* > + * Licensed to the Apache Software Foundation (ASF) under one > + * or more contributor license agreements. See the NOTICE file > + * distributed with this work for additional information > + * regarding copyright ownership. The ASF licenses this file > + * to you under the Apache License, Version 2.0 (the > + * "License"); you may not use this file except in compliance > + * with the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, > + * software distributed under the License is distributed on an > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > + * KIND, either express or implied. See the License for the > + * specific language governing permissions and limitations > + * under the License. > + > *******************************************************************************/ > +package org.ofbiz.commons.vfs.ofbiz; > + > +import java.net.URL; > +import java.util.Collection; > +import org.apache.commons.vfs.FileObject; > +import org.apache.commons.vfs.FileSystemException; > +import org.apache.commons.vfs.FileSystemOptions; > +import org.apache.commons.vfs.provider.AbstractFileProvider; > +import > org.apache.commons.vfs.provider.local.DefaultLocalFileProvider; > +import org.ofbiz.base.location.FlexibleLocation; > +import org.ofbiz.base.util.UtilMisc; > +import org.webslinger.commons.vfs.VFSUtil; > + > +public class OfbizComponentProvider extends AbstractFileProvider { > + public Collection<?> getCapabilities() { > + return DefaultLocalFileProvider.capabilities; > + } > + > + public FileObject findFile(FileObject base, String name, > FileSystemOptions properties) throws FileSystemException { > + try { > + //name = name.replaceAll("^ofbiz-component://", ""); > + int nameLength = name.length(); > + int componentNameStart = 16; > + while (componentNameStart < nameLength && > name.charAt(componentNameStart) == '/') componentNameStart++; > + if (componentNameStart == nameLength) throw new > IllegalArgumentException("Invalid name(" + name + ")"); > + int componentNameEnd = componentNameStart; > + while (componentNameEnd < nameLength && > name.charAt(componentNameEnd) != '/') componentNameEnd++; > + if (componentNameEnd == nameLength) throw new > IllegalArgumentException("Invalid name(" + name + ")"); > + int restStart = componentNameEnd; > + while (restStart < nameLength && name.charAt(restStart) > == '/') restStart++; > + if (restStart == nameLength) throw new > IllegalArgumentException("Invalid name(" + name + ")"); > + String componentName = > name.substring(componentNameStart, componentNameEnd); > + URL location = > FlexibleLocation.resolveLocation("component://" + componentName + > "/."); > + FileObject ofbizBase = > getContext().resolveFile(location.toString(), properties); > + return > VFSUtil > .toFileObject(ofbizBase.getFileSystem().getFileSystemManager(), > ofbizBase > .resolveFile(name.substring(restStart)).getURL().toString(), > properties); > + } catch (Exception e) { > + throw UtilMisc.initCause(new > FileSystemException(e.getMessage(), null, e), e); > + } > + } > +} > > Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ > ofbiz/OfbizHomeProvider.java > URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ofbiz/OfbizHomeProvider.java?rev=833727&r1=833726&r2=833727&view=diff > = > = > = > = > = > = > = > = > ====================================================================== > --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ofbiz/ > OfbizHomeProvider.java (original) > +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ofbiz/ > OfbizHomeProvider.java Sat Nov 7 18:18:33 2009 > @@ -1,50 +1,50 @@ > -/ > ******************************************************************************* > - * Licensed to the Apache Software Foundation (ASF) under one > - * or more contributor license agreements. See the NOTICE file > - * distributed with this work for additional information > - * regarding copyright ownership. The ASF licenses this file > - * to you under the Apache License, Version 2.0 (the > - * "License"); you may not use this file except in compliance > - * with the License. You may obtain a copy of the License at > - * > - * http://www.apache.org/licenses/LICENSE-2.0 > - * > - * Unless required by applicable law or agreed to in writing, > - * software distributed under the License is distributed on an > - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > - * KIND, either express or implied. See the License for the > - * specific language governing permissions and limitations > - * under the License. > - > *******************************************************************************/ > -package org.ofbiz.commons.vfs.ofbiz; > - > -import java.net.URL; > -import java.util.Collection; > - > -import org.apache.commons.vfs.FileObject; > -import org.apache.commons.vfs.FileSystemException; > -import org.apache.commons.vfs.FileSystemOptions; > -import org.apache.commons.vfs.provider.AbstractFileProvider; > -import > org.apache.commons.vfs.provider.local.DefaultLocalFileProvider; > - > -import org.ofbiz.base.location.FlexibleLocation; > -import org.ofbiz.base.util.UtilMisc; > - > -import org.webslinger.commons.vfs.VFSUtil; > - > -public class OfbizHomeProvider extends AbstractFileProvider { > - public Collection getCapabilities() { > - return DefaultLocalFileProvider.capabilities; > - } > - > - public FileObject findFile(FileObject base, String name, > FileSystemOptions properties) throws FileSystemException { > - //new Exception("findFile(" + base + ", " + name + > ")").printStackTrace(); > - try { > - URL location = > FlexibleLocation.resolveLocation("ofbizhome://."); > - FileObject ofbizBase = > getContext().resolveFile(location.toString(), properties); > - return > VFSUtil > .toFileObject(ofbizBase.getFileSystem().getFileSystemManager(), > ofbizBase.resolveFile(name.substring(13)).getURL().toString(), > properties); > - } catch (Exception e) { > - throw UtilMisc.initCause(new > FileSystemException(e.getMessage(), null, e), e); > - } > - } > -} > +/ > ******************************************************************************* > + * Licensed to the Apache Software Foundation (ASF) under one > + * or more contributor license agreements. See the NOTICE file > + * distributed with this work for additional information > + * regarding copyright ownership. The ASF licenses this file > + * to you under the Apache License, Version 2.0 (the > + * "License"); you may not use this file except in compliance > + * with the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, > + * software distributed under the License is distributed on an > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > + * KIND, either express or implied. See the License for the > + * specific language governing permissions and limitations > + * under the License. > + > *******************************************************************************/ > +package org.ofbiz.commons.vfs.ofbiz; > + > +import java.net.URL; > +import java.util.Collection; > + > +import org.apache.commons.vfs.FileObject; > +import org.apache.commons.vfs.FileSystemException; > +import org.apache.commons.vfs.FileSystemOptions; > +import org.apache.commons.vfs.provider.AbstractFileProvider; > +import > org.apache.commons.vfs.provider.local.DefaultLocalFileProvider; > + > +import org.ofbiz.base.location.FlexibleLocation; > +import org.ofbiz.base.util.UtilMisc; > + > +import org.webslinger.commons.vfs.VFSUtil; > + > +public class OfbizHomeProvider extends AbstractFileProvider { > + public Collection<?> getCapabilities() { > + return DefaultLocalFileProvider.capabilities; > + } > + > + public FileObject findFile(FileObject base, String name, > FileSystemOptions properties) throws FileSystemException { > + //new Exception("findFile(" + base + ", " + name + > ")").printStackTrace(); > + try { > + URL location = > FlexibleLocation.resolveLocation("ofbizhome://."); > + FileObject ofbizBase = > getContext().resolveFile(location.toString(), properties); > + return > VFSUtil > .toFileObject(ofbizBase.getFileSystem().getFileSystemManager(), > ofbizBase.resolveFile(name.substring(13)).getURL().toString(), > properties); > + } catch (Exception e) { > + throw UtilMisc.initCause(new > FileSystemException(e.getMessage(), null, e), e); > + } > + } > +} > > Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ > EntityHttpUtil.java > URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/EntityHttpUtil.java?rev=833727&r1=833726&r2=833727&view=diff > = > = > = > = > = > = > = > = > ====================================================================== > --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ > EntityHttpUtil.java (original) > +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ > EntityHttpUtil.java Sat Nov 7 18:18:33 2009 > @@ -1,78 +1,73 @@ > -/ > ******************************************************************************* > - * Licensed to the Apache Software Foundation (ASF) under one > - * or more contributor license agreements. See the NOTICE file > - * distributed with this work for additional information > - * regarding copyright ownership. The ASF licenses this file > - * to you under the Apache License, Version 2.0 (the > - * "License"); you may not use this file except in compliance > - * with the License. You may obtain a copy of the License at > - * > - * http://www.apache.org/licenses/LICENSE-2.0 > - * > - * Unless required by applicable law or agreed to in writing, > - * software distributed under the License is distributed on an > - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > - * KIND, either express or implied. See the License for the > - * specific language governing permissions and limitations > - * under the License. > - > *******************************************************************************/ > -package org.ofbiz.webslinger; > - > -import java.util.HashMap; > -import java.util.Iterator; > -import java.util.Locale; > -import java.util.Map; > - > -import javax.servlet.ServletRequest; > -import javax.servlet.http.HttpServletRequest; > - > -import org.ofbiz.base.util.GeneralException; > -import org.ofbiz.base.util.ObjectType; > -import org.ofbiz.base.util.UtilHttp; > -import org.ofbiz.base.util.UtilMisc; > -import org.ofbiz.base.util.UtilValidate; > -import org.ofbiz.entity.Delegator; > -import org.ofbiz.entity.GenericValue; > -import org.ofbiz.entity.jdbc.SqlJdbcUtil; > -import org.ofbiz.entity.model.ModelEntity; > -import org.ofbiz.entity.model.ModelField; > -import org.ofbiz.entity.model.ModelFieldType; > - > -public class EntityHttpUtil { > - public static GenericValue makeValidValue(String entityName, > ServletRequest request) throws GeneralException { > - return makeValidValue(entityName, false, request); > - } > - > - public static GenericValue makeValidValue(String entityName, > boolean includePks, ServletRequest request) throws GeneralException { > - if (request instanceof HttpServletRequest) return > makeValidValue(entityName, includePks, (HttpServletRequest) request); > - throw new IllegalArgumentException("Not an > HttpServletRequest"); > - } > - > - public static GenericValue makeValidValue(String entityName, > HttpServletRequest request) throws GeneralException { > - return makeValidValue(entityName, false, request); > - } > - > - public static GenericValue makeValidValue(String entityName, > boolean includePks, HttpServletRequest request) throws > GeneralException { > - Delegator delegator = (Delegator) > request.getAttribute("delegator"); > - GenericValue value = delegator.makeValue(entityName); > - ModelEntity model = value.getModelEntity(); > - Iterator<ModelField> it = includePks ? > model.getFieldsIterator() : model.getNopksIterator(); > - Locale locale = UtilHttp.getLocale(request); > - while (it.hasNext()) { > - ModelField field = it.next(); > - String fieldName = field.getName(); > - String parameterValue = request.getParameter(fieldName); > - Object fieldValue; > - if (parameterValue == null) { > - fieldValue = null; > - } else { > - ModelFieldType fieldType = > delegator.getEntityFieldType(model, field.getType()); > - String wantedType = fieldType.getJavaType(); > - fieldValue = > ObjectType.simpleTypeConvert(parameterValue, wantedType, null, > locale, true); > - } > - value.put(fieldName, fieldValue); > - } > - return value; > - } > -} > - > +/ > ******************************************************************************* > + * Licensed to the Apache Software Foundation (ASF) under one > + * or more contributor license agreements. See the NOTICE file > + * distributed with this work for additional information > + * regarding copyright ownership. The ASF licenses this file > + * to you under the Apache License, Version 2.0 (the > + * "License"); you may not use this file except in compliance > + * with the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, > + * software distributed under the License is distributed on an > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > + * KIND, either express or implied. See the License for the > + * specific language governing permissions and limitations > + * under the License. > + > *******************************************************************************/ > +package org.ofbiz.webslinger; > + > +import java.util.Iterator; > +import java.util.Locale; > + > +import javax.servlet.ServletRequest; > +import javax.servlet.http.HttpServletRequest; > + > +import org.ofbiz.base.util.GeneralException; > +import org.ofbiz.base.util.ObjectType; > +import org.ofbiz.base.util.UtilHttp; > +import org.ofbiz.entity.Delegator; > +import org.ofbiz.entity.GenericValue; > +import org.ofbiz.entity.model.ModelEntity; > +import org.ofbiz.entity.model.ModelField; > +import org.ofbiz.entity.model.ModelFieldType; > + > +public class EntityHttpUtil { > + public static GenericValue makeValidValue(String entityName, > ServletRequest request) throws GeneralException { > + return makeValidValue(entityName, false, request); > + } > + > + public static GenericValue makeValidValue(String entityName, > boolean includePks, ServletRequest request) throws GeneralException { > + if (request instanceof HttpServletRequest) return > makeValidValue(entityName, includePks, (HttpServletRequest) request); > + throw new IllegalArgumentException("Not an > HttpServletRequest"); > + } > + > + public static GenericValue makeValidValue(String entityName, > HttpServletRequest request) throws GeneralException { > + return makeValidValue(entityName, false, request); > + } > + > + public static GenericValue makeValidValue(String entityName, > boolean includePks, HttpServletRequest request) throws > GeneralException { > + Delegator delegator = (Delegator) > request.getAttribute("delegator"); > + GenericValue value = delegator.makeValue(entityName); > + ModelEntity model = value.getModelEntity(); > + Iterator<ModelField> it = includePks ? > model.getFieldsIterator() : model.getNopksIterator(); > + Locale locale = UtilHttp.getLocale(request); > + while (it.hasNext()) { > + ModelField field = it.next(); > + String fieldName = field.getName(); > + String parameterValue = request.getParameter(fieldName); > + Object fieldValue; > + if (parameterValue == null) { > + fieldValue = null; > + } else { > + ModelFieldType fieldType = > delegator.getEntityFieldType(model, field.getType()); > + String wantedType = fieldType.getJavaType(); > + fieldValue = > ObjectType.simpleTypeConvert(parameterValue, wantedType, null, > locale, true); > + } > + value.put(fieldName, fieldValue); > + } > + return value; > + } > +} > + > > Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ > StatsUpdater.java > URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/StatsUpdater.java?rev=833727&r1=833726&r2=833727&view=diff > = > = > = > = > = > = > = > = > ====================================================================== > --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ > StatsUpdater.java (original) > +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ > StatsUpdater.java Sat Nov 7 18:18:33 2009 > @@ -1,121 +1,118 @@ > -/ > ******************************************************************************* > - * Licensed to the Apache Software Foundation (ASF) under one > - * or more contributor license agreements. See the NOTICE file > - * distributed with this work for additional information > - * regarding copyright ownership. The ASF licenses this file > - * to you under the Apache License, Version 2.0 (the > - * "License"); you may not use this file except in compliance > - * with the License. You may obtain a copy of the License at > - * > - * http://www.apache.org/licenses/LICENSE-2.0 > - * > - * Unless required by applicable law or agreed to in writing, > - * software distributed under the License is distributed on an > - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > - * KIND, either express or implied. See the License for the > - * specific language governing permissions and limitations > - * under the License. > - > *******************************************************************************/ > -package org.ofbiz.webslinger; > - > -import java.util.HashMap; > -import java.util.Iterator; > -import java.util.Map; > -import java.util.concurrent.Callable; > -import java.util.concurrent.ConcurrentHashMap; > -import java.util.concurrent.ScheduledFuture; > -import java.util.concurrent.TimeUnit; > -import java.util.concurrent.atomic.AtomicReference; > - > -import org.ofbiz.base.util.UtilMisc; > -import org.ofbiz.entity.Delegator; > -import org.ofbiz.entity.GenericEntityException; > -import org.ofbiz.entity.GenericPK; > -import org.ofbiz.entity.GenericValue; > - > -import org.webslinger.cache.ConcurrentCache; > -import org.webslinger.concurrent.ExecutionPool; > - > -public class StatsUpdater { > - private static final Updater UPDATER = new Updater(); > - > - public static void updateStats(Delegator delegator, String > entityName, Map<String, ? extends Object> keyFields, Map<String, ? > extends Long> updateCountFields) throws GenericEntityException { > - GenericPK pk = delegator.makePK(entityName, keyFields); > - Map<String, Long> value = UPDATER.getValue(pk); > - synchronized (value) { > - for (Map.Entry<String, ? extends Long> entry: > updateCountFields.entrySet()) { > - Long oldValue = value.get(entry.getKey()); > - if (oldValue != null) { > - value.put(entry.getKey(), > Long.valueOf(oldValue.longValue() + entry.getValue())); > - } else { > - value.put(entry.getKey(), entry.getValue()); > - } > - } > - } > - } > - > - private static final class Updater implements Callable<Void> { > - protected AtomicReference<EntityHolder> entities = new > AtomicReference<EntityHolder>(new EntityHolder(Updater.class, > "entities", null)); > - protected ScheduledFuture<Void> future; > - > - protected Map<String, Long> getValue(GenericPK pk) throws > GenericEntityException { > - synchronized (this) { > - if (future == null || future.isDone()) { > - future = ExecutionPool.schedule(this, 1, > TimeUnit.SECONDS); > - } > - } > - try { > - return entities.get().get(pk); > - } catch (RuntimeException e) { > - throw e; > - } catch (GenericEntityException e) { > - throw e; > - } catch (Exception e) { > - throw UtilMisc.initCause(new > GenericEntityException(e.getMessage()), e); > - } > - } > - > - public Void call() { > - EntityHolder oldEntities; > - EntityHolder newEntities = new > EntityHolder(Updater.class, "entities", null); > - do { > - oldEntities = entities.get(); > - } while (!entities.compareAndSet(oldEntities, > newEntities)); > - synchronized (Updater.class) { > - for (GenericPK pk: oldEntities.keys()) { > - try { > - Map<String, Long> add = oldEntities.get(pk); > - GenericValue existing = > pk.getDelegator().findOne(pk.getEntityName(), pk, false); > - if (existing == null) { > - existing = > pk.getDelegator().create(pk.getEntityName(), pk); > - } > - for (Map.Entry<String, Long> entry: > add.entrySet()) { > - Long value = entry.getValue(); > - Long oldValue = > existing.getLong(entry.getKey()); > - if (oldValue != null) { > - existing.put(entry.getKey(), > Long.valueOf(value.longValue() + oldValue.longValue())); > - } else { > - existing.put(entry.getKey(), value); > - } > - } > - existing.store(); > - } catch (Exception e) { > - e.printStackTrace(); > - } > - } > - } > - return null; > - } > - } > - > - private static final class EntityHolder extends > ConcurrentCache<GenericPK, Map<String, Long>> { > - protected EntityHolder(Class<?> owner, String field, String > label) { > - super(owner, field, label, HARD); > - } > - > - @Override > - protected Map<String, Long> createValue(GenericPK pk) > throws Exception { > - return new HashMap<String, Long>(); > - } > - } > -} > +/ > ******************************************************************************* > + * Licensed to the Apache Software Foundation (ASF) under one > + * or more contributor license agreements. See the NOTICE file > + * distributed with this work for additional information > + * regarding copyright ownership. The ASF licenses this file > + * to you under the Apache License, Version 2.0 (the > + * "License"); you may not use this file except in compliance > + * with the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, > + * software distributed under the License is distributed on an > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > + * KIND, either express or implied. See the License for the > + * specific language governing permissions and limitations > + * under the License. > + > *******************************************************************************/ > +package org.ofbiz.webslinger; > + > +import java.util.HashMap; > +import java.util.Map; > +import java.util.concurrent.Callable; > +import java.util.concurrent.ScheduledFuture; > +import java.util.concurrent.TimeUnit; > +import java.util.concurrent.atomic.AtomicReference; > + > +import org.ofbiz.base.util.UtilMisc; > +import org.ofbiz.entity.Delegator; > +import org.ofbiz.entity.GenericEntityException; > +import org.ofbiz.entity.GenericPK; > +import org.ofbiz.entity.GenericValue; > +import org.webslinger.cache.ConcurrentCache; > +import org.webslinger.concurrent.ExecutionPool; > + > +public class StatsUpdater { > + private static final Updater UPDATER = new Updater(); > + > + public static void updateStats(Delegator delegator, String > entityName, Map<String, ? extends Object> keyFields, Map<String, ? > extends Long> updateCountFields) throws GenericEntityException { > + GenericPK pk = delegator.makePK(entityName, keyFields); > + Map<String, Long> value = UPDATER.getValue(pk); > + synchronized (value) { > + for (Map.Entry<String, ? extends Long> entry: > updateCountFields.entrySet()) { > + Long oldValue = value.get(entry.getKey()); > + if (oldValue != null) { > + value.put(entry.getKey(), > Long.valueOf(oldValue.longValue() + entry.getValue())); > + } else { > + value.put(entry.getKey(), entry.getValue()); > + } > + } > + } > + } > + > + private static final class Updater implements Callable<Void> { > + protected AtomicReference<EntityHolder> entities = new > AtomicReference<EntityHolder>(new EntityHolder(Updater.class, > "entities", null)); > + protected ScheduledFuture<Void> future; > + > + protected Map<String, Long> getValue(GenericPK pk) throws > GenericEntityException { > + synchronized (this) { > + if (future == null || future.isDone()) { > + future = ExecutionPool.schedule(this, 1, > TimeUnit.SECONDS); > + } > + } > + try { > + return entities.get().get(pk); > + } catch (RuntimeException e) { > + throw e; > + } catch (GenericEntityException e) { > + throw e; > + } catch (Exception e) { > + throw UtilMisc.initCause(new > GenericEntityException(e.getMessage()), e); > + } > + } > + > + public Void call() { > + EntityHolder oldEntities; > + EntityHolder newEntities = new > EntityHolder(Updater.class, "entities", null); > + do { > + oldEntities = entities.get(); > + } while (!entities.compareAndSet(oldEntities, > newEntities)); > + synchronized (Updater.class) { > + for (GenericPK pk: oldEntities.keys()) { > + try { > + Map<String, Long> add = oldEntities.get(pk); > + GenericValue existing = > pk.getDelegator().findOne(pk.getEntityName(), pk, false); > + if (existing == null) { > + existing = > pk.getDelegator().create(pk.getEntityName(), pk); > + } > + for (Map.Entry<String, Long> entry: > add.entrySet()) { > + Long value = entry.getValue(); > + Long oldValue = > existing.getLong(entry.getKey()); > + if (oldValue != null) { > + existing.put(entry.getKey(), > Long.valueOf(value.longValue() + oldValue.longValue())); > + } else { > + existing.put(entry.getKey(), value); > + } > + } > + existing.store(); > + } catch (Exception e) { > + e.printStackTrace(); > + } > + } > + } > + return null; > + } > + } > + > + private static final class EntityHolder extends > ConcurrentCache<GenericPK, Map<String, Long>> { > + protected EntityHolder(Class<?> owner, String field, String > label) { > + super(owner, field, label, HARD); > + } > + > + @Override > + protected Map<String, Long> createValue(GenericPK pk) > throws Exception { > + return new HashMap<String, Long>(); > + } > + } > +} > > Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ > WebslingerContextMapper.java > URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/WebslingerContextMapper.java?rev=833727&r1=833726&r2=833727&view=diff > = > = > = > = > = > = > = > = > ====================================================================== > --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ > WebslingerContextMapper.java (original) > +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ > WebslingerContextMapper.java Sat Nov 7 18:18:33 2009 > @@ -1,218 +1,216 @@ > -/ > ******************************************************************************* > - * Licensed to the Apache Software Foundation (ASF) under one > - * or more contributor license agreements. See the NOTICE file > - * distributed with this work for additional information > - * regarding copyright ownership. The ASF licenses this file > - * to you under the Apache License, Version 2.0 (the > - * "License"); you may not use this file except in compliance > - * with the License. You may obtain a copy of the License at > - * > - * http://www.apache.org/licenses/LICENSE-2.0 > - * > - * Unless required by applicable law or agreed to in writing, > - * software distributed under the License is distributed on an > - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > - * KIND, either express or implied. See the License for the > - * specific language governing permissions and limitations > - * under the License. > - > *******************************************************************************/ > -package org.ofbiz.webslinger; > - > -import java.io.IOException; > -import java.net.URL; > -import java.util.ArrayList; > -import java.util.Arrays; > -import java.util.HashSet; > -import java.util.List; > -import java.util.Set; > - > -import javax.servlet.ServletConfig; > -import javax.servlet.ServletContext; > -import javax.servlet.ServletException; > -import javax.servlet.http.HttpServletRequest; > - > -import org.ofbiz.base.util.UtilMisc; > -import org.ofbiz.base.util.UtilProperties; > -import org.ofbiz.entity.Delegator; > -import org.ofbiz.entity.DelegatorFactory; > -import org.ofbiz.entity.GenericEntityException; > -import org.ofbiz.entity.GenericValue; > -import org.ofbiz.entity.cache.Cache; > -import org.ofbiz.entity.util.EntityUtil; > -import org.ofbiz.security.SecurityFactory; > -import org.ofbiz.security.authz.AuthorizationFactory; > -import org.ofbiz.service.GenericDispatcher; > -import org.ofbiz.service.LocalDispatcher; > -import org.ofbiz.service.ServiceDispatcher; > -import org.ofbiz.service.DispatchContext; > - > -import org.webslinger.AbstractMappingWebslingerServletContextFactory; > -import org.webslinger.WebslingerServletContext; > -import org.webslinger.collections.CollectionUtil; > -import org.webslinger.lang.ObjectUtil; > - > -public class WebslingerContextMapper extends > AbstractMappingWebslingerServletContextFactory { > - protected ServletContext servletContext; > - protected Delegator delegator; > - protected final ArrayList<URL> globalReaderURLs = new > ArrayList<URL>(); > - > - public void init(ServletConfig config) throws ServletException, > IOException { > - > System > .err.println(org.webslinger.commons.vfs.flat.FlatFileProvider.class); > - servletContext = config.getServletContext(); > - String delegatorName = > servletContext.getInitParameter("entityDelegatorName"); > - delegator = DelegatorFactory.getDelegator(delegatorName); > - String readerFiles = > servletContext.getInitParameter("serviceReaderUrls"); > - if (readerFiles != null) { > - for (String reader: CollectionUtil.split(readerFiles, > ";")) { > - URL url = > config.getServletContext().getResource(reader); > - if (url != null) globalReaderURLs.add(url); > - } > - } > - super.init(config, > UtilProperties.getPropertyValue("webslinger.properties", > "moduleBase")); > - } > - > - @Override > - protected Layout[] getStartLayouts() throws Exception { > - ArrayList<Layout> layouts = new ArrayList<Layout>(); > - try { > - for (GenericValue value: > delegator.findByAnd("WebslingerServer", > UtilMisc.toMap("loadAtStart", "Y"))) { > - layouts.add(new OfbizLayout(value)); > - } > - } catch (GenericEntityException e) { > - } > - return layouts.toArray(new Layout[layouts.size()]); > - } > - > - @Override > - public void initializeRequest(WebslingerServletContext context, > HttpServletRequest request) { > - request.setAttribute("servletContext", context); > - Object delegator = context.getAttribute("delegator"); > - Object dispatcher = context.getAttribute("dispatcher"); > - Object authz = context.getAttribute("authz"); > - Object security = context.getAttribute("security"); > - request.setAttribute("delegator", delegator); > - request.setAttribute("dispatcher", dispatcher); > - request.setAttribute("authz", authz); > - request.setAttribute("security", security); > - // FIXME!!! These next two are a hack until proper fake/ > wrapped session support is done in webslinger > - servletContext.setAttribute("delegator", delegator); > - servletContext.setAttribute("dispatcher", dispatcher); > - servletContext.setAttribute("authz", authz); > - servletContext.setAttribute("security", security); > - } > - > - @Override > - protected void initializeContext(WebslingerServletContext > context, Layout layout) throws Exception { > - OfbizLayout ofbizLayout = (OfbizLayout) layout; > - Delegator delegator = null; > - delegator = > DelegatorFactory.getDelegator(ofbizLayout.delegatorName); > - context.setAttribute("delegator", delegator); > - context.setAttribute("dispatcher", new > WebslingerGenericDispatcher(context, layout.getTarget(), delegator, > globalReaderURLs)); > - context.setAttribute("authz", > AuthorizationFactory.getInstance(delegator)); > - context.setAttribute("security", > SecurityFactory.getInstance(delegator)); > - } > - > - protected static final class WebslingerGenericDispatcher > extends GenericDispatcher { > - protected > WebslingerGenericDispatcher(WebslingerServletContext context, String > name, Delegator delegator, List<URL> globalReaderURLs) throws > IOException { > - ArrayList<URL> readerURLs = new > ArrayList<URL>(globalReaderURLs); > - String readerFiles = > context.getInitParameter("serviceReaderUrls"); > - if (readerFiles != null) { > - for (String reader: > CollectionUtil.split(readerFiles, ";")) { > - URL url = context.getResource(reader); > - if (url != null) readerURLs.add(url); > - } > - } > - System.err.println(readerURLs); > - this.dispatcher = new ServiceDispatcher(delegator, > true, true, true) { > - }; > - ClassLoader loader = null; > - try { > - loader = > Thread.currentThread().getContextClassLoader(); > - } catch (SecurityException e) { > - loader = > WebslingerContextMapper.class.getClassLoader(); > - } > - DispatchContext dc = new DispatchContext(name, > readerURLs, loader, null); > - init(name, delegator, dc); > - } > - } > - > - @Override > - protected Set<String> getSuffixes() throws Exception { > - Cache cache = delegator.getCache(); > - Set<String> suffixes; > - synchronized (WebslingerContextMapper.class) { > - suffixes = cache.get("WebslingerHostSuffix", null, > "WebslingerContextMapper.Suffixes"); > - if (suffixes == null) { > - suffixes = new HashSet<String>(); > - for (GenericValue value: > delegator.findList("WebslingerHostSuffix", null, null, null, null, > false)) { > - suffixes.add(value.getString("hostSuffix")); > - } > - cache.put("WebslingerHostSuffix", null, > "WebslingerContextMapper.Suffixes", suffixes); > - } > - } > - return suffixes; > - } > - > - @Override > - protected Layout lookupLayout(String hostName, String > contextPath) throws Exception { > - GenericValue layout = > EntityUtil.getOnly(delegator.findByAndCache("WebslingerLayout", > UtilMisc.toMap("hostName", hostName, "contextPath", contextPath))); > - if (layout == null) return null; > - return new OfbizLayout(layout); > - } > - > - protected class OfbizLayout implements Layout { > - private final String contextPath; > - private final String id; > - private final String target; > - private final String[] bases; > - private final int hashCode; > - protected final String delegatorName; > - protected final String dispatcherName; > - > - protected OfbizLayout(GenericValue server) throws > GenericEntityException { > - contextPath = server.getString("contextPath"); > - id = server.getString("webslingerServerId"); > - target = server.getString("target"); > - List<GenericValue> baseValues = > server.getRelatedCache("WebslingerServerBase", > UtilMisc.toList("seqNum")); > - bases = new String[baseValues.size()]; > - for (int i = 0; i < bases.length; i++) { > - GenericValue baseValue = baseValues.get(i); > - bases[i] = baseValue.getString("baseName"); > - } > - delegatorName = server.getString("delegatorName"); > - dispatcherName = server.getString("dispatcherName"); > - hashCode = target.hashCode() ^ > ObjectUtil.hashCodeHelper(delegatorName) ^ Arrays.hashCode(bases); > - } > - > - public String getContextPath() { > - return contextPath; > - } > - > - public String getId() { > - return id; > - } > - > - public String getTarget() { > - return target; > - } > - > - public String[] getBases() { > - return bases; > - } > - > - @Override > - public int hashCode() { > - return hashCode; > - } > - > - @Override > - public boolean equals(Object o) { > - if (!(o instanceof OfbizLayout)) return false; > - OfbizLayout other = (OfbizLayout) o; > - if (!contextPath.equals(other.contextPath)) return false; > - if (!target.equals(other.target)) return false; > - if (!ObjectUtil.equalsHelper(delegatorName, > other.delegatorName)) return false; > - return Arrays.equals(bases, other.bases); > - } > - } > -} > +/ > ******************************************************************************* > + * Licensed to the Apache Software Foundation (ASF) under one > + * or more contributor license agreements. See the NOTICE file > + * distributed with this work for additional information > + * regarding copyright ownership. The ASF licenses this file > + * to you under the Apache License, Version 2.0 (the > + * "License"); you may not use this file except in compliance > + * with the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, > + * software distributed under the License is distributed on an > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > + * KIND, either express or implied. See the License for the > + * specific language governing permissions and limitations > + * under the License. > + > *******************************************************************************/ > +package org.ofbiz.webslinger; > + > +import java.io.IOException; > +import java.net.URL; > +import java.util.ArrayList; > +import java.util.Arrays; > +import java.util.HashSet; > +import java.util.List; > +import java.util.Set; > + > +import javax.servlet.ServletConfig; > +import javax.servlet.ServletContext; > +import javax.servlet.ServletException; > +import javax.servlet.http.HttpServletRequest; > + > +import org.ofbiz.base.util.UtilMisc; > +import org.ofbiz.base.util.UtilProperties; > +import org.ofbiz.entity.Delegator; > +import org.ofbiz.entity.DelegatorFactory; > +import org.ofbiz.entity.GenericEntityException; > +import org.ofbiz.entity.GenericValue; > +import org.ofbiz.entity.cache.Cache; > +import org.ofbiz.entity.util.EntityUtil; > +import org.ofbiz.security.SecurityFactory; > +import org.ofbiz.security.authz.AuthorizationFactory; > +import org.ofbiz.service.DispatchContext; > +import org.ofbiz.service.GenericDispatcher; > +import org.ofbiz.service.ServiceDispatcher; > +import org.webslinger.AbstractMappingWebslingerServletContextFactory; > +import org.webslinger.WebslingerServletContext; > +import org.webslinger.collections.CollectionUtil; > +import org.webslinger.lang.ObjectUtil; > + > +public class WebslingerContextMapper extends > AbstractMappingWebslingerServletContextFactory { > + protected ServletContext servletContext; > + protected Delegator delegator; > + protected final ArrayList<URL> globalReaderURLs = new > ArrayList<URL>(); > + > + public void init(ServletConfig config) throws ServletException, > IOException { > + > System > .err.println(org.webslinger.commons.vfs.flat.FlatFileProvider.class); > + servletContext = config.getServletContext(); > + String delegatorName = > servletContext.getInitParameter("entityDelegatorName"); > + delegator = DelegatorFactory.getDelegator(delegatorName); > + String readerFiles = > servletContext.getInitParameter("serviceReaderUrls"); > + if (readerFiles != null) { > + for (String reader: CollectionUtil.split(readerFiles, > ";")) { > + URL url = > config.getServletContext().getResource(reader); > + if (url != null) globalReaderURLs.add(url); > + } > + } > + super.init(config, > UtilProperties.getPropertyValue("webslinger.properties", > "moduleBase")); > + } > + > + @Override > + protected Layout[] getStartLayouts() throws Exception { > + ArrayList<Layout> layouts = new ArrayList<Layout>(); > + try { > + for (GenericValue value: > delegator.findByAnd("WebslingerServer", > UtilMisc.toMap("loadAtStart", "Y"))) { > + layouts.add(new OfbizLayout(value)); > + } > + } catch (GenericEntityException e) { > + } > + return layouts.toArray(new Layout[layouts.size()]); > + } > + > + @Override > + public void initializeRequest(WebslingerServletContext context, > HttpServletRequest request) { > + request.setAttribute("servletContext", context); > + Object delegator = context.getAttribute("delegator"); > + Object dispatcher = context.getAttribute("dispatcher"); > + Object authz = context.getAttribute("authz"); > + Object security = context.getAttribute("security"); > + request.setAttribute("delegator", delegator); > + request.setAttribute("dispatcher", dispatcher); > + request.setAttribute("authz", authz); > + request.setAttribute("security", security); > + // FIXME!!! These next two are a hack until proper fake/ > wrapped session support is done in webslinger > + servletContext.setAttribute("delegator", delegator); > + servletContext.setAttribute("dispatcher", dispatcher); > + servletContext.setAttribute("authz", authz); > + servletContext.setAttribute("security", security); > + } > + > + @Override > + protected void initializeContext(WebslingerServletContext > context, Layout layout) throws Exception { > + OfbizLayout ofbizLayout = (OfbizLayout) layout; > + Delegator delegator = null; > + delegator = > DelegatorFactory.getDelegator(ofbizLayout.delegatorName); > + context.setAttribute("delegator", delegator); > + context.setAttribute("dispatcher", new > WebslingerGenericDispatcher(context, layout.getTarget(), delegator, > globalReaderURLs)); > + context.setAttribute("authz", > AuthorizationFactory.getInstance(delegator)); > + context.setAttribute("security", > SecurityFactory.getInstance(delegator)); > + } > + > + protected static final class WebslingerGenericDispatcher > extends GenericDispatcher { > + protected > WebslingerGenericDispatcher(WebslingerServletContext context, String > name, Delegator delegator, List<URL> globalReaderURLs) throws > IOException { > + ArrayList<URL> readerURLs = new > ArrayList<URL>(globalReaderURLs); > + String readerFiles = > context.getInitParameter("serviceReaderUrls"); > + if (readerFiles != null) { > + for (String reader: > CollectionUtil.split(readerFiles, ";")) { > + URL url = context.getResource(reader); > + if (url != null) readerURLs.add(url); > + } > + } > + System.err.println(readerURLs); > + this.dispatcher = new ServiceDispatcher(delegator, > true, true, true) { > + }; > + ClassLoader loader = null; > + try { > + loader = > Thread.currentThread().getContextClassLoader(); > + } catch (SecurityException e) { > + loader = > WebslingerContextMapper.class.getClassLoader(); > + } > + DispatchContext dc = new DispatchContext(name, > readerURLs, loader, null); > + init(name, delegator, dc); > + } > + } > + > + @Override > + protected Set<String> getSuffixes() throws Exception { > + Cache cache = delegator.getCache(); > + Set<String> suffixes; > + synchronized (WebslingerContextMapper.class) { > + suffixes = cache.get("WebslingerHostSuffix", null, > "WebslingerContextMapper.Suffixes"); > + if (suffixes == null) { > + suffixes = new HashSet<String>(); > + for (GenericValue value: > delegator.findList("WebslingerHostSuffix", null, null, null, null, > false)) { > + suffixes.add(value.getString("hostSuffix")); > + } > + cache.put("WebslingerHostSuffix", null, > "WebslingerContextMapper.Suffixes", suffixes); > + } > + } > + return suffixes; > + } > + > + @Override > + protected Layout lookupLayout(String hostName, String > contextPath) throws Exception { > + GenericValue layout = > EntityUtil.getOnly(delegator.findByAndCache("WebslingerLayout", > UtilMisc.toMap("hostName", hostName, "contextPath", contextPath))); > + if (layout == null) return null; > + return new OfbizLayout(layout); > + } > + > + protected class OfbizLayout implements Layout { > + private final String contextPath; > + private final String id; > + private final String target; > + private final String[] bases; > + private final int hashCode; > + protected final String delegatorName; > + protected final String dispatcherName; > + > + protected OfbizLayout(GenericValue server) throws > GenericEntityException { > + contextPath = server.getString("contextPath"); > + id = server.getString("webslingerServerId"); > + target = server.getString("target"); > + List<GenericValue> baseValues = > server.getRelatedCache("WebslingerServerBase", > UtilMisc.toList("seqNum")); > + bases = new String[baseValues.size()]; > + for (int i = 0; i < bases.length; i++) { > + GenericValue baseValue = baseValues.get(i); > + bases[i] = baseValue.getString("baseName"); > + } > + delegatorName = server.getString("delegatorName"); > + dispatcherName = server.getString("dispatcherName"); > + hashCode = target.hashCode() ^ > ObjectUtil.hashCodeHelper(delegatorName) ^ Arrays.hashCode(bases); > + } > + > + public String getContextPath() { > + return contextPath; > + } > + > + public String getId() { > + return id; > + } > + > + public String getTarget() { > + return target; > + } > + > + public String[] getBases() { > + return bases; > + } > + > + @Override > + public int hashCode() { > + return hashCode; > + } > + > + @Override > + public boolean equals(Object o) { > + if (!(o instanceof OfbizLayout)) return false; > + OfbizLayout other = (OfbizLayout) o; > + if (!contextPath.equals(other.contextPath)) return false; > + if (!target.equals(other.target)) return false; > + if (!ObjectUtil.equalsHelper(delegatorName, > other.delegatorName)) return false; > + return Arrays.equals(bases, other.bases); > + } > + } > +} > > Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ > WebslingerServerEngine.java > URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/WebslingerServerEngine.java?rev=833727&r1=833726&r2=833727&view=diff > = > = > = > = > = > = > = > = > ====================================================================== > --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ > WebslingerServerEngine.java (original) > +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ > WebslingerServerEngine.java Sat Nov 7 18:18:33 2009 > @@ -1,64 +1,59 @@ > -/ > ******************************************************************************* > - * Licensed to the Apache Software Foundation (ASF) under one > - * or more contributor license agreements. See the NOTICE file > - * distributed with this work for additional information > - * regarding copyright ownership. The ASF licenses this file > - * to you under the Apache License, Version 2.0 (the > - * "License"); you may not use this file except in compliance > - * with the License. You may obtain a copy of the License at > - * > - * http://www.apache.org/licenses/LICENSE-2.0 > - * > - * Unless required by applicable law or agreed to in writing, > - * software distributed under the License is distributed on an > - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > - * KIND, either express or implied. See the License for the > - * specific language governing permissions and limitations > - * under the License. > - > *******************************************************************************/ > -package org.ofbiz.webslinger; > - > -import java.io.IOException; > -import java.io.StringReader; > -import java.io.StringWriter; > -import java.util.Collections; > -import java.util.Map; > - > -import org.ofbiz.base.util.UtilGenerics; > -import org.ofbiz.base.util.UtilMisc; > -import org.ofbiz.entity.Delegator; > -import org.ofbiz.entity.GenericValue; > -import org.ofbiz.entity.util.EntityUtil; > -import org.ofbiz.service.GenericServiceException; > -import org.ofbiz.service.ModelService; > -import org.ofbiz.service.ServiceDispatcher; > -import org.ofbiz.service.engine.GenericAsyncEngine; > - > -import org.webslinger.WebslingerServletContext; > - > -public class WebslingerServerEngine extends GenericAsyncEngine { > - public WebslingerServerEngine(ServiceDispatcher dispatcher) { > - super(dispatcher); > - } > - > - @Override > - public void runSyncIgnore(String localName, ModelService > modelService, Map<String, Object> context) throws > GenericServiceException { > - runSync(localName, modelService, context); > - } > - > - @Override > - public Map<String, Object> runSync(String localName, > ModelService modelService, Map<String, Object> context) throws > GenericServiceException { > - Delegator delegator = dispatcher.getDelegator(); > - try { > - GenericValue found = > EntityUtil.getFirst(delegator.findByAndCache("WebslingerLayout", > UtilMisc.toMap("webslingerServerId", modelService.location))); > - if (found == null) throw new > GenericServiceException("Couldn't find server mapping for(" + > modelService.location + ")"); > - return > UtilGenerics > .checkMap > (WebslingerServletContext.invokeInVM(found.getString("hostName"), > 8080, modelService.invoke, context)); > - } catch (RuntimeException e) { > - throw e; > - } catch (GenericServiceException e) { > - throw e; > - } catch (Exception e) { > - throw UtilMisc.initCause(new > GenericServiceException(e.getMessage()), e); > - } > - } > -} > +/ > ******************************************************************************* > + * Licensed to the Apache Software Foundation (ASF) under one > + * or more contributor license agreements. See the NOTICE file > + * distributed with this work for additional information > + * regarding copyright ownership. The ASF licenses this file > + * to you under the Apache License, Version 2.0 (the > + * "License"); you may not use this file except in compliance > + * with the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, > + * software distributed under the License is distributed on an > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > + * KIND, either express or implied. See the License for the > + * specific language governing permissions and limitations > + * under the License. > + > *******************************************************************************/ > +package org.ofbiz.webslinger; > + > +import java.util.Map; > + > +import org.ofbiz.base.util.UtilGenerics; > +import org.ofbiz.base.util.UtilMisc; > +import org.ofbiz.entity.Delegator; > +import org.ofbiz.entity.GenericValue; > +import org.ofbiz.entity.util.EntityUtil; > +import org.ofbiz.service.GenericServiceException; > +import org.ofbiz.service.ModelService; > +import org.ofbiz.service.ServiceDispatcher; > +import org.ofbiz.service.engine.GenericAsyncEngine; > +import org.webslinger.WebslingerServletContext; > + > +public class WebslingerServerEngine extends GenericAsyncEngine { > + public WebslingerServerEngine(ServiceDispatcher dispatcher) { > + super(dispatcher); > + } > + > + @Override > + public void runSyncIgnore(String localName, ModelService > modelService, Map<String, Object> context) throws > GenericServiceException { > + runSync(localName, modelService, context); > + } > + > + @Override > + public Map<String, Object> runSync(String localName, > ModelService modelService, Map<String, Object> context) throws > GenericServiceException { > + Delegator delegator = dispatcher.getDelegator(); > + try { > + GenericValue found = > EntityUtil.getFirst(delegator.findByAndCache("WebslingerLayout", > UtilMisc.toMap("webslingerServerId", modelService.location))); > + if (found == null) throw new > GenericServiceException("Couldn't find server mapping for(" + > modelService.location + ")"); > + return > UtilGenerics > .checkMap > (WebslingerServletContext.invokeInVM(found.getString("hostName"), > 8080, modelService.invoke, context)); > + } catch (RuntimeException e) { > + throw e; > + } catch (GenericServiceException e) { > + throw e; > + } catch (Exception e) { > + throw UtilMisc.initCause(new > GenericServiceException(e.getMessage()), e); > + } > + } > +} > > smime.p7s (4K) Download Attachment |
Administrator
|
Sorry Scott,
I have still not got the reflex... As I have not touched the patch (ok you have to trust me) you may review the patch itself... Jacques From: "Scott Gray" <[hidden email]> > Hi Jacques, > > This is that same problem with the patch again, please keep an eye out for these as the commits are impossible to review. > > Thanks > Scott > > HotWax Media > http://www.hotwaxmedia.com > > On 8/11/2009, at 7:18 AM, [hidden email] wrote: > >> Author: jleroux >> Date: Sat Nov 7 18:18:33 2009 >> New Revision: 833727 >> >> URL: http://svn.apache.org/viewvc?rev=833727&view=rev >> Log: >> A patch from Marc Morin "Resolve java warnings exposed in Eclipse : framework - webslinger" >> (https://issues.apache.org/jira/browse/OFBIZ-3121 ) - OFBIZ-3121 >> >> Modified: >> ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ CommonsVfsContainer.java >> ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ofbiz/ OfbizComponentProvider.java >> ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ofbiz/ OfbizHomeProvider.java >> ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ EntityHttpUtil.java >> ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ StatsUpdater.java >> ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ WebslingerContextMapper.java >> ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ WebslingerServerEngine.java >> >> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ CommonsVfsContainer.java >> URL: >> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/CommonsVfsContainer.java?rev=833727&r1=833726&r2=833727&view=diff >> = = = = = = = = ====================================================================== >> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ CommonsVfsContainer.java (original) >> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ CommonsVfsContainer.java Sat Nov 7 18:18:33 2009 >> @@ -1,68 +1,66 @@ >> -/ ******************************************************************************* >> - * Licensed to the Apache Software Foundation (ASF) under one >> - * or more contributor license agreements. See the NOTICE file >> - * distributed with this work for additional information >> - * regarding copyright ownership. The ASF licenses this file >> - * to you under the Apache License, Version 2.0 (the >> - * "License"); you may not use this file except in compliance >> - * with the License. You may obtain a copy of the License at >> - * >> - * http://www.apache.org/licenses/LICENSE-2.0 >> - * >> - * Unless required by applicable law or agreed to in writing, >> - * software distributed under the License is distributed on an >> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >> - * KIND, either express or implied. See the License for the >> - * specific language governing permissions and limitations >> - * under the License. >> - *******************************************************************************/ >> -package org.ofbiz.commons.vfs; >> - >> -import java.io.File; >> -import java.io.IOException; >> -import java.net.MalformedURLException; >> - >> -import org.apache.commons.vfs.CacheStrategy; >> -import org.apache.commons.vfs.FileObject; >> -import org.apache.commons.vfs.FileSystemException; >> -import org.apache.commons.vfs.FileSystemManager; >> -import org.apache.commons.vfs.impl.StandardFileSystemManager; >> - >> -import org.ofbiz.base.container.Container; >> -import org.ofbiz.base.container.ContainerException; >> -import org.ofbiz.base.util.UtilMisc; >> -import org.webslinger.commons.vfs.VFSUtil; >> - >> -public class CommonsVfsContainer implements Container { >> - private static StandardFileSystemManager sfsm; >> - >> - public void init(String[] args, String configFile) throws ContainerException { >> - } >> - >> - public boolean start() throws ContainerException { >> - try { >> - StandardFileSystemManager sfsm = VFSUtil.createStandardFileSystemManager(); >> - FileObject currentDir = sfsm.resolveFile(new File(".").toURI().toURL().toString()); >> - sfsm.setBaseFile(currentDir); >> - CommonsVfsContainer.sfsm = sfsm; >> - } catch (FileSystemException e) { >> - throw UtilMisc.initCause(new ContainerException("Initializing StandardFileSystemManager"), e); >> - } catch (MalformedURLException e) { >> - throw UtilMisc.initCause(new ContainerException("Initializing StandardFileSystemManager"), e); >> - } >> - return true; >> - } >> - >> - public void stop() throws ContainerException { >> - sfsm.close(); >> - sfsm = null; >> - } >> - >> - public static FileObject resolveFile(String uri) throws IOException { >> - return sfsm.resolveFile(uri); >> - } >> - >> - public static FileSystemManager getFileSystemManager() { >> - return sfsm; >> - } >> -} >> +/ ******************************************************************************* >> + * Licensed to the Apache Software Foundation (ASF) under one >> + * or more contributor license agreements. See the NOTICE file >> + * distributed with this work for additional information >> + * regarding copyright ownership. The ASF licenses this file >> + * to you under the Apache License, Version 2.0 (the >> + * "License"); you may not use this file except in compliance >> + * with the License. You may obtain a copy of the License at >> + * >> + * http://www.apache.org/licenses/LICENSE-2.0 >> + * >> + * Unless required by applicable law or agreed to in writing, >> + * software distributed under the License is distributed on an >> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >> + * KIND, either express or implied. See the License for the >> + * specific language governing permissions and limitations >> + * under the License. >> + *******************************************************************************/ >> +package org.ofbiz.commons.vfs; >> + >> +import java.io.File; >> +import java.io.IOException; >> +import java.net.MalformedURLException; >> + >> +import org.apache.commons.vfs.FileObject; >> +import org.apache.commons.vfs.FileSystemException; >> +import org.apache.commons.vfs.FileSystemManager; >> +import org.apache.commons.vfs.impl.StandardFileSystemManager; >> +import org.ofbiz.base.container.Container; >> +import org.ofbiz.base.container.ContainerException; >> +import org.ofbiz.base.util.UtilMisc; >> +import org.webslinger.commons.vfs.VFSUtil; >> + >> +public class CommonsVfsContainer implements Container { >> + private static StandardFileSystemManager sfsm; >> + >> + public void init(String[] args, String configFile) throws ContainerException { >> + } >> + >> + public boolean start() throws ContainerException { >> + try { >> + StandardFileSystemManager sfsm = VFSUtil.createStandardFileSystemManager(); >> + FileObject currentDir = sfsm.resolveFile(new File(".").toURI().toURL().toString()); >> + sfsm.setBaseFile(currentDir); >> + CommonsVfsContainer.sfsm = sfsm; >> + } catch (FileSystemException e) { >> + throw UtilMisc.initCause(new ContainerException("Initializing StandardFileSystemManager"), e); >> + } catch (MalformedURLException e) { >> + throw UtilMisc.initCause(new ContainerException("Initializing StandardFileSystemManager"), e); >> + } >> + return true; >> + } >> + >> + public void stop() throws ContainerException { >> + sfsm.close(); >> + sfsm = null; >> + } >> + >> + public static FileObject resolveFile(String uri) throws IOException { >> + return sfsm.resolveFile(uri); >> + } >> + >> + public static FileSystemManager getFileSystemManager() { >> + return sfsm; >> + } >> +} >> >> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ ofbiz/OfbizComponentProvider.java >> URL: >> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ofbiz/OfbizComponentProvider.java?rev=833727&r1=833726&r2=833727&view=diff >> = = = = = = = = ====================================================================== >> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ofbiz/ OfbizComponentProvider.java (original) >> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ofbiz/ OfbizComponentProvider.java Sat Nov 7 18:18:33 2009 >> @@ -1,58 +1,58 @@ >> -/ ******************************************************************************* >> - * Licensed to the Apache Software Foundation (ASF) under one >> - * or more contributor license agreements. See the NOTICE file >> - * distributed with this work for additional information >> - * regarding copyright ownership. The ASF licenses this file >> - * to you under the Apache License, Version 2.0 (the >> - * "License"); you may not use this file except in compliance >> - * with the License. You may obtain a copy of the License at >> - * >> - * http://www.apache.org/licenses/LICENSE-2.0 >> - * >> - * Unless required by applicable law or agreed to in writing, >> - * software distributed under the License is distributed on an >> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >> - * KIND, either express or implied. See the License for the >> - * specific language governing permissions and limitations >> - * under the License. >> - *******************************************************************************/ >> -package org.ofbiz.commons.vfs.ofbiz; >> - >> -import java.net.URL; >> -import java.util.Collection; >> -import org.apache.commons.vfs.FileObject; >> -import org.apache.commons.vfs.FileSystemException; >> -import org.apache.commons.vfs.FileSystemOptions; >> -import org.apache.commons.vfs.provider.AbstractFileProvider; >> -import org.apache.commons.vfs.provider.local.DefaultLocalFileProvider; >> -import org.ofbiz.base.location.FlexibleLocation; >> -import org.ofbiz.base.util.UtilMisc; >> -import org.webslinger.commons.vfs.VFSUtil; >> - >> -public class OfbizComponentProvider extends AbstractFileProvider { >> - public Collection getCapabilities() { >> - return DefaultLocalFileProvider.capabilities; >> - } >> - >> - public FileObject findFile(FileObject base, String name, FileSystemOptions properties) throws FileSystemException { >> - try { >> - //name = name.replaceAll("^ofbiz-component://", ""); >> - int nameLength = name.length(); >> - int componentNameStart = 16; >> - while (componentNameStart < nameLength && name.charAt(componentNameStart) == '/') componentNameStart++; >> - if (componentNameStart == nameLength) throw new IllegalArgumentException("Invalid name(" + name + ")"); >> - int componentNameEnd = componentNameStart; >> - while (componentNameEnd < nameLength && name.charAt(componentNameEnd) != '/') componentNameEnd++; >> - if (componentNameEnd == nameLength) throw new IllegalArgumentException("Invalid name(" + name + ")"); >> - int restStart = componentNameEnd; >> - while (restStart < nameLength && name.charAt(restStart) == '/') restStart++; >> - if (restStart == nameLength) throw new IllegalArgumentException("Invalid name(" + name + ")"); >> - String componentName = name.substring(componentNameStart, componentNameEnd); >> - URL location = FlexibleLocation.resolveLocation("component://" + componentName + "/."); >> - FileObject ofbizBase = getContext().resolveFile(location.toString(), properties); >> - return VFSUtil .toFileObject(ofbizBase.getFileSystem().getFileSystemManager(), ofbizBase >> .resolveFile(name.substring(restStart)).getURL().toString(), properties); >> - } catch (Exception e) { >> - throw UtilMisc.initCause(new FileSystemException(e.getMessage(), null, e), e); >> - } >> - } >> -} >> +/ ******************************************************************************* >> + * Licensed to the Apache Software Foundation (ASF) under one >> + * or more contributor license agreements. See the NOTICE file >> + * distributed with this work for additional information >> + * regarding copyright ownership. The ASF licenses this file >> + * to you under the Apache License, Version 2.0 (the >> + * "License"); you may not use this file except in compliance >> + * with the License. You may obtain a copy of the License at >> + * >> + * http://www.apache.org/licenses/LICENSE-2.0 >> + * >> + * Unless required by applicable law or agreed to in writing, >> + * software distributed under the License is distributed on an >> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >> + * KIND, either express or implied. See the License for the >> + * specific language governing permissions and limitations >> + * under the License. >> + *******************************************************************************/ >> +package org.ofbiz.commons.vfs.ofbiz; >> + >> +import java.net.URL; >> +import java.util.Collection; >> +import org.apache.commons.vfs.FileObject; >> +import org.apache.commons.vfs.FileSystemException; >> +import org.apache.commons.vfs.FileSystemOptions; >> +import org.apache.commons.vfs.provider.AbstractFileProvider; >> +import org.apache.commons.vfs.provider.local.DefaultLocalFileProvider; >> +import org.ofbiz.base.location.FlexibleLocation; >> +import org.ofbiz.base.util.UtilMisc; >> +import org.webslinger.commons.vfs.VFSUtil; >> + >> +public class OfbizComponentProvider extends AbstractFileProvider { >> + public Collection<?> getCapabilities() { >> + return DefaultLocalFileProvider.capabilities; >> + } >> + >> + public FileObject findFile(FileObject base, String name, FileSystemOptions properties) throws FileSystemException { >> + try { >> + //name = name.replaceAll("^ofbiz-component://", ""); >> + int nameLength = name.length(); >> + int componentNameStart = 16; >> + while (componentNameStart < nameLength && name.charAt(componentNameStart) == '/') componentNameStart++; >> + if (componentNameStart == nameLength) throw new IllegalArgumentException("Invalid name(" + name + ")"); >> + int componentNameEnd = componentNameStart; >> + while (componentNameEnd < nameLength && name.charAt(componentNameEnd) != '/') componentNameEnd++; >> + if (componentNameEnd == nameLength) throw new IllegalArgumentException("Invalid name(" + name + ")"); >> + int restStart = componentNameEnd; >> + while (restStart < nameLength && name.charAt(restStart) == '/') restStart++; >> + if (restStart == nameLength) throw new IllegalArgumentException("Invalid name(" + name + ")"); >> + String componentName = name.substring(componentNameStart, componentNameEnd); >> + URL location = FlexibleLocation.resolveLocation("component://" + componentName + "/."); >> + FileObject ofbizBase = getContext().resolveFile(location.toString(), properties); >> + return VFSUtil .toFileObject(ofbizBase.getFileSystem().getFileSystemManager(), ofbizBase >> .resolveFile(name.substring(restStart)).getURL().toString(), properties); >> + } catch (Exception e) { >> + throw UtilMisc.initCause(new FileSystemException(e.getMessage(), null, e), e); >> + } >> + } >> +} >> >> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ ofbiz/OfbizHomeProvider.java >> URL: >> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ofbiz/OfbizHomeProvider.java?rev=833727&r1=833726&r2=833727&view=diff >> = = = = = = = = ====================================================================== >> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ofbiz/ OfbizHomeProvider.java (original) >> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ofbiz/ OfbizHomeProvider.java Sat Nov 7 18:18:33 2009 >> @@ -1,50 +1,50 @@ >> -/ ******************************************************************************* >> - * Licensed to the Apache Software Foundation (ASF) under one >> - * or more contributor license agreements. See the NOTICE file >> - * distributed with this work for additional information >> - * regarding copyright ownership. The ASF licenses this file >> - * to you under the Apache License, Version 2.0 (the >> - * "License"); you may not use this file except in compliance >> - * with the License. You may obtain a copy of the License at >> - * >> - * http://www.apache.org/licenses/LICENSE-2.0 >> - * >> - * Unless required by applicable law or agreed to in writing, >> - * software distributed under the License is distributed on an >> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >> - * KIND, either express or implied. See the License for the >> - * specific language governing permissions and limitations >> - * under the License. >> - *******************************************************************************/ >> -package org.ofbiz.commons.vfs.ofbiz; >> - >> -import java.net.URL; >> -import java.util.Collection; >> - >> -import org.apache.commons.vfs.FileObject; >> -import org.apache.commons.vfs.FileSystemException; >> -import org.apache.commons.vfs.FileSystemOptions; >> -import org.apache.commons.vfs.provider.AbstractFileProvider; >> -import org.apache.commons.vfs.provider.local.DefaultLocalFileProvider; >> - >> -import org.ofbiz.base.location.FlexibleLocation; >> -import org.ofbiz.base.util.UtilMisc; >> - >> -import org.webslinger.commons.vfs.VFSUtil; >> - >> -public class OfbizHomeProvider extends AbstractFileProvider { >> - public Collection getCapabilities() { >> - return DefaultLocalFileProvider.capabilities; >> - } >> - >> - public FileObject findFile(FileObject base, String name, FileSystemOptions properties) throws FileSystemException { >> - //new Exception("findFile(" + base + ", " + name + ")").printStackTrace(); >> - try { >> - URL location = FlexibleLocation.resolveLocation("ofbizhome://."); >> - FileObject ofbizBase = getContext().resolveFile(location.toString(), properties); >> - return VFSUtil .toFileObject(ofbizBase.getFileSystem().getFileSystemManager(), >> ofbizBase.resolveFile(name.substring(13)).getURL().toString(), properties); >> - } catch (Exception e) { >> - throw UtilMisc.initCause(new FileSystemException(e.getMessage(), null, e), e); >> - } >> - } >> -} >> +/ ******************************************************************************* >> + * Licensed to the Apache Software Foundation (ASF) under one >> + * or more contributor license agreements. See the NOTICE file >> + * distributed with this work for additional information >> + * regarding copyright ownership. The ASF licenses this file >> + * to you under the Apache License, Version 2.0 (the >> + * "License"); you may not use this file except in compliance >> + * with the License. You may obtain a copy of the License at >> + * >> + * http://www.apache.org/licenses/LICENSE-2.0 >> + * >> + * Unless required by applicable law or agreed to in writing, >> + * software distributed under the License is distributed on an >> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >> + * KIND, either express or implied. See the License for the >> + * specific language governing permissions and limitations >> + * under the License. >> + *******************************************************************************/ >> +package org.ofbiz.commons.vfs.ofbiz; >> + >> +import java.net.URL; >> +import java.util.Collection; >> + >> +import org.apache.commons.vfs.FileObject; >> +import org.apache.commons.vfs.FileSystemException; >> +import org.apache.commons.vfs.FileSystemOptions; >> +import org.apache.commons.vfs.provider.AbstractFileProvider; >> +import org.apache.commons.vfs.provider.local.DefaultLocalFileProvider; >> + >> +import org.ofbiz.base.location.FlexibleLocation; >> +import org.ofbiz.base.util.UtilMisc; >> + >> +import org.webslinger.commons.vfs.VFSUtil; >> + >> +public class OfbizHomeProvider extends AbstractFileProvider { >> + public Collection<?> getCapabilities() { >> + return DefaultLocalFileProvider.capabilities; >> + } >> + >> + public FileObject findFile(FileObject base, String name, FileSystemOptions properties) throws FileSystemException { >> + //new Exception("findFile(" + base + ", " + name + ")").printStackTrace(); >> + try { >> + URL location = FlexibleLocation.resolveLocation("ofbizhome://."); >> + FileObject ofbizBase = getContext().resolveFile(location.toString(), properties); >> + return VFSUtil .toFileObject(ofbizBase.getFileSystem().getFileSystemManager(), >> ofbizBase.resolveFile(name.substring(13)).getURL().toString(), properties); >> + } catch (Exception e) { >> + throw UtilMisc.initCause(new FileSystemException(e.getMessage(), null, e), e); >> + } >> + } >> +} >> >> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ EntityHttpUtil.java >> URL: >> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/EntityHttpUtil.java?rev=833727&r1=833726&r2=833727&view=diff >> = = = = = = = = ====================================================================== >> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ EntityHttpUtil.java (original) >> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ EntityHttpUtil.java Sat Nov 7 18:18:33 2009 >> @@ -1,78 +1,73 @@ >> -/ ******************************************************************************* >> - * Licensed to the Apache Software Foundation (ASF) under one >> - * or more contributor license agreements. See the NOTICE file >> - * distributed with this work for additional information >> - * regarding copyright ownership. The ASF licenses this file >> - * to you under the Apache License, Version 2.0 (the >> - * "License"); you may not use this file except in compliance >> - * with the License. You may obtain a copy of the License at >> - * >> - * http://www.apache.org/licenses/LICENSE-2.0 >> - * >> - * Unless required by applicable law or agreed to in writing, >> - * software distributed under the License is distributed on an >> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >> - * KIND, either express or implied. See the License for the >> - * specific language governing permissions and limitations >> - * under the License. >> - *******************************************************************************/ >> -package org.ofbiz.webslinger; >> - >> -import java.util.HashMap; >> -import java.util.Iterator; >> -import java.util.Locale; >> -import java.util.Map; >> - >> -import javax.servlet.ServletRequest; >> -import javax.servlet.http.HttpServletRequest; >> - >> -import org.ofbiz.base.util.GeneralException; >> -import org.ofbiz.base.util.ObjectType; >> -import org.ofbiz.base.util.UtilHttp; >> -import org.ofbiz.base.util.UtilMisc; >> -import org.ofbiz.base.util.UtilValidate; >> -import org.ofbiz.entity.Delegator; >> -import org.ofbiz.entity.GenericValue; >> -import org.ofbiz.entity.jdbc.SqlJdbcUtil; >> -import org.ofbiz.entity.model.ModelEntity; >> -import org.ofbiz.entity.model.ModelField; >> -import org.ofbiz.entity.model.ModelFieldType; >> - >> -public class EntityHttpUtil { >> - public static GenericValue makeValidValue(String entityName, ServletRequest request) throws GeneralException { >> - return makeValidValue(entityName, false, request); >> - } >> - >> - public static GenericValue makeValidValue(String entityName, boolean includePks, ServletRequest request) throws >> GeneralException { >> - if (request instanceof HttpServletRequest) return makeValidValue(entityName, includePks, (HttpServletRequest) request); >> - throw new IllegalArgumentException("Not an HttpServletRequest"); >> - } >> - >> - public static GenericValue makeValidValue(String entityName, HttpServletRequest request) throws GeneralException { >> - return makeValidValue(entityName, false, request); >> - } >> - >> - public static GenericValue makeValidValue(String entityName, boolean includePks, HttpServletRequest request) throws >> GeneralException { >> - Delegator delegator = (Delegator) request.getAttribute("delegator"); >> - GenericValue value = delegator.makeValue(entityName); >> - ModelEntity model = value.getModelEntity(); >> - Iterator<ModelField> it = includePks ? model.getFieldsIterator() : model.getNopksIterator(); >> - Locale locale = UtilHttp.getLocale(request); >> - while (it.hasNext()) { >> - ModelField field = it.next(); >> - String fieldName = field.getName(); >> - String parameterValue = request.getParameter(fieldName); >> - Object fieldValue; >> - if (parameterValue == null) { >> - fieldValue = null; >> - } else { >> - ModelFieldType fieldType = delegator.getEntityFieldType(model, field.getType()); >> - String wantedType = fieldType.getJavaType(); >> - fieldValue = ObjectType.simpleTypeConvert(parameterValue, wantedType, null, locale, true); >> - } >> - value.put(fieldName, fieldValue); >> - } >> - return value; >> - } >> -} >> - >> +/ ******************************************************************************* >> + * Licensed to the Apache Software Foundation (ASF) under one >> + * or more contributor license agreements. See the NOTICE file >> + * distributed with this work for additional information >> + * regarding copyright ownership. The ASF licenses this file >> + * to you under the Apache License, Version 2.0 (the >> + * "License"); you may not use this file except in compliance >> + * with the License. You may obtain a copy of the License at >> + * >> + * http://www.apache.org/licenses/LICENSE-2.0 >> + * >> + * Unless required by applicable law or agreed to in writing, >> + * software distributed under the License is distributed on an >> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >> + * KIND, either express or implied. See the License for the >> + * specific language governing permissions and limitations >> + * under the License. >> + *******************************************************************************/ >> +package org.ofbiz.webslinger; >> + >> +import java.util.Iterator; >> +import java.util.Locale; >> + >> +import javax.servlet.ServletRequest; >> +import javax.servlet.http.HttpServletRequest; >> + >> +import org.ofbiz.base.util.GeneralException; >> +import org.ofbiz.base.util.ObjectType; >> +import org.ofbiz.base.util.UtilHttp; >> +import org.ofbiz.entity.Delegator; >> +import org.ofbiz.entity.GenericValue; >> +import org.ofbiz.entity.model.ModelEntity; >> +import org.ofbiz.entity.model.ModelField; >> +import org.ofbiz.entity.model.ModelFieldType; >> + >> +public class EntityHttpUtil { >> + public static GenericValue makeValidValue(String entityName, ServletRequest request) throws GeneralException { >> + return makeValidValue(entityName, false, request); >> + } >> + >> + public static GenericValue makeValidValue(String entityName, boolean includePks, ServletRequest request) throws >> GeneralException { >> + if (request instanceof HttpServletRequest) return makeValidValue(entityName, includePks, (HttpServletRequest) request); >> + throw new IllegalArgumentException("Not an HttpServletRequest"); >> + } >> + >> + public static GenericValue makeValidValue(String entityName, HttpServletRequest request) throws GeneralException { >> + return makeValidValue(entityName, false, request); >> + } >> + >> + public static GenericValue makeValidValue(String entityName, boolean includePks, HttpServletRequest request) throws >> GeneralException { >> + Delegator delegator = (Delegator) request.getAttribute("delegator"); >> + GenericValue value = delegator.makeValue(entityName); >> + ModelEntity model = value.getModelEntity(); >> + Iterator<ModelField> it = includePks ? model.getFieldsIterator() : model.getNopksIterator(); >> + Locale locale = UtilHttp.getLocale(request); >> + while (it.hasNext()) { >> + ModelField field = it.next(); >> + String fieldName = field.getName(); >> + String parameterValue = request.getParameter(fieldName); >> + Object fieldValue; >> + if (parameterValue == null) { >> + fieldValue = null; >> + } else { >> + ModelFieldType fieldType = delegator.getEntityFieldType(model, field.getType()); >> + String wantedType = fieldType.getJavaType(); >> + fieldValue = ObjectType.simpleTypeConvert(parameterValue, wantedType, null, locale, true); >> + } >> + value.put(fieldName, fieldValue); >> + } >> + return value; >> + } >> +} >> + >> >> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ StatsUpdater.java >> URL: >> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/StatsUpdater.java?rev=833727&r1=833726&r2=833727&view=diff >> = = = = = = = = ====================================================================== >> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ StatsUpdater.java (original) >> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ StatsUpdater.java Sat Nov 7 18:18:33 2009 >> @@ -1,121 +1,118 @@ >> -/ ******************************************************************************* >> - * Licensed to the Apache Software Foundation (ASF) under one >> - * or more contributor license agreements. See the NOTICE file >> - * distributed with this work for additional information >> - * regarding copyright ownership. The ASF licenses this file >> - * to you under the Apache License, Version 2.0 (the >> - * "License"); you may not use this file except in compliance >> - * with the License. You may obtain a copy of the License at >> - * >> - * http://www.apache.org/licenses/LICENSE-2.0 >> - * >> - * Unless required by applicable law or agreed to in writing, >> - * software distributed under the License is distributed on an >> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >> - * KIND, either express or implied. See the License for the >> - * specific language governing permissions and limitations >> - * under the License. >> - *******************************************************************************/ >> -package org.ofbiz.webslinger; >> - >> -import java.util.HashMap; >> -import java.util.Iterator; >> -import java.util.Map; >> -import java.util.concurrent.Callable; >> -import java.util.concurrent.ConcurrentHashMap; >> -import java.util.concurrent.ScheduledFuture; >> -import java.util.concurrent.TimeUnit; >> -import java.util.concurrent.atomic.AtomicReference; >> - >> -import org.ofbiz.base.util.UtilMisc; >> -import org.ofbiz.entity.Delegator; >> -import org.ofbiz.entity.GenericEntityException; >> -import org.ofbiz.entity.GenericPK; >> -import org.ofbiz.entity.GenericValue; >> - >> -import org.webslinger.cache.ConcurrentCache; >> -import org.webslinger.concurrent.ExecutionPool; >> - >> -public class StatsUpdater { >> - private static final Updater UPDATER = new Updater(); >> - >> - public static void updateStats(Delegator delegator, String entityName, Map<String, ? extends Object> keyFields, Map<String, >> ? extends Long> updateCountFields) throws GenericEntityException { >> - GenericPK pk = delegator.makePK(entityName, keyFields); >> - Map<String, Long> value = UPDATER.getValue(pk); >> - synchronized (value) { >> - for (Map.Entry<String, ? extends Long> entry: updateCountFields.entrySet()) { >> - Long oldValue = value.get(entry.getKey()); >> - if (oldValue != null) { >> - value.put(entry.getKey(), Long.valueOf(oldValue.longValue() + entry.getValue())); >> - } else { >> - value.put(entry.getKey(), entry.getValue()); >> - } >> - } >> - } >> - } >> - >> - private static final class Updater implements Callable<Void> { >> - protected AtomicReference<EntityHolder> entities = new AtomicReference<EntityHolder>(new EntityHolder(Updater.class, >> "entities", null)); >> - protected ScheduledFuture<Void> future; >> - >> - protected Map<String, Long> getValue(GenericPK pk) throws GenericEntityException { >> - synchronized (this) { >> - if (future == null || future.isDone()) { >> - future = ExecutionPool.schedule(this, 1, TimeUnit.SECONDS); >> - } >> - } >> - try { >> - return entities.get().get(pk); >> - } catch (RuntimeException e) { >> - throw e; >> - } catch (GenericEntityException e) { >> - throw e; >> - } catch (Exception e) { >> - throw UtilMisc.initCause(new GenericEntityException(e.getMessage()), e); >> - } >> - } >> - >> - public Void call() { >> - EntityHolder oldEntities; >> - EntityHolder newEntities = new EntityHolder(Updater.class, "entities", null); >> - do { >> - oldEntities = entities.get(); >> - } while (!entities.compareAndSet(oldEntities, newEntities)); >> - synchronized (Updater.class) { >> - for (GenericPK pk: oldEntities.keys()) { >> - try { >> - Map<String, Long> add = oldEntities.get(pk); >> - GenericValue existing = pk.getDelegator().findOne(pk.getEntityName(), pk, false); >> - if (existing == null) { >> - existing = pk.getDelegator().create(pk.getEntityName(), pk); >> - } >> - for (Map.Entry<String, Long> entry: add.entrySet()) { >> - Long value = entry.getValue(); >> - Long oldValue = existing.getLong(entry.getKey()); >> - if (oldValue != null) { >> - existing.put(entry.getKey(), Long.valueOf(value.longValue() + oldValue.longValue())); >> - } else { >> - existing.put(entry.getKey(), value); >> - } >> - } >> - existing.store(); >> - } catch (Exception e) { >> - e.printStackTrace(); >> - } >> - } >> - } >> - return null; >> - } >> - } >> - >> - private static final class EntityHolder extends ConcurrentCache<GenericPK, Map<String, Long>> { >> - protected EntityHolder(Class<?> owner, String field, String label) { >> - super(owner, field, label, HARD); >> - } >> - >> - @Override >> - protected Map<String, Long> createValue(GenericPK pk) throws Exception { >> - return new HashMap<String, Long>(); >> - } >> - } >> -} >> +/ ******************************************************************************* >> + * Licensed to the Apache Software Foundation (ASF) under one >> + * or more contributor license agreements. See the NOTICE file >> + * distributed with this work for additional information >> + * regarding copyright ownership. The ASF licenses this file >> + * to you under the Apache License, Version 2.0 (the >> + * "License"); you may not use this file except in compliance >> + * with the License. You may obtain a copy of the License at >> + * >> + * http://www.apache.org/licenses/LICENSE-2.0 >> + * >> + * Unless required by applicable law or agreed to in writing, >> + * software distributed under the License is distributed on an >> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >> + * KIND, either express or implied. See the License for the >> + * specific language governing permissions and limitations >> + * under the License. >> + *******************************************************************************/ >> +package org.ofbiz.webslinger; >> + >> +import java.util.HashMap; >> +import java.util.Map; >> +import java.util.concurrent.Callable; >> +import java.util.concurrent.ScheduledFuture; >> +import java.util.concurrent.TimeUnit; >> +import java.util.concurrent.atomic.AtomicReference; >> + >> +import org.ofbiz.base.util.UtilMisc; >> +import org.ofbiz.entity.Delegator; >> +import org.ofbiz.entity.GenericEntityException; >> +import org.ofbiz.entity.GenericPK; >> +import org.ofbiz.entity.GenericValue; >> +import org.webslinger.cache.ConcurrentCache; >> +import org.webslinger.concurrent.ExecutionPool; >> + >> +public class StatsUpdater { >> + private static final Updater UPDATER = new Updater(); >> + >> + public static void updateStats(Delegator delegator, String entityName, Map<String, ? extends Object> keyFields, Map<String, >> ? extends Long> updateCountFields) throws GenericEntityException { >> + GenericPK pk = delegator.makePK(entityName, keyFields); >> + Map<String, Long> value = UPDATER.getValue(pk); >> + synchronized (value) { >> + for (Map.Entry<String, ? extends Long> entry: updateCountFields.entrySet()) { >> + Long oldValue = value.get(entry.getKey()); >> + if (oldValue != null) { >> + value.put(entry.getKey(), Long.valueOf(oldValue.longValue() + entry.getValue())); >> + } else { >> + value.put(entry.getKey(), entry.getValue()); >> + } >> + } >> + } >> + } >> + >> + private static final class Updater implements Callable<Void> { >> + protected AtomicReference<EntityHolder> entities = new AtomicReference<EntityHolder>(new EntityHolder(Updater.class, >> "entities", null)); >> + protected ScheduledFuture<Void> future; >> + >> + protected Map<String, Long> getValue(GenericPK pk) throws GenericEntityException { >> + synchronized (this) { >> + if (future == null || future.isDone()) { >> + future = ExecutionPool.schedule(this, 1, TimeUnit.SECONDS); >> + } >> + } >> + try { >> + return entities.get().get(pk); >> + } catch (RuntimeException e) { >> + throw e; >> + } catch (GenericEntityException e) { >> + throw e; >> + } catch (Exception e) { >> + throw UtilMisc.initCause(new GenericEntityException(e.getMessage()), e); >> + } >> + } >> + >> + public Void call() { >> + EntityHolder oldEntities; >> + EntityHolder newEntities = new EntityHolder(Updater.class, "entities", null); >> + do { >> + oldEntities = entities.get(); >> + } while (!entities.compareAndSet(oldEntities, newEntities)); >> + synchronized (Updater.class) { >> + for (GenericPK pk: oldEntities.keys()) { >> + try { >> + Map<String, Long> add = oldEntities.get(pk); >> + GenericValue existing = pk.getDelegator().findOne(pk.getEntityName(), pk, false); >> + if (existing == null) { >> + existing = pk.getDelegator().create(pk.getEntityName(), pk); >> + } >> + for (Map.Entry<String, Long> entry: add.entrySet()) { >> + Long value = entry.getValue(); >> + Long oldValue = existing.getLong(entry.getKey()); >> + if (oldValue != null) { >> + existing.put(entry.getKey(), Long.valueOf(value.longValue() + oldValue.longValue())); >> + } else { >> + existing.put(entry.getKey(), value); >> + } >> + } >> + existing.store(); >> + } catch (Exception e) { >> + e.printStackTrace(); >> + } >> + } >> + } >> + return null; >> + } >> + } >> + >> + private static final class EntityHolder extends ConcurrentCache<GenericPK, Map<String, Long>> { >> + protected EntityHolder(Class<?> owner, String field, String label) { >> + super(owner, field, label, HARD); >> + } >> + >> + @Override >> + protected Map<String, Long> createValue(GenericPK pk) throws Exception { >> + return new HashMap<String, Long>(); >> + } >> + } >> +} >> >> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ WebslingerContextMapper.java >> URL: >> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/WebslingerContextMapper.java?rev=833727&r1=833726&r2=833727&view=diff >> = = = = = = = = ====================================================================== >> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ WebslingerContextMapper.java (original) >> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ WebslingerContextMapper.java Sat Nov 7 18:18:33 2009 >> @@ -1,218 +1,216 @@ >> -/ ******************************************************************************* >> - * Licensed to the Apache Software Foundation (ASF) under one >> - * or more contributor license agreements. See the NOTICE file >> - * distributed with this work for additional information >> - * regarding copyright ownership. The ASF licenses this file >> - * to you under the Apache License, Version 2.0 (the >> - * "License"); you may not use this file except in compliance >> - * with the License. You may obtain a copy of the License at >> - * >> - * http://www.apache.org/licenses/LICENSE-2.0 >> - * >> - * Unless required by applicable law or agreed to in writing, >> - * software distributed under the License is distributed on an >> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >> - * KIND, either express or implied. See the License for the >> - * specific language governing permissions and limitations >> - * under the License. >> - *******************************************************************************/ >> -package org.ofbiz.webslinger; >> - >> -import java.io.IOException; >> -import java.net.URL; >> -import java.util.ArrayList; >> -import java.util.Arrays; >> -import java.util.HashSet; >> -import java.util.List; >> -import java.util.Set; >> - >> -import javax.servlet.ServletConfig; >> -import javax.servlet.ServletContext; >> -import javax.servlet.ServletException; >> -import javax.servlet.http.HttpServletRequest; >> - >> -import org.ofbiz.base.util.UtilMisc; >> -import org.ofbiz.base.util.UtilProperties; >> -import org.ofbiz.entity.Delegator; >> -import org.ofbiz.entity.DelegatorFactory; >> -import org.ofbiz.entity.GenericEntityException; >> -import org.ofbiz.entity.GenericValue; >> -import org.ofbiz.entity.cache.Cache; >> -import org.ofbiz.entity.util.EntityUtil; >> -import org.ofbiz.security.SecurityFactory; >> -import org.ofbiz.security.authz.AuthorizationFactory; >> -import org.ofbiz.service.GenericDispatcher; >> -import org.ofbiz.service.LocalDispatcher; >> -import org.ofbiz.service.ServiceDispatcher; >> -import org.ofbiz.service.DispatchContext; >> - >> -import org.webslinger.AbstractMappingWebslingerServletContextFactory; >> -import org.webslinger.WebslingerServletContext; >> -import org.webslinger.collections.CollectionUtil; >> -import org.webslinger.lang.ObjectUtil; >> - >> -public class WebslingerContextMapper extends AbstractMappingWebslingerServletContextFactory { >> - protected ServletContext servletContext; >> - protected Delegator delegator; >> - protected final ArrayList<URL> globalReaderURLs = new ArrayList<URL>(); >> - >> - public void init(ServletConfig config) throws ServletException, IOException { >> - System .err.println(org.webslinger.commons.vfs.flat.FlatFileProvider.class); >> - servletContext = config.getServletContext(); >> - String delegatorName = servletContext.getInitParameter("entityDelegatorName"); >> - delegator = DelegatorFactory.getDelegator(delegatorName); >> - String readerFiles = servletContext.getInitParameter("serviceReaderUrls"); >> - if (readerFiles != null) { >> - for (String reader: CollectionUtil.split(readerFiles, ";")) { >> - URL url = config.getServletContext().getResource(reader); >> - if (url != null) globalReaderURLs.add(url); >> - } >> - } >> - super.init(config, UtilProperties.getPropertyValue("webslinger.properties", "moduleBase")); >> - } >> - >> - @Override >> - protected Layout[] getStartLayouts() throws Exception { >> - ArrayList<Layout> layouts = new ArrayList<Layout>(); >> - try { >> - for (GenericValue value: delegator.findByAnd("WebslingerServer", UtilMisc.toMap("loadAtStart", "Y"))) { >> - layouts.add(new OfbizLayout(value)); >> - } >> - } catch (GenericEntityException e) { >> - } >> - return layouts.toArray(new Layout[layouts.size()]); >> - } >> - >> - @Override >> - public void initializeRequest(WebslingerServletContext context, HttpServletRequest request) { >> - request.setAttribute("servletContext", context); >> - Object delegator = context.getAttribute("delegator"); >> - Object dispatcher = context.getAttribute("dispatcher"); >> - Object authz = context.getAttribute("authz"); >> - Object security = context.getAttribute("security"); >> - request.setAttribute("delegator", delegator); >> - request.setAttribute("dispatcher", dispatcher); >> - request.setAttribute("authz", authz); >> - request.setAttribute("security", security); >> - // FIXME!!! These next two are a hack until proper fake/ wrapped session support is done in webslinger >> - servletContext.setAttribute("delegator", delegator); >> - servletContext.setAttribute("dispatcher", dispatcher); >> - servletContext.setAttribute("authz", authz); >> - servletContext.setAttribute("security", security); >> - } >> - >> - @Override >> - protected void initializeContext(WebslingerServletContext context, Layout layout) throws Exception { >> - OfbizLayout ofbizLayout = (OfbizLayout) layout; >> - Delegator delegator = null; >> - delegator = DelegatorFactory.getDelegator(ofbizLayout.delegatorName); >> - context.setAttribute("delegator", delegator); >> - context.setAttribute("dispatcher", new WebslingerGenericDispatcher(context, layout.getTarget(), delegator, >> globalReaderURLs)); >> - context.setAttribute("authz", AuthorizationFactory.getInstance(delegator)); >> - context.setAttribute("security", SecurityFactory.getInstance(delegator)); >> - } >> - >> - protected static final class WebslingerGenericDispatcher extends GenericDispatcher { >> - protected WebslingerGenericDispatcher(WebslingerServletContext context, String name, Delegator delegator, List<URL> >> globalReaderURLs) throws IOException { >> - ArrayList<URL> readerURLs = new ArrayList<URL>(globalReaderURLs); >> - String readerFiles = context.getInitParameter("serviceReaderUrls"); >> - if (readerFiles != null) { >> - for (String reader: CollectionUtil.split(readerFiles, ";")) { >> - URL url = context.getResource(reader); >> - if (url != null) readerURLs.add(url); >> - } >> - } >> - System.err.println(readerURLs); >> - this.dispatcher = new ServiceDispatcher(delegator, true, true, true) { >> - }; >> - ClassLoader loader = null; >> - try { >> - loader = Thread.currentThread().getContextClassLoader(); >> - } catch (SecurityException e) { >> - loader = WebslingerContextMapper.class.getClassLoader(); >> - } >> - DispatchContext dc = new DispatchContext(name, readerURLs, loader, null); >> - init(name, delegator, dc); >> - } >> - } >> - >> - @Override >> - protected Set<String> getSuffixes() throws Exception { >> - Cache cache = delegator.getCache(); >> - Set<String> suffixes; >> - synchronized (WebslingerContextMapper.class) { >> - suffixes = cache.get("WebslingerHostSuffix", null, "WebslingerContextMapper.Suffixes"); >> - if (suffixes == null) { >> - suffixes = new HashSet<String>(); >> - for (GenericValue value: delegator.findList("WebslingerHostSuffix", null, null, null, null, false)) { >> - suffixes.add(value.getString("hostSuffix")); >> - } >> - cache.put("WebslingerHostSuffix", null, "WebslingerContextMapper.Suffixes", suffixes); >> - } >> - } >> - return suffixes; >> - } >> - >> - @Override >> - protected Layout lookupLayout(String hostName, String contextPath) throws Exception { >> - GenericValue layout = EntityUtil.getOnly(delegator.findByAndCache("WebslingerLayout", UtilMisc.toMap("hostName", >> hostName, "contextPath", contextPath))); >> - if (layout == null) return null; >> - return new OfbizLayout(layout); >> - } >> - >> - protected class OfbizLayout implements Layout { >> - private final String contextPath; >> - private final String id; >> - private final String target; >> - private final String[] bases; >> - private final int hashCode; >> - protected final String delegatorName; >> - protected final String dispatcherName; >> - >> - protected OfbizLayout(GenericValue server) throws GenericEntityException { >> - contextPath = server.getString("contextPath"); >> - id = server.getString("webslingerServerId"); >> - target = server.getString("target"); >> - List<GenericValue> baseValues = server.getRelatedCache("WebslingerServerBase", UtilMisc.toList("seqNum")); >> - bases = new String[baseValues.size()]; >> - for (int i = 0; i < bases.length; i++) { >> - GenericValue baseValue = baseValues.get(i); >> - bases[i] = baseValue.getString("baseName"); >> - } >> - delegatorName = server.getString("delegatorName"); >> - dispatcherName = server.getString("dispatcherName"); >> - hashCode = target.hashCode() ^ ObjectUtil.hashCodeHelper(delegatorName) ^ Arrays.hashCode(bases); >> - } >> - >> - public String getContextPath() { >> - return contextPath; >> - } >> - >> - public String getId() { >> - return id; >> - } >> - >> - public String getTarget() { >> - return target; >> - } >> - >> - public String[] getBases() { >> - return bases; >> - } >> - >> - @Override >> - public int hashCode() { >> - return hashCode; >> - } >> - >> - @Override >> - public boolean equals(Object o) { >> - if (!(o instanceof OfbizLayout)) return false; >> - OfbizLayout other = (OfbizLayout) o; >> - if (!contextPath.equals(other.contextPath)) return false; >> - if (!target.equals(other.target)) return false; >> - if (!ObjectUtil.equalsHelper(delegatorName, other.delegatorName)) return false; >> - return Arrays.equals(bases, other.bases); >> - } >> - } >> -} >> +/ ******************************************************************************* >> + * Licensed to the Apache Software Foundation (ASF) under one >> + * or more contributor license agreements. See the NOTICE file >> + * distributed with this work for additional information >> + * regarding copyright ownership. The ASF licenses this file >> + * to you under the Apache License, Version 2.0 (the >> + * "License"); you may not use this file except in compliance >> + * with the License. You may obtain a copy of the License at >> + * >> + * http://www.apache.org/licenses/LICENSE-2.0 >> + * >> + * Unless required by applicable law or agreed to in writing, >> + * software distributed under the License is distributed on an >> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >> + * KIND, either express or implied. See the License for the >> + * specific language governing permissions and limitations >> + * under the License. >> + *******************************************************************************/ >> +package org.ofbiz.webslinger; >> + >> +import java.io.IOException; >> +import java.net.URL; >> +import java.util.ArrayList; >> +import java.util.Arrays; >> +import java.util.HashSet; >> +import java.util.List; >> +import java.util.Set; >> + >> +import javax.servlet.ServletConfig; >> +import javax.servlet.ServletContext; >> +import javax.servlet.ServletException; >> +import javax.servlet.http.HttpServletRequest; >> + >> +import org.ofbiz.base.util.UtilMisc; >> +import org.ofbiz.base.util.UtilProperties; >> +import org.ofbiz.entity.Delegator; >> +import org.ofbiz.entity.DelegatorFactory; >> +import org.ofbiz.entity.GenericEntityException; >> +import org.ofbiz.entity.GenericValue; >> +import org.ofbiz.entity.cache.Cache; >> +import org.ofbiz.entity.util.EntityUtil; >> +import org.ofbiz.security.SecurityFactory; >> +import org.ofbiz.security.authz.AuthorizationFactory; >> +import org.ofbiz.service.DispatchContext; >> +import org.ofbiz.service.GenericDispatcher; >> +import org.ofbiz.service.ServiceDispatcher; >> +import org.webslinger.AbstractMappingWebslingerServletContextFactory; >> +import org.webslinger.WebslingerServletContext; >> +import org.webslinger.collections.CollectionUtil; >> +import org.webslinger.lang.ObjectUtil; >> + >> +public class WebslingerContextMapper extends AbstractMappingWebslingerServletContextFactory { >> + protected ServletContext servletContext; >> + protected Delegator delegator; >> + protected final ArrayList<URL> globalReaderURLs = new ArrayList<URL>(); >> + >> + public void init(ServletConfig config) throws ServletException, IOException { >> + System .err.println(org.webslinger.commons.vfs.flat.FlatFileProvider.class); >> + servletContext = config.getServletContext(); >> + String delegatorName = servletContext.getInitParameter("entityDelegatorName"); >> + delegator = DelegatorFactory.getDelegator(delegatorName); >> + String readerFiles = servletContext.getInitParameter("serviceReaderUrls"); >> + if (readerFiles != null) { >> + for (String reader: CollectionUtil.split(readerFiles, ";")) { >> + URL url = config.getServletContext().getResource(reader); >> + if (url != null) globalReaderURLs.add(url); >> + } >> + } >> + super.init(config, UtilProperties.getPropertyValue("webslinger.properties", "moduleBase")); >> + } >> + >> + @Override >> + protected Layout[] getStartLayouts() throws Exception { >> + ArrayList<Layout> layouts = new ArrayList<Layout>(); >> + try { >> + for (GenericValue value: delegator.findByAnd("WebslingerServer", UtilMisc.toMap("loadAtStart", "Y"))) { >> + layouts.add(new OfbizLayout(value)); >> + } >> + } catch (GenericEntityException e) { >> + } >> + return layouts.toArray(new Layout[layouts.size()]); >> + } >> + >> + @Override >> + public void initializeRequest(WebslingerServletContext context, HttpServletRequest request) { >> + request.setAttribute("servletContext", context); >> + Object delegator = context.getAttribute("delegator"); >> + Object dispatcher = context.getAttribute("dispatcher"); >> + Object authz = context.getAttribute("authz"); >> + Object security = context.getAttribute("security"); >> + request.setAttribute("delegator", delegator); >> + request.setAttribute("dispatcher", dispatcher); >> + request.setAttribute("authz", authz); >> + request.setAttribute("security", security); >> + // FIXME!!! These next two are a hack until proper fake/ wrapped session support is done in webslinger >> + servletContext.setAttribute("delegator", delegator); >> + servletContext.setAttribute("dispatcher", dispatcher); >> + servletContext.setAttribute("authz", authz); >> + servletContext.setAttribute("security", security); >> + } >> + >> + @Override >> + protected void initializeContext(WebslingerServletContext context, Layout layout) throws Exception { >> + OfbizLayout ofbizLayout = (OfbizLayout) layout; >> + Delegator delegator = null; >> + delegator = DelegatorFactory.getDelegator(ofbizLayout.delegatorName); >> + context.setAttribute("delegator", delegator); >> + context.setAttribute("dispatcher", new WebslingerGenericDispatcher(context, layout.getTarget(), delegator, >> globalReaderURLs)); >> + context.setAttribute("authz", AuthorizationFactory.getInstance(delegator)); >> + context.setAttribute("security", SecurityFactory.getInstance(delegator)); >> + } >> + >> + protected static final class WebslingerGenericDispatcher extends GenericDispatcher { >> + protected WebslingerGenericDispatcher(WebslingerServletContext context, String name, Delegator delegator, List<URL> >> globalReaderURLs) throws IOException { >> + ArrayList<URL> readerURLs = new ArrayList<URL>(globalReaderURLs); >> + String readerFiles = context.getInitParameter("serviceReaderUrls"); >> + if (readerFiles != null) { >> + for (String reader: CollectionUtil.split(readerFiles, ";")) { >> + URL url = context.getResource(reader); >> + if (url != null) readerURLs.add(url); >> + } >> + } >> + System.err.println(readerURLs); >> + this.dispatcher = new ServiceDispatcher(delegator, true, true, true) { >> + }; >> + ClassLoader loader = null; >> + try { >> + loader = Thread.currentThread().getContextClassLoader(); >> + } catch (SecurityException e) { >> + loader = WebslingerContextMapper.class.getClassLoader(); >> + } >> + DispatchContext dc = new DispatchContext(name, readerURLs, loader, null); >> + init(name, delegator, dc); >> + } >> + } >> + >> + @Override >> + protected Set<String> getSuffixes() throws Exception { >> + Cache cache = delegator.getCache(); >> + Set<String> suffixes; >> + synchronized (WebslingerContextMapper.class) { >> + suffixes = cache.get("WebslingerHostSuffix", null, "WebslingerContextMapper.Suffixes"); >> + if (suffixes == null) { >> + suffixes = new HashSet<String>(); >> + for (GenericValue value: delegator.findList("WebslingerHostSuffix", null, null, null, null, false)) { >> + suffixes.add(value.getString("hostSuffix")); >> + } >> + cache.put("WebslingerHostSuffix", null, "WebslingerContextMapper.Suffixes", suffixes); >> + } >> + } >> + return suffixes; >> + } >> + >> + @Override >> + protected Layout lookupLayout(String hostName, String contextPath) throws Exception { >> + GenericValue layout = EntityUtil.getOnly(delegator.findByAndCache("WebslingerLayout", UtilMisc.toMap("hostName", >> hostName, "contextPath", contextPath))); >> + if (layout == null) return null; >> + return new OfbizLayout(layout); >> + } >> + >> + protected class OfbizLayout implements Layout { >> + private final String contextPath; >> + private final String id; >> + private final String target; >> + private final String[] bases; >> + private final int hashCode; >> + protected final String delegatorName; >> + protected final String dispatcherName; >> + >> + protected OfbizLayout(GenericValue server) throws GenericEntityException { >> + contextPath = server.getString("contextPath"); >> + id = server.getString("webslingerServerId"); >> + target = server.getString("target"); >> + List<GenericValue> baseValues = server.getRelatedCache("WebslingerServerBase", UtilMisc.toList("seqNum")); >> + bases = new String[baseValues.size()]; >> + for (int i = 0; i < bases.length; i++) { >> + GenericValue baseValue = baseValues.get(i); >> + bases[i] = baseValue.getString("baseName"); >> + } >> + delegatorName = server.getString("delegatorName"); >> + dispatcherName = server.getString("dispatcherName"); >> + hashCode = target.hashCode() ^ ObjectUtil.hashCodeHelper(delegatorName) ^ Arrays.hashCode(bases); >> + } >> + >> + public String getContextPath() { >> + return contextPath; >> + } >> + >> + public String getId() { >> + return id; >> + } >> + >> + public String getTarget() { >> + return target; >> + } >> + >> + public String[] getBases() { >> + return bases; >> + } >> + >> + @Override >> + public int hashCode() { >> + return hashCode; >> + } >> + >> + @Override >> + public boolean equals(Object o) { >> + if (!(o instanceof OfbizLayout)) return false; >> + OfbizLayout other = (OfbizLayout) o; >> + if (!contextPath.equals(other.contextPath)) return false; >> + if (!target.equals(other.target)) return false; >> + if (!ObjectUtil.equalsHelper(delegatorName, other.delegatorName)) return false; >> + return Arrays.equals(bases, other.bases); >> + } >> + } >> +} >> >> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ WebslingerServerEngine.java >> URL: >> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/WebslingerServerEngine.java?rev=833727&r1=833726&r2=833727&view=diff >> = = = = = = = = ====================================================================== >> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ WebslingerServerEngine.java (original) >> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ WebslingerServerEngine.java Sat Nov 7 18:18:33 2009 >> @@ -1,64 +1,59 @@ >> -/ ******************************************************************************* >> - * Licensed to the Apache Software Foundation (ASF) under one >> - * or more contributor license agreements. See the NOTICE file >> - * distributed with this work for additional information >> - * regarding copyright ownership. The ASF licenses this file >> - * to you under the Apache License, Version 2.0 (the >> - * "License"); you may not use this file except in compliance >> - * with the License. You may obtain a copy of the License at >> - * >> - * http://www.apache.org/licenses/LICENSE-2.0 >> - * >> - * Unless required by applicable law or agreed to in writing, >> - * software distributed under the License is distributed on an >> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >> - * KIND, either express or implied. See the License for the >> - * specific language governing permissions and limitations >> - * under the License. >> - *******************************************************************************/ >> -package org.ofbiz.webslinger; >> - >> -import java.io.IOException; >> -import java.io.StringReader; >> -import java.io.StringWriter; >> -import java.util.Collections; >> -import java.util.Map; >> - >> -import org.ofbiz.base.util.UtilGenerics; >> -import org.ofbiz.base.util.UtilMisc; >> -import org.ofbiz.entity.Delegator; >> -import org.ofbiz.entity.GenericValue; >> -import org.ofbiz.entity.util.EntityUtil; >> -import org.ofbiz.service.GenericServiceException; >> -import org.ofbiz.service.ModelService; >> -import org.ofbiz.service.ServiceDispatcher; >> -import org.ofbiz.service.engine.GenericAsyncEngine; >> - >> -import org.webslinger.WebslingerServletContext; >> - >> -public class WebslingerServerEngine extends GenericAsyncEngine { >> - public WebslingerServerEngine(ServiceDispatcher dispatcher) { >> - super(dispatcher); >> - } >> - >> - @Override >> - public void runSyncIgnore(String localName, ModelService modelService, Map<String, Object> context) throws >> GenericServiceException { >> - runSync(localName, modelService, context); >> - } >> - >> - @Override >> - public Map<String, Object> runSync(String localName, ModelService modelService, Map<String, Object> context) throws >> GenericServiceException { >> - Delegator delegator = dispatcher.getDelegator(); >> - try { >> - GenericValue found = EntityUtil.getFirst(delegator.findByAndCache("WebslingerLayout", >> UtilMisc.toMap("webslingerServerId", modelService.location))); >> - if (found == null) throw new GenericServiceException("Couldn't find server mapping for(" + modelService.location + >> ")"); >> - return UtilGenerics .checkMap (WebslingerServletContext.invokeInVM(found.getString("hostName"), 8080, >> modelService.invoke, context)); >> - } catch (RuntimeException e) { >> - throw e; >> - } catch (GenericServiceException e) { >> - throw e; >> - } catch (Exception e) { >> - throw UtilMisc.initCause(new GenericServiceException(e.getMessage()), e); >> - } >> - } >> -} >> +/ ******************************************************************************* >> + * Licensed to the Apache Software Foundation (ASF) under one >> + * or more contributor license agreements. See the NOTICE file >> + * distributed with this work for additional information >> + * regarding copyright ownership. The ASF licenses this file >> + * to you under the Apache License, Version 2.0 (the >> + * "License"); you may not use this file except in compliance >> + * with the License. You may obtain a copy of the License at >> + * >> + * http://www.apache.org/licenses/LICENSE-2.0 >> + * >> + * Unless required by applicable law or agreed to in writing, >> + * software distributed under the License is distributed on an >> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >> + * KIND, either express or implied. See the License for the >> + * specific language governing permissions and limitations >> + * under the License. >> + *******************************************************************************/ >> +package org.ofbiz.webslinger; >> + >> +import java.util.Map; >> + >> +import org.ofbiz.base.util.UtilGenerics; >> +import org.ofbiz.base.util.UtilMisc; >> +import org.ofbiz.entity.Delegator; >> +import org.ofbiz.entity.GenericValue; >> +import org.ofbiz.entity.util.EntityUtil; >> +import org.ofbiz.service.GenericServiceException; >> +import org.ofbiz.service.ModelService; >> +import org.ofbiz.service.ServiceDispatcher; >> +import org.ofbiz.service.engine.GenericAsyncEngine; >> +import org.webslinger.WebslingerServletContext; >> + >> +public class WebslingerServerEngine extends GenericAsyncEngine { >> + public WebslingerServerEngine(ServiceDispatcher dispatcher) { >> + super(dispatcher); >> + } >> + >> + @Override >> + public void runSyncIgnore(String localName, ModelService modelService, Map<String, Object> context) throws >> GenericServiceException { >> + runSync(localName, modelService, context); >> + } >> + >> + @Override >> + public Map<String, Object> runSync(String localName, ModelService modelService, Map<String, Object> context) throws >> GenericServiceException { >> + Delegator delegator = dispatcher.getDelegator(); >> + try { >> + GenericValue found = EntityUtil.getFirst(delegator.findByAndCache("WebslingerLayout", >> UtilMisc.toMap("webslingerServerId", modelService.location))); >> + if (found == null) throw new GenericServiceException("Couldn't find server mapping for(" + modelService.location + >> ")"); >> + return UtilGenerics .checkMap (WebslingerServletContext.invokeInVM(found.getString("hostName"), 8080, >> modelService.invoke, context)); >> + } catch (RuntimeException e) { >> + throw e; >> + } catch (GenericServiceException e) { >> + throw e; >> + } catch (Exception e) { >> + throw UtilMisc.initCause(new GenericServiceException(e.getMessage()), e); >> + } >> + } >> +} >> >> > > |
Hi Jacques,
I think the problem is related to files in svn that do not have any svn properties set (specifically eol-style), I just came across this myself in r833931 and r833933. When I initially applied the patch the entire file changed but after setting the svn properties the issue went away. Regards Scott On 9/11/2009, at 11:32 AM, Jacques Le Roux wrote: > Sorry Scott, > > I have still not got the reflex... As I have not touched the patch > (ok you have to trust me) you may review the patch itself... > > Jacques > > From: "Scott Gray" <[hidden email]> >> Hi Jacques, >> >> This is that same problem with the patch again, please keep an eye >> out for these as the commits are impossible to review. >> >> Thanks >> Scott >> >> HotWax Media >> http://www.hotwaxmedia.com >> >> On 8/11/2009, at 7:18 AM, [hidden email] wrote: >> >>> Author: jleroux >>> Date: Sat Nov 7 18:18:33 2009 >>> New Revision: 833727 >>> >>> URL: http://svn.apache.org/viewvc?rev=833727&view=rev >>> Log: >>> A patch from Marc Morin "Resolve java warnings exposed in >>> Eclipse : framework - webslinger" (https://issues.apache.org/jira/browse/OFBIZ-3121 >>> ) - OFBIZ-3121 >>> >>> Modified: >>> ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ >>> CommonsVfsContainer.java >>> ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ >>> ofbiz/ OfbizComponentProvider.java >>> ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ >>> ofbiz/ OfbizHomeProvider.java >>> ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ >>> EntityHttpUtil.java >>> ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ >>> StatsUpdater.java >>> ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ >>> WebslingerContextMapper.java >>> ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ >>> WebslingerServerEngine.java >>> >>> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/ >>> vfs/ CommonsVfsContainer.java >>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/CommonsVfsContainer.java?rev=833727&r1=833726&r2=833727&view=diff >>> = = = = = = = = >>> = >>> = >>> ==================================================================== >>> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ >>> CommonsVfsContainer.java (original) >>> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ >>> CommonsVfsContainer.java Sat Nov 7 18:18:33 2009 >>> @@ -1,68 +1,66 @@ >>> -/ >>> ******************************************************************************* >>> - * Licensed to the Apache Software Foundation (ASF) under one >>> - * or more contributor license agreements. See the NOTICE file >>> - * distributed with this work for additional information >>> - * regarding copyright ownership. The ASF licenses this file >>> - * to you under the Apache License, Version 2.0 (the >>> - * "License"); you may not use this file except in compliance >>> - * with the License. You may obtain a copy of the License at >>> - * >>> - * http://www.apache.org/licenses/LICENSE-2.0 >>> - * >>> - * Unless required by applicable law or agreed to in writing, >>> - * software distributed under the License is distributed on an >>> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>> - * KIND, either express or implied. See the License for the >>> - * specific language governing permissions and limitations >>> - * under the License. >>> - >>> *******************************************************************************/ >>> -package org.ofbiz.commons.vfs; >>> - >>> -import java.io.File; >>> -import java.io.IOException; >>> -import java.net.MalformedURLException; >>> - >>> -import org.apache.commons.vfs.CacheStrategy; >>> -import org.apache.commons.vfs.FileObject; >>> -import org.apache.commons.vfs.FileSystemException; >>> -import org.apache.commons.vfs.FileSystemManager; >>> -import org.apache.commons.vfs.impl.StandardFileSystemManager; >>> - >>> -import org.ofbiz.base.container.Container; >>> -import org.ofbiz.base.container.ContainerException; >>> -import org.ofbiz.base.util.UtilMisc; >>> -import org.webslinger.commons.vfs.VFSUtil; >>> - >>> -public class CommonsVfsContainer implements Container { >>> - private static StandardFileSystemManager sfsm; >>> - >>> - public void init(String[] args, String configFile) throws >>> ContainerException { >>> - } >>> - >>> - public boolean start() throws ContainerException { >>> - try { >>> - StandardFileSystemManager sfsm = >>> VFSUtil.createStandardFileSystemManager(); >>> - FileObject currentDir = sfsm.resolveFile(new >>> File(".").toURI().toURL().toString()); >>> - sfsm.setBaseFile(currentDir); >>> - CommonsVfsContainer.sfsm = sfsm; >>> - } catch (FileSystemException e) { >>> - throw UtilMisc.initCause(new >>> ContainerException("Initializing StandardFileSystemManager"), e); >>> - } catch (MalformedURLException e) { >>> - throw UtilMisc.initCause(new >>> ContainerException("Initializing StandardFileSystemManager"), e); >>> - } >>> - return true; >>> - } >>> - >>> - public void stop() throws ContainerException { >>> - sfsm.close(); >>> - sfsm = null; >>> - } >>> - >>> - public static FileObject resolveFile(String uri) throws >>> IOException { >>> - return sfsm.resolveFile(uri); >>> - } >>> - >>> - public static FileSystemManager getFileSystemManager() { >>> - return sfsm; >>> - } >>> -} >>> +/ >>> ******************************************************************************* >>> + * Licensed to the Apache Software Foundation (ASF) under one >>> + * or more contributor license agreements. See the NOTICE file >>> + * distributed with this work for additional information >>> + * regarding copyright ownership. The ASF licenses this file >>> + * to you under the Apache License, Version 2.0 (the >>> + * "License"); you may not use this file except in compliance >>> + * with the License. You may obtain a copy of the License at >>> + * >>> + * http://www.apache.org/licenses/LICENSE-2.0 >>> + * >>> + * Unless required by applicable law or agreed to in writing, >>> + * software distributed under the License is distributed on an >>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>> + * KIND, either express or implied. See the License for the >>> + * specific language governing permissions and limitations >>> + * under the License. >>> + >>> *******************************************************************************/ >>> +package org.ofbiz.commons.vfs; >>> + >>> +import java.io.File; >>> +import java.io.IOException; >>> +import java.net.MalformedURLException; >>> + >>> +import org.apache.commons.vfs.FileObject; >>> +import org.apache.commons.vfs.FileSystemException; >>> +import org.apache.commons.vfs.FileSystemManager; >>> +import org.apache.commons.vfs.impl.StandardFileSystemManager; >>> +import org.ofbiz.base.container.Container; >>> +import org.ofbiz.base.container.ContainerException; >>> +import org.ofbiz.base.util.UtilMisc; >>> +import org.webslinger.commons.vfs.VFSUtil; >>> + >>> +public class CommonsVfsContainer implements Container { >>> + private static StandardFileSystemManager sfsm; >>> + >>> + public void init(String[] args, String configFile) throws >>> ContainerException { >>> + } >>> + >>> + public boolean start() throws ContainerException { >>> + try { >>> + StandardFileSystemManager sfsm = >>> VFSUtil.createStandardFileSystemManager(); >>> + FileObject currentDir = sfsm.resolveFile(new >>> File(".").toURI().toURL().toString()); >>> + sfsm.setBaseFile(currentDir); >>> + CommonsVfsContainer.sfsm = sfsm; >>> + } catch (FileSystemException e) { >>> + throw UtilMisc.initCause(new >>> ContainerException("Initializing StandardFileSystemManager"), e); >>> + } catch (MalformedURLException e) { >>> + throw UtilMisc.initCause(new >>> ContainerException("Initializing StandardFileSystemManager"), e); >>> + } >>> + return true; >>> + } >>> + >>> + public void stop() throws ContainerException { >>> + sfsm.close(); >>> + sfsm = null; >>> + } >>> + >>> + public static FileObject resolveFile(String uri) throws >>> IOException { >>> + return sfsm.resolveFile(uri); >>> + } >>> + >>> + public static FileSystemManager getFileSystemManager() { >>> + return sfsm; >>> + } >>> +} >>> >>> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/ >>> vfs/ ofbiz/OfbizComponentProvider.java >>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ofbiz/OfbizComponentProvider.java?rev=833727&r1=833726&r2=833727&view=diff >>> = = = = = = = = >>> = >>> = >>> ==================================================================== >>> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ >>> ofbiz/ OfbizComponentProvider.java (original) >>> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ >>> ofbiz/ OfbizComponentProvider.java Sat Nov 7 18:18:33 2009 >>> @@ -1,58 +1,58 @@ >>> -/ >>> ******************************************************************************* >>> - * Licensed to the Apache Software Foundation (ASF) under one >>> - * or more contributor license agreements. See the NOTICE file >>> - * distributed with this work for additional information >>> - * regarding copyright ownership. The ASF licenses this file >>> - * to you under the Apache License, Version 2.0 (the >>> - * "License"); you may not use this file except in compliance >>> - * with the License. You may obtain a copy of the License at >>> - * >>> - * http://www.apache.org/licenses/LICENSE-2.0 >>> - * >>> - * Unless required by applicable law or agreed to in writing, >>> - * software distributed under the License is distributed on an >>> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>> - * KIND, either express or implied. See the License for the >>> - * specific language governing permissions and limitations >>> - * under the License. >>> - >>> *******************************************************************************/ >>> -package org.ofbiz.commons.vfs.ofbiz; >>> - >>> -import java.net.URL; >>> -import java.util.Collection; >>> -import org.apache.commons.vfs.FileObject; >>> -import org.apache.commons.vfs.FileSystemException; >>> -import org.apache.commons.vfs.FileSystemOptions; >>> -import org.apache.commons.vfs.provider.AbstractFileProvider; >>> -import >>> org.apache.commons.vfs.provider.local.DefaultLocalFileProvider; >>> -import org.ofbiz.base.location.FlexibleLocation; >>> -import org.ofbiz.base.util.UtilMisc; >>> -import org.webslinger.commons.vfs.VFSUtil; >>> - >>> -public class OfbizComponentProvider extends AbstractFileProvider { >>> - public Collection getCapabilities() { >>> - return DefaultLocalFileProvider.capabilities; >>> - } >>> - >>> - public FileObject findFile(FileObject base, String name, >>> FileSystemOptions properties) throws FileSystemException { >>> - try { >>> - //name = name.replaceAll("^ofbiz-component://", ""); >>> - int nameLength = name.length(); >>> - int componentNameStart = 16; >>> - while (componentNameStart < nameLength && >>> name.charAt(componentNameStart) == '/') componentNameStart++; >>> - if (componentNameStart == nameLength) throw new >>> IllegalArgumentException("Invalid name(" + name + ")"); >>> - int componentNameEnd = componentNameStart; >>> - while (componentNameEnd < nameLength && >>> name.charAt(componentNameEnd) != '/') componentNameEnd++; >>> - if (componentNameEnd == nameLength) throw new >>> IllegalArgumentException("Invalid name(" + name + ")"); >>> - int restStart = componentNameEnd; >>> - while (restStart < nameLength && >>> name.charAt(restStart) == '/') restStart++; >>> - if (restStart == nameLength) throw new >>> IllegalArgumentException("Invalid name(" + name + ")"); >>> - String componentName = >>> name.substring(componentNameStart, componentNameEnd); >>> - URL location = >>> FlexibleLocation.resolveLocation("component://" + componentName + >>> "/."); >>> - FileObject ofbizBase = >>> getContext().resolveFile(location.toString(), properties); >>> - return >>> VFSUtil >>> .toFileObject(ofbizBase.getFileSystem().getFileSystemManager(), >>> ofbizBase >>> .resolveFile(name.substring(restStart)).getURL().toString(), >>> properties); >>> - } catch (Exception e) { >>> - throw UtilMisc.initCause(new >>> FileSystemException(e.getMessage(), null, e), e); >>> - } >>> - } >>> -} >>> +/ >>> ******************************************************************************* >>> + * Licensed to the Apache Software Foundation (ASF) under one >>> + * or more contributor license agreements. See the NOTICE file >>> + * distributed with this work for additional information >>> + * regarding copyright ownership. The ASF licenses this file >>> + * to you under the Apache License, Version 2.0 (the >>> + * "License"); you may not use this file except in compliance >>> + * with the License. You may obtain a copy of the License at >>> + * >>> + * http://www.apache.org/licenses/LICENSE-2.0 >>> + * >>> + * Unless required by applicable law or agreed to in writing, >>> + * software distributed under the License is distributed on an >>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>> + * KIND, either express or implied. See the License for the >>> + * specific language governing permissions and limitations >>> + * under the License. >>> + >>> *******************************************************************************/ >>> +package org.ofbiz.commons.vfs.ofbiz; >>> + >>> +import java.net.URL; >>> +import java.util.Collection; >>> +import org.apache.commons.vfs.FileObject; >>> +import org.apache.commons.vfs.FileSystemException; >>> +import org.apache.commons.vfs.FileSystemOptions; >>> +import org.apache.commons.vfs.provider.AbstractFileProvider; >>> +import >>> org.apache.commons.vfs.provider.local.DefaultLocalFileProvider; >>> +import org.ofbiz.base.location.FlexibleLocation; >>> +import org.ofbiz.base.util.UtilMisc; >>> +import org.webslinger.commons.vfs.VFSUtil; >>> + >>> +public class OfbizComponentProvider extends AbstractFileProvider { >>> + public Collection<?> getCapabilities() { >>> + return DefaultLocalFileProvider.capabilities; >>> + } >>> + >>> + public FileObject findFile(FileObject base, String name, >>> FileSystemOptions properties) throws FileSystemException { >>> + try { >>> + //name = name.replaceAll("^ofbiz-component://", ""); >>> + int nameLength = name.length(); >>> + int componentNameStart = 16; >>> + while (componentNameStart < nameLength && >>> name.charAt(componentNameStart) == '/') componentNameStart++; >>> + if (componentNameStart == nameLength) throw new >>> IllegalArgumentException("Invalid name(" + name + ")"); >>> + int componentNameEnd = componentNameStart; >>> + while (componentNameEnd < nameLength && >>> name.charAt(componentNameEnd) != '/') componentNameEnd++; >>> + if (componentNameEnd == nameLength) throw new >>> IllegalArgumentException("Invalid name(" + name + ")"); >>> + int restStart = componentNameEnd; >>> + while (restStart < nameLength && >>> name.charAt(restStart) == '/') restStart++; >>> + if (restStart == nameLength) throw new >>> IllegalArgumentException("Invalid name(" + name + ")"); >>> + String componentName = >>> name.substring(componentNameStart, componentNameEnd); >>> + URL location = >>> FlexibleLocation.resolveLocation("component://" + componentName + >>> "/."); >>> + FileObject ofbizBase = >>> getContext().resolveFile(location.toString(), properties); >>> + return >>> VFSUtil >>> .toFileObject(ofbizBase.getFileSystem().getFileSystemManager(), >>> ofbizBase >>> .resolveFile(name.substring(restStart)).getURL().toString(), >>> properties); >>> + } catch (Exception e) { >>> + throw UtilMisc.initCause(new >>> FileSystemException(e.getMessage(), null, e), e); >>> + } >>> + } >>> +} >>> >>> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/ >>> vfs/ ofbiz/OfbizHomeProvider.java >>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ofbiz/OfbizHomeProvider.java?rev=833727&r1=833726&r2=833727&view=diff >>> = = = = = = = = >>> = >>> = >>> ==================================================================== >>> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ >>> ofbiz/ OfbizHomeProvider.java (original) >>> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ >>> ofbiz/ OfbizHomeProvider.java Sat Nov 7 18:18:33 2009 >>> @@ -1,50 +1,50 @@ >>> -/ >>> ******************************************************************************* >>> - * Licensed to the Apache Software Foundation (ASF) under one >>> - * or more contributor license agreements. See the NOTICE file >>> - * distributed with this work for additional information >>> - * regarding copyright ownership. The ASF licenses this file >>> - * to you under the Apache License, Version 2.0 (the >>> - * "License"); you may not use this file except in compliance >>> - * with the License. You may obtain a copy of the License at >>> - * >>> - * http://www.apache.org/licenses/LICENSE-2.0 >>> - * >>> - * Unless required by applicable law or agreed to in writing, >>> - * software distributed under the License is distributed on an >>> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>> - * KIND, either express or implied. See the License for the >>> - * specific language governing permissions and limitations >>> - * under the License. >>> - >>> *******************************************************************************/ >>> -package org.ofbiz.commons.vfs.ofbiz; >>> - >>> -import java.net.URL; >>> -import java.util.Collection; >>> - >>> -import org.apache.commons.vfs.FileObject; >>> -import org.apache.commons.vfs.FileSystemException; >>> -import org.apache.commons.vfs.FileSystemOptions; >>> -import org.apache.commons.vfs.provider.AbstractFileProvider; >>> -import >>> org.apache.commons.vfs.provider.local.DefaultLocalFileProvider; >>> - >>> -import org.ofbiz.base.location.FlexibleLocation; >>> -import org.ofbiz.base.util.UtilMisc; >>> - >>> -import org.webslinger.commons.vfs.VFSUtil; >>> - >>> -public class OfbizHomeProvider extends AbstractFileProvider { >>> - public Collection getCapabilities() { >>> - return DefaultLocalFileProvider.capabilities; >>> - } >>> - >>> - public FileObject findFile(FileObject base, String name, >>> FileSystemOptions properties) throws FileSystemException { >>> - //new Exception("findFile(" + base + ", " + name + >>> ")").printStackTrace(); >>> - try { >>> - URL location = >>> FlexibleLocation.resolveLocation("ofbizhome://."); >>> - FileObject ofbizBase = >>> getContext().resolveFile(location.toString(), properties); >>> - return >>> VFSUtil >>> .toFileObject(ofbizBase.getFileSystem().getFileSystemManager(), >>> ofbizBase.resolveFile(name.substring(13)).getURL().toString(), >>> properties); >>> - } catch (Exception e) { >>> - throw UtilMisc.initCause(new >>> FileSystemException(e.getMessage(), null, e), e); >>> - } >>> - } >>> -} >>> +/ >>> ******************************************************************************* >>> + * Licensed to the Apache Software Foundation (ASF) under one >>> + * or more contributor license agreements. See the NOTICE file >>> + * distributed with this work for additional information >>> + * regarding copyright ownership. The ASF licenses this file >>> + * to you under the Apache License, Version 2.0 (the >>> + * "License"); you may not use this file except in compliance >>> + * with the License. You may obtain a copy of the License at >>> + * >>> + * http://www.apache.org/licenses/LICENSE-2.0 >>> + * >>> + * Unless required by applicable law or agreed to in writing, >>> + * software distributed under the License is distributed on an >>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>> + * KIND, either express or implied. See the License for the >>> + * specific language governing permissions and limitations >>> + * under the License. >>> + >>> *******************************************************************************/ >>> +package org.ofbiz.commons.vfs.ofbiz; >>> + >>> +import java.net.URL; >>> +import java.util.Collection; >>> + >>> +import org.apache.commons.vfs.FileObject; >>> +import org.apache.commons.vfs.FileSystemException; >>> +import org.apache.commons.vfs.FileSystemOptions; >>> +import org.apache.commons.vfs.provider.AbstractFileProvider; >>> +import >>> org.apache.commons.vfs.provider.local.DefaultLocalFileProvider; >>> + >>> +import org.ofbiz.base.location.FlexibleLocation; >>> +import org.ofbiz.base.util.UtilMisc; >>> + >>> +import org.webslinger.commons.vfs.VFSUtil; >>> + >>> +public class OfbizHomeProvider extends AbstractFileProvider { >>> + public Collection<?> getCapabilities() { >>> + return DefaultLocalFileProvider.capabilities; >>> + } >>> + >>> + public FileObject findFile(FileObject base, String name, >>> FileSystemOptions properties) throws FileSystemException { >>> + //new Exception("findFile(" + base + ", " + name + >>> ")").printStackTrace(); >>> + try { >>> + URL location = >>> FlexibleLocation.resolveLocation("ofbizhome://."); >>> + FileObject ofbizBase = >>> getContext().resolveFile(location.toString(), properties); >>> + return >>> VFSUtil >>> .toFileObject(ofbizBase.getFileSystem().getFileSystemManager(), >>> ofbizBase.resolveFile(name.substring(13)).getURL().toString(), >>> properties); >>> + } catch (Exception e) { >>> + throw UtilMisc.initCause(new >>> FileSystemException(e.getMessage(), null, e), e); >>> + } >>> + } >>> +} >>> >>> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/ >>> webslinger/ EntityHttpUtil.java >>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/EntityHttpUtil.java?rev=833727&r1=833726&r2=833727&view=diff >>> = = = = = = = = >>> = >>> = >>> ==================================================================== >>> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ >>> EntityHttpUtil.java (original) >>> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ >>> EntityHttpUtil.java Sat Nov 7 18:18:33 2009 >>> @@ -1,78 +1,73 @@ >>> -/ >>> ******************************************************************************* >>> - * Licensed to the Apache Software Foundation (ASF) under one >>> - * or more contributor license agreements. See the NOTICE file >>> - * distributed with this work for additional information >>> - * regarding copyright ownership. The ASF licenses this file >>> - * to you under the Apache License, Version 2.0 (the >>> - * "License"); you may not use this file except in compliance >>> - * with the License. You may obtain a copy of the License at >>> - * >>> - * http://www.apache.org/licenses/LICENSE-2.0 >>> - * >>> - * Unless required by applicable law or agreed to in writing, >>> - * software distributed under the License is distributed on an >>> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>> - * KIND, either express or implied. See the License for the >>> - * specific language governing permissions and limitations >>> - * under the License. >>> - >>> *******************************************************************************/ >>> -package org.ofbiz.webslinger; >>> - >>> -import java.util.HashMap; >>> -import java.util.Iterator; >>> -import java.util.Locale; >>> -import java.util.Map; >>> - >>> -import javax.servlet.ServletRequest; >>> -import javax.servlet.http.HttpServletRequest; >>> - >>> -import org.ofbiz.base.util.GeneralException; >>> -import org.ofbiz.base.util.ObjectType; >>> -import org.ofbiz.base.util.UtilHttp; >>> -import org.ofbiz.base.util.UtilMisc; >>> -import org.ofbiz.base.util.UtilValidate; >>> -import org.ofbiz.entity.Delegator; >>> -import org.ofbiz.entity.GenericValue; >>> -import org.ofbiz.entity.jdbc.SqlJdbcUtil; >>> -import org.ofbiz.entity.model.ModelEntity; >>> -import org.ofbiz.entity.model.ModelField; >>> -import org.ofbiz.entity.model.ModelFieldType; >>> - >>> -public class EntityHttpUtil { >>> - public static GenericValue makeValidValue(String entityName, >>> ServletRequest request) throws GeneralException { >>> - return makeValidValue(entityName, false, request); >>> - } >>> - >>> - public static GenericValue makeValidValue(String entityName, >>> boolean includePks, ServletRequest request) throws >>> GeneralException { >>> - if (request instanceof HttpServletRequest) return >>> makeValidValue(entityName, includePks, (HttpServletRequest) >>> request); >>> - throw new IllegalArgumentException("Not an >>> HttpServletRequest"); >>> - } >>> - >>> - public static GenericValue makeValidValue(String entityName, >>> HttpServletRequest request) throws GeneralException { >>> - return makeValidValue(entityName, false, request); >>> - } >>> - >>> - public static GenericValue makeValidValue(String entityName, >>> boolean includePks, HttpServletRequest request) throws >>> GeneralException { >>> - Delegator delegator = (Delegator) >>> request.getAttribute("delegator"); >>> - GenericValue value = delegator.makeValue(entityName); >>> - ModelEntity model = value.getModelEntity(); >>> - Iterator<ModelField> it = includePks ? >>> model.getFieldsIterator() : model.getNopksIterator(); >>> - Locale locale = UtilHttp.getLocale(request); >>> - while (it.hasNext()) { >>> - ModelField field = it.next(); >>> - String fieldName = field.getName(); >>> - String parameterValue = >>> request.getParameter(fieldName); >>> - Object fieldValue; >>> - if (parameterValue == null) { >>> - fieldValue = null; >>> - } else { >>> - ModelFieldType fieldType = >>> delegator.getEntityFieldType(model, field.getType()); >>> - String wantedType = fieldType.getJavaType(); >>> - fieldValue = >>> ObjectType.simpleTypeConvert(parameterValue, wantedType, null, >>> locale, true); >>> - } >>> - value.put(fieldName, fieldValue); >>> - } >>> - return value; >>> - } >>> -} >>> - >>> +/ >>> ******************************************************************************* >>> + * Licensed to the Apache Software Foundation (ASF) under one >>> + * or more contributor license agreements. See the NOTICE file >>> + * distributed with this work for additional information >>> + * regarding copyright ownership. The ASF licenses this file >>> + * to you under the Apache License, Version 2.0 (the >>> + * "License"); you may not use this file except in compliance >>> + * with the License. You may obtain a copy of the License at >>> + * >>> + * http://www.apache.org/licenses/LICENSE-2.0 >>> + * >>> + * Unless required by applicable law or agreed to in writing, >>> + * software distributed under the License is distributed on an >>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>> + * KIND, either express or implied. See the License for the >>> + * specific language governing permissions and limitations >>> + * under the License. >>> + >>> *******************************************************************************/ >>> +package org.ofbiz.webslinger; >>> + >>> +import java.util.Iterator; >>> +import java.util.Locale; >>> + >>> +import javax.servlet.ServletRequest; >>> +import javax.servlet.http.HttpServletRequest; >>> + >>> +import org.ofbiz.base.util.GeneralException; >>> +import org.ofbiz.base.util.ObjectType; >>> +import org.ofbiz.base.util.UtilHttp; >>> +import org.ofbiz.entity.Delegator; >>> +import org.ofbiz.entity.GenericValue; >>> +import org.ofbiz.entity.model.ModelEntity; >>> +import org.ofbiz.entity.model.ModelField; >>> +import org.ofbiz.entity.model.ModelFieldType; >>> + >>> +public class EntityHttpUtil { >>> + public static GenericValue makeValidValue(String entityName, >>> ServletRequest request) throws GeneralException { >>> + return makeValidValue(entityName, false, request); >>> + } >>> + >>> + public static GenericValue makeValidValue(String entityName, >>> boolean includePks, ServletRequest request) throws >>> GeneralException { >>> + if (request instanceof HttpServletRequest) return >>> makeValidValue(entityName, includePks, (HttpServletRequest) >>> request); >>> + throw new IllegalArgumentException("Not an >>> HttpServletRequest"); >>> + } >>> + >>> + public static GenericValue makeValidValue(String entityName, >>> HttpServletRequest request) throws GeneralException { >>> + return makeValidValue(entityName, false, request); >>> + } >>> + >>> + public static GenericValue makeValidValue(String entityName, >>> boolean includePks, HttpServletRequest request) throws >>> GeneralException { >>> + Delegator delegator = (Delegator) >>> request.getAttribute("delegator"); >>> + GenericValue value = delegator.makeValue(entityName); >>> + ModelEntity model = value.getModelEntity(); >>> + Iterator<ModelField> it = includePks ? >>> model.getFieldsIterator() : model.getNopksIterator(); >>> + Locale locale = UtilHttp.getLocale(request); >>> + while (it.hasNext()) { >>> + ModelField field = it.next(); >>> + String fieldName = field.getName(); >>> + String parameterValue = >>> request.getParameter(fieldName); >>> + Object fieldValue; >>> + if (parameterValue == null) { >>> + fieldValue = null; >>> + } else { >>> + ModelFieldType fieldType = >>> delegator.getEntityFieldType(model, field.getType()); >>> + String wantedType = fieldType.getJavaType(); >>> + fieldValue = >>> ObjectType.simpleTypeConvert(parameterValue, wantedType, null, >>> locale, true); >>> + } >>> + value.put(fieldName, fieldValue); >>> + } >>> + return value; >>> + } >>> +} >>> + >>> >>> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/ >>> webslinger/ StatsUpdater.java >>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/StatsUpdater.java?rev=833727&r1=833726&r2=833727&view=diff >>> = = = = = = = = >>> = >>> = >>> ==================================================================== >>> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ >>> StatsUpdater.java (original) >>> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ >>> StatsUpdater.java Sat Nov 7 18:18:33 2009 >>> @@ -1,121 +1,118 @@ >>> -/ >>> ******************************************************************************* >>> - * Licensed to the Apache Software Foundation (ASF) under one >>> - * or more contributor license agreements. See the NOTICE file >>> - * distributed with this work for additional information >>> - * regarding copyright ownership. The ASF licenses this file >>> - * to you under the Apache License, Version 2.0 (the >>> - * "License"); you may not use this file except in compliance >>> - * with the License. You may obtain a copy of the License at >>> - * >>> - * http://www.apache.org/licenses/LICENSE-2.0 >>> - * >>> - * Unless required by applicable law or agreed to in writing, >>> - * software distributed under the License is distributed on an >>> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>> - * KIND, either express or implied. See the License for the >>> - * specific language governing permissions and limitations >>> - * under the License. >>> - >>> *******************************************************************************/ >>> -package org.ofbiz.webslinger; >>> - >>> -import java.util.HashMap; >>> -import java.util.Iterator; >>> -import java.util.Map; >>> -import java.util.concurrent.Callable; >>> -import java.util.concurrent.ConcurrentHashMap; >>> -import java.util.concurrent.ScheduledFuture; >>> -import java.util.concurrent.TimeUnit; >>> -import java.util.concurrent.atomic.AtomicReference; >>> - >>> -import org.ofbiz.base.util.UtilMisc; >>> -import org.ofbiz.entity.Delegator; >>> -import org.ofbiz.entity.GenericEntityException; >>> -import org.ofbiz.entity.GenericPK; >>> -import org.ofbiz.entity.GenericValue; >>> - >>> -import org.webslinger.cache.ConcurrentCache; >>> -import org.webslinger.concurrent.ExecutionPool; >>> - >>> -public class StatsUpdater { >>> - private static final Updater UPDATER = new Updater(); >>> - >>> - public static void updateStats(Delegator delegator, String >>> entityName, Map<String, ? extends Object> keyFields, >>> Map<String, ? extends Long> updateCountFields) throws >>> GenericEntityException { >>> - GenericPK pk = delegator.makePK(entityName, keyFields); >>> - Map<String, Long> value = UPDATER.getValue(pk); >>> - synchronized (value) { >>> - for (Map.Entry<String, ? extends Long> entry: >>> updateCountFields.entrySet()) { >>> - Long oldValue = value.get(entry.getKey()); >>> - if (oldValue != null) { >>> - value.put(entry.getKey(), >>> Long.valueOf(oldValue.longValue() + entry.getValue())); >>> - } else { >>> - value.put(entry.getKey(), entry.getValue()); >>> - } >>> - } >>> - } >>> - } >>> - >>> - private static final class Updater implements Callable<Void> { >>> - protected AtomicReference<EntityHolder> entities = new >>> AtomicReference<EntityHolder>(new EntityHolder(Updater.class, >>> "entities", null)); >>> - protected ScheduledFuture<Void> future; >>> - >>> - protected Map<String, Long> getValue(GenericPK pk) >>> throws GenericEntityException { >>> - synchronized (this) { >>> - if (future == null || future.isDone()) { >>> - future = ExecutionPool.schedule(this, 1, >>> TimeUnit.SECONDS); >>> - } >>> - } >>> - try { >>> - return entities.get().get(pk); >>> - } catch (RuntimeException e) { >>> - throw e; >>> - } catch (GenericEntityException e) { >>> - throw e; >>> - } catch (Exception e) { >>> - throw UtilMisc.initCause(new >>> GenericEntityException(e.getMessage()), e); >>> - } >>> - } >>> - >>> - public Void call() { >>> - EntityHolder oldEntities; >>> - EntityHolder newEntities = new >>> EntityHolder(Updater.class, "entities", null); >>> - do { >>> - oldEntities = entities.get(); >>> - } while (!entities.compareAndSet(oldEntities, >>> newEntities)); >>> - synchronized (Updater.class) { >>> - for (GenericPK pk: oldEntities.keys()) { >>> - try { >>> - Map<String, Long> add = >>> oldEntities.get(pk); >>> - GenericValue existing = >>> pk.getDelegator().findOne(pk.getEntityName(), pk, false); >>> - if (existing == null) { >>> - existing = >>> pk.getDelegator().create(pk.getEntityName(), pk); >>> - } >>> - for (Map.Entry<String, Long> entry: >>> add.entrySet()) { >>> - Long value = entry.getValue(); >>> - Long oldValue = >>> existing.getLong(entry.getKey()); >>> - if (oldValue != null) { >>> - existing.put(entry.getKey(), >>> Long.valueOf(value.longValue() + oldValue.longValue())); >>> - } else { >>> - existing.put(entry.getKey(), >>> value); >>> - } >>> - } >>> - existing.store(); >>> - } catch (Exception e) { >>> - e.printStackTrace(); >>> - } >>> - } >>> - } >>> - return null; >>> - } >>> - } >>> - >>> - private static final class EntityHolder extends >>> ConcurrentCache<GenericPK, Map<String, Long>> { >>> - protected EntityHolder(Class<?> owner, String field, >>> String label) { >>> - super(owner, field, label, HARD); >>> - } >>> - >>> - @Override >>> - protected Map<String, Long> createValue(GenericPK pk) >>> throws Exception { >>> - return new HashMap<String, Long>(); >>> - } >>> - } >>> -} >>> +/ >>> ******************************************************************************* >>> + * Licensed to the Apache Software Foundation (ASF) under one >>> + * or more contributor license agreements. See the NOTICE file >>> + * distributed with this work for additional information >>> + * regarding copyright ownership. The ASF licenses this file >>> + * to you under the Apache License, Version 2.0 (the >>> + * "License"); you may not use this file except in compliance >>> + * with the License. You may obtain a copy of the License at >>> + * >>> + * http://www.apache.org/licenses/LICENSE-2.0 >>> + * >>> + * Unless required by applicable law or agreed to in writing, >>> + * software distributed under the License is distributed on an >>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>> + * KIND, either express or implied. See the License for the >>> + * specific language governing permissions and limitations >>> + * under the License. >>> + >>> *******************************************************************************/ >>> +package org.ofbiz.webslinger; >>> + >>> +import java.util.HashMap; >>> +import java.util.Map; >>> +import java.util.concurrent.Callable; >>> +import java.util.concurrent.ScheduledFuture; >>> +import java.util.concurrent.TimeUnit; >>> +import java.util.concurrent.atomic.AtomicReference; >>> + >>> +import org.ofbiz.base.util.UtilMisc; >>> +import org.ofbiz.entity.Delegator; >>> +import org.ofbiz.entity.GenericEntityException; >>> +import org.ofbiz.entity.GenericPK; >>> +import org.ofbiz.entity.GenericValue; >>> +import org.webslinger.cache.ConcurrentCache; >>> +import org.webslinger.concurrent.ExecutionPool; >>> + >>> +public class StatsUpdater { >>> + private static final Updater UPDATER = new Updater(); >>> + >>> + public static void updateStats(Delegator delegator, String >>> entityName, Map<String, ? extends Object> keyFields, >>> Map<String, ? extends Long> updateCountFields) throws >>> GenericEntityException { >>> + GenericPK pk = delegator.makePK(entityName, keyFields); >>> + Map<String, Long> value = UPDATER.getValue(pk); >>> + synchronized (value) { >>> + for (Map.Entry<String, ? extends Long> entry: >>> updateCountFields.entrySet()) { >>> + Long oldValue = value.get(entry.getKey()); >>> + if (oldValue != null) { >>> + value.put(entry.getKey(), >>> Long.valueOf(oldValue.longValue() + entry.getValue())); >>> + } else { >>> + value.put(entry.getKey(), entry.getValue()); >>> + } >>> + } >>> + } >>> + } >>> + >>> + private static final class Updater implements Callable<Void> { >>> + protected AtomicReference<EntityHolder> entities = new >>> AtomicReference<EntityHolder>(new EntityHolder(Updater.class, >>> "entities", null)); >>> + protected ScheduledFuture<Void> future; >>> + >>> + protected Map<String, Long> getValue(GenericPK pk) >>> throws GenericEntityException { >>> + synchronized (this) { >>> + if (future == null || future.isDone()) { >>> + future = ExecutionPool.schedule(this, 1, >>> TimeUnit.SECONDS); >>> + } >>> + } >>> + try { >>> + return entities.get().get(pk); >>> + } catch (RuntimeException e) { >>> + throw e; >>> + } catch (GenericEntityException e) { >>> + throw e; >>> + } catch (Exception e) { >>> + throw UtilMisc.initCause(new >>> GenericEntityException(e.getMessage()), e); >>> + } >>> + } >>> + >>> + public Void call() { >>> + EntityHolder oldEntities; >>> + EntityHolder newEntities = new >>> EntityHolder(Updater.class, "entities", null); >>> + do { >>> + oldEntities = entities.get(); >>> + } while (!entities.compareAndSet(oldEntities, >>> newEntities)); >>> + synchronized (Updater.class) { >>> + for (GenericPK pk: oldEntities.keys()) { >>> + try { >>> + Map<String, Long> add = >>> oldEntities.get(pk); >>> + GenericValue existing = >>> pk.getDelegator().findOne(pk.getEntityName(), pk, false); >>> + if (existing == null) { >>> + existing = >>> pk.getDelegator().create(pk.getEntityName(), pk); >>> + } >>> + for (Map.Entry<String, Long> entry: >>> add.entrySet()) { >>> + Long value = entry.getValue(); >>> + Long oldValue = >>> existing.getLong(entry.getKey()); >>> + if (oldValue != null) { >>> + existing.put(entry.getKey(), >>> Long.valueOf(value.longValue() + oldValue.longValue())); >>> + } else { >>> + existing.put(entry.getKey(), >>> value); >>> + } >>> + } >>> + existing.store(); >>> + } catch (Exception e) { >>> + e.printStackTrace(); >>> + } >>> + } >>> + } >>> + return null; >>> + } >>> + } >>> + >>> + private static final class EntityHolder extends >>> ConcurrentCache<GenericPK, Map<String, Long>> { >>> + protected EntityHolder(Class<?> owner, String field, >>> String label) { >>> + super(owner, field, label, HARD); >>> + } >>> + >>> + @Override >>> + protected Map<String, Long> createValue(GenericPK pk) >>> throws Exception { >>> + return new HashMap<String, Long>(); >>> + } >>> + } >>> +} >>> >>> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/ >>> webslinger/ WebslingerContextMapper.java >>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/WebslingerContextMapper.java?rev=833727&r1=833726&r2=833727&view=diff >>> = = = = = = = = >>> = >>> = >>> ==================================================================== >>> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ >>> WebslingerContextMapper.java (original) >>> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ >>> WebslingerContextMapper.java Sat Nov 7 18:18:33 2009 >>> @@ -1,218 +1,216 @@ >>> -/ >>> ******************************************************************************* >>> - * Licensed to the Apache Software Foundation (ASF) under one >>> - * or more contributor license agreements. See the NOTICE file >>> - * distributed with this work for additional information >>> - * regarding copyright ownership. The ASF licenses this file >>> - * to you under the Apache License, Version 2.0 (the >>> - * "License"); you may not use this file except in compliance >>> - * with the License. You may obtain a copy of the License at >>> - * >>> - * http://www.apache.org/licenses/LICENSE-2.0 >>> - * >>> - * Unless required by applicable law or agreed to in writing, >>> - * software distributed under the License is distributed on an >>> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>> - * KIND, either express or implied. See the License for the >>> - * specific language governing permissions and limitations >>> - * under the License. >>> - >>> *******************************************************************************/ >>> -package org.ofbiz.webslinger; >>> - >>> -import java.io.IOException; >>> -import java.net.URL; >>> -import java.util.ArrayList; >>> -import java.util.Arrays; >>> -import java.util.HashSet; >>> -import java.util.List; >>> -import java.util.Set; >>> - >>> -import javax.servlet.ServletConfig; >>> -import javax.servlet.ServletContext; >>> -import javax.servlet.ServletException; >>> -import javax.servlet.http.HttpServletRequest; >>> - >>> -import org.ofbiz.base.util.UtilMisc; >>> -import org.ofbiz.base.util.UtilProperties; >>> -import org.ofbiz.entity.Delegator; >>> -import org.ofbiz.entity.DelegatorFactory; >>> -import org.ofbiz.entity.GenericEntityException; >>> -import org.ofbiz.entity.GenericValue; >>> -import org.ofbiz.entity.cache.Cache; >>> -import org.ofbiz.entity.util.EntityUtil; >>> -import org.ofbiz.security.SecurityFactory; >>> -import org.ofbiz.security.authz.AuthorizationFactory; >>> -import org.ofbiz.service.GenericDispatcher; >>> -import org.ofbiz.service.LocalDispatcher; >>> -import org.ofbiz.service.ServiceDispatcher; >>> -import org.ofbiz.service.DispatchContext; >>> - >>> -import >>> org.webslinger.AbstractMappingWebslingerServletContextFactory; >>> -import org.webslinger.WebslingerServletContext; >>> -import org.webslinger.collections.CollectionUtil; >>> -import org.webslinger.lang.ObjectUtil; >>> - >>> -public class WebslingerContextMapper extends >>> AbstractMappingWebslingerServletContextFactory { >>> - protected ServletContext servletContext; >>> - protected Delegator delegator; >>> - protected final ArrayList<URL> globalReaderURLs = new >>> ArrayList<URL>(); >>> - >>> - public void init(ServletConfig config) throws >>> ServletException, IOException { >>> - >>> System >>> .err >>> .println(org.webslinger.commons.vfs.flat.FlatFileProvider.class); >>> - servletContext = config.getServletContext(); >>> - String delegatorName = >>> servletContext.getInitParameter("entityDelegatorName"); >>> - delegator = DelegatorFactory.getDelegator(delegatorName); >>> - String readerFiles = >>> servletContext.getInitParameter("serviceReaderUrls"); >>> - if (readerFiles != null) { >>> - for (String reader: >>> CollectionUtil.split(readerFiles, ";")) { >>> - URL url = >>> config.getServletContext().getResource(reader); >>> - if (url != null) globalReaderURLs.add(url); >>> - } >>> - } >>> - super.init(config, >>> UtilProperties.getPropertyValue("webslinger.properties", >>> "moduleBase")); >>> - } >>> - >>> - @Override >>> - protected Layout[] getStartLayouts() throws Exception { >>> - ArrayList<Layout> layouts = new ArrayList<Layout>(); >>> - try { >>> - for (GenericValue value: >>> delegator.findByAnd("WebslingerServer", >>> UtilMisc.toMap("loadAtStart", "Y"))) { >>> - layouts.add(new OfbizLayout(value)); >>> - } >>> - } catch (GenericEntityException e) { >>> - } >>> - return layouts.toArray(new Layout[layouts.size()]); >>> - } >>> - >>> - @Override >>> - public void initializeRequest(WebslingerServletContext >>> context, HttpServletRequest request) { >>> - request.setAttribute("servletContext", context); >>> - Object delegator = context.getAttribute("delegator"); >>> - Object dispatcher = context.getAttribute("dispatcher"); >>> - Object authz = context.getAttribute("authz"); >>> - Object security = context.getAttribute("security"); >>> - request.setAttribute("delegator", delegator); >>> - request.setAttribute("dispatcher", dispatcher); >>> - request.setAttribute("authz", authz); >>> - request.setAttribute("security", security); >>> - // FIXME!!! These next two are a hack until proper fake/ >>> wrapped session support is done in webslinger >>> - servletContext.setAttribute("delegator", delegator); >>> - servletContext.setAttribute("dispatcher", dispatcher); >>> - servletContext.setAttribute("authz", authz); >>> - servletContext.setAttribute("security", security); >>> - } >>> - >>> - @Override >>> - protected void initializeContext(WebslingerServletContext >>> context, Layout layout) throws Exception { >>> - OfbizLayout ofbizLayout = (OfbizLayout) layout; >>> - Delegator delegator = null; >>> - delegator = >>> DelegatorFactory.getDelegator(ofbizLayout.delegatorName); >>> - context.setAttribute("delegator", delegator); >>> - context.setAttribute("dispatcher", new >>> WebslingerGenericDispatcher(context, layout.getTarget(), >>> delegator, globalReaderURLs)); >>> - context.setAttribute("authz", >>> AuthorizationFactory.getInstance(delegator)); >>> - context.setAttribute("security", >>> SecurityFactory.getInstance(delegator)); >>> - } >>> - >>> - protected static final class WebslingerGenericDispatcher >>> extends GenericDispatcher { >>> - protected >>> WebslingerGenericDispatcher(WebslingerServletContext context, >>> String name, Delegator delegator, List<URL> globalReaderURLs) >>> throws IOException { >>> - ArrayList<URL> readerURLs = new >>> ArrayList<URL>(globalReaderURLs); >>> - String readerFiles = >>> context.getInitParameter("serviceReaderUrls"); >>> - if (readerFiles != null) { >>> - for (String reader: >>> CollectionUtil.split(readerFiles, ";")) { >>> - URL url = context.getResource(reader); >>> - if (url != null) readerURLs.add(url); >>> - } >>> - } >>> - System.err.println(readerURLs); >>> - this.dispatcher = new ServiceDispatcher(delegator, >>> true, true, true) { >>> - }; >>> - ClassLoader loader = null; >>> - try { >>> - loader = >>> Thread.currentThread().getContextClassLoader(); >>> - } catch (SecurityException e) { >>> - loader = >>> WebslingerContextMapper.class.getClassLoader(); >>> - } >>> - DispatchContext dc = new DispatchContext(name, >>> readerURLs, loader, null); >>> - init(name, delegator, dc); >>> - } >>> - } >>> - >>> - @Override >>> - protected Set<String> getSuffixes() throws Exception { >>> - Cache cache = delegator.getCache(); >>> - Set<String> suffixes; >>> - synchronized (WebslingerContextMapper.class) { >>> - suffixes = cache.get("WebslingerHostSuffix", null, >>> "WebslingerContextMapper.Suffixes"); >>> - if (suffixes == null) { >>> - suffixes = new HashSet<String>(); >>> - for (GenericValue value: >>> delegator.findList("WebslingerHostSuffix", null, null, null, >>> null, false)) { >>> - suffixes.add(value.getString("hostSuffix")); >>> - } >>> - cache.put("WebslingerHostSuffix", null, >>> "WebslingerContextMapper.Suffixes", suffixes); >>> - } >>> - } >>> - return suffixes; >>> - } >>> - >>> - @Override >>> - protected Layout lookupLayout(String hostName, String >>> contextPath) throws Exception { >>> - GenericValue layout = >>> EntityUtil.getOnly(delegator.findByAndCache("WebslingerLayout", >>> UtilMisc.toMap("hostName", hostName, "contextPath", contextPath))); >>> - if (layout == null) return null; >>> - return new OfbizLayout(layout); >>> - } >>> - >>> - protected class OfbizLayout implements Layout { >>> - private final String contextPath; >>> - private final String id; >>> - private final String target; >>> - private final String[] bases; >>> - private final int hashCode; >>> - protected final String delegatorName; >>> - protected final String dispatcherName; >>> - >>> - protected OfbizLayout(GenericValue server) throws >>> GenericEntityException { >>> - contextPath = server.getString("contextPath"); >>> - id = server.getString("webslingerServerId"); >>> - target = server.getString("target"); >>> - List<GenericValue> baseValues = >>> server.getRelatedCache("WebslingerServerBase", >>> UtilMisc.toList("seqNum")); >>> - bases = new String[baseValues.size()]; >>> - for (int i = 0; i < bases.length; i++) { >>> - GenericValue baseValue = baseValues.get(i); >>> - bases[i] = baseValue.getString("baseName"); >>> - } >>> - delegatorName = server.getString("delegatorName"); >>> - dispatcherName = server.getString("dispatcherName"); >>> - hashCode = target.hashCode() ^ >>> ObjectUtil.hashCodeHelper(delegatorName) ^ Arrays.hashCode(bases); >>> - } >>> - >>> - public String getContextPath() { >>> - return contextPath; >>> - } >>> - >>> - public String getId() { >>> - return id; >>> - } >>> - >>> - public String getTarget() { >>> - return target; >>> - } >>> - >>> - public String[] getBases() { >>> - return bases; >>> - } >>> - >>> - @Override >>> - public int hashCode() { >>> - return hashCode; >>> - } >>> - >>> - @Override >>> - public boolean equals(Object o) { >>> - if (!(o instanceof OfbizLayout)) return false; >>> - OfbizLayout other = (OfbizLayout) o; >>> - if (!contextPath.equals(other.contextPath)) return >>> false; >>> - if (!target.equals(other.target)) return false; >>> - if (!ObjectUtil.equalsHelper(delegatorName, >>> other.delegatorName)) return false; >>> - return Arrays.equals(bases, other.bases); >>> - } >>> - } >>> -} >>> +/ >>> ******************************************************************************* >>> + * Licensed to the Apache Software Foundation (ASF) under one >>> + * or more contributor license agreements. See the NOTICE file >>> + * distributed with this work for additional information >>> + * regarding copyright ownership. The ASF licenses this file >>> + * to you under the Apache License, Version 2.0 (the >>> + * "License"); you may not use this file except in compliance >>> + * with the License. You may obtain a copy of the License at >>> + * >>> + * http://www.apache.org/licenses/LICENSE-2.0 >>> + * >>> + * Unless required by applicable law or agreed to in writing, >>> + * software distributed under the License is distributed on an >>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>> + * KIND, either express or implied. See the License for the >>> + * specific language governing permissions and limitations >>> + * under the License. >>> + >>> *******************************************************************************/ >>> +package org.ofbiz.webslinger; >>> + >>> +import java.io.IOException; >>> +import java.net.URL; >>> +import java.util.ArrayList; >>> +import java.util.Arrays; >>> +import java.util.HashSet; >>> +import java.util.List; >>> +import java.util.Set; >>> + >>> +import javax.servlet.ServletConfig; >>> +import javax.servlet.ServletContext; >>> +import javax.servlet.ServletException; >>> +import javax.servlet.http.HttpServletRequest; >>> + >>> +import org.ofbiz.base.util.UtilMisc; >>> +import org.ofbiz.base.util.UtilProperties; >>> +import org.ofbiz.entity.Delegator; >>> +import org.ofbiz.entity.DelegatorFactory; >>> +import org.ofbiz.entity.GenericEntityException; >>> +import org.ofbiz.entity.GenericValue; >>> +import org.ofbiz.entity.cache.Cache; >>> +import org.ofbiz.entity.util.EntityUtil; >>> +import org.ofbiz.security.SecurityFactory; >>> +import org.ofbiz.security.authz.AuthorizationFactory; >>> +import org.ofbiz.service.DispatchContext; >>> +import org.ofbiz.service.GenericDispatcher; >>> +import org.ofbiz.service.ServiceDispatcher; >>> +import >>> org.webslinger.AbstractMappingWebslingerServletContextFactory; >>> +import org.webslinger.WebslingerServletContext; >>> +import org.webslinger.collections.CollectionUtil; >>> +import org.webslinger.lang.ObjectUtil; >>> + >>> +public class WebslingerContextMapper extends >>> AbstractMappingWebslingerServletContextFactory { >>> + protected ServletContext servletContext; >>> + protected Delegator delegator; >>> + protected final ArrayList<URL> globalReaderURLs = new >>> ArrayList<URL>(); >>> + >>> + public void init(ServletConfig config) throws >>> ServletException, IOException { >>> + >>> System >>> .err >>> .println(org.webslinger.commons.vfs.flat.FlatFileProvider.class); >>> + servletContext = config.getServletContext(); >>> + String delegatorName = >>> servletContext.getInitParameter("entityDelegatorName"); >>> + delegator = DelegatorFactory.getDelegator(delegatorName); >>> + String readerFiles = >>> servletContext.getInitParameter("serviceReaderUrls"); >>> + if (readerFiles != null) { >>> + for (String reader: >>> CollectionUtil.split(readerFiles, ";")) { >>> + URL url = >>> config.getServletContext().getResource(reader); >>> + if (url != null) globalReaderURLs.add(url); >>> + } >>> + } >>> + super.init(config, >>> UtilProperties.getPropertyValue("webslinger.properties", >>> "moduleBase")); >>> + } >>> + >>> + @Override >>> + protected Layout[] getStartLayouts() throws Exception { >>> + ArrayList<Layout> layouts = new ArrayList<Layout>(); >>> + try { >>> + for (GenericValue value: >>> delegator.findByAnd("WebslingerServer", >>> UtilMisc.toMap("loadAtStart", "Y"))) { >>> + layouts.add(new OfbizLayout(value)); >>> + } >>> + } catch (GenericEntityException e) { >>> + } >>> + return layouts.toArray(new Layout[layouts.size()]); >>> + } >>> + >>> + @Override >>> + public void initializeRequest(WebslingerServletContext >>> context, HttpServletRequest request) { >>> + request.setAttribute("servletContext", context); >>> + Object delegator = context.getAttribute("delegator"); >>> + Object dispatcher = context.getAttribute("dispatcher"); >>> + Object authz = context.getAttribute("authz"); >>> + Object security = context.getAttribute("security"); >>> + request.setAttribute("delegator", delegator); >>> + request.setAttribute("dispatcher", dispatcher); >>> + request.setAttribute("authz", authz); >>> + request.setAttribute("security", security); >>> + // FIXME!!! These next two are a hack until proper fake/ >>> wrapped session support is done in webslinger >>> + servletContext.setAttribute("delegator", delegator); >>> + servletContext.setAttribute("dispatcher", dispatcher); >>> + servletContext.setAttribute("authz", authz); >>> + servletContext.setAttribute("security", security); >>> + } >>> + >>> + @Override >>> + protected void initializeContext(WebslingerServletContext >>> context, Layout layout) throws Exception { >>> + OfbizLayout ofbizLayout = (OfbizLayout) layout; >>> + Delegator delegator = null; >>> + delegator = >>> DelegatorFactory.getDelegator(ofbizLayout.delegatorName); >>> + context.setAttribute("delegator", delegator); >>> + context.setAttribute("dispatcher", new >>> WebslingerGenericDispatcher(context, layout.getTarget(), >>> delegator, globalReaderURLs)); >>> + context.setAttribute("authz", >>> AuthorizationFactory.getInstance(delegator)); >>> + context.setAttribute("security", >>> SecurityFactory.getInstance(delegator)); >>> + } >>> + >>> + protected static final class WebslingerGenericDispatcher >>> extends GenericDispatcher { >>> + protected >>> WebslingerGenericDispatcher(WebslingerServletContext context, >>> String name, Delegator delegator, List<URL> globalReaderURLs) >>> throws IOException { >>> + ArrayList<URL> readerURLs = new >>> ArrayList<URL>(globalReaderURLs); >>> + String readerFiles = >>> context.getInitParameter("serviceReaderUrls"); >>> + if (readerFiles != null) { >>> + for (String reader: >>> CollectionUtil.split(readerFiles, ";")) { >>> + URL url = context.getResource(reader); >>> + if (url != null) readerURLs.add(url); >>> + } >>> + } >>> + System.err.println(readerURLs); >>> + this.dispatcher = new ServiceDispatcher(delegator, >>> true, true, true) { >>> + }; >>> + ClassLoader loader = null; >>> + try { >>> + loader = >>> Thread.currentThread().getContextClassLoader(); >>> + } catch (SecurityException e) { >>> + loader = >>> WebslingerContextMapper.class.getClassLoader(); >>> + } >>> + DispatchContext dc = new DispatchContext(name, >>> readerURLs, loader, null); >>> + init(name, delegator, dc); >>> + } >>> + } >>> + >>> + @Override >>> + protected Set<String> getSuffixes() throws Exception { >>> + Cache cache = delegator.getCache(); >>> + Set<String> suffixes; >>> + synchronized (WebslingerContextMapper.class) { >>> + suffixes = cache.get("WebslingerHostSuffix", null, >>> "WebslingerContextMapper.Suffixes"); >>> + if (suffixes == null) { >>> + suffixes = new HashSet<String>(); >>> + for (GenericValue value: >>> delegator.findList("WebslingerHostSuffix", null, null, null, >>> null, false)) { >>> + suffixes.add(value.getString("hostSuffix")); >>> + } >>> + cache.put("WebslingerHostSuffix", null, >>> "WebslingerContextMapper.Suffixes", suffixes); >>> + } >>> + } >>> + return suffixes; >>> + } >>> + >>> + @Override >>> + protected Layout lookupLayout(String hostName, String >>> contextPath) throws Exception { >>> + GenericValue layout = >>> EntityUtil.getOnly(delegator.findByAndCache("WebslingerLayout", >>> UtilMisc.toMap("hostName", hostName, "contextPath", contextPath))); >>> + if (layout == null) return null; >>> + return new OfbizLayout(layout); >>> + } >>> + >>> + protected class OfbizLayout implements Layout { >>> + private final String contextPath; >>> + private final String id; >>> + private final String target; >>> + private final String[] bases; >>> + private final int hashCode; >>> + protected final String delegatorName; >>> + protected final String dispatcherName; >>> + >>> + protected OfbizLayout(GenericValue server) throws >>> GenericEntityException { >>> + contextPath = server.getString("contextPath"); >>> + id = server.getString("webslingerServerId"); >>> + target = server.getString("target"); >>> + List<GenericValue> baseValues = >>> server.getRelatedCache("WebslingerServerBase", >>> UtilMisc.toList("seqNum")); >>> + bases = new String[baseValues.size()]; >>> + for (int i = 0; i < bases.length; i++) { >>> + GenericValue baseValue = baseValues.get(i); >>> + bases[i] = baseValue.getString("baseName"); >>> + } >>> + delegatorName = server.getString("delegatorName"); >>> + dispatcherName = server.getString("dispatcherName"); >>> + hashCode = target.hashCode() ^ >>> ObjectUtil.hashCodeHelper(delegatorName) ^ Arrays.hashCode(bases); >>> + } >>> + >>> + public String getContextPath() { >>> + return contextPath; >>> + } >>> + >>> + public String getId() { >>> + return id; >>> + } >>> + >>> + public String getTarget() { >>> + return target; >>> + } >>> + >>> + public String[] getBases() { >>> + return bases; >>> + } >>> + >>> + @Override >>> + public int hashCode() { >>> + return hashCode; >>> + } >>> + >>> + @Override >>> + public boolean equals(Object o) { >>> + if (!(o instanceof OfbizLayout)) return false; >>> + OfbizLayout other = (OfbizLayout) o; >>> + if (!contextPath.equals(other.contextPath)) return >>> false; >>> + if (!target.equals(other.target)) return false; >>> + if (!ObjectUtil.equalsHelper(delegatorName, >>> other.delegatorName)) return false; >>> + return Arrays.equals(bases, other.bases); >>> + } >>> + } >>> +} >>> >>> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/ >>> webslinger/ WebslingerServerEngine.java >>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/WebslingerServerEngine.java?rev=833727&r1=833726&r2=833727&view=diff >>> = = = = = = = = >>> = >>> = >>> ==================================================================== >>> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ >>> WebslingerServerEngine.java (original) >>> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ >>> WebslingerServerEngine.java Sat Nov 7 18:18:33 2009 >>> @@ -1,64 +1,59 @@ >>> -/ >>> ******************************************************************************* >>> - * Licensed to the Apache Software Foundation (ASF) under one >>> - * or more contributor license agreements. See the NOTICE file >>> - * distributed with this work for additional information >>> - * regarding copyright ownership. The ASF licenses this file >>> - * to you under the Apache License, Version 2.0 (the >>> - * "License"); you may not use this file except in compliance >>> - * with the License. You may obtain a copy of the License at >>> - * >>> - * http://www.apache.org/licenses/LICENSE-2.0 >>> - * >>> - * Unless required by applicable law or agreed to in writing, >>> - * software distributed under the License is distributed on an >>> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>> - * KIND, either express or implied. See the License for the >>> - * specific language governing permissions and limitations >>> - * under the License. >>> - >>> *******************************************************************************/ >>> -package org.ofbiz.webslinger; >>> - >>> -import java.io.IOException; >>> -import java.io.StringReader; >>> -import java.io.StringWriter; >>> -import java.util.Collections; >>> -import java.util.Map; >>> - >>> -import org.ofbiz.base.util.UtilGenerics; >>> -import org.ofbiz.base.util.UtilMisc; >>> -import org.ofbiz.entity.Delegator; >>> -import org.ofbiz.entity.GenericValue; >>> -import org.ofbiz.entity.util.EntityUtil; >>> -import org.ofbiz.service.GenericServiceException; >>> -import org.ofbiz.service.ModelService; >>> -import org.ofbiz.service.ServiceDispatcher; >>> -import org.ofbiz.service.engine.GenericAsyncEngine; >>> - >>> -import org.webslinger.WebslingerServletContext; >>> - >>> -public class WebslingerServerEngine extends GenericAsyncEngine { >>> - public WebslingerServerEngine(ServiceDispatcher dispatcher) { >>> - super(dispatcher); >>> - } >>> - >>> - @Override >>> - public void runSyncIgnore(String localName, ModelService >>> modelService, Map<String, Object> context) throws >>> GenericServiceException { >>> - runSync(localName, modelService, context); >>> - } >>> - >>> - @Override >>> - public Map<String, Object> runSync(String localName, >>> ModelService modelService, Map<String, Object> context) throws >>> GenericServiceException { >>> - Delegator delegator = dispatcher.getDelegator(); >>> - try { >>> - GenericValue found = >>> EntityUtil.getFirst(delegator.findByAndCache("WebslingerLayout", >>> UtilMisc.toMap("webslingerServerId", modelService.location))); >>> - if (found == null) throw new >>> GenericServiceException("Couldn't find server mapping for(" + >>> modelService.location + ")"); >>> - return UtilGenerics .checkMap >>> (WebslingerServletContext.invokeInVM(found.getString("hostName"), >>> 8080, modelService.invoke, context)); >>> - } catch (RuntimeException e) { >>> - throw e; >>> - } catch (GenericServiceException e) { >>> - throw e; >>> - } catch (Exception e) { >>> - throw UtilMisc.initCause(new >>> GenericServiceException(e.getMessage()), e); >>> - } >>> - } >>> -} >>> +/ >>> ******************************************************************************* >>> + * Licensed to the Apache Software Foundation (ASF) under one >>> + * or more contributor license agreements. See the NOTICE file >>> + * distributed with this work for additional information >>> + * regarding copyright ownership. The ASF licenses this file >>> + * to you under the Apache License, Version 2.0 (the >>> + * "License"); you may not use this file except in compliance >>> + * with the License. You may obtain a copy of the License at >>> + * >>> + * http://www.apache.org/licenses/LICENSE-2.0 >>> + * >>> + * Unless required by applicable law or agreed to in writing, >>> + * software distributed under the License is distributed on an >>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>> + * KIND, either express or implied. See the License for the >>> + * specific language governing permissions and limitations >>> + * under the License. >>> + >>> *******************************************************************************/ >>> +package org.ofbiz.webslinger; >>> + >>> +import java.util.Map; >>> + >>> +import org.ofbiz.base.util.UtilGenerics; >>> +import org.ofbiz.base.util.UtilMisc; >>> +import org.ofbiz.entity.Delegator; >>> +import org.ofbiz.entity.GenericValue; >>> +import org.ofbiz.entity.util.EntityUtil; >>> +import org.ofbiz.service.GenericServiceException; >>> +import org.ofbiz.service.ModelService; >>> +import org.ofbiz.service.ServiceDispatcher; >>> +import org.ofbiz.service.engine.GenericAsyncEngine; >>> +import org.webslinger.WebslingerServletContext; >>> + >>> +public class WebslingerServerEngine extends GenericAsyncEngine { >>> + public WebslingerServerEngine(ServiceDispatcher dispatcher) { >>> + super(dispatcher); >>> + } >>> + >>> + @Override >>> + public void runSyncIgnore(String localName, ModelService >>> modelService, Map<String, Object> context) throws >>> GenericServiceException { >>> + runSync(localName, modelService, context); >>> + } >>> + >>> + @Override >>> + public Map<String, Object> runSync(String localName, >>> ModelService modelService, Map<String, Object> context) throws >>> GenericServiceException { >>> + Delegator delegator = dispatcher.getDelegator(); >>> + try { >>> + GenericValue found = >>> EntityUtil.getFirst(delegator.findByAndCache("WebslingerLayout", >>> UtilMisc.toMap("webslingerServerId", modelService.location))); >>> + if (found == null) throw new >>> GenericServiceException("Couldn't find server mapping for(" + >>> modelService.location + ")"); >>> + return UtilGenerics .checkMap >>> (WebslingerServletContext.invokeInVM(found.getString("hostName"), >>> 8080, modelService.invoke, context)); >>> + } catch (RuntimeException e) { >>> + throw e; >>> + } catch (GenericServiceException e) { >>> + throw e; >>> + } catch (Exception e) { >>> + throw UtilMisc.initCause(new >>> GenericServiceException(e.getMessage()), e); >>> + } >>> + } >>> +} >>> >>> >> > > smime.p7s (4K) Download Attachment |
Administrator
|
I replaced my .subversion/config by ours. Not sure why it has been replaced, by an install maybe or as I'm on Windows, Tortoise
while changing the setting... Jacques From: "Scott Gray" <[hidden email]> > Hi Jacques, > > I think the problem is related to files in svn that do not have any svn properties set (specifically eol-style), I just came > across this myself in r833931 and r833933. When I initially applied the patch the entire file changed but after setting the svn > properties the issue went away. > > Regards > Scott > > On 9/11/2009, at 11:32 AM, Jacques Le Roux wrote: > >> Sorry Scott, >> >> I have still not got the reflex... As I have not touched the patch (ok you have to trust me) you may review the patch itself... >> >> Jacques >> >> From: "Scott Gray" <[hidden email]> >>> Hi Jacques, >>> >>> This is that same problem with the patch again, please keep an eye out for these as the commits are impossible to review. >>> >>> Thanks >>> Scott >>> >>> HotWax Media >>> http://www.hotwaxmedia.com >>> >>> On 8/11/2009, at 7:18 AM, [hidden email] wrote: >>> >>>> Author: jleroux >>>> Date: Sat Nov 7 18:18:33 2009 >>>> New Revision: 833727 >>>> >>>> URL: http://svn.apache.org/viewvc?rev=833727&view=rev >>>> Log: >>>> A patch from Marc Morin "Resolve java warnings exposed in Eclipse : framework - webslinger" >>>> (https://issues.apache.org/jira/browse/OFBIZ-3121 ) - OFBIZ-3121 >>>> >>>> Modified: >>>> ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ CommonsVfsContainer.java >>>> ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ ofbiz/ OfbizComponentProvider.java >>>> ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ ofbiz/ OfbizHomeProvider.java >>>> ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ EntityHttpUtil.java >>>> ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ StatsUpdater.java >>>> ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ WebslingerContextMapper.java >>>> ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ WebslingerServerEngine.java >>>> >>>> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/ vfs/ CommonsVfsContainer.java >>>> URL: >>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/CommonsVfsContainer.java?rev=833727&r1=833726&r2=833727&view=diff >>>> = = = = = = = = = = ==================================================================== >>>> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ CommonsVfsContainer.java (original) >>>> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ CommonsVfsContainer.java Sat Nov 7 18:18:33 2009 >>>> @@ -1,68 +1,66 @@ >>>> -/ ******************************************************************************* >>>> - * Licensed to the Apache Software Foundation (ASF) under one >>>> - * or more contributor license agreements. See the NOTICE file >>>> - * distributed with this work for additional information >>>> - * regarding copyright ownership. The ASF licenses this file >>>> - * to you under the Apache License, Version 2.0 (the >>>> - * "License"); you may not use this file except in compliance >>>> - * with the License. You may obtain a copy of the License at >>>> - * >>>> - * http://www.apache.org/licenses/LICENSE-2.0 >>>> - * >>>> - * Unless required by applicable law or agreed to in writing, >>>> - * software distributed under the License is distributed on an >>>> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>> - * KIND, either express or implied. See the License for the >>>> - * specific language governing permissions and limitations >>>> - * under the License. >>>> - *******************************************************************************/ >>>> -package org.ofbiz.commons.vfs; >>>> - >>>> -import java.io.File; >>>> -import java.io.IOException; >>>> -import java.net.MalformedURLException; >>>> - >>>> -import org.apache.commons.vfs.CacheStrategy; >>>> -import org.apache.commons.vfs.FileObject; >>>> -import org.apache.commons.vfs.FileSystemException; >>>> -import org.apache.commons.vfs.FileSystemManager; >>>> -import org.apache.commons.vfs.impl.StandardFileSystemManager; >>>> - >>>> -import org.ofbiz.base.container.Container; >>>> -import org.ofbiz.base.container.ContainerException; >>>> -import org.ofbiz.base.util.UtilMisc; >>>> -import org.webslinger.commons.vfs.VFSUtil; >>>> - >>>> -public class CommonsVfsContainer implements Container { >>>> - private static StandardFileSystemManager sfsm; >>>> - >>>> - public void init(String[] args, String configFile) throws ContainerException { >>>> - } >>>> - >>>> - public boolean start() throws ContainerException { >>>> - try { >>>> - StandardFileSystemManager sfsm = VFSUtil.createStandardFileSystemManager(); >>>> - FileObject currentDir = sfsm.resolveFile(new File(".").toURI().toURL().toString()); >>>> - sfsm.setBaseFile(currentDir); >>>> - CommonsVfsContainer.sfsm = sfsm; >>>> - } catch (FileSystemException e) { >>>> - throw UtilMisc.initCause(new ContainerException("Initializing StandardFileSystemManager"), e); >>>> - } catch (MalformedURLException e) { >>>> - throw UtilMisc.initCause(new ContainerException("Initializing StandardFileSystemManager"), e); >>>> - } >>>> - return true; >>>> - } >>>> - >>>> - public void stop() throws ContainerException { >>>> - sfsm.close(); >>>> - sfsm = null; >>>> - } >>>> - >>>> - public static FileObject resolveFile(String uri) throws IOException { >>>> - return sfsm.resolveFile(uri); >>>> - } >>>> - >>>> - public static FileSystemManager getFileSystemManager() { >>>> - return sfsm; >>>> - } >>>> -} >>>> +/ ******************************************************************************* >>>> + * Licensed to the Apache Software Foundation (ASF) under one >>>> + * or more contributor license agreements. See the NOTICE file >>>> + * distributed with this work for additional information >>>> + * regarding copyright ownership. The ASF licenses this file >>>> + * to you under the Apache License, Version 2.0 (the >>>> + * "License"); you may not use this file except in compliance >>>> + * with the License. You may obtain a copy of the License at >>>> + * >>>> + * http://www.apache.org/licenses/LICENSE-2.0 >>>> + * >>>> + * Unless required by applicable law or agreed to in writing, >>>> + * software distributed under the License is distributed on an >>>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>> + * KIND, either express or implied. See the License for the >>>> + * specific language governing permissions and limitations >>>> + * under the License. >>>> + *******************************************************************************/ >>>> +package org.ofbiz.commons.vfs; >>>> + >>>> +import java.io.File; >>>> +import java.io.IOException; >>>> +import java.net.MalformedURLException; >>>> + >>>> +import org.apache.commons.vfs.FileObject; >>>> +import org.apache.commons.vfs.FileSystemException; >>>> +import org.apache.commons.vfs.FileSystemManager; >>>> +import org.apache.commons.vfs.impl.StandardFileSystemManager; >>>> +import org.ofbiz.base.container.Container; >>>> +import org.ofbiz.base.container.ContainerException; >>>> +import org.ofbiz.base.util.UtilMisc; >>>> +import org.webslinger.commons.vfs.VFSUtil; >>>> + >>>> +public class CommonsVfsContainer implements Container { >>>> + private static StandardFileSystemManager sfsm; >>>> + >>>> + public void init(String[] args, String configFile) throws ContainerException { >>>> + } >>>> + >>>> + public boolean start() throws ContainerException { >>>> + try { >>>> + StandardFileSystemManager sfsm = VFSUtil.createStandardFileSystemManager(); >>>> + FileObject currentDir = sfsm.resolveFile(new File(".").toURI().toURL().toString()); >>>> + sfsm.setBaseFile(currentDir); >>>> + CommonsVfsContainer.sfsm = sfsm; >>>> + } catch (FileSystemException e) { >>>> + throw UtilMisc.initCause(new ContainerException("Initializing StandardFileSystemManager"), e); >>>> + } catch (MalformedURLException e) { >>>> + throw UtilMisc.initCause(new ContainerException("Initializing StandardFileSystemManager"), e); >>>> + } >>>> + return true; >>>> + } >>>> + >>>> + public void stop() throws ContainerException { >>>> + sfsm.close(); >>>> + sfsm = null; >>>> + } >>>> + >>>> + public static FileObject resolveFile(String uri) throws IOException { >>>> + return sfsm.resolveFile(uri); >>>> + } >>>> + >>>> + public static FileSystemManager getFileSystemManager() { >>>> + return sfsm; >>>> + } >>>> +} >>>> >>>> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/ vfs/ ofbiz/OfbizComponentProvider.java >>>> URL: >>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ofbiz/OfbizComponentProvider.java?rev=833727&r1=833726&r2=833727&view=diff >>>> = = = = = = = = = = ==================================================================== >>>> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ ofbiz/ OfbizComponentProvider.java (original) >>>> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ ofbiz/ OfbizComponentProvider.java Sat Nov 7 18:18:33 2009 >>>> @@ -1,58 +1,58 @@ >>>> -/ ******************************************************************************* >>>> - * Licensed to the Apache Software Foundation (ASF) under one >>>> - * or more contributor license agreements. See the NOTICE file >>>> - * distributed with this work for additional information >>>> - * regarding copyright ownership. The ASF licenses this file >>>> - * to you under the Apache License, Version 2.0 (the >>>> - * "License"); you may not use this file except in compliance >>>> - * with the License. You may obtain a copy of the License at >>>> - * >>>> - * http://www.apache.org/licenses/LICENSE-2.0 >>>> - * >>>> - * Unless required by applicable law or agreed to in writing, >>>> - * software distributed under the License is distributed on an >>>> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>> - * KIND, either express or implied. See the License for the >>>> - * specific language governing permissions and limitations >>>> - * under the License. >>>> - *******************************************************************************/ >>>> -package org.ofbiz.commons.vfs.ofbiz; >>>> - >>>> -import java.net.URL; >>>> -import java.util.Collection; >>>> -import org.apache.commons.vfs.FileObject; >>>> -import org.apache.commons.vfs.FileSystemException; >>>> -import org.apache.commons.vfs.FileSystemOptions; >>>> -import org.apache.commons.vfs.provider.AbstractFileProvider; >>>> -import org.apache.commons.vfs.provider.local.DefaultLocalFileProvider; >>>> -import org.ofbiz.base.location.FlexibleLocation; >>>> -import org.ofbiz.base.util.UtilMisc; >>>> -import org.webslinger.commons.vfs.VFSUtil; >>>> - >>>> -public class OfbizComponentProvider extends AbstractFileProvider { >>>> - public Collection getCapabilities() { >>>> - return DefaultLocalFileProvider.capabilities; >>>> - } >>>> - >>>> - public FileObject findFile(FileObject base, String name, FileSystemOptions properties) throws FileSystemException { >>>> - try { >>>> - //name = name.replaceAll("^ofbiz-component://", ""); >>>> - int nameLength = name.length(); >>>> - int componentNameStart = 16; >>>> - while (componentNameStart < nameLength && name.charAt(componentNameStart) == '/') componentNameStart++; >>>> - if (componentNameStart == nameLength) throw new IllegalArgumentException("Invalid name(" + name + ")"); >>>> - int componentNameEnd = componentNameStart; >>>> - while (componentNameEnd < nameLength && name.charAt(componentNameEnd) != '/') componentNameEnd++; >>>> - if (componentNameEnd == nameLength) throw new IllegalArgumentException("Invalid name(" + name + ")"); >>>> - int restStart = componentNameEnd; >>>> - while (restStart < nameLength && name.charAt(restStart) == '/') restStart++; >>>> - if (restStart == nameLength) throw new IllegalArgumentException("Invalid name(" + name + ")"); >>>> - String componentName = name.substring(componentNameStart, componentNameEnd); >>>> - URL location = FlexibleLocation.resolveLocation("component://" + componentName + "/."); >>>> - FileObject ofbizBase = getContext().resolveFile(location.toString(), properties); >>>> - return VFSUtil .toFileObject(ofbizBase.getFileSystem().getFileSystemManager(), ofbizBase >>>> .resolveFile(name.substring(restStart)).getURL().toString(), properties); >>>> - } catch (Exception e) { >>>> - throw UtilMisc.initCause(new FileSystemException(e.getMessage(), null, e), e); >>>> - } >>>> - } >>>> -} >>>> +/ ******************************************************************************* >>>> + * Licensed to the Apache Software Foundation (ASF) under one >>>> + * or more contributor license agreements. See the NOTICE file >>>> + * distributed with this work for additional information >>>> + * regarding copyright ownership. The ASF licenses this file >>>> + * to you under the Apache License, Version 2.0 (the >>>> + * "License"); you may not use this file except in compliance >>>> + * with the License. You may obtain a copy of the License at >>>> + * >>>> + * http://www.apache.org/licenses/LICENSE-2.0 >>>> + * >>>> + * Unless required by applicable law or agreed to in writing, >>>> + * software distributed under the License is distributed on an >>>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>> + * KIND, either express or implied. See the License for the >>>> + * specific language governing permissions and limitations >>>> + * under the License. >>>> + *******************************************************************************/ >>>> +package org.ofbiz.commons.vfs.ofbiz; >>>> + >>>> +import java.net.URL; >>>> +import java.util.Collection; >>>> +import org.apache.commons.vfs.FileObject; >>>> +import org.apache.commons.vfs.FileSystemException; >>>> +import org.apache.commons.vfs.FileSystemOptions; >>>> +import org.apache.commons.vfs.provider.AbstractFileProvider; >>>> +import org.apache.commons.vfs.provider.local.DefaultLocalFileProvider; >>>> +import org.ofbiz.base.location.FlexibleLocation; >>>> +import org.ofbiz.base.util.UtilMisc; >>>> +import org.webslinger.commons.vfs.VFSUtil; >>>> + >>>> +public class OfbizComponentProvider extends AbstractFileProvider { >>>> + public Collection<?> getCapabilities() { >>>> + return DefaultLocalFileProvider.capabilities; >>>> + } >>>> + >>>> + public FileObject findFile(FileObject base, String name, FileSystemOptions properties) throws FileSystemException { >>>> + try { >>>> + //name = name.replaceAll("^ofbiz-component://", ""); >>>> + int nameLength = name.length(); >>>> + int componentNameStart = 16; >>>> + while (componentNameStart < nameLength && name.charAt(componentNameStart) == '/') componentNameStart++; >>>> + if (componentNameStart == nameLength) throw new IllegalArgumentException("Invalid name(" + name + ")"); >>>> + int componentNameEnd = componentNameStart; >>>> + while (componentNameEnd < nameLength && name.charAt(componentNameEnd) != '/') componentNameEnd++; >>>> + if (componentNameEnd == nameLength) throw new IllegalArgumentException("Invalid name(" + name + ")"); >>>> + int restStart = componentNameEnd; >>>> + while (restStart < nameLength && name.charAt(restStart) == '/') restStart++; >>>> + if (restStart == nameLength) throw new IllegalArgumentException("Invalid name(" + name + ")"); >>>> + String componentName = name.substring(componentNameStart, componentNameEnd); >>>> + URL location = FlexibleLocation.resolveLocation("component://" + componentName + "/."); >>>> + FileObject ofbizBase = getContext().resolveFile(location.toString(), properties); >>>> + return VFSUtil .toFileObject(ofbizBase.getFileSystem().getFileSystemManager(), ofbizBase >>>> .resolveFile(name.substring(restStart)).getURL().toString(), properties); >>>> + } catch (Exception e) { >>>> + throw UtilMisc.initCause(new FileSystemException(e.getMessage(), null, e), e); >>>> + } >>>> + } >>>> +} >>>> >>>> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/ vfs/ ofbiz/OfbizHomeProvider.java >>>> URL: >>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ofbiz/OfbizHomeProvider.java?rev=833727&r1=833726&r2=833727&view=diff >>>> = = = = = = = = = = ==================================================================== >>>> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ ofbiz/ OfbizHomeProvider.java (original) >>>> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ ofbiz/ OfbizHomeProvider.java Sat Nov 7 18:18:33 2009 >>>> @@ -1,50 +1,50 @@ >>>> -/ ******************************************************************************* >>>> - * Licensed to the Apache Software Foundation (ASF) under one >>>> - * or more contributor license agreements. See the NOTICE file >>>> - * distributed with this work for additional information >>>> - * regarding copyright ownership. The ASF licenses this file >>>> - * to you under the Apache License, Version 2.0 (the >>>> - * "License"); you may not use this file except in compliance >>>> - * with the License. You may obtain a copy of the License at >>>> - * >>>> - * http://www.apache.org/licenses/LICENSE-2.0 >>>> - * >>>> - * Unless required by applicable law or agreed to in writing, >>>> - * software distributed under the License is distributed on an >>>> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>> - * KIND, either express or implied. See the License for the >>>> - * specific language governing permissions and limitations >>>> - * under the License. >>>> - *******************************************************************************/ >>>> -package org.ofbiz.commons.vfs.ofbiz; >>>> - >>>> -import java.net.URL; >>>> -import java.util.Collection; >>>> - >>>> -import org.apache.commons.vfs.FileObject; >>>> -import org.apache.commons.vfs.FileSystemException; >>>> -import org.apache.commons.vfs.FileSystemOptions; >>>> -import org.apache.commons.vfs.provider.AbstractFileProvider; >>>> -import org.apache.commons.vfs.provider.local.DefaultLocalFileProvider; >>>> - >>>> -import org.ofbiz.base.location.FlexibleLocation; >>>> -import org.ofbiz.base.util.UtilMisc; >>>> - >>>> -import org.webslinger.commons.vfs.VFSUtil; >>>> - >>>> -public class OfbizHomeProvider extends AbstractFileProvider { >>>> - public Collection getCapabilities() { >>>> - return DefaultLocalFileProvider.capabilities; >>>> - } >>>> - >>>> - public FileObject findFile(FileObject base, String name, FileSystemOptions properties) throws FileSystemException { >>>> - //new Exception("findFile(" + base + ", " + name + ")").printStackTrace(); >>>> - try { >>>> - URL location = FlexibleLocation.resolveLocation("ofbizhome://."); >>>> - FileObject ofbizBase = getContext().resolveFile(location.toString(), properties); >>>> - return VFSUtil .toFileObject(ofbizBase.getFileSystem().getFileSystemManager(), >>>> ofbizBase.resolveFile(name.substring(13)).getURL().toString(), properties); >>>> - } catch (Exception e) { >>>> - throw UtilMisc.initCause(new FileSystemException(e.getMessage(), null, e), e); >>>> - } >>>> - } >>>> -} >>>> +/ ******************************************************************************* >>>> + * Licensed to the Apache Software Foundation (ASF) under one >>>> + * or more contributor license agreements. See the NOTICE file >>>> + * distributed with this work for additional information >>>> + * regarding copyright ownership. The ASF licenses this file >>>> + * to you under the Apache License, Version 2.0 (the >>>> + * "License"); you may not use this file except in compliance >>>> + * with the License. You may obtain a copy of the License at >>>> + * >>>> + * http://www.apache.org/licenses/LICENSE-2.0 >>>> + * >>>> + * Unless required by applicable law or agreed to in writing, >>>> + * software distributed under the License is distributed on an >>>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>> + * KIND, either express or implied. See the License for the >>>> + * specific language governing permissions and limitations >>>> + * under the License. >>>> + *******************************************************************************/ >>>> +package org.ofbiz.commons.vfs.ofbiz; >>>> + >>>> +import java.net.URL; >>>> +import java.util.Collection; >>>> + >>>> +import org.apache.commons.vfs.FileObject; >>>> +import org.apache.commons.vfs.FileSystemException; >>>> +import org.apache.commons.vfs.FileSystemOptions; >>>> +import org.apache.commons.vfs.provider.AbstractFileProvider; >>>> +import org.apache.commons.vfs.provider.local.DefaultLocalFileProvider; >>>> + >>>> +import org.ofbiz.base.location.FlexibleLocation; >>>> +import org.ofbiz.base.util.UtilMisc; >>>> + >>>> +import org.webslinger.commons.vfs.VFSUtil; >>>> + >>>> +public class OfbizHomeProvider extends AbstractFileProvider { >>>> + public Collection<?> getCapabilities() { >>>> + return DefaultLocalFileProvider.capabilities; >>>> + } >>>> + >>>> + public FileObject findFile(FileObject base, String name, FileSystemOptions properties) throws FileSystemException { >>>> + //new Exception("findFile(" + base + ", " + name + ")").printStackTrace(); >>>> + try { >>>> + URL location = FlexibleLocation.resolveLocation("ofbizhome://."); >>>> + FileObject ofbizBase = getContext().resolveFile(location.toString(), properties); >>>> + return VFSUtil .toFileObject(ofbizBase.getFileSystem().getFileSystemManager(), >>>> ofbizBase.resolveFile(name.substring(13)).getURL().toString(), properties); >>>> + } catch (Exception e) { >>>> + throw UtilMisc.initCause(new FileSystemException(e.getMessage(), null, e), e); >>>> + } >>>> + } >>>> +} >>>> >>>> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/ webslinger/ EntityHttpUtil.java >>>> URL: >>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/EntityHttpUtil.java?rev=833727&r1=833726&r2=833727&view=diff >>>> = = = = = = = = = = ==================================================================== >>>> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ EntityHttpUtil.java (original) >>>> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ EntityHttpUtil.java Sat Nov 7 18:18:33 2009 >>>> @@ -1,78 +1,73 @@ >>>> -/ ******************************************************************************* >>>> - * Licensed to the Apache Software Foundation (ASF) under one >>>> - * or more contributor license agreements. See the NOTICE file >>>> - * distributed with this work for additional information >>>> - * regarding copyright ownership. The ASF licenses this file >>>> - * to you under the Apache License, Version 2.0 (the >>>> - * "License"); you may not use this file except in compliance >>>> - * with the License. You may obtain a copy of the License at >>>> - * >>>> - * http://www.apache.org/licenses/LICENSE-2.0 >>>> - * >>>> - * Unless required by applicable law or agreed to in writing, >>>> - * software distributed under the License is distributed on an >>>> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>> - * KIND, either express or implied. See the License for the >>>> - * specific language governing permissions and limitations >>>> - * under the License. >>>> - *******************************************************************************/ >>>> -package org.ofbiz.webslinger; >>>> - >>>> -import java.util.HashMap; >>>> -import java.util.Iterator; >>>> -import java.util.Locale; >>>> -import java.util.Map; >>>> - >>>> -import javax.servlet.ServletRequest; >>>> -import javax.servlet.http.HttpServletRequest; >>>> - >>>> -import org.ofbiz.base.util.GeneralException; >>>> -import org.ofbiz.base.util.ObjectType; >>>> -import org.ofbiz.base.util.UtilHttp; >>>> -import org.ofbiz.base.util.UtilMisc; >>>> -import org.ofbiz.base.util.UtilValidate; >>>> -import org.ofbiz.entity.Delegator; >>>> -import org.ofbiz.entity.GenericValue; >>>> -import org.ofbiz.entity.jdbc.SqlJdbcUtil; >>>> -import org.ofbiz.entity.model.ModelEntity; >>>> -import org.ofbiz.entity.model.ModelField; >>>> -import org.ofbiz.entity.model.ModelFieldType; >>>> - >>>> -public class EntityHttpUtil { >>>> - public static GenericValue makeValidValue(String entityName, ServletRequest request) throws GeneralException { >>>> - return makeValidValue(entityName, false, request); >>>> - } >>>> - >>>> - public static GenericValue makeValidValue(String entityName, boolean includePks, ServletRequest request) throws >>>> GeneralException { >>>> - if (request instanceof HttpServletRequest) return makeValidValue(entityName, includePks, (HttpServletRequest) >>>> request); >>>> - throw new IllegalArgumentException("Not an HttpServletRequest"); >>>> - } >>>> - >>>> - public static GenericValue makeValidValue(String entityName, HttpServletRequest request) throws GeneralException { >>>> - return makeValidValue(entityName, false, request); >>>> - } >>>> - >>>> - public static GenericValue makeValidValue(String entityName, boolean includePks, HttpServletRequest request) throws >>>> GeneralException { >>>> - Delegator delegator = (Delegator) request.getAttribute("delegator"); >>>> - GenericValue value = delegator.makeValue(entityName); >>>> - ModelEntity model = value.getModelEntity(); >>>> - Iterator<ModelField> it = includePks ? model.getFieldsIterator() : model.getNopksIterator(); >>>> - Locale locale = UtilHttp.getLocale(request); >>>> - while (it.hasNext()) { >>>> - ModelField field = it.next(); >>>> - String fieldName = field.getName(); >>>> - String parameterValue = request.getParameter(fieldName); >>>> - Object fieldValue; >>>> - if (parameterValue == null) { >>>> - fieldValue = null; >>>> - } else { >>>> - ModelFieldType fieldType = delegator.getEntityFieldType(model, field.getType()); >>>> - String wantedType = fieldType.getJavaType(); >>>> - fieldValue = ObjectType.simpleTypeConvert(parameterValue, wantedType, null, locale, true); >>>> - } >>>> - value.put(fieldName, fieldValue); >>>> - } >>>> - return value; >>>> - } >>>> -} >>>> - >>>> +/ ******************************************************************************* >>>> + * Licensed to the Apache Software Foundation (ASF) under one >>>> + * or more contributor license agreements. See the NOTICE file >>>> + * distributed with this work for additional information >>>> + * regarding copyright ownership. The ASF licenses this file >>>> + * to you under the Apache License, Version 2.0 (the >>>> + * "License"); you may not use this file except in compliance >>>> + * with the License. You may obtain a copy of the License at >>>> + * >>>> + * http://www.apache.org/licenses/LICENSE-2.0 >>>> + * >>>> + * Unless required by applicable law or agreed to in writing, >>>> + * software distributed under the License is distributed on an >>>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>> + * KIND, either express or implied. See the License for the >>>> + * specific language governing permissions and limitations >>>> + * under the License. >>>> + *******************************************************************************/ >>>> +package org.ofbiz.webslinger; >>>> + >>>> +import java.util.Iterator; >>>> +import java.util.Locale; >>>> + >>>> +import javax.servlet.ServletRequest; >>>> +import javax.servlet.http.HttpServletRequest; >>>> + >>>> +import org.ofbiz.base.util.GeneralException; >>>> +import org.ofbiz.base.util.ObjectType; >>>> +import org.ofbiz.base.util.UtilHttp; >>>> +import org.ofbiz.entity.Delegator; >>>> +import org.ofbiz.entity.GenericValue; >>>> +import org.ofbiz.entity.model.ModelEntity; >>>> +import org.ofbiz.entity.model.ModelField; >>>> +import org.ofbiz.entity.model.ModelFieldType; >>>> + >>>> +public class EntityHttpUtil { >>>> + public static GenericValue makeValidValue(String entityName, ServletRequest request) throws GeneralException { >>>> + return makeValidValue(entityName, false, request); >>>> + } >>>> + >>>> + public static GenericValue makeValidValue(String entityName, boolean includePks, ServletRequest request) throws >>>> GeneralException { >>>> + if (request instanceof HttpServletRequest) return makeValidValue(entityName, includePks, (HttpServletRequest) >>>> request); >>>> + throw new IllegalArgumentException("Not an HttpServletRequest"); >>>> + } >>>> + >>>> + public static GenericValue makeValidValue(String entityName, HttpServletRequest request) throws GeneralException { >>>> + return makeValidValue(entityName, false, request); >>>> + } >>>> + >>>> + public static GenericValue makeValidValue(String entityName, boolean includePks, HttpServletRequest request) throws >>>> GeneralException { >>>> + Delegator delegator = (Delegator) request.getAttribute("delegator"); >>>> + GenericValue value = delegator.makeValue(entityName); >>>> + ModelEntity model = value.getModelEntity(); >>>> + Iterator<ModelField> it = includePks ? model.getFieldsIterator() : model.getNopksIterator(); >>>> + Locale locale = UtilHttp.getLocale(request); >>>> + while (it.hasNext()) { >>>> + ModelField field = it.next(); >>>> + String fieldName = field.getName(); >>>> + String parameterValue = request.getParameter(fieldName); >>>> + Object fieldValue; >>>> + if (parameterValue == null) { >>>> + fieldValue = null; >>>> + } else { >>>> + ModelFieldType fieldType = delegator.getEntityFieldType(model, field.getType()); >>>> + String wantedType = fieldType.getJavaType(); >>>> + fieldValue = ObjectType.simpleTypeConvert(parameterValue, wantedType, null, locale, true); >>>> + } >>>> + value.put(fieldName, fieldValue); >>>> + } >>>> + return value; >>>> + } >>>> +} >>>> + >>>> >>>> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/ webslinger/ StatsUpdater.java >>>> URL: >>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/StatsUpdater.java?rev=833727&r1=833726&r2=833727&view=diff >>>> = = = = = = = = = = ==================================================================== >>>> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ StatsUpdater.java (original) >>>> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ StatsUpdater.java Sat Nov 7 18:18:33 2009 >>>> @@ -1,121 +1,118 @@ >>>> -/ ******************************************************************************* >>>> - * Licensed to the Apache Software Foundation (ASF) under one >>>> - * or more contributor license agreements. See the NOTICE file >>>> - * distributed with this work for additional information >>>> - * regarding copyright ownership. The ASF licenses this file >>>> - * to you under the Apache License, Version 2.0 (the >>>> - * "License"); you may not use this file except in compliance >>>> - * with the License. You may obtain a copy of the License at >>>> - * >>>> - * http://www.apache.org/licenses/LICENSE-2.0 >>>> - * >>>> - * Unless required by applicable law or agreed to in writing, >>>> - * software distributed under the License is distributed on an >>>> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>> - * KIND, either express or implied. See the License for the >>>> - * specific language governing permissions and limitations >>>> - * under the License. >>>> - *******************************************************************************/ >>>> -package org.ofbiz.webslinger; >>>> - >>>> -import java.util.HashMap; >>>> -import java.util.Iterator; >>>> -import java.util.Map; >>>> -import java.util.concurrent.Callable; >>>> -import java.util.concurrent.ConcurrentHashMap; >>>> -import java.util.concurrent.ScheduledFuture; >>>> -import java.util.concurrent.TimeUnit; >>>> -import java.util.concurrent.atomic.AtomicReference; >>>> - >>>> -import org.ofbiz.base.util.UtilMisc; >>>> -import org.ofbiz.entity.Delegator; >>>> -import org.ofbiz.entity.GenericEntityException; >>>> -import org.ofbiz.entity.GenericPK; >>>> -import org.ofbiz.entity.GenericValue; >>>> - >>>> -import org.webslinger.cache.ConcurrentCache; >>>> -import org.webslinger.concurrent.ExecutionPool; >>>> - >>>> -public class StatsUpdater { >>>> - private static final Updater UPDATER = new Updater(); >>>> - >>>> - public static void updateStats(Delegator delegator, String entityName, Map<String, ? extends Object> keyFields, >>>> Map<String, ? extends Long> updateCountFields) throws GenericEntityException { >>>> - GenericPK pk = delegator.makePK(entityName, keyFields); >>>> - Map<String, Long> value = UPDATER.getValue(pk); >>>> - synchronized (value) { >>>> - for (Map.Entry<String, ? extends Long> entry: updateCountFields.entrySet()) { >>>> - Long oldValue = value.get(entry.getKey()); >>>> - if (oldValue != null) { >>>> - value.put(entry.getKey(), Long.valueOf(oldValue.longValue() + entry.getValue())); >>>> - } else { >>>> - value.put(entry.getKey(), entry.getValue()); >>>> - } >>>> - } >>>> - } >>>> - } >>>> - >>>> - private static final class Updater implements Callable<Void> { >>>> - protected AtomicReference<EntityHolder> entities = new AtomicReference<EntityHolder>(new EntityHolder(Updater.class, >>>> "entities", null)); >>>> - protected ScheduledFuture<Void> future; >>>> - >>>> - protected Map<String, Long> getValue(GenericPK pk) throws GenericEntityException { >>>> - synchronized (this) { >>>> - if (future == null || future.isDone()) { >>>> - future = ExecutionPool.schedule(this, 1, TimeUnit.SECONDS); >>>> - } >>>> - } >>>> - try { >>>> - return entities.get().get(pk); >>>> - } catch (RuntimeException e) { >>>> - throw e; >>>> - } catch (GenericEntityException e) { >>>> - throw e; >>>> - } catch (Exception e) { >>>> - throw UtilMisc.initCause(new GenericEntityException(e.getMessage()), e); >>>> - } >>>> - } >>>> - >>>> - public Void call() { >>>> - EntityHolder oldEntities; >>>> - EntityHolder newEntities = new EntityHolder(Updater.class, "entities", null); >>>> - do { >>>> - oldEntities = entities.get(); >>>> - } while (!entities.compareAndSet(oldEntities, newEntities)); >>>> - synchronized (Updater.class) { >>>> - for (GenericPK pk: oldEntities.keys()) { >>>> - try { >>>> - Map<String, Long> add = oldEntities.get(pk); >>>> - GenericValue existing = pk.getDelegator().findOne(pk.getEntityName(), pk, false); >>>> - if (existing == null) { >>>> - existing = pk.getDelegator().create(pk.getEntityName(), pk); >>>> - } >>>> - for (Map.Entry<String, Long> entry: add.entrySet()) { >>>> - Long value = entry.getValue(); >>>> - Long oldValue = existing.getLong(entry.getKey()); >>>> - if (oldValue != null) { >>>> - existing.put(entry.getKey(), Long.valueOf(value.longValue() + oldValue.longValue())); >>>> - } else { >>>> - existing.put(entry.getKey(), value); >>>> - } >>>> - } >>>> - existing.store(); >>>> - } catch (Exception e) { >>>> - e.printStackTrace(); >>>> - } >>>> - } >>>> - } >>>> - return null; >>>> - } >>>> - } >>>> - >>>> - private static final class EntityHolder extends ConcurrentCache<GenericPK, Map<String, Long>> { >>>> - protected EntityHolder(Class<?> owner, String field, String label) { >>>> - super(owner, field, label, HARD); >>>> - } >>>> - >>>> - @Override >>>> - protected Map<String, Long> createValue(GenericPK pk) throws Exception { >>>> - return new HashMap<String, Long>(); >>>> - } >>>> - } >>>> -} >>>> +/ ******************************************************************************* >>>> + * Licensed to the Apache Software Foundation (ASF) under one >>>> + * or more contributor license agreements. See the NOTICE file >>>> + * distributed with this work for additional information >>>> + * regarding copyright ownership. The ASF licenses this file >>>> + * to you under the Apache License, Version 2.0 (the >>>> + * "License"); you may not use this file except in compliance >>>> + * with the License. You may obtain a copy of the License at >>>> + * >>>> + * http://www.apache.org/licenses/LICENSE-2.0 >>>> + * >>>> + * Unless required by applicable law or agreed to in writing, >>>> + * software distributed under the License is distributed on an >>>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>> + * KIND, either express or implied. See the License for the >>>> + * specific language governing permissions and limitations >>>> + * under the License. >>>> + *******************************************************************************/ >>>> +package org.ofbiz.webslinger; >>>> + >>>> +import java.util.HashMap; >>>> +import java.util.Map; >>>> +import java.util.concurrent.Callable; >>>> +import java.util.concurrent.ScheduledFuture; >>>> +import java.util.concurrent.TimeUnit; >>>> +import java.util.concurrent.atomic.AtomicReference; >>>> + >>>> +import org.ofbiz.base.util.UtilMisc; >>>> +import org.ofbiz.entity.Delegator; >>>> +import org.ofbiz.entity.GenericEntityException; >>>> +import org.ofbiz.entity.GenericPK; >>>> +import org.ofbiz.entity.GenericValue; >>>> +import org.webslinger.cache.ConcurrentCache; >>>> +import org.webslinger.concurrent.ExecutionPool; >>>> + >>>> +public class StatsUpdater { >>>> + private static final Updater UPDATER = new Updater(); >>>> + >>>> + public static void updateStats(Delegator delegator, String entityName, Map<String, ? extends Object> keyFields, >>>> Map<String, ? extends Long> updateCountFields) throws GenericEntityException { >>>> + GenericPK pk = delegator.makePK(entityName, keyFields); >>>> + Map<String, Long> value = UPDATER.getValue(pk); >>>> + synchronized (value) { >>>> + for (Map.Entry<String, ? extends Long> entry: updateCountFields.entrySet()) { >>>> + Long oldValue = value.get(entry.getKey()); >>>> + if (oldValue != null) { >>>> + value.put(entry.getKey(), Long.valueOf(oldValue.longValue() + entry.getValue())); >>>> + } else { >>>> + value.put(entry.getKey(), entry.getValue()); >>>> + } >>>> + } >>>> + } >>>> + } >>>> + >>>> + private static final class Updater implements Callable<Void> { >>>> + protected AtomicReference<EntityHolder> entities = new AtomicReference<EntityHolder>(new EntityHolder(Updater.class, >>>> "entities", null)); >>>> + protected ScheduledFuture<Void> future; >>>> + >>>> + protected Map<String, Long> getValue(GenericPK pk) throws GenericEntityException { >>>> + synchronized (this) { >>>> + if (future == null || future.isDone()) { >>>> + future = ExecutionPool.schedule(this, 1, TimeUnit.SECONDS); >>>> + } >>>> + } >>>> + try { >>>> + return entities.get().get(pk); >>>> + } catch (RuntimeException e) { >>>> + throw e; >>>> + } catch (GenericEntityException e) { >>>> + throw e; >>>> + } catch (Exception e) { >>>> + throw UtilMisc.initCause(new GenericEntityException(e.getMessage()), e); >>>> + } >>>> + } >>>> + >>>> + public Void call() { >>>> + EntityHolder oldEntities; >>>> + EntityHolder newEntities = new EntityHolder(Updater.class, "entities", null); >>>> + do { >>>> + oldEntities = entities.get(); >>>> + } while (!entities.compareAndSet(oldEntities, newEntities)); >>>> + synchronized (Updater.class) { >>>> + for (GenericPK pk: oldEntities.keys()) { >>>> + try { >>>> + Map<String, Long> add = oldEntities.get(pk); >>>> + GenericValue existing = pk.getDelegator().findOne(pk.getEntityName(), pk, false); >>>> + if (existing == null) { >>>> + existing = pk.getDelegator().create(pk.getEntityName(), pk); >>>> + } >>>> + for (Map.Entry<String, Long> entry: add.entrySet()) { >>>> + Long value = entry.getValue(); >>>> + Long oldValue = existing.getLong(entry.getKey()); >>>> + if (oldValue != null) { >>>> + existing.put(entry.getKey(), Long.valueOf(value.longValue() + oldValue.longValue())); >>>> + } else { >>>> + existing.put(entry.getKey(), value); >>>> + } >>>> + } >>>> + existing.store(); >>>> + } catch (Exception e) { >>>> + e.printStackTrace(); >>>> + } >>>> + } >>>> + } >>>> + return null; >>>> + } >>>> + } >>>> + >>>> + private static final class EntityHolder extends ConcurrentCache<GenericPK, Map<String, Long>> { >>>> + protected EntityHolder(Class<?> owner, String field, String label) { >>>> + super(owner, field, label, HARD); >>>> + } >>>> + >>>> + @Override >>>> + protected Map<String, Long> createValue(GenericPK pk) throws Exception { >>>> + return new HashMap<String, Long>(); >>>> + } >>>> + } >>>> +} >>>> >>>> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/ webslinger/ WebslingerContextMapper.java >>>> URL: >>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/WebslingerContextMapper.java?rev=833727&r1=833726&r2=833727&view=diff >>>> = = = = = = = = = = ==================================================================== >>>> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ WebslingerContextMapper.java (original) >>>> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ WebslingerContextMapper.java Sat Nov 7 18:18:33 2009 >>>> @@ -1,218 +1,216 @@ >>>> -/ ******************************************************************************* >>>> - * Licensed to the Apache Software Foundation (ASF) under one >>>> - * or more contributor license agreements. See the NOTICE file >>>> - * distributed with this work for additional information >>>> - * regarding copyright ownership. The ASF licenses this file >>>> - * to you under the Apache License, Version 2.0 (the >>>> - * "License"); you may not use this file except in compliance >>>> - * with the License. You may obtain a copy of the License at >>>> - * >>>> - * http://www.apache.org/licenses/LICENSE-2.0 >>>> - * >>>> - * Unless required by applicable law or agreed to in writing, >>>> - * software distributed under the License is distributed on an >>>> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>> - * KIND, either express or implied. See the License for the >>>> - * specific language governing permissions and limitations >>>> - * under the License. >>>> - *******************************************************************************/ >>>> -package org.ofbiz.webslinger; >>>> - >>>> -import java.io.IOException; >>>> -import java.net.URL; >>>> -import java.util.ArrayList; >>>> -import java.util.Arrays; >>>> -import java.util.HashSet; >>>> -import java.util.List; >>>> -import java.util.Set; >>>> - >>>> -import javax.servlet.ServletConfig; >>>> -import javax.servlet.ServletContext; >>>> -import javax.servlet.ServletException; >>>> -import javax.servlet.http.HttpServletRequest; >>>> - >>>> -import org.ofbiz.base.util.UtilMisc; >>>> -import org.ofbiz.base.util.UtilProperties; >>>> -import org.ofbiz.entity.Delegator; >>>> -import org.ofbiz.entity.DelegatorFactory; >>>> -import org.ofbiz.entity.GenericEntityException; >>>> -import org.ofbiz.entity.GenericValue; >>>> -import org.ofbiz.entity.cache.Cache; >>>> -import org.ofbiz.entity.util.EntityUtil; >>>> -import org.ofbiz.security.SecurityFactory; >>>> -import org.ofbiz.security.authz.AuthorizationFactory; >>>> -import org.ofbiz.service.GenericDispatcher; >>>> -import org.ofbiz.service.LocalDispatcher; >>>> -import org.ofbiz.service.ServiceDispatcher; >>>> -import org.ofbiz.service.DispatchContext; >>>> - >>>> -import org.webslinger.AbstractMappingWebslingerServletContextFactory; >>>> -import org.webslinger.WebslingerServletContext; >>>> -import org.webslinger.collections.CollectionUtil; >>>> -import org.webslinger.lang.ObjectUtil; >>>> - >>>> -public class WebslingerContextMapper extends AbstractMappingWebslingerServletContextFactory { >>>> - protected ServletContext servletContext; >>>> - protected Delegator delegator; >>>> - protected final ArrayList<URL> globalReaderURLs = new ArrayList<URL>(); >>>> - >>>> - public void init(ServletConfig config) throws ServletException, IOException { >>>> - System .err .println(org.webslinger.commons.vfs.flat.FlatFileProvider.class); >>>> - servletContext = config.getServletContext(); >>>> - String delegatorName = servletContext.getInitParameter("entityDelegatorName"); >>>> - delegator = DelegatorFactory.getDelegator(delegatorName); >>>> - String readerFiles = servletContext.getInitParameter("serviceReaderUrls"); >>>> - if (readerFiles != null) { >>>> - for (String reader: CollectionUtil.split(readerFiles, ";")) { >>>> - URL url = config.getServletContext().getResource(reader); >>>> - if (url != null) globalReaderURLs.add(url); >>>> - } >>>> - } >>>> - super.init(config, UtilProperties.getPropertyValue("webslinger.properties", "moduleBase")); >>>> - } >>>> - >>>> - @Override >>>> - protected Layout[] getStartLayouts() throws Exception { >>>> - ArrayList<Layout> layouts = new ArrayList<Layout>(); >>>> - try { >>>> - for (GenericValue value: delegator.findByAnd("WebslingerServer", UtilMisc.toMap("loadAtStart", "Y"))) { >>>> - layouts.add(new OfbizLayout(value)); >>>> - } >>>> - } catch (GenericEntityException e) { >>>> - } >>>> - return layouts.toArray(new Layout[layouts.size()]); >>>> - } >>>> - >>>> - @Override >>>> - public void initializeRequest(WebslingerServletContext context, HttpServletRequest request) { >>>> - request.setAttribute("servletContext", context); >>>> - Object delegator = context.getAttribute("delegator"); >>>> - Object dispatcher = context.getAttribute("dispatcher"); >>>> - Object authz = context.getAttribute("authz"); >>>> - Object security = context.getAttribute("security"); >>>> - request.setAttribute("delegator", delegator); >>>> - request.setAttribute("dispatcher", dispatcher); >>>> - request.setAttribute("authz", authz); >>>> - request.setAttribute("security", security); >>>> - // FIXME!!! These next two are a hack until proper fake/ wrapped session support is done in webslinger >>>> - servletContext.setAttribute("delegator", delegator); >>>> - servletContext.setAttribute("dispatcher", dispatcher); >>>> - servletContext.setAttribute("authz", authz); >>>> - servletContext.setAttribute("security", security); >>>> - } >>>> - >>>> - @Override >>>> - protected void initializeContext(WebslingerServletContext context, Layout layout) throws Exception { >>>> - OfbizLayout ofbizLayout = (OfbizLayout) layout; >>>> - Delegator delegator = null; >>>> - delegator = DelegatorFactory.getDelegator(ofbizLayout.delegatorName); >>>> - context.setAttribute("delegator", delegator); >>>> - context.setAttribute("dispatcher", new WebslingerGenericDispatcher(context, layout.getTarget(), delegator, >>>> globalReaderURLs)); >>>> - context.setAttribute("authz", AuthorizationFactory.getInstance(delegator)); >>>> - context.setAttribute("security", SecurityFactory.getInstance(delegator)); >>>> - } >>>> - >>>> - protected static final class WebslingerGenericDispatcher extends GenericDispatcher { >>>> - protected WebslingerGenericDispatcher(WebslingerServletContext context, String name, Delegator delegator, >>>> List<URL> globalReaderURLs) throws IOException { >>>> - ArrayList<URL> readerURLs = new ArrayList<URL>(globalReaderURLs); >>>> - String readerFiles = context.getInitParameter("serviceReaderUrls"); >>>> - if (readerFiles != null) { >>>> - for (String reader: CollectionUtil.split(readerFiles, ";")) { >>>> - URL url = context.getResource(reader); >>>> - if (url != null) readerURLs.add(url); >>>> - } >>>> - } >>>> - System.err.println(readerURLs); >>>> - this.dispatcher = new ServiceDispatcher(delegator, true, true, true) { >>>> - }; >>>> - ClassLoader loader = null; >>>> - try { >>>> - loader = Thread.currentThread().getContextClassLoader(); >>>> - } catch (SecurityException e) { >>>> - loader = WebslingerContextMapper.class.getClassLoader(); >>>> - } >>>> - DispatchContext dc = new DispatchContext(name, readerURLs, loader, null); >>>> - init(name, delegator, dc); >>>> - } >>>> - } >>>> - >>>> - @Override >>>> - protected Set<String> getSuffixes() throws Exception { >>>> - Cache cache = delegator.getCache(); >>>> - Set<String> suffixes; >>>> - synchronized (WebslingerContextMapper.class) { >>>> - suffixes = cache.get("WebslingerHostSuffix", null, "WebslingerContextMapper.Suffixes"); >>>> - if (suffixes == null) { >>>> - suffixes = new HashSet<String>(); >>>> - for (GenericValue value: delegator.findList("WebslingerHostSuffix", null, null, null, null, false)) { >>>> - suffixes.add(value.getString("hostSuffix")); >>>> - } >>>> - cache.put("WebslingerHostSuffix", null, "WebslingerContextMapper.Suffixes", suffixes); >>>> - } >>>> - } >>>> - return suffixes; >>>> - } >>>> - >>>> - @Override >>>> - protected Layout lookupLayout(String hostName, String contextPath) throws Exception { >>>> - GenericValue layout = EntityUtil.getOnly(delegator.findByAndCache("WebslingerLayout", UtilMisc.toMap("hostName", >>>> hostName, "contextPath", contextPath))); >>>> - if (layout == null) return null; >>>> - return new OfbizLayout(layout); >>>> - } >>>> - >>>> - protected class OfbizLayout implements Layout { >>>> - private final String contextPath; >>>> - private final String id; >>>> - private final String target; >>>> - private final String[] bases; >>>> - private final int hashCode; >>>> - protected final String delegatorName; >>>> - protected final String dispatcherName; >>>> - >>>> - protected OfbizLayout(GenericValue server) throws GenericEntityException { >>>> - contextPath = server.getString("contextPath"); >>>> - id = server.getString("webslingerServerId"); >>>> - target = server.getString("target"); >>>> - List<GenericValue> baseValues = server.getRelatedCache("WebslingerServerBase", UtilMisc.toList("seqNum")); >>>> - bases = new String[baseValues.size()]; >>>> - for (int i = 0; i < bases.length; i++) { >>>> - GenericValue baseValue = baseValues.get(i); >>>> - bases[i] = baseValue.getString("baseName"); >>>> - } >>>> - delegatorName = server.getString("delegatorName"); >>>> - dispatcherName = server.getString("dispatcherName"); >>>> - hashCode = target.hashCode() ^ ObjectUtil.hashCodeHelper(delegatorName) ^ Arrays.hashCode(bases); >>>> - } >>>> - >>>> - public String getContextPath() { >>>> - return contextPath; >>>> - } >>>> - >>>> - public String getId() { >>>> - return id; >>>> - } >>>> - >>>> - public String getTarget() { >>>> - return target; >>>> - } >>>> - >>>> - public String[] getBases() { >>>> - return bases; >>>> - } >>>> - >>>> - @Override >>>> - public int hashCode() { >>>> - return hashCode; >>>> - } >>>> - >>>> - @Override >>>> - public boolean equals(Object o) { >>>> - if (!(o instanceof OfbizLayout)) return false; >>>> - OfbizLayout other = (OfbizLayout) o; >>>> - if (!contextPath.equals(other.contextPath)) return false; >>>> - if (!target.equals(other.target)) return false; >>>> - if (!ObjectUtil.equalsHelper(delegatorName, other.delegatorName)) return false; >>>> - return Arrays.equals(bases, other.bases); >>>> - } >>>> - } >>>> -} >>>> +/ ******************************************************************************* >>>> + * Licensed to the Apache Software Foundation (ASF) under one >>>> + * or more contributor license agreements. See the NOTICE file >>>> + * distributed with this work for additional information >>>> + * regarding copyright ownership. The ASF licenses this file >>>> + * to you under the Apache License, Version 2.0 (the >>>> + * "License"); you may not use this file except in compliance >>>> + * with the License. You may obtain a copy of the License at >>>> + * >>>> + * http://www.apache.org/licenses/LICENSE-2.0 >>>> + * >>>> + * Unless required by applicable law or agreed to in writing, >>>> + * software distributed under the License is distributed on an >>>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>> + * KIND, either express or implied. See the License for the >>>> + * specific language governing permissions and limitations >>>> + * under the License. >>>> + *******************************************************************************/ >>>> +package org.ofbiz.webslinger; >>>> + >>>> +import java.io.IOException; >>>> +import java.net.URL; >>>> +import java.util.ArrayList; >>>> +import java.util.Arrays; >>>> +import java.util.HashSet; >>>> +import java.util.List; >>>> +import java.util.Set; >>>> + >>>> +import javax.servlet.ServletConfig; >>>> +import javax.servlet.ServletContext; >>>> +import javax.servlet.ServletException; >>>> +import javax.servlet.http.HttpServletRequest; >>>> + >>>> +import org.ofbiz.base.util.UtilMisc; >>>> +import org.ofbiz.base.util.UtilProperties; >>>> +import org.ofbiz.entity.Delegator; >>>> +import org.ofbiz.entity.DelegatorFactory; >>>> +import org.ofbiz.entity.GenericEntityException; >>>> +import org.ofbiz.entity.GenericValue; >>>> +import org.ofbiz.entity.cache.Cache; >>>> +import org.ofbiz.entity.util.EntityUtil; >>>> +import org.ofbiz.security.SecurityFactory; >>>> +import org.ofbiz.security.authz.AuthorizationFactory; >>>> +import org.ofbiz.service.DispatchContext; >>>> +import org.ofbiz.service.GenericDispatcher; >>>> +import org.ofbiz.service.ServiceDispatcher; >>>> +import org.webslinger.AbstractMappingWebslingerServletContextFactory; >>>> +import org.webslinger.WebslingerServletContext; >>>> +import org.webslinger.collections.CollectionUtil; >>>> +import org.webslinger.lang.ObjectUtil; >>>> + >>>> +public class WebslingerContextMapper extends AbstractMappingWebslingerServletContextFactory { >>>> + protected ServletContext servletContext; >>>> + protected Delegator delegator; >>>> + protected final ArrayList<URL> globalReaderURLs = new ArrayList<URL>(); >>>> + >>>> + public void init(ServletConfig config) throws ServletException, IOException { >>>> + System .err .println(org.webslinger.commons.vfs.flat.FlatFileProvider.class); >>>> + servletContext = config.getServletContext(); >>>> + String delegatorName = servletContext.getInitParameter("entityDelegatorName"); >>>> + delegator = DelegatorFactory.getDelegator(delegatorName); >>>> + String readerFiles = servletContext.getInitParameter("serviceReaderUrls"); >>>> + if (readerFiles != null) { >>>> + for (String reader: CollectionUtil.split(readerFiles, ";")) { >>>> + URL url = config.getServletContext().getResource(reader); >>>> + if (url != null) globalReaderURLs.add(url); >>>> + } >>>> + } >>>> + super.init(config, UtilProperties.getPropertyValue("webslinger.properties", "moduleBase")); >>>> + } >>>> + >>>> + @Override >>>> + protected Layout[] getStartLayouts() throws Exception { >>>> + ArrayList<Layout> layouts = new ArrayList<Layout>(); >>>> + try { >>>> + for (GenericValue value: delegator.findByAnd("WebslingerServer", UtilMisc.toMap("loadAtStart", "Y"))) { >>>> + layouts.add(new OfbizLayout(value)); >>>> + } >>>> + } catch (GenericEntityException e) { >>>> + } >>>> + return layouts.toArray(new Layout[layouts.size()]); >>>> + } >>>> + >>>> + @Override >>>> + public void initializeRequest(WebslingerServletContext context, HttpServletRequest request) { >>>> + request.setAttribute("servletContext", context); >>>> + Object delegator = context.getAttribute("delegator"); >>>> + Object dispatcher = context.getAttribute("dispatcher"); >>>> + Object authz = context.getAttribute("authz"); >>>> + Object security = context.getAttribute("security"); >>>> + request.setAttribute("delegator", delegator); >>>> + request.setAttribute("dispatcher", dispatcher); >>>> + request.setAttribute("authz", authz); >>>> + request.setAttribute("security", security); >>>> + // FIXME!!! These next two are a hack until proper fake/ wrapped session support is done in webslinger >>>> + servletContext.setAttribute("delegator", delegator); >>>> + servletContext.setAttribute("dispatcher", dispatcher); >>>> + servletContext.setAttribute("authz", authz); >>>> + servletContext.setAttribute("security", security); >>>> + } >>>> + >>>> + @Override >>>> + protected void initializeContext(WebslingerServletContext context, Layout layout) throws Exception { >>>> + OfbizLayout ofbizLayout = (OfbizLayout) layout; >>>> + Delegator delegator = null; >>>> + delegator = DelegatorFactory.getDelegator(ofbizLayout.delegatorName); >>>> + context.setAttribute("delegator", delegator); >>>> + context.setAttribute("dispatcher", new WebslingerGenericDispatcher(context, layout.getTarget(), delegator, >>>> globalReaderURLs)); >>>> + context.setAttribute("authz", AuthorizationFactory.getInstance(delegator)); >>>> + context.setAttribute("security", SecurityFactory.getInstance(delegator)); >>>> + } >>>> + >>>> + protected static final class WebslingerGenericDispatcher extends GenericDispatcher { >>>> + protected WebslingerGenericDispatcher(WebslingerServletContext context, String name, Delegator delegator, >>>> List<URL> globalReaderURLs) throws IOException { >>>> + ArrayList<URL> readerURLs = new ArrayList<URL>(globalReaderURLs); >>>> + String readerFiles = context.getInitParameter("serviceReaderUrls"); >>>> + if (readerFiles != null) { >>>> + for (String reader: CollectionUtil.split(readerFiles, ";")) { >>>> + URL url = context.getResource(reader); >>>> + if (url != null) readerURLs.add(url); >>>> + } >>>> + } >>>> + System.err.println(readerURLs); >>>> + this.dispatcher = new ServiceDispatcher(delegator, true, true, true) { >>>> + }; >>>> + ClassLoader loader = null; >>>> + try { >>>> + loader = Thread.currentThread().getContextClassLoader(); >>>> + } catch (SecurityException e) { >>>> + loader = WebslingerContextMapper.class.getClassLoader(); >>>> + } >>>> + DispatchContext dc = new DispatchContext(name, readerURLs, loader, null); >>>> + init(name, delegator, dc); >>>> + } >>>> + } >>>> + >>>> + @Override >>>> + protected Set<String> getSuffixes() throws Exception { >>>> + Cache cache = delegator.getCache(); >>>> + Set<String> suffixes; >>>> + synchronized (WebslingerContextMapper.class) { >>>> + suffixes = cache.get("WebslingerHostSuffix", null, "WebslingerContextMapper.Suffixes"); >>>> + if (suffixes == null) { >>>> + suffixes = new HashSet<String>(); >>>> + for (GenericValue value: delegator.findList("WebslingerHostSuffix", null, null, null, null, false)) { >>>> + suffixes.add(value.getString("hostSuffix")); >>>> + } >>>> + cache.put("WebslingerHostSuffix", null, "WebslingerContextMapper.Suffixes", suffixes); >>>> + } >>>> + } >>>> + return suffixes; >>>> + } >>>> + >>>> + @Override >>>> + protected Layout lookupLayout(String hostName, String contextPath) throws Exception { >>>> + GenericValue layout = EntityUtil.getOnly(delegator.findByAndCache("WebslingerLayout", UtilMisc.toMap("hostName", >>>> hostName, "contextPath", contextPath))); >>>> + if (layout == null) return null; >>>> + return new OfbizLayout(layout); >>>> + } >>>> + >>>> + protected class OfbizLayout implements Layout { >>>> + private final String contextPath; >>>> + private final String id; >>>> + private final String target; >>>> + private final String[] bases; >>>> + private final int hashCode; >>>> + protected final String delegatorName; >>>> + protected final String dispatcherName; >>>> + >>>> + protected OfbizLayout(GenericValue server) throws GenericEntityException { >>>> + contextPath = server.getString("contextPath"); >>>> + id = server.getString("webslingerServerId"); >>>> + target = server.getString("target"); >>>> + List<GenericValue> baseValues = server.getRelatedCache("WebslingerServerBase", UtilMisc.toList("seqNum")); >>>> + bases = new String[baseValues.size()]; >>>> + for (int i = 0; i < bases.length; i++) { >>>> + GenericValue baseValue = baseValues.get(i); >>>> + bases[i] = baseValue.getString("baseName"); >>>> + } >>>> + delegatorName = server.getString("delegatorName"); >>>> + dispatcherName = server.getString("dispatcherName"); >>>> + hashCode = target.hashCode() ^ ObjectUtil.hashCodeHelper(delegatorName) ^ Arrays.hashCode(bases); >>>> + } >>>> + >>>> + public String getContextPath() { >>>> + return contextPath; >>>> + } >>>> + >>>> + public String getId() { >>>> + return id; >>>> + } >>>> + >>>> + public String getTarget() { >>>> + return target; >>>> + } >>>> + >>>> + public String[] getBases() { >>>> + return bases; >>>> + } >>>> + >>>> + @Override >>>> + public int hashCode() { >>>> + return hashCode; >>>> + } >>>> + >>>> + @Override >>>> + public boolean equals(Object o) { >>>> + if (!(o instanceof OfbizLayout)) return false; >>>> + OfbizLayout other = (OfbizLayout) o; >>>> + if (!contextPath.equals(other.contextPath)) return false; >>>> + if (!target.equals(other.target)) return false; >>>> + if (!ObjectUtil.equalsHelper(delegatorName, other.delegatorName)) return false; >>>> + return Arrays.equals(bases, other.bases); >>>> + } >>>> + } >>>> +} >>>> >>>> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/ webslinger/ WebslingerServerEngine.java >>>> URL: >>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/WebslingerServerEngine.java?rev=833727&r1=833726&r2=833727&view=diff >>>> = = = = = = = = = = ==================================================================== >>>> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ WebslingerServerEngine.java (original) >>>> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ WebslingerServerEngine.java Sat Nov 7 18:18:33 2009 >>>> @@ -1,64 +1,59 @@ >>>> -/ ******************************************************************************* >>>> - * Licensed to the Apache Software Foundation (ASF) under one >>>> - * or more contributor license agreements. See the NOTICE file >>>> - * distributed with this work for additional information >>>> - * regarding copyright ownership. The ASF licenses this file >>>> - * to you under the Apache License, Version 2.0 (the >>>> - * "License"); you may not use this file except in compliance >>>> - * with the License. You may obtain a copy of the License at >>>> - * >>>> - * http://www.apache.org/licenses/LICENSE-2.0 >>>> - * >>>> - * Unless required by applicable law or agreed to in writing, >>>> - * software distributed under the License is distributed on an >>>> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>> - * KIND, either express or implied. See the License for the >>>> - * specific language governing permissions and limitations >>>> - * under the License. >>>> - *******************************************************************************/ >>>> -package org.ofbiz.webslinger; >>>> - >>>> -import java.io.IOException; >>>> -import java.io.StringReader; >>>> -import java.io.StringWriter; >>>> -import java.util.Collections; >>>> -import java.util.Map; >>>> - >>>> -import org.ofbiz.base.util.UtilGenerics; >>>> -import org.ofbiz.base.util.UtilMisc; >>>> -import org.ofbiz.entity.Delegator; >>>> -import org.ofbiz.entity.GenericValue; >>>> -import org.ofbiz.entity.util.EntityUtil; >>>> -import org.ofbiz.service.GenericServiceException; >>>> -import org.ofbiz.service.ModelService; >>>> -import org.ofbiz.service.ServiceDispatcher; >>>> -import org.ofbiz.service.engine.GenericAsyncEngine; >>>> - >>>> -import org.webslinger.WebslingerServletContext; >>>> - >>>> -public class WebslingerServerEngine extends GenericAsyncEngine { >>>> - public WebslingerServerEngine(ServiceDispatcher dispatcher) { >>>> - super(dispatcher); >>>> - } >>>> - >>>> - @Override >>>> - public void runSyncIgnore(String localName, ModelService modelService, Map<String, Object> context) throws >>>> GenericServiceException { >>>> - runSync(localName, modelService, context); >>>> - } >>>> - >>>> - @Override >>>> - public Map<String, Object> runSync(String localName, ModelService modelService, Map<String, Object> context) throws >>>> GenericServiceException { >>>> - Delegator delegator = dispatcher.getDelegator(); >>>> - try { >>>> - GenericValue found = EntityUtil.getFirst(delegator.findByAndCache("WebslingerLayout", >>>> UtilMisc.toMap("webslingerServerId", modelService.location))); >>>> - if (found == null) throw new GenericServiceException("Couldn't find server mapping for(" + >>>> modelService.location + ")"); >>>> - return UtilGenerics .checkMap (WebslingerServletContext.invokeInVM(found.getString("hostName"), 8080, >>>> modelService.invoke, context)); >>>> - } catch (RuntimeException e) { >>>> - throw e; >>>> - } catch (GenericServiceException e) { >>>> - throw e; >>>> - } catch (Exception e) { >>>> - throw UtilMisc.initCause(new GenericServiceException(e.getMessage()), e); >>>> - } >>>> - } >>>> -} >>>> +/ ******************************************************************************* >>>> + * Licensed to the Apache Software Foundation (ASF) under one >>>> + * or more contributor license agreements. See the NOTICE file >>>> + * distributed with this work for additional information >>>> + * regarding copyright ownership. The ASF licenses this file >>>> + * to you under the Apache License, Version 2.0 (the >>>> + * "License"); you may not use this file except in compliance >>>> + * with the License. You may obtain a copy of the License at >>>> + * >>>> + * http://www.apache.org/licenses/LICENSE-2.0 >>>> + * >>>> + * Unless required by applicable law or agreed to in writing, >>>> + * software distributed under the License is distributed on an >>>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>> + * KIND, either express or implied. See the License for the >>>> + * specific language governing permissions and limitations >>>> + * under the License. >>>> + *******************************************************************************/ >>>> +package org.ofbiz.webslinger; >>>> + >>>> +import java.util.Map; >>>> + >>>> +import org.ofbiz.base.util.UtilGenerics; >>>> +import org.ofbiz.base.util.UtilMisc; >>>> +import org.ofbiz.entity.Delegator; >>>> +import org.ofbiz.entity.GenericValue; >>>> +import org.ofbiz.entity.util.EntityUtil; >>>> +import org.ofbiz.service.GenericServiceException; >>>> +import org.ofbiz.service.ModelService; >>>> +import org.ofbiz.service.ServiceDispatcher; >>>> +import org.ofbiz.service.engine.GenericAsyncEngine; >>>> +import org.webslinger.WebslingerServletContext; >>>> + >>>> +public class WebslingerServerEngine extends GenericAsyncEngine { >>>> + public WebslingerServerEngine(ServiceDispatcher dispatcher) { >>>> + super(dispatcher); >>>> + } >>>> + >>>> + @Override >>>> + public void runSyncIgnore(String localName, ModelService modelService, Map<String, Object> context) throws >>>> GenericServiceException { >>>> + runSync(localName, modelService, context); >>>> + } >>>> + >>>> + @Override >>>> + public Map<String, Object> runSync(String localName, ModelService modelService, Map<String, Object> context) throws >>>> GenericServiceException { >>>> + Delegator delegator = dispatcher.getDelegator(); >>>> + try { >>>> + GenericValue found = EntityUtil.getFirst(delegator.findByAndCache("WebslingerLayout", >>>> UtilMisc.toMap("webslingerServerId", modelService.location))); >>>> + if (found == null) throw new GenericServiceException("Couldn't find server mapping for(" + >>>> modelService.location + ")"); >>>> + return UtilGenerics .checkMap (WebslingerServletContext.invokeInVM(found.getString("hostName"), 8080, >>>> modelService.invoke, context)); >>>> + } catch (RuntimeException e) { >>>> + throw e; >>>> + } catch (GenericServiceException e) { >>>> + throw e; >>>> + } catch (Exception e) { >>>> + throw UtilMisc.initCause(new GenericServiceException(e.getMessage()), e); >>>> + } >>>> + } >>>> +} >>>> >>>> >>> >> >> > > |
Hi Jacques
I was referring to the svn properties on the files being committed rather than the svn config. Regards Scott On 10/11/2009, at 1:07 AM, Jacques Le Roux wrote: > I replaced my .subversion/config by ours. Not sure why it has been > replaced, by an install maybe or as I'm on Windows, Tortoise while > changing the setting... > > Jacques > > From: "Scott Gray" <[hidden email]> >> Hi Jacques, >> >> I think the problem is related to files in svn that do not have >> any svn properties set (specifically eol-style), I just came >> across this myself in r833931 and r833933. When I initially >> applied the patch the entire file changed but after setting the >> svn properties the issue went away. >> >> Regards >> Scott >> >> On 9/11/2009, at 11:32 AM, Jacques Le Roux wrote: >> >>> Sorry Scott, >>> >>> I have still not got the reflex... As I have not touched the >>> patch (ok you have to trust me) you may review the patch itself... >>> >>> Jacques >>> >>> From: "Scott Gray" <[hidden email]> >>>> Hi Jacques, >>>> >>>> This is that same problem with the patch again, please keep an >>>> eye out for these as the commits are impossible to review. >>>> >>>> Thanks >>>> Scott >>>> >>>> HotWax Media >>>> http://www.hotwaxmedia.com >>>> >>>> On 8/11/2009, at 7:18 AM, [hidden email] wrote: >>>> >>>>> Author: jleroux >>>>> Date: Sat Nov 7 18:18:33 2009 >>>>> New Revision: 833727 >>>>> >>>>> URL: http://svn.apache.org/viewvc?rev=833727&view=rev >>>>> Log: >>>>> A patch from Marc Morin "Resolve java warnings exposed in >>>>> Eclipse : framework - webslinger" (https://issues.apache.org/jira/browse/OFBIZ-3121 >>>>> ) - OFBIZ-3121 >>>>> >>>>> Modified: >>>>> ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ >>>>> CommonsVfsContainer.java >>>>> ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ >>>>> ofbiz/ OfbizComponentProvider.java >>>>> ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ >>>>> ofbiz/ OfbizHomeProvider.java >>>>> ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ >>>>> EntityHttpUtil.java >>>>> ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ >>>>> StatsUpdater.java >>>>> ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ >>>>> WebslingerContextMapper.java >>>>> ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ >>>>> WebslingerServerEngine.java >>>>> >>>>> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/ >>>>> commons/ vfs/ CommonsVfsContainer.java >>>>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/CommonsVfsContainer.java?rev=833727&r1=833726&r2=833727&view=diff >>>>> = = = = = = = = = = >>>>> = >>>>> = >>>>> ================================================================== >>>>> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ >>>>> CommonsVfsContainer.java (original) >>>>> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ >>>>> CommonsVfsContainer.java Sat Nov 7 18:18:33 2009 >>>>> @@ -1,68 +1,66 @@ >>>>> -/ >>>>> ******************************************************************************* >>>>> - * Licensed to the Apache Software Foundation (ASF) under one >>>>> - * or more contributor license agreements. See the NOTICE file >>>>> - * distributed with this work for additional information >>>>> - * regarding copyright ownership. The ASF licenses this file >>>>> - * to you under the Apache License, Version 2.0 (the >>>>> - * "License"); you may not use this file except in compliance >>>>> - * with the License. You may obtain a copy of the License at >>>>> - * >>>>> - * http://www.apache.org/licenses/LICENSE-2.0 >>>>> - * >>>>> - * Unless required by applicable law or agreed to in writing, >>>>> - * software distributed under the License is distributed on an >>>>> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>> - * KIND, either express or implied. See the License for the >>>>> - * specific language governing permissions and limitations >>>>> - * under the License. >>>>> - >>>>> *******************************************************************************/ >>>>> -package org.ofbiz.commons.vfs; >>>>> - >>>>> -import java.io.File; >>>>> -import java.io.IOException; >>>>> -import java.net.MalformedURLException; >>>>> - >>>>> -import org.apache.commons.vfs.CacheStrategy; >>>>> -import org.apache.commons.vfs.FileObject; >>>>> -import org.apache.commons.vfs.FileSystemException; >>>>> -import org.apache.commons.vfs.FileSystemManager; >>>>> -import org.apache.commons.vfs.impl.StandardFileSystemManager; >>>>> - >>>>> -import org.ofbiz.base.container.Container; >>>>> -import org.ofbiz.base.container.ContainerException; >>>>> -import org.ofbiz.base.util.UtilMisc; >>>>> -import org.webslinger.commons.vfs.VFSUtil; >>>>> - >>>>> -public class CommonsVfsContainer implements Container { >>>>> - private static StandardFileSystemManager sfsm; >>>>> - >>>>> - public void init(String[] args, String configFile) throws >>>>> ContainerException { >>>>> - } >>>>> - >>>>> - public boolean start() throws ContainerException { >>>>> - try { >>>>> - StandardFileSystemManager sfsm = >>>>> VFSUtil.createStandardFileSystemManager(); >>>>> - FileObject currentDir = sfsm.resolveFile(new >>>>> File(".").toURI().toURL().toString()); >>>>> - sfsm.setBaseFile(currentDir); >>>>> - CommonsVfsContainer.sfsm = sfsm; >>>>> - } catch (FileSystemException e) { >>>>> - throw UtilMisc.initCause(new >>>>> ContainerException("Initializing StandardFileSystemManager"), e); >>>>> - } catch (MalformedURLException e) { >>>>> - throw UtilMisc.initCause(new >>>>> ContainerException("Initializing StandardFileSystemManager"), e); >>>>> - } >>>>> - return true; >>>>> - } >>>>> - >>>>> - public void stop() throws ContainerException { >>>>> - sfsm.close(); >>>>> - sfsm = null; >>>>> - } >>>>> - >>>>> - public static FileObject resolveFile(String uri) throws >>>>> IOException { >>>>> - return sfsm.resolveFile(uri); >>>>> - } >>>>> - >>>>> - public static FileSystemManager getFileSystemManager() { >>>>> - return sfsm; >>>>> - } >>>>> -} >>>>> +/ >>>>> ******************************************************************************* >>>>> + * Licensed to the Apache Software Foundation (ASF) under one >>>>> + * or more contributor license agreements. See the NOTICE file >>>>> + * distributed with this work for additional information >>>>> + * regarding copyright ownership. The ASF licenses this file >>>>> + * to you under the Apache License, Version 2.0 (the >>>>> + * "License"); you may not use this file except in compliance >>>>> + * with the License. You may obtain a copy of the License at >>>>> + * >>>>> + * http://www.apache.org/licenses/LICENSE-2.0 >>>>> + * >>>>> + * Unless required by applicable law or agreed to in writing, >>>>> + * software distributed under the License is distributed on an >>>>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>> + * KIND, either express or implied. See the License for the >>>>> + * specific language governing permissions and limitations >>>>> + * under the License. >>>>> + >>>>> *******************************************************************************/ >>>>> +package org.ofbiz.commons.vfs; >>>>> + >>>>> +import java.io.File; >>>>> +import java.io.IOException; >>>>> +import java.net.MalformedURLException; >>>>> + >>>>> +import org.apache.commons.vfs.FileObject; >>>>> +import org.apache.commons.vfs.FileSystemException; >>>>> +import org.apache.commons.vfs.FileSystemManager; >>>>> +import org.apache.commons.vfs.impl.StandardFileSystemManager; >>>>> +import org.ofbiz.base.container.Container; >>>>> +import org.ofbiz.base.container.ContainerException; >>>>> +import org.ofbiz.base.util.UtilMisc; >>>>> +import org.webslinger.commons.vfs.VFSUtil; >>>>> + >>>>> +public class CommonsVfsContainer implements Container { >>>>> + private static StandardFileSystemManager sfsm; >>>>> + >>>>> + public void init(String[] args, String configFile) throws >>>>> ContainerException { >>>>> + } >>>>> + >>>>> + public boolean start() throws ContainerException { >>>>> + try { >>>>> + StandardFileSystemManager sfsm = >>>>> VFSUtil.createStandardFileSystemManager(); >>>>> + FileObject currentDir = sfsm.resolveFile(new >>>>> File(".").toURI().toURL().toString()); >>>>> + sfsm.setBaseFile(currentDir); >>>>> + CommonsVfsContainer.sfsm = sfsm; >>>>> + } catch (FileSystemException e) { >>>>> + throw UtilMisc.initCause(new >>>>> ContainerException("Initializing StandardFileSystemManager"), e); >>>>> + } catch (MalformedURLException e) { >>>>> + throw UtilMisc.initCause(new >>>>> ContainerException("Initializing StandardFileSystemManager"), e); >>>>> + } >>>>> + return true; >>>>> + } >>>>> + >>>>> + public void stop() throws ContainerException { >>>>> + sfsm.close(); >>>>> + sfsm = null; >>>>> + } >>>>> + >>>>> + public static FileObject resolveFile(String uri) throws >>>>> IOException { >>>>> + return sfsm.resolveFile(uri); >>>>> + } >>>>> + >>>>> + public static FileSystemManager getFileSystemManager() { >>>>> + return sfsm; >>>>> + } >>>>> +} >>>>> >>>>> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/ >>>>> commons/ vfs/ ofbiz/OfbizComponentProvider.java >>>>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ofbiz/OfbizComponentProvider.java?rev=833727&r1=833726&r2=833727&view=diff >>>>> = = = = = = = = = = >>>>> = >>>>> = >>>>> ================================================================== >>>>> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ >>>>> ofbiz/ OfbizComponentProvider.java (original) >>>>> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ >>>>> ofbiz/ OfbizComponentProvider.java Sat Nov 7 18:18:33 2009 >>>>> @@ -1,58 +1,58 @@ >>>>> -/ >>>>> ******************************************************************************* >>>>> - * Licensed to the Apache Software Foundation (ASF) under one >>>>> - * or more contributor license agreements. See the NOTICE file >>>>> - * distributed with this work for additional information >>>>> - * regarding copyright ownership. The ASF licenses this file >>>>> - * to you under the Apache License, Version 2.0 (the >>>>> - * "License"); you may not use this file except in compliance >>>>> - * with the License. You may obtain a copy of the License at >>>>> - * >>>>> - * http://www.apache.org/licenses/LICENSE-2.0 >>>>> - * >>>>> - * Unless required by applicable law or agreed to in writing, >>>>> - * software distributed under the License is distributed on an >>>>> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>> - * KIND, either express or implied. See the License for the >>>>> - * specific language governing permissions and limitations >>>>> - * under the License. >>>>> - >>>>> *******************************************************************************/ >>>>> -package org.ofbiz.commons.vfs.ofbiz; >>>>> - >>>>> -import java.net.URL; >>>>> -import java.util.Collection; >>>>> -import org.apache.commons.vfs.FileObject; >>>>> -import org.apache.commons.vfs.FileSystemException; >>>>> -import org.apache.commons.vfs.FileSystemOptions; >>>>> -import org.apache.commons.vfs.provider.AbstractFileProvider; >>>>> -import >>>>> org.apache.commons.vfs.provider.local.DefaultLocalFileProvider; >>>>> -import org.ofbiz.base.location.FlexibleLocation; >>>>> -import org.ofbiz.base.util.UtilMisc; >>>>> -import org.webslinger.commons.vfs.VFSUtil; >>>>> - >>>>> -public class OfbizComponentProvider extends >>>>> AbstractFileProvider { >>>>> - public Collection getCapabilities() { >>>>> - return DefaultLocalFileProvider.capabilities; >>>>> - } >>>>> - >>>>> - public FileObject findFile(FileObject base, String name, >>>>> FileSystemOptions properties) throws FileSystemException { >>>>> - try { >>>>> - //name = name.replaceAll("^ofbiz-component://", ""); >>>>> - int nameLength = name.length(); >>>>> - int componentNameStart = 16; >>>>> - while (componentNameStart < nameLength && >>>>> name.charAt(componentNameStart) == '/') componentNameStart++; >>>>> - if (componentNameStart == nameLength) throw new >>>>> IllegalArgumentException("Invalid name(" + name + ")"); >>>>> - int componentNameEnd = componentNameStart; >>>>> - while (componentNameEnd < nameLength && >>>>> name.charAt(componentNameEnd) != '/') componentNameEnd++; >>>>> - if (componentNameEnd == nameLength) throw new >>>>> IllegalArgumentException("Invalid name(" + name + ")"); >>>>> - int restStart = componentNameEnd; >>>>> - while (restStart < nameLength && >>>>> name.charAt(restStart) == '/') restStart++; >>>>> - if (restStart == nameLength) throw new >>>>> IllegalArgumentException("Invalid name(" + name + ")"); >>>>> - String componentName = >>>>> name.substring(componentNameStart, componentNameEnd); >>>>> - URL location = >>>>> FlexibleLocation.resolveLocation("component://" + componentName >>>>> + "/."); >>>>> - FileObject ofbizBase = >>>>> getContext().resolveFile(location.toString(), properties); >>>>> - return >>>>> VFSUtil >>>>> .toFileObject >>>>> (ofbizBase.getFileSystem().getFileSystemManager(), >>>>> ofbizBase >>>>> .resolveFile(name.substring(restStart)).getURL().toString(), >>>>> properties); >>>>> - } catch (Exception e) { >>>>> - throw UtilMisc.initCause(new >>>>> FileSystemException(e.getMessage(), null, e), e); >>>>> - } >>>>> - } >>>>> -} >>>>> +/ >>>>> ******************************************************************************* >>>>> + * Licensed to the Apache Software Foundation (ASF) under one >>>>> + * or more contributor license agreements. See the NOTICE file >>>>> + * distributed with this work for additional information >>>>> + * regarding copyright ownership. The ASF licenses this file >>>>> + * to you under the Apache License, Version 2.0 (the >>>>> + * "License"); you may not use this file except in compliance >>>>> + * with the License. You may obtain a copy of the License at >>>>> + * >>>>> + * http://www.apache.org/licenses/LICENSE-2.0 >>>>> + * >>>>> + * Unless required by applicable law or agreed to in writing, >>>>> + * software distributed under the License is distributed on an >>>>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>> + * KIND, either express or implied. See the License for the >>>>> + * specific language governing permissions and limitations >>>>> + * under the License. >>>>> + >>>>> *******************************************************************************/ >>>>> +package org.ofbiz.commons.vfs.ofbiz; >>>>> + >>>>> +import java.net.URL; >>>>> +import java.util.Collection; >>>>> +import org.apache.commons.vfs.FileObject; >>>>> +import org.apache.commons.vfs.FileSystemException; >>>>> +import org.apache.commons.vfs.FileSystemOptions; >>>>> +import org.apache.commons.vfs.provider.AbstractFileProvider; >>>>> +import >>>>> org.apache.commons.vfs.provider.local.DefaultLocalFileProvider; >>>>> +import org.ofbiz.base.location.FlexibleLocation; >>>>> +import org.ofbiz.base.util.UtilMisc; >>>>> +import org.webslinger.commons.vfs.VFSUtil; >>>>> + >>>>> +public class OfbizComponentProvider extends >>>>> AbstractFileProvider { >>>>> + public Collection<?> getCapabilities() { >>>>> + return DefaultLocalFileProvider.capabilities; >>>>> + } >>>>> + >>>>> + public FileObject findFile(FileObject base, String name, >>>>> FileSystemOptions properties) throws FileSystemException { >>>>> + try { >>>>> + //name = name.replaceAll("^ofbiz-component://", ""); >>>>> + int nameLength = name.length(); >>>>> + int componentNameStart = 16; >>>>> + while (componentNameStart < nameLength && >>>>> name.charAt(componentNameStart) == '/') componentNameStart++; >>>>> + if (componentNameStart == nameLength) throw new >>>>> IllegalArgumentException("Invalid name(" + name + ")"); >>>>> + int componentNameEnd = componentNameStart; >>>>> + while (componentNameEnd < nameLength && >>>>> name.charAt(componentNameEnd) != '/') componentNameEnd++; >>>>> + if (componentNameEnd == nameLength) throw new >>>>> IllegalArgumentException("Invalid name(" + name + ")"); >>>>> + int restStart = componentNameEnd; >>>>> + while (restStart < nameLength && >>>>> name.charAt(restStart) == '/') restStart++; >>>>> + if (restStart == nameLength) throw new >>>>> IllegalArgumentException("Invalid name(" + name + ")"); >>>>> + String componentName = >>>>> name.substring(componentNameStart, componentNameEnd); >>>>> + URL location = >>>>> FlexibleLocation.resolveLocation("component://" + componentName >>>>> + "/."); >>>>> + FileObject ofbizBase = >>>>> getContext().resolveFile(location.toString(), properties); >>>>> + return >>>>> VFSUtil >>>>> .toFileObject >>>>> (ofbizBase.getFileSystem().getFileSystemManager(), >>>>> ofbizBase >>>>> .resolveFile(name.substring(restStart)).getURL().toString(), >>>>> properties); >>>>> + } catch (Exception e) { >>>>> + throw UtilMisc.initCause(new >>>>> FileSystemException(e.getMessage(), null, e), e); >>>>> + } >>>>> + } >>>>> +} >>>>> >>>>> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/ >>>>> commons/ vfs/ ofbiz/OfbizHomeProvider.java >>>>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ofbiz/OfbizHomeProvider.java?rev=833727&r1=833726&r2=833727&view=diff >>>>> = = = = = = = = = = >>>>> = >>>>> = >>>>> ================================================================== >>>>> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ >>>>> ofbiz/ OfbizHomeProvider.java (original) >>>>> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ >>>>> ofbiz/ OfbizHomeProvider.java Sat Nov 7 18:18:33 2009 >>>>> @@ -1,50 +1,50 @@ >>>>> -/ >>>>> ******************************************************************************* >>>>> - * Licensed to the Apache Software Foundation (ASF) under one >>>>> - * or more contributor license agreements. See the NOTICE file >>>>> - * distributed with this work for additional information >>>>> - * regarding copyright ownership. The ASF licenses this file >>>>> - * to you under the Apache License, Version 2.0 (the >>>>> - * "License"); you may not use this file except in compliance >>>>> - * with the License. You may obtain a copy of the License at >>>>> - * >>>>> - * http://www.apache.org/licenses/LICENSE-2.0 >>>>> - * >>>>> - * Unless required by applicable law or agreed to in writing, >>>>> - * software distributed under the License is distributed on an >>>>> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>> - * KIND, either express or implied. See the License for the >>>>> - * specific language governing permissions and limitations >>>>> - * under the License. >>>>> - >>>>> *******************************************************************************/ >>>>> -package org.ofbiz.commons.vfs.ofbiz; >>>>> - >>>>> -import java.net.URL; >>>>> -import java.util.Collection; >>>>> - >>>>> -import org.apache.commons.vfs.FileObject; >>>>> -import org.apache.commons.vfs.FileSystemException; >>>>> -import org.apache.commons.vfs.FileSystemOptions; >>>>> -import org.apache.commons.vfs.provider.AbstractFileProvider; >>>>> -import >>>>> org.apache.commons.vfs.provider.local.DefaultLocalFileProvider; >>>>> - >>>>> -import org.ofbiz.base.location.FlexibleLocation; >>>>> -import org.ofbiz.base.util.UtilMisc; >>>>> - >>>>> -import org.webslinger.commons.vfs.VFSUtil; >>>>> - >>>>> -public class OfbizHomeProvider extends AbstractFileProvider { >>>>> - public Collection getCapabilities() { >>>>> - return DefaultLocalFileProvider.capabilities; >>>>> - } >>>>> - >>>>> - public FileObject findFile(FileObject base, String name, >>>>> FileSystemOptions properties) throws FileSystemException { >>>>> - //new Exception("findFile(" + base + ", " + name + >>>>> ")").printStackTrace(); >>>>> - try { >>>>> - URL location = >>>>> FlexibleLocation.resolveLocation("ofbizhome://."); >>>>> - FileObject ofbizBase = >>>>> getContext().resolveFile(location.toString(), properties); >>>>> - return >>>>> VFSUtil >>>>> .toFileObject(ofbizBase.getFileSystem().getFileSystemManager(), >>>>> ofbizBase.resolveFile(name.substring(13)).getURL().toString(), >>>>> properties); >>>>> - } catch (Exception e) { >>>>> - throw UtilMisc.initCause(new >>>>> FileSystemException(e.getMessage(), null, e), e); >>>>> - } >>>>> - } >>>>> -} >>>>> +/ >>>>> ******************************************************************************* >>>>> + * Licensed to the Apache Software Foundation (ASF) under one >>>>> + * or more contributor license agreements. See the NOTICE file >>>>> + * distributed with this work for additional information >>>>> + * regarding copyright ownership. The ASF licenses this file >>>>> + * to you under the Apache License, Version 2.0 (the >>>>> + * "License"); you may not use this file except in compliance >>>>> + * with the License. You may obtain a copy of the License at >>>>> + * >>>>> + * http://www.apache.org/licenses/LICENSE-2.0 >>>>> + * >>>>> + * Unless required by applicable law or agreed to in writing, >>>>> + * software distributed under the License is distributed on an >>>>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>> + * KIND, either express or implied. See the License for the >>>>> + * specific language governing permissions and limitations >>>>> + * under the License. >>>>> + >>>>> *******************************************************************************/ >>>>> +package org.ofbiz.commons.vfs.ofbiz; >>>>> + >>>>> +import java.net.URL; >>>>> +import java.util.Collection; >>>>> + >>>>> +import org.apache.commons.vfs.FileObject; >>>>> +import org.apache.commons.vfs.FileSystemException; >>>>> +import org.apache.commons.vfs.FileSystemOptions; >>>>> +import org.apache.commons.vfs.provider.AbstractFileProvider; >>>>> +import >>>>> org.apache.commons.vfs.provider.local.DefaultLocalFileProvider; >>>>> + >>>>> +import org.ofbiz.base.location.FlexibleLocation; >>>>> +import org.ofbiz.base.util.UtilMisc; >>>>> + >>>>> +import org.webslinger.commons.vfs.VFSUtil; >>>>> + >>>>> +public class OfbizHomeProvider extends AbstractFileProvider { >>>>> + public Collection<?> getCapabilities() { >>>>> + return DefaultLocalFileProvider.capabilities; >>>>> + } >>>>> + >>>>> + public FileObject findFile(FileObject base, String name, >>>>> FileSystemOptions properties) throws FileSystemException { >>>>> + //new Exception("findFile(" + base + ", " + name + >>>>> ")").printStackTrace(); >>>>> + try { >>>>> + URL location = >>>>> FlexibleLocation.resolveLocation("ofbizhome://."); >>>>> + FileObject ofbizBase = >>>>> getContext().resolveFile(location.toString(), properties); >>>>> + return >>>>> VFSUtil >>>>> .toFileObject(ofbizBase.getFileSystem().getFileSystemManager(), >>>>> ofbizBase.resolveFile(name.substring(13)).getURL().toString(), >>>>> properties); >>>>> + } catch (Exception e) { >>>>> + throw UtilMisc.initCause(new >>>>> FileSystemException(e.getMessage(), null, e), e); >>>>> + } >>>>> + } >>>>> +} >>>>> >>>>> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/ >>>>> webslinger/ EntityHttpUtil.java >>>>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/EntityHttpUtil.java?rev=833727&r1=833726&r2=833727&view=diff >>>>> = = = = = = = = = = >>>>> = >>>>> = >>>>> ================================================================== >>>>> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ >>>>> EntityHttpUtil.java (original) >>>>> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ >>>>> EntityHttpUtil.java Sat Nov 7 18:18:33 2009 >>>>> @@ -1,78 +1,73 @@ >>>>> -/ >>>>> ******************************************************************************* >>>>> - * Licensed to the Apache Software Foundation (ASF) under one >>>>> - * or more contributor license agreements. See the NOTICE file >>>>> - * distributed with this work for additional information >>>>> - * regarding copyright ownership. The ASF licenses this file >>>>> - * to you under the Apache License, Version 2.0 (the >>>>> - * "License"); you may not use this file except in compliance >>>>> - * with the License. You may obtain a copy of the License at >>>>> - * >>>>> - * http://www.apache.org/licenses/LICENSE-2.0 >>>>> - * >>>>> - * Unless required by applicable law or agreed to in writing, >>>>> - * software distributed under the License is distributed on an >>>>> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>> - * KIND, either express or implied. See the License for the >>>>> - * specific language governing permissions and limitations >>>>> - * under the License. >>>>> - >>>>> *******************************************************************************/ >>>>> -package org.ofbiz.webslinger; >>>>> - >>>>> -import java.util.HashMap; >>>>> -import java.util.Iterator; >>>>> -import java.util.Locale; >>>>> -import java.util.Map; >>>>> - >>>>> -import javax.servlet.ServletRequest; >>>>> -import javax.servlet.http.HttpServletRequest; >>>>> - >>>>> -import org.ofbiz.base.util.GeneralException; >>>>> -import org.ofbiz.base.util.ObjectType; >>>>> -import org.ofbiz.base.util.UtilHttp; >>>>> -import org.ofbiz.base.util.UtilMisc; >>>>> -import org.ofbiz.base.util.UtilValidate; >>>>> -import org.ofbiz.entity.Delegator; >>>>> -import org.ofbiz.entity.GenericValue; >>>>> -import org.ofbiz.entity.jdbc.SqlJdbcUtil; >>>>> -import org.ofbiz.entity.model.ModelEntity; >>>>> -import org.ofbiz.entity.model.ModelField; >>>>> -import org.ofbiz.entity.model.ModelFieldType; >>>>> - >>>>> -public class EntityHttpUtil { >>>>> - public static GenericValue makeValidValue(String >>>>> entityName, ServletRequest request) throws GeneralException { >>>>> - return makeValidValue(entityName, false, request); >>>>> - } >>>>> - >>>>> - public static GenericValue makeValidValue(String >>>>> entityName, boolean includePks, ServletRequest request) throws >>>>> GeneralException { >>>>> - if (request instanceof HttpServletRequest) return >>>>> makeValidValue(entityName, includePks, (HttpServletRequest) >>>>> request); >>>>> - throw new IllegalArgumentException("Not an >>>>> HttpServletRequest"); >>>>> - } >>>>> - >>>>> - public static GenericValue makeValidValue(String >>>>> entityName, HttpServletRequest request) throws >>>>> GeneralException { >>>>> - return makeValidValue(entityName, false, request); >>>>> - } >>>>> - >>>>> - public static GenericValue makeValidValue(String >>>>> entityName, boolean includePks, HttpServletRequest request) >>>>> throws GeneralException { >>>>> - Delegator delegator = (Delegator) >>>>> request.getAttribute("delegator"); >>>>> - GenericValue value = delegator.makeValue(entityName); >>>>> - ModelEntity model = value.getModelEntity(); >>>>> - Iterator<ModelField> it = includePks ? >>>>> model.getFieldsIterator() : model.getNopksIterator(); >>>>> - Locale locale = UtilHttp.getLocale(request); >>>>> - while (it.hasNext()) { >>>>> - ModelField field = it.next(); >>>>> - String fieldName = field.getName(); >>>>> - String parameterValue = >>>>> request.getParameter(fieldName); >>>>> - Object fieldValue; >>>>> - if (parameterValue == null) { >>>>> - fieldValue = null; >>>>> - } else { >>>>> - ModelFieldType fieldType = >>>>> delegator.getEntityFieldType(model, field.getType()); >>>>> - String wantedType = fieldType.getJavaType(); >>>>> - fieldValue = >>>>> ObjectType.simpleTypeConvert(parameterValue, wantedType, null, >>>>> locale, true); >>>>> - } >>>>> - value.put(fieldName, fieldValue); >>>>> - } >>>>> - return value; >>>>> - } >>>>> -} >>>>> - >>>>> +/ >>>>> ******************************************************************************* >>>>> + * Licensed to the Apache Software Foundation (ASF) under one >>>>> + * or more contributor license agreements. See the NOTICE file >>>>> + * distributed with this work for additional information >>>>> + * regarding copyright ownership. The ASF licenses this file >>>>> + * to you under the Apache License, Version 2.0 (the >>>>> + * "License"); you may not use this file except in compliance >>>>> + * with the License. You may obtain a copy of the License at >>>>> + * >>>>> + * http://www.apache.org/licenses/LICENSE-2.0 >>>>> + * >>>>> + * Unless required by applicable law or agreed to in writing, >>>>> + * software distributed under the License is distributed on an >>>>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>> + * KIND, either express or implied. See the License for the >>>>> + * specific language governing permissions and limitations >>>>> + * under the License. >>>>> + >>>>> *******************************************************************************/ >>>>> +package org.ofbiz.webslinger; >>>>> + >>>>> +import java.util.Iterator; >>>>> +import java.util.Locale; >>>>> + >>>>> +import javax.servlet.ServletRequest; >>>>> +import javax.servlet.http.HttpServletRequest; >>>>> + >>>>> +import org.ofbiz.base.util.GeneralException; >>>>> +import org.ofbiz.base.util.ObjectType; >>>>> +import org.ofbiz.base.util.UtilHttp; >>>>> +import org.ofbiz.entity.Delegator; >>>>> +import org.ofbiz.entity.GenericValue; >>>>> +import org.ofbiz.entity.model.ModelEntity; >>>>> +import org.ofbiz.entity.model.ModelField; >>>>> +import org.ofbiz.entity.model.ModelFieldType; >>>>> + >>>>> +public class EntityHttpUtil { >>>>> + public static GenericValue makeValidValue(String >>>>> entityName, ServletRequest request) throws GeneralException { >>>>> + return makeValidValue(entityName, false, request); >>>>> + } >>>>> + >>>>> + public static GenericValue makeValidValue(String >>>>> entityName, boolean includePks, ServletRequest request) throws >>>>> GeneralException { >>>>> + if (request instanceof HttpServletRequest) return >>>>> makeValidValue(entityName, includePks, (HttpServletRequest) >>>>> request); >>>>> + throw new IllegalArgumentException("Not an >>>>> HttpServletRequest"); >>>>> + } >>>>> + >>>>> + public static GenericValue makeValidValue(String >>>>> entityName, HttpServletRequest request) throws >>>>> GeneralException { >>>>> + return makeValidValue(entityName, false, request); >>>>> + } >>>>> + >>>>> + public static GenericValue makeValidValue(String >>>>> entityName, boolean includePks, HttpServletRequest request) >>>>> throws GeneralException { >>>>> + Delegator delegator = (Delegator) >>>>> request.getAttribute("delegator"); >>>>> + GenericValue value = delegator.makeValue(entityName); >>>>> + ModelEntity model = value.getModelEntity(); >>>>> + Iterator<ModelField> it = includePks ? >>>>> model.getFieldsIterator() : model.getNopksIterator(); >>>>> + Locale locale = UtilHttp.getLocale(request); >>>>> + while (it.hasNext()) { >>>>> + ModelField field = it.next(); >>>>> + String fieldName = field.getName(); >>>>> + String parameterValue = >>>>> request.getParameter(fieldName); >>>>> + Object fieldValue; >>>>> + if (parameterValue == null) { >>>>> + fieldValue = null; >>>>> + } else { >>>>> + ModelFieldType fieldType = >>>>> delegator.getEntityFieldType(model, field.getType()); >>>>> + String wantedType = fieldType.getJavaType(); >>>>> + fieldValue = >>>>> ObjectType.simpleTypeConvert(parameterValue, wantedType, null, >>>>> locale, true); >>>>> + } >>>>> + value.put(fieldName, fieldValue); >>>>> + } >>>>> + return value; >>>>> + } >>>>> +} >>>>> + >>>>> >>>>> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/ >>>>> webslinger/ StatsUpdater.java >>>>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/StatsUpdater.java?rev=833727&r1=833726&r2=833727&view=diff >>>>> = = = = = = = = = = >>>>> = >>>>> = >>>>> ================================================================== >>>>> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ >>>>> StatsUpdater.java (original) >>>>> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ >>>>> StatsUpdater.java Sat Nov 7 18:18:33 2009 >>>>> @@ -1,121 +1,118 @@ >>>>> -/ >>>>> ******************************************************************************* >>>>> - * Licensed to the Apache Software Foundation (ASF) under one >>>>> - * or more contributor license agreements. See the NOTICE file >>>>> - * distributed with this work for additional information >>>>> - * regarding copyright ownership. The ASF licenses this file >>>>> - * to you under the Apache License, Version 2.0 (the >>>>> - * "License"); you may not use this file except in compliance >>>>> - * with the License. You may obtain a copy of the License at >>>>> - * >>>>> - * http://www.apache.org/licenses/LICENSE-2.0 >>>>> - * >>>>> - * Unless required by applicable law or agreed to in writing, >>>>> - * software distributed under the License is distributed on an >>>>> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>> - * KIND, either express or implied. See the License for the >>>>> - * specific language governing permissions and limitations >>>>> - * under the License. >>>>> - >>>>> *******************************************************************************/ >>>>> -package org.ofbiz.webslinger; >>>>> - >>>>> -import java.util.HashMap; >>>>> -import java.util.Iterator; >>>>> -import java.util.Map; >>>>> -import java.util.concurrent.Callable; >>>>> -import java.util.concurrent.ConcurrentHashMap; >>>>> -import java.util.concurrent.ScheduledFuture; >>>>> -import java.util.concurrent.TimeUnit; >>>>> -import java.util.concurrent.atomic.AtomicReference; >>>>> - >>>>> -import org.ofbiz.base.util.UtilMisc; >>>>> -import org.ofbiz.entity.Delegator; >>>>> -import org.ofbiz.entity.GenericEntityException; >>>>> -import org.ofbiz.entity.GenericPK; >>>>> -import org.ofbiz.entity.GenericValue; >>>>> - >>>>> -import org.webslinger.cache.ConcurrentCache; >>>>> -import org.webslinger.concurrent.ExecutionPool; >>>>> - >>>>> -public class StatsUpdater { >>>>> - private static final Updater UPDATER = new Updater(); >>>>> - >>>>> - public static void updateStats(Delegator delegator, >>>>> String entityName, Map<String, ? extends Object> keyFields, >>>>> Map<String, ? extends Long> updateCountFields) throws >>>>> GenericEntityException { >>>>> - GenericPK pk = delegator.makePK(entityName, keyFields); >>>>> - Map<String, Long> value = UPDATER.getValue(pk); >>>>> - synchronized (value) { >>>>> - for (Map.Entry<String, ? extends Long> entry: >>>>> updateCountFields.entrySet()) { >>>>> - Long oldValue = value.get(entry.getKey()); >>>>> - if (oldValue != null) { >>>>> - value.put(entry.getKey(), >>>>> Long.valueOf(oldValue.longValue() + entry.getValue())); >>>>> - } else { >>>>> - value.put(entry.getKey(), entry.getValue()); >>>>> - } >>>>> - } >>>>> - } >>>>> - } >>>>> - >>>>> - private static final class Updater implements >>>>> Callable<Void> { >>>>> - protected AtomicReference<EntityHolder> entities = >>>>> new AtomicReference<EntityHolder>(new >>>>> EntityHolder(Updater.class, "entities", null)); >>>>> - protected ScheduledFuture<Void> future; >>>>> - >>>>> - protected Map<String, Long> getValue(GenericPK pk) >>>>> throws GenericEntityException { >>>>> - synchronized (this) { >>>>> - if (future == null || future.isDone()) { >>>>> - future = ExecutionPool.schedule(this, 1, >>>>> TimeUnit.SECONDS); >>>>> - } >>>>> - } >>>>> - try { >>>>> - return entities.get().get(pk); >>>>> - } catch (RuntimeException e) { >>>>> - throw e; >>>>> - } catch (GenericEntityException e) { >>>>> - throw e; >>>>> - } catch (Exception e) { >>>>> - throw UtilMisc.initCause(new >>>>> GenericEntityException(e.getMessage()), e); >>>>> - } >>>>> - } >>>>> - >>>>> - public Void call() { >>>>> - EntityHolder oldEntities; >>>>> - EntityHolder newEntities = new >>>>> EntityHolder(Updater.class, "entities", null); >>>>> - do { >>>>> - oldEntities = entities.get(); >>>>> - } while (!entities.compareAndSet(oldEntities, >>>>> newEntities)); >>>>> - synchronized (Updater.class) { >>>>> - for (GenericPK pk: oldEntities.keys()) { >>>>> - try { >>>>> - Map<String, Long> add = >>>>> oldEntities.get(pk); >>>>> - GenericValue existing = >>>>> pk.getDelegator().findOne(pk.getEntityName(), pk, false); >>>>> - if (existing == null) { >>>>> - existing = >>>>> pk.getDelegator().create(pk.getEntityName(), pk); >>>>> - } >>>>> - for (Map.Entry<String, Long> entry: >>>>> add.entrySet()) { >>>>> - Long value = entry.getValue(); >>>>> - Long oldValue = >>>>> existing.getLong(entry.getKey()); >>>>> - if (oldValue != null) { >>>>> - existing.put(entry.getKey(), >>>>> Long.valueOf(value.longValue() + oldValue.longValue())); >>>>> - } else { >>>>> - existing.put(entry.getKey(), >>>>> value); >>>>> - } >>>>> - } >>>>> - existing.store(); >>>>> - } catch (Exception e) { >>>>> - e.printStackTrace(); >>>>> - } >>>>> - } >>>>> - } >>>>> - return null; >>>>> - } >>>>> - } >>>>> - >>>>> - private static final class EntityHolder extends >>>>> ConcurrentCache<GenericPK, Map<String, Long>> { >>>>> - protected EntityHolder(Class<?> owner, String field, >>>>> String label) { >>>>> - super(owner, field, label, HARD); >>>>> - } >>>>> - >>>>> - @Override >>>>> - protected Map<String, Long> createValue(GenericPK pk) >>>>> throws Exception { >>>>> - return new HashMap<String, Long>(); >>>>> - } >>>>> - } >>>>> -} >>>>> +/ >>>>> ******************************************************************************* >>>>> + * Licensed to the Apache Software Foundation (ASF) under one >>>>> + * or more contributor license agreements. See the NOTICE file >>>>> + * distributed with this work for additional information >>>>> + * regarding copyright ownership. The ASF licenses this file >>>>> + * to you under the Apache License, Version 2.0 (the >>>>> + * "License"); you may not use this file except in compliance >>>>> + * with the License. You may obtain a copy of the License at >>>>> + * >>>>> + * http://www.apache.org/licenses/LICENSE-2.0 >>>>> + * >>>>> + * Unless required by applicable law or agreed to in writing, >>>>> + * software distributed under the License is distributed on an >>>>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>> + * KIND, either express or implied. See the License for the >>>>> + * specific language governing permissions and limitations >>>>> + * under the License. >>>>> + >>>>> *******************************************************************************/ >>>>> +package org.ofbiz.webslinger; >>>>> + >>>>> +import java.util.HashMap; >>>>> +import java.util.Map; >>>>> +import java.util.concurrent.Callable; >>>>> +import java.util.concurrent.ScheduledFuture; >>>>> +import java.util.concurrent.TimeUnit; >>>>> +import java.util.concurrent.atomic.AtomicReference; >>>>> + >>>>> +import org.ofbiz.base.util.UtilMisc; >>>>> +import org.ofbiz.entity.Delegator; >>>>> +import org.ofbiz.entity.GenericEntityException; >>>>> +import org.ofbiz.entity.GenericPK; >>>>> +import org.ofbiz.entity.GenericValue; >>>>> +import org.webslinger.cache.ConcurrentCache; >>>>> +import org.webslinger.concurrent.ExecutionPool; >>>>> + >>>>> +public class StatsUpdater { >>>>> + private static final Updater UPDATER = new Updater(); >>>>> + >>>>> + public static void updateStats(Delegator delegator, >>>>> String entityName, Map<String, ? extends Object> keyFields, >>>>> Map<String, ? extends Long> updateCountFields) throws >>>>> GenericEntityException { >>>>> + GenericPK pk = delegator.makePK(entityName, keyFields); >>>>> + Map<String, Long> value = UPDATER.getValue(pk); >>>>> + synchronized (value) { >>>>> + for (Map.Entry<String, ? extends Long> entry: >>>>> updateCountFields.entrySet()) { >>>>> + Long oldValue = value.get(entry.getKey()); >>>>> + if (oldValue != null) { >>>>> + value.put(entry.getKey(), >>>>> Long.valueOf(oldValue.longValue() + entry.getValue())); >>>>> + } else { >>>>> + value.put(entry.getKey(), entry.getValue()); >>>>> + } >>>>> + } >>>>> + } >>>>> + } >>>>> + >>>>> + private static final class Updater implements >>>>> Callable<Void> { >>>>> + protected AtomicReference<EntityHolder> entities = >>>>> new AtomicReference<EntityHolder>(new >>>>> EntityHolder(Updater.class, "entities", null)); >>>>> + protected ScheduledFuture<Void> future; >>>>> + >>>>> + protected Map<String, Long> getValue(GenericPK pk) >>>>> throws GenericEntityException { >>>>> + synchronized (this) { >>>>> + if (future == null || future.isDone()) { >>>>> + future = ExecutionPool.schedule(this, 1, >>>>> TimeUnit.SECONDS); >>>>> + } >>>>> + } >>>>> + try { >>>>> + return entities.get().get(pk); >>>>> + } catch (RuntimeException e) { >>>>> + throw e; >>>>> + } catch (GenericEntityException e) { >>>>> + throw e; >>>>> + } catch (Exception e) { >>>>> + throw UtilMisc.initCause(new >>>>> GenericEntityException(e.getMessage()), e); >>>>> + } >>>>> + } >>>>> + >>>>> + public Void call() { >>>>> + EntityHolder oldEntities; >>>>> + EntityHolder newEntities = new >>>>> EntityHolder(Updater.class, "entities", null); >>>>> + do { >>>>> + oldEntities = entities.get(); >>>>> + } while (!entities.compareAndSet(oldEntities, >>>>> newEntities)); >>>>> + synchronized (Updater.class) { >>>>> + for (GenericPK pk: oldEntities.keys()) { >>>>> + try { >>>>> + Map<String, Long> add = >>>>> oldEntities.get(pk); >>>>> + GenericValue existing = >>>>> pk.getDelegator().findOne(pk.getEntityName(), pk, false); >>>>> + if (existing == null) { >>>>> + existing = >>>>> pk.getDelegator().create(pk.getEntityName(), pk); >>>>> + } >>>>> + for (Map.Entry<String, Long> entry: >>>>> add.entrySet()) { >>>>> + Long value = entry.getValue(); >>>>> + Long oldValue = >>>>> existing.getLong(entry.getKey()); >>>>> + if (oldValue != null) { >>>>> + existing.put(entry.getKey(), >>>>> Long.valueOf(value.longValue() + oldValue.longValue())); >>>>> + } else { >>>>> + existing.put(entry.getKey(), >>>>> value); >>>>> + } >>>>> + } >>>>> + existing.store(); >>>>> + } catch (Exception e) { >>>>> + e.printStackTrace(); >>>>> + } >>>>> + } >>>>> + } >>>>> + return null; >>>>> + } >>>>> + } >>>>> + >>>>> + private static final class EntityHolder extends >>>>> ConcurrentCache<GenericPK, Map<String, Long>> { >>>>> + protected EntityHolder(Class<?> owner, String field, >>>>> String label) { >>>>> + super(owner, field, label, HARD); >>>>> + } >>>>> + >>>>> + @Override >>>>> + protected Map<String, Long> createValue(GenericPK pk) >>>>> throws Exception { >>>>> + return new HashMap<String, Long>(); >>>>> + } >>>>> + } >>>>> +} >>>>> >>>>> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/ >>>>> webslinger/ WebslingerContextMapper.java >>>>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/WebslingerContextMapper.java?rev=833727&r1=833726&r2=833727&view=diff >>>>> = = = = = = = = = = >>>>> = >>>>> = >>>>> ================================================================== >>>>> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ >>>>> WebslingerContextMapper.java (original) >>>>> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ >>>>> WebslingerContextMapper.java Sat Nov 7 18:18:33 2009 >>>>> @@ -1,218 +1,216 @@ >>>>> -/ >>>>> ******************************************************************************* >>>>> - * Licensed to the Apache Software Foundation (ASF) under one >>>>> - * or more contributor license agreements. See the NOTICE file >>>>> - * distributed with this work for additional information >>>>> - * regarding copyright ownership. The ASF licenses this file >>>>> - * to you under the Apache License, Version 2.0 (the >>>>> - * "License"); you may not use this file except in compliance >>>>> - * with the License. You may obtain a copy of the License at >>>>> - * >>>>> - * http://www.apache.org/licenses/LICENSE-2.0 >>>>> - * >>>>> - * Unless required by applicable law or agreed to in writing, >>>>> - * software distributed under the License is distributed on an >>>>> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>> - * KIND, either express or implied. See the License for the >>>>> - * specific language governing permissions and limitations >>>>> - * under the License. >>>>> - >>>>> *******************************************************************************/ >>>>> -package org.ofbiz.webslinger; >>>>> - >>>>> -import java.io.IOException; >>>>> -import java.net.URL; >>>>> -import java.util.ArrayList; >>>>> -import java.util.Arrays; >>>>> -import java.util.HashSet; >>>>> -import java.util.List; >>>>> -import java.util.Set; >>>>> - >>>>> -import javax.servlet.ServletConfig; >>>>> -import javax.servlet.ServletContext; >>>>> -import javax.servlet.ServletException; >>>>> -import javax.servlet.http.HttpServletRequest; >>>>> - >>>>> -import org.ofbiz.base.util.UtilMisc; >>>>> -import org.ofbiz.base.util.UtilProperties; >>>>> -import org.ofbiz.entity.Delegator; >>>>> -import org.ofbiz.entity.DelegatorFactory; >>>>> -import org.ofbiz.entity.GenericEntityException; >>>>> -import org.ofbiz.entity.GenericValue; >>>>> -import org.ofbiz.entity.cache.Cache; >>>>> -import org.ofbiz.entity.util.EntityUtil; >>>>> -import org.ofbiz.security.SecurityFactory; >>>>> -import org.ofbiz.security.authz.AuthorizationFactory; >>>>> -import org.ofbiz.service.GenericDispatcher; >>>>> -import org.ofbiz.service.LocalDispatcher; >>>>> -import org.ofbiz.service.ServiceDispatcher; >>>>> -import org.ofbiz.service.DispatchContext; >>>>> - >>>>> -import >>>>> org.webslinger.AbstractMappingWebslingerServletContextFactory; >>>>> -import org.webslinger.WebslingerServletContext; >>>>> -import org.webslinger.collections.CollectionUtil; >>>>> -import org.webslinger.lang.ObjectUtil; >>>>> - >>>>> -public class WebslingerContextMapper extends >>>>> AbstractMappingWebslingerServletContextFactory { >>>>> - protected ServletContext servletContext; >>>>> - protected Delegator delegator; >>>>> - protected final ArrayList<URL> globalReaderURLs = new >>>>> ArrayList<URL>(); >>>>> - >>>>> - public void init(ServletConfig config) throws >>>>> ServletException, IOException { >>>>> - >>>>> System >>>>> .err >>>>> .println(org.webslinger.commons.vfs.flat.FlatFileProvider.class); >>>>> - servletContext = config.getServletContext(); >>>>> - String delegatorName = >>>>> servletContext.getInitParameter("entityDelegatorName"); >>>>> - delegator = DelegatorFactory.getDelegator(delegatorName); >>>>> - String readerFiles = >>>>> servletContext.getInitParameter("serviceReaderUrls"); >>>>> - if (readerFiles != null) { >>>>> - for (String reader: >>>>> CollectionUtil.split(readerFiles, ";")) { >>>>> - URL url = >>>>> config.getServletContext().getResource(reader); >>>>> - if (url != null) globalReaderURLs.add(url); >>>>> - } >>>>> - } >>>>> - super.init(config, >>>>> UtilProperties.getPropertyValue("webslinger.properties", >>>>> "moduleBase")); >>>>> - } >>>>> - >>>>> - @Override >>>>> - protected Layout[] getStartLayouts() throws Exception { >>>>> - ArrayList<Layout> layouts = new ArrayList<Layout>(); >>>>> - try { >>>>> - for (GenericValue value: >>>>> delegator.findByAnd("WebslingerServer", >>>>> UtilMisc.toMap("loadAtStart", "Y"))) { >>>>> - layouts.add(new OfbizLayout(value)); >>>>> - } >>>>> - } catch (GenericEntityException e) { >>>>> - } >>>>> - return layouts.toArray(new Layout[layouts.size()]); >>>>> - } >>>>> - >>>>> - @Override >>>>> - public void initializeRequest(WebslingerServletContext >>>>> context, HttpServletRequest request) { >>>>> - request.setAttribute("servletContext", context); >>>>> - Object delegator = context.getAttribute("delegator"); >>>>> - Object dispatcher = context.getAttribute("dispatcher"); >>>>> - Object authz = context.getAttribute("authz"); >>>>> - Object security = context.getAttribute("security"); >>>>> - request.setAttribute("delegator", delegator); >>>>> - request.setAttribute("dispatcher", dispatcher); >>>>> - request.setAttribute("authz", authz); >>>>> - request.setAttribute("security", security); >>>>> - // FIXME!!! These next two are a hack until proper >>>>> fake/ wrapped session support is done in webslinger >>>>> - servletContext.setAttribute("delegator", delegator); >>>>> - servletContext.setAttribute("dispatcher", dispatcher); >>>>> - servletContext.setAttribute("authz", authz); >>>>> - servletContext.setAttribute("security", security); >>>>> - } >>>>> - >>>>> - @Override >>>>> - protected void initializeContext(WebslingerServletContext >>>>> context, Layout layout) throws Exception { >>>>> - OfbizLayout ofbizLayout = (OfbizLayout) layout; >>>>> - Delegator delegator = null; >>>>> - delegator = >>>>> DelegatorFactory.getDelegator(ofbizLayout.delegatorName); >>>>> - context.setAttribute("delegator", delegator); >>>>> - context.setAttribute("dispatcher", new >>>>> WebslingerGenericDispatcher(context, layout.getTarget(), >>>>> delegator, globalReaderURLs)); >>>>> - context.setAttribute("authz", >>>>> AuthorizationFactory.getInstance(delegator)); >>>>> - context.setAttribute("security", >>>>> SecurityFactory.getInstance(delegator)); >>>>> - } >>>>> - >>>>> - protected static final class WebslingerGenericDispatcher >>>>> extends GenericDispatcher { >>>>> - protected >>>>> WebslingerGenericDispatcher(WebslingerServletContext context, >>>>> String name, Delegator delegator, List<URL> globalReaderURLs) >>>>> throws IOException { >>>>> - ArrayList<URL> readerURLs = new >>>>> ArrayList<URL>(globalReaderURLs); >>>>> - String readerFiles = >>>>> context.getInitParameter("serviceReaderUrls"); >>>>> - if (readerFiles != null) { >>>>> - for (String reader: >>>>> CollectionUtil.split(readerFiles, ";")) { >>>>> - URL url = context.getResource(reader); >>>>> - if (url != null) readerURLs.add(url); >>>>> - } >>>>> - } >>>>> - System.err.println(readerURLs); >>>>> - this.dispatcher = new >>>>> ServiceDispatcher(delegator, true, true, true) { >>>>> - }; >>>>> - ClassLoader loader = null; >>>>> - try { >>>>> - loader = >>>>> Thread.currentThread().getContextClassLoader(); >>>>> - } catch (SecurityException e) { >>>>> - loader = >>>>> WebslingerContextMapper.class.getClassLoader(); >>>>> - } >>>>> - DispatchContext dc = new DispatchContext(name, >>>>> readerURLs, loader, null); >>>>> - init(name, delegator, dc); >>>>> - } >>>>> - } >>>>> - >>>>> - @Override >>>>> - protected Set<String> getSuffixes() throws Exception { >>>>> - Cache cache = delegator.getCache(); >>>>> - Set<String> suffixes; >>>>> - synchronized (WebslingerContextMapper.class) { >>>>> - suffixes = cache.get("WebslingerHostSuffix", >>>>> null, "WebslingerContextMapper.Suffixes"); >>>>> - if (suffixes == null) { >>>>> - suffixes = new HashSet<String>(); >>>>> - for (GenericValue value: >>>>> delegator.findList("WebslingerHostSuffix", null, null, null, >>>>> null, false)) { >>>>> - suffixes.add(value.getString("hostSuffix")); >>>>> - } >>>>> - cache.put("WebslingerHostSuffix", null, >>>>> "WebslingerContextMapper.Suffixes", suffixes); >>>>> - } >>>>> - } >>>>> - return suffixes; >>>>> - } >>>>> - >>>>> - @Override >>>>> - protected Layout lookupLayout(String hostName, String >>>>> contextPath) throws Exception { >>>>> - GenericValue layout = >>>>> EntityUtil >>>>> .getOnly(delegator.findByAndCache("WebslingerLayout", >>>>> UtilMisc.toMap("hostName", hostName, "contextPath", >>>>> contextPath))); >>>>> - if (layout == null) return null; >>>>> - return new OfbizLayout(layout); >>>>> - } >>>>> - >>>>> - protected class OfbizLayout implements Layout { >>>>> - private final String contextPath; >>>>> - private final String id; >>>>> - private final String target; >>>>> - private final String[] bases; >>>>> - private final int hashCode; >>>>> - protected final String delegatorName; >>>>> - protected final String dispatcherName; >>>>> - >>>>> - protected OfbizLayout(GenericValue server) throws >>>>> GenericEntityException { >>>>> - contextPath = server.getString("contextPath"); >>>>> - id = server.getString("webslingerServerId"); >>>>> - target = server.getString("target"); >>>>> - List<GenericValue> baseValues = >>>>> server.getRelatedCache("WebslingerServerBase", >>>>> UtilMisc.toList("seqNum")); >>>>> - bases = new String[baseValues.size()]; >>>>> - for (int i = 0; i < bases.length; i++) { >>>>> - GenericValue baseValue = baseValues.get(i); >>>>> - bases[i] = baseValue.getString("baseName"); >>>>> - } >>>>> - delegatorName = server.getString("delegatorName"); >>>>> - dispatcherName = server.getString("dispatcherName"); >>>>> - hashCode = target.hashCode() ^ >>>>> ObjectUtil.hashCodeHelper(delegatorName) ^ Arrays.hashCode(bases); >>>>> - } >>>>> - >>>>> - public String getContextPath() { >>>>> - return contextPath; >>>>> - } >>>>> - >>>>> - public String getId() { >>>>> - return id; >>>>> - } >>>>> - >>>>> - public String getTarget() { >>>>> - return target; >>>>> - } >>>>> - >>>>> - public String[] getBases() { >>>>> - return bases; >>>>> - } >>>>> - >>>>> - @Override >>>>> - public int hashCode() { >>>>> - return hashCode; >>>>> - } >>>>> - >>>>> - @Override >>>>> - public boolean equals(Object o) { >>>>> - if (!(o instanceof OfbizLayout)) return false; >>>>> - OfbizLayout other = (OfbizLayout) o; >>>>> - if (!contextPath.equals(other.contextPath)) return >>>>> false; >>>>> - if (!target.equals(other.target)) return false; >>>>> - if (!ObjectUtil.equalsHelper(delegatorName, >>>>> other.delegatorName)) return false; >>>>> - return Arrays.equals(bases, other.bases); >>>>> - } >>>>> - } >>>>> -} >>>>> +/ >>>>> ******************************************************************************* >>>>> + * Licensed to the Apache Software Foundation (ASF) under one >>>>> + * or more contributor license agreements. See the NOTICE file >>>>> + * distributed with this work for additional information >>>>> + * regarding copyright ownership. The ASF licenses this file >>>>> + * to you under the Apache License, Version 2.0 (the >>>>> + * "License"); you may not use this file except in compliance >>>>> + * with the License. You may obtain a copy of the License at >>>>> + * >>>>> + * http://www.apache.org/licenses/LICENSE-2.0 >>>>> + * >>>>> + * Unless required by applicable law or agreed to in writing, >>>>> + * software distributed under the License is distributed on an >>>>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>> + * KIND, either express or implied. See the License for the >>>>> + * specific language governing permissions and limitations >>>>> + * under the License. >>>>> + >>>>> *******************************************************************************/ >>>>> +package org.ofbiz.webslinger; >>>>> + >>>>> +import java.io.IOException; >>>>> +import java.net.URL; >>>>> +import java.util.ArrayList; >>>>> +import java.util.Arrays; >>>>> +import java.util.HashSet; >>>>> +import java.util.List; >>>>> +import java.util.Set; >>>>> + >>>>> +import javax.servlet.ServletConfig; >>>>> +import javax.servlet.ServletContext; >>>>> +import javax.servlet.ServletException; >>>>> +import javax.servlet.http.HttpServletRequest; >>>>> + >>>>> +import org.ofbiz.base.util.UtilMisc; >>>>> +import org.ofbiz.base.util.UtilProperties; >>>>> +import org.ofbiz.entity.Delegator; >>>>> +import org.ofbiz.entity.DelegatorFactory; >>>>> +import org.ofbiz.entity.GenericEntityException; >>>>> +import org.ofbiz.entity.GenericValue; >>>>> +import org.ofbiz.entity.cache.Cache; >>>>> +import org.ofbiz.entity.util.EntityUtil; >>>>> +import org.ofbiz.security.SecurityFactory; >>>>> +import org.ofbiz.security.authz.AuthorizationFactory; >>>>> +import org.ofbiz.service.DispatchContext; >>>>> +import org.ofbiz.service.GenericDispatcher; >>>>> +import org.ofbiz.service.ServiceDispatcher; >>>>> +import >>>>> org.webslinger.AbstractMappingWebslingerServletContextFactory; >>>>> +import org.webslinger.WebslingerServletContext; >>>>> +import org.webslinger.collections.CollectionUtil; >>>>> +import org.webslinger.lang.ObjectUtil; >>>>> + >>>>> +public class WebslingerContextMapper extends >>>>> AbstractMappingWebslingerServletContextFactory { >>>>> + protected ServletContext servletContext; >>>>> + protected Delegator delegator; >>>>> + protected final ArrayList<URL> globalReaderURLs = new >>>>> ArrayList<URL>(); >>>>> + >>>>> + public void init(ServletConfig config) throws >>>>> ServletException, IOException { >>>>> + >>>>> System >>>>> .err >>>>> .println(org.webslinger.commons.vfs.flat.FlatFileProvider.class); >>>>> + servletContext = config.getServletContext(); >>>>> + String delegatorName = >>>>> servletContext.getInitParameter("entityDelegatorName"); >>>>> + delegator = DelegatorFactory.getDelegator(delegatorName); >>>>> + String readerFiles = >>>>> servletContext.getInitParameter("serviceReaderUrls"); >>>>> + if (readerFiles != null) { >>>>> + for (String reader: >>>>> CollectionUtil.split(readerFiles, ";")) { >>>>> + URL url = >>>>> config.getServletContext().getResource(reader); >>>>> + if (url != null) globalReaderURLs.add(url); >>>>> + } >>>>> + } >>>>> + super.init(config, >>>>> UtilProperties.getPropertyValue("webslinger.properties", >>>>> "moduleBase")); >>>>> + } >>>>> + >>>>> + @Override >>>>> + protected Layout[] getStartLayouts() throws Exception { >>>>> + ArrayList<Layout> layouts = new ArrayList<Layout>(); >>>>> + try { >>>>> + for (GenericValue value: >>>>> delegator.findByAnd("WebslingerServer", >>>>> UtilMisc.toMap("loadAtStart", "Y"))) { >>>>> + layouts.add(new OfbizLayout(value)); >>>>> + } >>>>> + } catch (GenericEntityException e) { >>>>> + } >>>>> + return layouts.toArray(new Layout[layouts.size()]); >>>>> + } >>>>> + >>>>> + @Override >>>>> + public void initializeRequest(WebslingerServletContext >>>>> context, HttpServletRequest request) { >>>>> + request.setAttribute("servletContext", context); >>>>> + Object delegator = context.getAttribute("delegator"); >>>>> + Object dispatcher = context.getAttribute("dispatcher"); >>>>> + Object authz = context.getAttribute("authz"); >>>>> + Object security = context.getAttribute("security"); >>>>> + request.setAttribute("delegator", delegator); >>>>> + request.setAttribute("dispatcher", dispatcher); >>>>> + request.setAttribute("authz", authz); >>>>> + request.setAttribute("security", security); >>>>> + // FIXME!!! These next two are a hack until proper >>>>> fake/ wrapped session support is done in webslinger >>>>> + servletContext.setAttribute("delegator", delegator); >>>>> + servletContext.setAttribute("dispatcher", dispatcher); >>>>> + servletContext.setAttribute("authz", authz); >>>>> + servletContext.setAttribute("security", security); >>>>> + } >>>>> + >>>>> + @Override >>>>> + protected void initializeContext(WebslingerServletContext >>>>> context, Layout layout) throws Exception { >>>>> + OfbizLayout ofbizLayout = (OfbizLayout) layout; >>>>> + Delegator delegator = null; >>>>> + delegator = >>>>> DelegatorFactory.getDelegator(ofbizLayout.delegatorName); >>>>> + context.setAttribute("delegator", delegator); >>>>> + context.setAttribute("dispatcher", new >>>>> WebslingerGenericDispatcher(context, layout.getTarget(), >>>>> delegator, globalReaderURLs)); >>>>> + context.setAttribute("authz", >>>>> AuthorizationFactory.getInstance(delegator)); >>>>> + context.setAttribute("security", >>>>> SecurityFactory.getInstance(delegator)); >>>>> + } >>>>> + >>>>> + protected static final class WebslingerGenericDispatcher >>>>> extends GenericDispatcher { >>>>> + protected >>>>> WebslingerGenericDispatcher(WebslingerServletContext context, >>>>> String name, Delegator delegator, List<URL> globalReaderURLs) >>>>> throws IOException { >>>>> + ArrayList<URL> readerURLs = new >>>>> ArrayList<URL>(globalReaderURLs); >>>>> + String readerFiles = >>>>> context.getInitParameter("serviceReaderUrls"); >>>>> + if (readerFiles != null) { >>>>> + for (String reader: >>>>> CollectionUtil.split(readerFiles, ";")) { >>>>> + URL url = context.getResource(reader); >>>>> + if (url != null) readerURLs.add(url); >>>>> + } >>>>> + } >>>>> + System.err.println(readerURLs); >>>>> + this.dispatcher = new >>>>> ServiceDispatcher(delegator, true, true, true) { >>>>> + }; >>>>> + ClassLoader loader = null; >>>>> + try { >>>>> + loader = >>>>> Thread.currentThread().getContextClassLoader(); >>>>> + } catch (SecurityException e) { >>>>> + loader = >>>>> WebslingerContextMapper.class.getClassLoader(); >>>>> + } >>>>> + DispatchContext dc = new DispatchContext(name, >>>>> readerURLs, loader, null); >>>>> + init(name, delegator, dc); >>>>> + } >>>>> + } >>>>> + >>>>> + @Override >>>>> + protected Set<String> getSuffixes() throws Exception { >>>>> + Cache cache = delegator.getCache(); >>>>> + Set<String> suffixes; >>>>> + synchronized (WebslingerContextMapper.class) { >>>>> + suffixes = cache.get("WebslingerHostSuffix", >>>>> null, "WebslingerContextMapper.Suffixes"); >>>>> + if (suffixes == null) { >>>>> + suffixes = new HashSet<String>(); >>>>> + for (GenericValue value: >>>>> delegator.findList("WebslingerHostSuffix", null, null, null, >>>>> null, false)) { >>>>> + suffixes.add(value.getString("hostSuffix")); >>>>> + } >>>>> + cache.put("WebslingerHostSuffix", null, >>>>> "WebslingerContextMapper.Suffixes", suffixes); >>>>> + } >>>>> + } >>>>> + return suffixes; >>>>> + } >>>>> + >>>>> + @Override >>>>> + protected Layout lookupLayout(String hostName, String >>>>> contextPath) throws Exception { >>>>> + GenericValue layout = >>>>> EntityUtil >>>>> .getOnly(delegator.findByAndCache("WebslingerLayout", >>>>> UtilMisc.toMap("hostName", hostName, "contextPath", >>>>> contextPath))); >>>>> + if (layout == null) return null; >>>>> + return new OfbizLayout(layout); >>>>> + } >>>>> + >>>>> + protected class OfbizLayout implements Layout { >>>>> + private final String contextPath; >>>>> + private final String id; >>>>> + private final String target; >>>>> + private final String[] bases; >>>>> + private final int hashCode; >>>>> + protected final String delegatorName; >>>>> + protected final String dispatcherName; >>>>> + >>>>> + protected OfbizLayout(GenericValue server) throws >>>>> GenericEntityException { >>>>> + contextPath = server.getString("contextPath"); >>>>> + id = server.getString("webslingerServerId"); >>>>> + target = server.getString("target"); >>>>> + List<GenericValue> baseValues = >>>>> server.getRelatedCache("WebslingerServerBase", >>>>> UtilMisc.toList("seqNum")); >>>>> + bases = new String[baseValues.size()]; >>>>> + for (int i = 0; i < bases.length; i++) { >>>>> + GenericValue baseValue = baseValues.get(i); >>>>> + bases[i] = baseValue.getString("baseName"); >>>>> + } >>>>> + delegatorName = server.getString("delegatorName"); >>>>> + dispatcherName = server.getString("dispatcherName"); >>>>> + hashCode = target.hashCode() ^ >>>>> ObjectUtil.hashCodeHelper(delegatorName) ^ Arrays.hashCode(bases); >>>>> + } >>>>> + >>>>> + public String getContextPath() { >>>>> + return contextPath; >>>>> + } >>>>> + >>>>> + public String getId() { >>>>> + return id; >>>>> + } >>>>> + >>>>> + public String getTarget() { >>>>> + return target; >>>>> + } >>>>> + >>>>> + public String[] getBases() { >>>>> + return bases; >>>>> + } >>>>> + >>>>> + @Override >>>>> + public int hashCode() { >>>>> + return hashCode; >>>>> + } >>>>> + >>>>> + @Override >>>>> + public boolean equals(Object o) { >>>>> + if (!(o instanceof OfbizLayout)) return false; >>>>> + OfbizLayout other = (OfbizLayout) o; >>>>> + if (!contextPath.equals(other.contextPath)) return >>>>> false; >>>>> + if (!target.equals(other.target)) return false; >>>>> + if (!ObjectUtil.equalsHelper(delegatorName, >>>>> other.delegatorName)) return false; >>>>> + return Arrays.equals(bases, other.bases); >>>>> + } >>>>> + } >>>>> +} >>>>> >>>>> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/ >>>>> webslinger/ WebslingerServerEngine.java >>>>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/WebslingerServerEngine.java?rev=833727&r1=833726&r2=833727&view=diff >>>>> = = = = = = = = = = >>>>> = >>>>> = >>>>> ================================================================== >>>>> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ >>>>> WebslingerServerEngine.java (original) >>>>> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ >>>>> WebslingerServerEngine.java Sat Nov 7 18:18:33 2009 >>>>> @@ -1,64 +1,59 @@ >>>>> -/ >>>>> ******************************************************************************* >>>>> - * Licensed to the Apache Software Foundation (ASF) under one >>>>> - * or more contributor license agreements. See the NOTICE file >>>>> - * distributed with this work for additional information >>>>> - * regarding copyright ownership. The ASF licenses this file >>>>> - * to you under the Apache License, Version 2.0 (the >>>>> - * "License"); you may not use this file except in compliance >>>>> - * with the License. You may obtain a copy of the License at >>>>> - * >>>>> - * http://www.apache.org/licenses/LICENSE-2.0 >>>>> - * >>>>> - * Unless required by applicable law or agreed to in writing, >>>>> - * software distributed under the License is distributed on an >>>>> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>> - * KIND, either express or implied. See the License for the >>>>> - * specific language governing permissions and limitations >>>>> - * under the License. >>>>> - >>>>> *******************************************************************************/ >>>>> -package org.ofbiz.webslinger; >>>>> - >>>>> -import java.io.IOException; >>>>> -import java.io.StringReader; >>>>> -import java.io.StringWriter; >>>>> -import java.util.Collections; >>>>> -import java.util.Map; >>>>> - >>>>> -import org.ofbiz.base.util.UtilGenerics; >>>>> -import org.ofbiz.base.util.UtilMisc; >>>>> -import org.ofbiz.entity.Delegator; >>>>> -import org.ofbiz.entity.GenericValue; >>>>> -import org.ofbiz.entity.util.EntityUtil; >>>>> -import org.ofbiz.service.GenericServiceException; >>>>> -import org.ofbiz.service.ModelService; >>>>> -import org.ofbiz.service.ServiceDispatcher; >>>>> -import org.ofbiz.service.engine.GenericAsyncEngine; >>>>> - >>>>> -import org.webslinger.WebslingerServletContext; >>>>> - >>>>> -public class WebslingerServerEngine extends GenericAsyncEngine { >>>>> - public WebslingerServerEngine(ServiceDispatcher dispatcher) { >>>>> - super(dispatcher); >>>>> - } >>>>> - >>>>> - @Override >>>>> - public void runSyncIgnore(String localName, ModelService >>>>> modelService, Map<String, Object> context) throws >>>>> GenericServiceException { >>>>> - runSync(localName, modelService, context); >>>>> - } >>>>> - >>>>> - @Override >>>>> - public Map<String, Object> runSync(String localName, >>>>> ModelService modelService, Map<String, Object> context) throws >>>>> GenericServiceException { >>>>> - Delegator delegator = dispatcher.getDelegator(); >>>>> - try { >>>>> - GenericValue found = >>>>> EntityUtil.getFirst(delegator.findByAndCache("WebslingerLayout", >>>>> UtilMisc.toMap("webslingerServerId", modelService.location))); >>>>> - if (found == null) throw new >>>>> GenericServiceException("Couldn't find server mapping for(" + >>>>> modelService.location + ")"); >>>>> - return UtilGenerics .checkMap >>>>> (WebslingerServletContext >>>>> .invokeInVM(found.getString("hostName"), 8080, >>>>> modelService.invoke, context)); >>>>> - } catch (RuntimeException e) { >>>>> - throw e; >>>>> - } catch (GenericServiceException e) { >>>>> - throw e; >>>>> - } catch (Exception e) { >>>>> - throw UtilMisc.initCause(new >>>>> GenericServiceException(e.getMessage()), e); >>>>> - } >>>>> - } >>>>> -} >>>>> +/ >>>>> ******************************************************************************* >>>>> + * Licensed to the Apache Software Foundation (ASF) under one >>>>> + * or more contributor license agreements. See the NOTICE file >>>>> + * distributed with this work for additional information >>>>> + * regarding copyright ownership. The ASF licenses this file >>>>> + * to you under the Apache License, Version 2.0 (the >>>>> + * "License"); you may not use this file except in compliance >>>>> + * with the License. You may obtain a copy of the License at >>>>> + * >>>>> + * http://www.apache.org/licenses/LICENSE-2.0 >>>>> + * >>>>> + * Unless required by applicable law or agreed to in writing, >>>>> + * software distributed under the License is distributed on an >>>>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>> + * KIND, either express or implied. See the License for the >>>>> + * specific language governing permissions and limitations >>>>> + * under the License. >>>>> + >>>>> *******************************************************************************/ >>>>> +package org.ofbiz.webslinger; >>>>> + >>>>> +import java.util.Map; >>>>> + >>>>> +import org.ofbiz.base.util.UtilGenerics; >>>>> +import org.ofbiz.base.util.UtilMisc; >>>>> +import org.ofbiz.entity.Delegator; >>>>> +import org.ofbiz.entity.GenericValue; >>>>> +import org.ofbiz.entity.util.EntityUtil; >>>>> +import org.ofbiz.service.GenericServiceException; >>>>> +import org.ofbiz.service.ModelService; >>>>> +import org.ofbiz.service.ServiceDispatcher; >>>>> +import org.ofbiz.service.engine.GenericAsyncEngine; >>>>> +import org.webslinger.WebslingerServletContext; >>>>> + >>>>> +public class WebslingerServerEngine extends GenericAsyncEngine { >>>>> + public WebslingerServerEngine(ServiceDispatcher dispatcher) { >>>>> + super(dispatcher); >>>>> + } >>>>> + >>>>> + @Override >>>>> + public void runSyncIgnore(String localName, ModelService >>>>> modelService, Map<String, Object> context) throws >>>>> GenericServiceException { >>>>> + runSync(localName, modelService, context); >>>>> + } >>>>> + >>>>> + @Override >>>>> + public Map<String, Object> runSync(String localName, >>>>> ModelService modelService, Map<String, Object> context) throws >>>>> GenericServiceException { >>>>> + Delegator delegator = dispatcher.getDelegator(); >>>>> + try { >>>>> + GenericValue found = >>>>> EntityUtil.getFirst(delegator.findByAndCache("WebslingerLayout", >>>>> UtilMisc.toMap("webslingerServerId", modelService.location))); >>>>> + if (found == null) throw new >>>>> GenericServiceException("Couldn't find server mapping for(" + >>>>> modelService.location + ")"); >>>>> + return UtilGenerics .checkMap >>>>> (WebslingerServletContext >>>>> .invokeInVM(found.getString("hostName"), 8080, >>>>> modelService.invoke, context)); >>>>> + } catch (RuntimeException e) { >>>>> + throw e; >>>>> + } catch (GenericServiceException e) { >>>>> + throw e; >>>>> + } catch (Exception e) { >>>>> + throw UtilMisc.initCause(new >>>>> GenericServiceException(e.getMessage()), e); >>>>> + } >>>>> + } >>>>> +} >>>>> >>>>> >>>> >>> >>> >> > > smime.p7s (4K) Download Attachment |
Administrator
|
Hi Scott,
Yes, this is certainly because the person who commited them in 1st place has not his svn config file properly set. It was not me, but with the setting I had (and was not aware since I did not think it could be changed without mentionning) it could have been me. So please commiters, like me, check your svn config file and compare with http://ofbiz.apache.org/svn/config Thanks Jacques From: "Scott Gray" <[hidden email]> > Hi Jacques > > I was referring to the svn properties on the files being committed rather than the svn config. > > Regards > Scott > > On 10/11/2009, at 1:07 AM, Jacques Le Roux wrote: > >> I replaced my .subversion/config by ours. Not sure why it has been replaced, by an install maybe or as I'm on Windows, Tortoise >> while changing the setting... >> >> Jacques >> >> From: "Scott Gray" <[hidden email]> >>> Hi Jacques, >>> >>> I think the problem is related to files in svn that do not have any svn properties set (specifically eol-style), I just came >>> across this myself in r833931 and r833933. When I initially applied the patch the entire file changed but after setting the >>> svn properties the issue went away. >>> >>> Regards >>> Scott >>> >>> On 9/11/2009, at 11:32 AM, Jacques Le Roux wrote: >>> >>>> Sorry Scott, >>>> >>>> I have still not got the reflex... As I have not touched the patch (ok you have to trust me) you may review the patch >>>> itself... >>>> >>>> Jacques >>>> >>>> From: "Scott Gray" <[hidden email]> >>>>> Hi Jacques, >>>>> >>>>> This is that same problem with the patch again, please keep an eye out for these as the commits are impossible to review. >>>>> >>>>> Thanks >>>>> Scott >>>>> >>>>> HotWax Media >>>>> http://www.hotwaxmedia.com >>>>> >>>>> On 8/11/2009, at 7:18 AM, [hidden email] wrote: >>>>> >>>>>> Author: jleroux >>>>>> Date: Sat Nov 7 18:18:33 2009 >>>>>> New Revision: 833727 >>>>>> >>>>>> URL: http://svn.apache.org/viewvc?rev=833727&view=rev >>>>>> Log: >>>>>> A patch from Marc Morin "Resolve java warnings exposed in Eclipse : framework - webslinger" >>>>>> (https://issues.apache.org/jira/browse/OFBIZ-3121 ) - OFBIZ-3121 >>>>>> >>>>>> Modified: >>>>>> ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ CommonsVfsContainer.java >>>>>> ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ ofbiz/ OfbizComponentProvider.java >>>>>> ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ ofbiz/ OfbizHomeProvider.java >>>>>> ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ EntityHttpUtil.java >>>>>> ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ StatsUpdater.java >>>>>> ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ WebslingerContextMapper.java >>>>>> ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ WebslingerServerEngine.java >>>>>> >>>>>> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/ commons/ vfs/ CommonsVfsContainer.java >>>>>> URL: >>>>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/CommonsVfsContainer.java?rev=833727&r1=833726&r2=833727&view=diff >>>>>> = = = = = = = = = = = = ================================================================== >>>>>> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ CommonsVfsContainer.java (original) >>>>>> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ CommonsVfsContainer.java Sat Nov 7 18:18:33 2009 >>>>>> @@ -1,68 +1,66 @@ >>>>>> -/ ******************************************************************************* >>>>>> - * Licensed to the Apache Software Foundation (ASF) under one >>>>>> - * or more contributor license agreements. See the NOTICE file >>>>>> - * distributed with this work for additional information >>>>>> - * regarding copyright ownership. The ASF licenses this file >>>>>> - * to you under the Apache License, Version 2.0 (the >>>>>> - * "License"); you may not use this file except in compliance >>>>>> - * with the License. You may obtain a copy of the License at >>>>>> - * >>>>>> - * http://www.apache.org/licenses/LICENSE-2.0 >>>>>> - * >>>>>> - * Unless required by applicable law or agreed to in writing, >>>>>> - * software distributed under the License is distributed on an >>>>>> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>>> - * KIND, either express or implied. See the License for the >>>>>> - * specific language governing permissions and limitations >>>>>> - * under the License. >>>>>> - *******************************************************************************/ >>>>>> -package org.ofbiz.commons.vfs; >>>>>> - >>>>>> -import java.io.File; >>>>>> -import java.io.IOException; >>>>>> -import java.net.MalformedURLException; >>>>>> - >>>>>> -import org.apache.commons.vfs.CacheStrategy; >>>>>> -import org.apache.commons.vfs.FileObject; >>>>>> -import org.apache.commons.vfs.FileSystemException; >>>>>> -import org.apache.commons.vfs.FileSystemManager; >>>>>> -import org.apache.commons.vfs.impl.StandardFileSystemManager; >>>>>> - >>>>>> -import org.ofbiz.base.container.Container; >>>>>> -import org.ofbiz.base.container.ContainerException; >>>>>> -import org.ofbiz.base.util.UtilMisc; >>>>>> -import org.webslinger.commons.vfs.VFSUtil; >>>>>> - >>>>>> -public class CommonsVfsContainer implements Container { >>>>>> - private static StandardFileSystemManager sfsm; >>>>>> - >>>>>> - public void init(String[] args, String configFile) throws ContainerException { >>>>>> - } >>>>>> - >>>>>> - public boolean start() throws ContainerException { >>>>>> - try { >>>>>> - StandardFileSystemManager sfsm = VFSUtil.createStandardFileSystemManager(); >>>>>> - FileObject currentDir = sfsm.resolveFile(new File(".").toURI().toURL().toString()); >>>>>> - sfsm.setBaseFile(currentDir); >>>>>> - CommonsVfsContainer.sfsm = sfsm; >>>>>> - } catch (FileSystemException e) { >>>>>> - throw UtilMisc.initCause(new ContainerException("Initializing StandardFileSystemManager"), e); >>>>>> - } catch (MalformedURLException e) { >>>>>> - throw UtilMisc.initCause(new ContainerException("Initializing StandardFileSystemManager"), e); >>>>>> - } >>>>>> - return true; >>>>>> - } >>>>>> - >>>>>> - public void stop() throws ContainerException { >>>>>> - sfsm.close(); >>>>>> - sfsm = null; >>>>>> - } >>>>>> - >>>>>> - public static FileObject resolveFile(String uri) throws IOException { >>>>>> - return sfsm.resolveFile(uri); >>>>>> - } >>>>>> - >>>>>> - public static FileSystemManager getFileSystemManager() { >>>>>> - return sfsm; >>>>>> - } >>>>>> -} >>>>>> +/ ******************************************************************************* >>>>>> + * Licensed to the Apache Software Foundation (ASF) under one >>>>>> + * or more contributor license agreements. See the NOTICE file >>>>>> + * distributed with this work for additional information >>>>>> + * regarding copyright ownership. The ASF licenses this file >>>>>> + * to you under the Apache License, Version 2.0 (the >>>>>> + * "License"); you may not use this file except in compliance >>>>>> + * with the License. You may obtain a copy of the License at >>>>>> + * >>>>>> + * http://www.apache.org/licenses/LICENSE-2.0 >>>>>> + * >>>>>> + * Unless required by applicable law or agreed to in writing, >>>>>> + * software distributed under the License is distributed on an >>>>>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>>> + * KIND, either express or implied. See the License for the >>>>>> + * specific language governing permissions and limitations >>>>>> + * under the License. >>>>>> + *******************************************************************************/ >>>>>> +package org.ofbiz.commons.vfs; >>>>>> + >>>>>> +import java.io.File; >>>>>> +import java.io.IOException; >>>>>> +import java.net.MalformedURLException; >>>>>> + >>>>>> +import org.apache.commons.vfs.FileObject; >>>>>> +import org.apache.commons.vfs.FileSystemException; >>>>>> +import org.apache.commons.vfs.FileSystemManager; >>>>>> +import org.apache.commons.vfs.impl.StandardFileSystemManager; >>>>>> +import org.ofbiz.base.container.Container; >>>>>> +import org.ofbiz.base.container.ContainerException; >>>>>> +import org.ofbiz.base.util.UtilMisc; >>>>>> +import org.webslinger.commons.vfs.VFSUtil; >>>>>> + >>>>>> +public class CommonsVfsContainer implements Container { >>>>>> + private static StandardFileSystemManager sfsm; >>>>>> + >>>>>> + public void init(String[] args, String configFile) throws ContainerException { >>>>>> + } >>>>>> + >>>>>> + public boolean start() throws ContainerException { >>>>>> + try { >>>>>> + StandardFileSystemManager sfsm = VFSUtil.createStandardFileSystemManager(); >>>>>> + FileObject currentDir = sfsm.resolveFile(new File(".").toURI().toURL().toString()); >>>>>> + sfsm.setBaseFile(currentDir); >>>>>> + CommonsVfsContainer.sfsm = sfsm; >>>>>> + } catch (FileSystemException e) { >>>>>> + throw UtilMisc.initCause(new ContainerException("Initializing StandardFileSystemManager"), e); >>>>>> + } catch (MalformedURLException e) { >>>>>> + throw UtilMisc.initCause(new ContainerException("Initializing StandardFileSystemManager"), e); >>>>>> + } >>>>>> + return true; >>>>>> + } >>>>>> + >>>>>> + public void stop() throws ContainerException { >>>>>> + sfsm.close(); >>>>>> + sfsm = null; >>>>>> + } >>>>>> + >>>>>> + public static FileObject resolveFile(String uri) throws IOException { >>>>>> + return sfsm.resolveFile(uri); >>>>>> + } >>>>>> + >>>>>> + public static FileSystemManager getFileSystemManager() { >>>>>> + return sfsm; >>>>>> + } >>>>>> +} >>>>>> >>>>>> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/ commons/ vfs/ ofbiz/OfbizComponentProvider.java >>>>>> URL: >>>>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ofbiz/OfbizComponentProvider.java?rev=833727&r1=833726&r2=833727&view=diff >>>>>> = = = = = = = = = = = = ================================================================== >>>>>> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ ofbiz/ OfbizComponentProvider.java (original) >>>>>> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ ofbiz/ OfbizComponentProvider.java Sat Nov 7 18:18:33 2009 >>>>>> @@ -1,58 +1,58 @@ >>>>>> -/ ******************************************************************************* >>>>>> - * Licensed to the Apache Software Foundation (ASF) under one >>>>>> - * or more contributor license agreements. See the NOTICE file >>>>>> - * distributed with this work for additional information >>>>>> - * regarding copyright ownership. The ASF licenses this file >>>>>> - * to you under the Apache License, Version 2.0 (the >>>>>> - * "License"); you may not use this file except in compliance >>>>>> - * with the License. You may obtain a copy of the License at >>>>>> - * >>>>>> - * http://www.apache.org/licenses/LICENSE-2.0 >>>>>> - * >>>>>> - * Unless required by applicable law or agreed to in writing, >>>>>> - * software distributed under the License is distributed on an >>>>>> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>>> - * KIND, either express or implied. See the License for the >>>>>> - * specific language governing permissions and limitations >>>>>> - * under the License. >>>>>> - *******************************************************************************/ >>>>>> -package org.ofbiz.commons.vfs.ofbiz; >>>>>> - >>>>>> -import java.net.URL; >>>>>> -import java.util.Collection; >>>>>> -import org.apache.commons.vfs.FileObject; >>>>>> -import org.apache.commons.vfs.FileSystemException; >>>>>> -import org.apache.commons.vfs.FileSystemOptions; >>>>>> -import org.apache.commons.vfs.provider.AbstractFileProvider; >>>>>> -import org.apache.commons.vfs.provider.local.DefaultLocalFileProvider; >>>>>> -import org.ofbiz.base.location.FlexibleLocation; >>>>>> -import org.ofbiz.base.util.UtilMisc; >>>>>> -import org.webslinger.commons.vfs.VFSUtil; >>>>>> - >>>>>> -public class OfbizComponentProvider extends AbstractFileProvider { >>>>>> - public Collection getCapabilities() { >>>>>> - return DefaultLocalFileProvider.capabilities; >>>>>> - } >>>>>> - >>>>>> - public FileObject findFile(FileObject base, String name, FileSystemOptions properties) throws FileSystemException { >>>>>> - try { >>>>>> - //name = name.replaceAll("^ofbiz-component://", ""); >>>>>> - int nameLength = name.length(); >>>>>> - int componentNameStart = 16; >>>>>> - while (componentNameStart < nameLength && name.charAt(componentNameStart) == '/') componentNameStart++; >>>>>> - if (componentNameStart == nameLength) throw new IllegalArgumentException("Invalid name(" + name + ")"); >>>>>> - int componentNameEnd = componentNameStart; >>>>>> - while (componentNameEnd < nameLength && name.charAt(componentNameEnd) != '/') componentNameEnd++; >>>>>> - if (componentNameEnd == nameLength) throw new IllegalArgumentException("Invalid name(" + name + ")"); >>>>>> - int restStart = componentNameEnd; >>>>>> - while (restStart < nameLength && name.charAt(restStart) == '/') restStart++; >>>>>> - if (restStart == nameLength) throw new IllegalArgumentException("Invalid name(" + name + ")"); >>>>>> - String componentName = name.substring(componentNameStart, componentNameEnd); >>>>>> - URL location = FlexibleLocation.resolveLocation("component://" + componentName + "/."); >>>>>> - FileObject ofbizBase = getContext().resolveFile(location.toString(), properties); >>>>>> - return VFSUtil .toFileObject (ofbizBase.getFileSystem().getFileSystemManager(), ofbizBase >>>>>> .resolveFile(name.substring(restStart)).getURL().toString(), properties); >>>>>> - } catch (Exception e) { >>>>>> - throw UtilMisc.initCause(new FileSystemException(e.getMessage(), null, e), e); >>>>>> - } >>>>>> - } >>>>>> -} >>>>>> +/ ******************************************************************************* >>>>>> + * Licensed to the Apache Software Foundation (ASF) under one >>>>>> + * or more contributor license agreements. See the NOTICE file >>>>>> + * distributed with this work for additional information >>>>>> + * regarding copyright ownership. The ASF licenses this file >>>>>> + * to you under the Apache License, Version 2.0 (the >>>>>> + * "License"); you may not use this file except in compliance >>>>>> + * with the License. You may obtain a copy of the License at >>>>>> + * >>>>>> + * http://www.apache.org/licenses/LICENSE-2.0 >>>>>> + * >>>>>> + * Unless required by applicable law or agreed to in writing, >>>>>> + * software distributed under the License is distributed on an >>>>>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>>> + * KIND, either express or implied. See the License for the >>>>>> + * specific language governing permissions and limitations >>>>>> + * under the License. >>>>>> + *******************************************************************************/ >>>>>> +package org.ofbiz.commons.vfs.ofbiz; >>>>>> + >>>>>> +import java.net.URL; >>>>>> +import java.util.Collection; >>>>>> +import org.apache.commons.vfs.FileObject; >>>>>> +import org.apache.commons.vfs.FileSystemException; >>>>>> +import org.apache.commons.vfs.FileSystemOptions; >>>>>> +import org.apache.commons.vfs.provider.AbstractFileProvider; >>>>>> +import org.apache.commons.vfs.provider.local.DefaultLocalFileProvider; >>>>>> +import org.ofbiz.base.location.FlexibleLocation; >>>>>> +import org.ofbiz.base.util.UtilMisc; >>>>>> +import org.webslinger.commons.vfs.VFSUtil; >>>>>> + >>>>>> +public class OfbizComponentProvider extends AbstractFileProvider { >>>>>> + public Collection<?> getCapabilities() { >>>>>> + return DefaultLocalFileProvider.capabilities; >>>>>> + } >>>>>> + >>>>>> + public FileObject findFile(FileObject base, String name, FileSystemOptions properties) throws FileSystemException { >>>>>> + try { >>>>>> + //name = name.replaceAll("^ofbiz-component://", ""); >>>>>> + int nameLength = name.length(); >>>>>> + int componentNameStart = 16; >>>>>> + while (componentNameStart < nameLength && name.charAt(componentNameStart) == '/') componentNameStart++; >>>>>> + if (componentNameStart == nameLength) throw new IllegalArgumentException("Invalid name(" + name + ")"); >>>>>> + int componentNameEnd = componentNameStart; >>>>>> + while (componentNameEnd < nameLength && name.charAt(componentNameEnd) != '/') componentNameEnd++; >>>>>> + if (componentNameEnd == nameLength) throw new IllegalArgumentException("Invalid name(" + name + ")"); >>>>>> + int restStart = componentNameEnd; >>>>>> + while (restStart < nameLength && name.charAt(restStart) == '/') restStart++; >>>>>> + if (restStart == nameLength) throw new IllegalArgumentException("Invalid name(" + name + ")"); >>>>>> + String componentName = name.substring(componentNameStart, componentNameEnd); >>>>>> + URL location = FlexibleLocation.resolveLocation("component://" + componentName + "/."); >>>>>> + FileObject ofbizBase = getContext().resolveFile(location.toString(), properties); >>>>>> + return VFSUtil .toFileObject (ofbizBase.getFileSystem().getFileSystemManager(), ofbizBase >>>>>> .resolveFile(name.substring(restStart)).getURL().toString(), properties); >>>>>> + } catch (Exception e) { >>>>>> + throw UtilMisc.initCause(new FileSystemException(e.getMessage(), null, e), e); >>>>>> + } >>>>>> + } >>>>>> +} >>>>>> >>>>>> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/ commons/ vfs/ ofbiz/OfbizHomeProvider.java >>>>>> URL: >>>>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ofbiz/OfbizHomeProvider.java?rev=833727&r1=833726&r2=833727&view=diff >>>>>> = = = = = = = = = = = = ================================================================== >>>>>> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ ofbiz/ OfbizHomeProvider.java (original) >>>>>> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/commons/vfs/ ofbiz/ OfbizHomeProvider.java Sat Nov 7 18:18:33 2009 >>>>>> @@ -1,50 +1,50 @@ >>>>>> -/ ******************************************************************************* >>>>>> - * Licensed to the Apache Software Foundation (ASF) under one >>>>>> - * or more contributor license agreements. See the NOTICE file >>>>>> - * distributed with this work for additional information >>>>>> - * regarding copyright ownership. The ASF licenses this file >>>>>> - * to you under the Apache License, Version 2.0 (the >>>>>> - * "License"); you may not use this file except in compliance >>>>>> - * with the License. You may obtain a copy of the License at >>>>>> - * >>>>>> - * http://www.apache.org/licenses/LICENSE-2.0 >>>>>> - * >>>>>> - * Unless required by applicable law or agreed to in writing, >>>>>> - * software distributed under the License is distributed on an >>>>>> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>>> - * KIND, either express or implied. See the License for the >>>>>> - * specific language governing permissions and limitations >>>>>> - * under the License. >>>>>> - *******************************************************************************/ >>>>>> -package org.ofbiz.commons.vfs.ofbiz; >>>>>> - >>>>>> -import java.net.URL; >>>>>> -import java.util.Collection; >>>>>> - >>>>>> -import org.apache.commons.vfs.FileObject; >>>>>> -import org.apache.commons.vfs.FileSystemException; >>>>>> -import org.apache.commons.vfs.FileSystemOptions; >>>>>> -import org.apache.commons.vfs.provider.AbstractFileProvider; >>>>>> -import org.apache.commons.vfs.provider.local.DefaultLocalFileProvider; >>>>>> - >>>>>> -import org.ofbiz.base.location.FlexibleLocation; >>>>>> -import org.ofbiz.base.util.UtilMisc; >>>>>> - >>>>>> -import org.webslinger.commons.vfs.VFSUtil; >>>>>> - >>>>>> -public class OfbizHomeProvider extends AbstractFileProvider { >>>>>> - public Collection getCapabilities() { >>>>>> - return DefaultLocalFileProvider.capabilities; >>>>>> - } >>>>>> - >>>>>> - public FileObject findFile(FileObject base, String name, FileSystemOptions properties) throws FileSystemException { >>>>>> - //new Exception("findFile(" + base + ", " + name + ")").printStackTrace(); >>>>>> - try { >>>>>> - URL location = FlexibleLocation.resolveLocation("ofbizhome://."); >>>>>> - FileObject ofbizBase = getContext().resolveFile(location.toString(), properties); >>>>>> - return VFSUtil .toFileObject(ofbizBase.getFileSystem().getFileSystemManager(), >>>>>> ofbizBase.resolveFile(name.substring(13)).getURL().toString(), properties); >>>>>> - } catch (Exception e) { >>>>>> - throw UtilMisc.initCause(new FileSystemException(e.getMessage(), null, e), e); >>>>>> - } >>>>>> - } >>>>>> -} >>>>>> +/ ******************************************************************************* >>>>>> + * Licensed to the Apache Software Foundation (ASF) under one >>>>>> + * or more contributor license agreements. See the NOTICE file >>>>>> + * distributed with this work for additional information >>>>>> + * regarding copyright ownership. The ASF licenses this file >>>>>> + * to you under the Apache License, Version 2.0 (the >>>>>> + * "License"); you may not use this file except in compliance >>>>>> + * with the License. You may obtain a copy of the License at >>>>>> + * >>>>>> + * http://www.apache.org/licenses/LICENSE-2.0 >>>>>> + * >>>>>> + * Unless required by applicable law or agreed to in writing, >>>>>> + * software distributed under the License is distributed on an >>>>>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>>> + * KIND, either express or implied. See the License for the >>>>>> + * specific language governing permissions and limitations >>>>>> + * under the License. >>>>>> + *******************************************************************************/ >>>>>> +package org.ofbiz.commons.vfs.ofbiz; >>>>>> + >>>>>> +import java.net.URL; >>>>>> +import java.util.Collection; >>>>>> + >>>>>> +import org.apache.commons.vfs.FileObject; >>>>>> +import org.apache.commons.vfs.FileSystemException; >>>>>> +import org.apache.commons.vfs.FileSystemOptions; >>>>>> +import org.apache.commons.vfs.provider.AbstractFileProvider; >>>>>> +import org.apache.commons.vfs.provider.local.DefaultLocalFileProvider; >>>>>> + >>>>>> +import org.ofbiz.base.location.FlexibleLocation; >>>>>> +import org.ofbiz.base.util.UtilMisc; >>>>>> + >>>>>> +import org.webslinger.commons.vfs.VFSUtil; >>>>>> + >>>>>> +public class OfbizHomeProvider extends AbstractFileProvider { >>>>>> + public Collection<?> getCapabilities() { >>>>>> + return DefaultLocalFileProvider.capabilities; >>>>>> + } >>>>>> + >>>>>> + public FileObject findFile(FileObject base, String name, FileSystemOptions properties) throws FileSystemException { >>>>>> + //new Exception("findFile(" + base + ", " + name + ")").printStackTrace(); >>>>>> + try { >>>>>> + URL location = FlexibleLocation.resolveLocation("ofbizhome://."); >>>>>> + FileObject ofbizBase = getContext().resolveFile(location.toString(), properties); >>>>>> + return VFSUtil .toFileObject(ofbizBase.getFileSystem().getFileSystemManager(), >>>>>> ofbizBase.resolveFile(name.substring(13)).getURL().toString(), properties); >>>>>> + } catch (Exception e) { >>>>>> + throw UtilMisc.initCause(new FileSystemException(e.getMessage(), null, e), e); >>>>>> + } >>>>>> + } >>>>>> +} >>>>>> >>>>>> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/ webslinger/ EntityHttpUtil.java >>>>>> URL: >>>>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/EntityHttpUtil.java?rev=833727&r1=833726&r2=833727&view=diff >>>>>> = = = = = = = = = = = = ================================================================== >>>>>> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ EntityHttpUtil.java (original) >>>>>> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ EntityHttpUtil.java Sat Nov 7 18:18:33 2009 >>>>>> @@ -1,78 +1,73 @@ >>>>>> -/ ******************************************************************************* >>>>>> - * Licensed to the Apache Software Foundation (ASF) under one >>>>>> - * or more contributor license agreements. See the NOTICE file >>>>>> - * distributed with this work for additional information >>>>>> - * regarding copyright ownership. The ASF licenses this file >>>>>> - * to you under the Apache License, Version 2.0 (the >>>>>> - * "License"); you may not use this file except in compliance >>>>>> - * with the License. You may obtain a copy of the License at >>>>>> - * >>>>>> - * http://www.apache.org/licenses/LICENSE-2.0 >>>>>> - * >>>>>> - * Unless required by applicable law or agreed to in writing, >>>>>> - * software distributed under the License is distributed on an >>>>>> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>>> - * KIND, either express or implied. See the License for the >>>>>> - * specific language governing permissions and limitations >>>>>> - * under the License. >>>>>> - *******************************************************************************/ >>>>>> -package org.ofbiz.webslinger; >>>>>> - >>>>>> -import java.util.HashMap; >>>>>> -import java.util.Iterator; >>>>>> -import java.util.Locale; >>>>>> -import java.util.Map; >>>>>> - >>>>>> -import javax.servlet.ServletRequest; >>>>>> -import javax.servlet.http.HttpServletRequest; >>>>>> - >>>>>> -import org.ofbiz.base.util.GeneralException; >>>>>> -import org.ofbiz.base.util.ObjectType; >>>>>> -import org.ofbiz.base.util.UtilHttp; >>>>>> -import org.ofbiz.base.util.UtilMisc; >>>>>> -import org.ofbiz.base.util.UtilValidate; >>>>>> -import org.ofbiz.entity.Delegator; >>>>>> -import org.ofbiz.entity.GenericValue; >>>>>> -import org.ofbiz.entity.jdbc.SqlJdbcUtil; >>>>>> -import org.ofbiz.entity.model.ModelEntity; >>>>>> -import org.ofbiz.entity.model.ModelField; >>>>>> -import org.ofbiz.entity.model.ModelFieldType; >>>>>> - >>>>>> -public class EntityHttpUtil { >>>>>> - public static GenericValue makeValidValue(String entityName, ServletRequest request) throws GeneralException { >>>>>> - return makeValidValue(entityName, false, request); >>>>>> - } >>>>>> - >>>>>> - public static GenericValue makeValidValue(String entityName, boolean includePks, ServletRequest request) throws >>>>>> GeneralException { >>>>>> - if (request instanceof HttpServletRequest) return makeValidValue(entityName, includePks, (HttpServletRequest) >>>>>> request); >>>>>> - throw new IllegalArgumentException("Not an HttpServletRequest"); >>>>>> - } >>>>>> - >>>>>> - public static GenericValue makeValidValue(String entityName, HttpServletRequest request) throws GeneralException { >>>>>> - return makeValidValue(entityName, false, request); >>>>>> - } >>>>>> - >>>>>> - public static GenericValue makeValidValue(String entityName, boolean includePks, HttpServletRequest request) throws >>>>>> GeneralException { >>>>>> - Delegator delegator = (Delegator) request.getAttribute("delegator"); >>>>>> - GenericValue value = delegator.makeValue(entityName); >>>>>> - ModelEntity model = value.getModelEntity(); >>>>>> - Iterator<ModelField> it = includePks ? model.getFieldsIterator() : model.getNopksIterator(); >>>>>> - Locale locale = UtilHttp.getLocale(request); >>>>>> - while (it.hasNext()) { >>>>>> - ModelField field = it.next(); >>>>>> - String fieldName = field.getName(); >>>>>> - String parameterValue = request.getParameter(fieldName); >>>>>> - Object fieldValue; >>>>>> - if (parameterValue == null) { >>>>>> - fieldValue = null; >>>>>> - } else { >>>>>> - ModelFieldType fieldType = delegator.getEntityFieldType(model, field.getType()); >>>>>> - String wantedType = fieldType.getJavaType(); >>>>>> - fieldValue = ObjectType.simpleTypeConvert(parameterValue, wantedType, null, locale, true); >>>>>> - } >>>>>> - value.put(fieldName, fieldValue); >>>>>> - } >>>>>> - return value; >>>>>> - } >>>>>> -} >>>>>> - >>>>>> +/ ******************************************************************************* >>>>>> + * Licensed to the Apache Software Foundation (ASF) under one >>>>>> + * or more contributor license agreements. See the NOTICE file >>>>>> + * distributed with this work for additional information >>>>>> + * regarding copyright ownership. The ASF licenses this file >>>>>> + * to you under the Apache License, Version 2.0 (the >>>>>> + * "License"); you may not use this file except in compliance >>>>>> + * with the License. You may obtain a copy of the License at >>>>>> + * >>>>>> + * http://www.apache.org/licenses/LICENSE-2.0 >>>>>> + * >>>>>> + * Unless required by applicable law or agreed to in writing, >>>>>> + * software distributed under the License is distributed on an >>>>>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>>> + * KIND, either express or implied. See the License for the >>>>>> + * specific language governing permissions and limitations >>>>>> + * under the License. >>>>>> + *******************************************************************************/ >>>>>> +package org.ofbiz.webslinger; >>>>>> + >>>>>> +import java.util.Iterator; >>>>>> +import java.util.Locale; >>>>>> + >>>>>> +import javax.servlet.ServletRequest; >>>>>> +import javax.servlet.http.HttpServletRequest; >>>>>> + >>>>>> +import org.ofbiz.base.util.GeneralException; >>>>>> +import org.ofbiz.base.util.ObjectType; >>>>>> +import org.ofbiz.base.util.UtilHttp; >>>>>> +import org.ofbiz.entity.Delegator; >>>>>> +import org.ofbiz.entity.GenericValue; >>>>>> +import org.ofbiz.entity.model.ModelEntity; >>>>>> +import org.ofbiz.entity.model.ModelField; >>>>>> +import org.ofbiz.entity.model.ModelFieldType; >>>>>> + >>>>>> +public class EntityHttpUtil { >>>>>> + public static GenericValue makeValidValue(String entityName, ServletRequest request) throws GeneralException { >>>>>> + return makeValidValue(entityName, false, request); >>>>>> + } >>>>>> + >>>>>> + public static GenericValue makeValidValue(String entityName, boolean includePks, ServletRequest request) throws >>>>>> GeneralException { >>>>>> + if (request instanceof HttpServletRequest) return makeValidValue(entityName, includePks, (HttpServletRequest) >>>>>> request); >>>>>> + throw new IllegalArgumentException("Not an HttpServletRequest"); >>>>>> + } >>>>>> + >>>>>> + public static GenericValue makeValidValue(String entityName, HttpServletRequest request) throws GeneralException { >>>>>> + return makeValidValue(entityName, false, request); >>>>>> + } >>>>>> + >>>>>> + public static GenericValue makeValidValue(String entityName, boolean includePks, HttpServletRequest request) throws >>>>>> GeneralException { >>>>>> + Delegator delegator = (Delegator) request.getAttribute("delegator"); >>>>>> + GenericValue value = delegator.makeValue(entityName); >>>>>> + ModelEntity model = value.getModelEntity(); >>>>>> + Iterator<ModelField> it = includePks ? model.getFieldsIterator() : model.getNopksIterator(); >>>>>> + Locale locale = UtilHttp.getLocale(request); >>>>>> + while (it.hasNext()) { >>>>>> + ModelField field = it.next(); >>>>>> + String fieldName = field.getName(); >>>>>> + String parameterValue = request.getParameter(fieldName); >>>>>> + Object fieldValue; >>>>>> + if (parameterValue == null) { >>>>>> + fieldValue = null; >>>>>> + } else { >>>>>> + ModelFieldType fieldType = delegator.getEntityFieldType(model, field.getType()); >>>>>> + String wantedType = fieldType.getJavaType(); >>>>>> + fieldValue = ObjectType.simpleTypeConvert(parameterValue, wantedType, null, locale, true); >>>>>> + } >>>>>> + value.put(fieldName, fieldValue); >>>>>> + } >>>>>> + return value; >>>>>> + } >>>>>> +} >>>>>> + >>>>>> >>>>>> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/ webslinger/ StatsUpdater.java >>>>>> URL: >>>>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/StatsUpdater.java?rev=833727&r1=833726&r2=833727&view=diff >>>>>> = = = = = = = = = = = = ================================================================== >>>>>> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ StatsUpdater.java (original) >>>>>> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ StatsUpdater.java Sat Nov 7 18:18:33 2009 >>>>>> @@ -1,121 +1,118 @@ >>>>>> -/ ******************************************************************************* >>>>>> - * Licensed to the Apache Software Foundation (ASF) under one >>>>>> - * or more contributor license agreements. See the NOTICE file >>>>>> - * distributed with this work for additional information >>>>>> - * regarding copyright ownership. The ASF licenses this file >>>>>> - * to you under the Apache License, Version 2.0 (the >>>>>> - * "License"); you may not use this file except in compliance >>>>>> - * with the License. You may obtain a copy of the License at >>>>>> - * >>>>>> - * http://www.apache.org/licenses/LICENSE-2.0 >>>>>> - * >>>>>> - * Unless required by applicable law or agreed to in writing, >>>>>> - * software distributed under the License is distributed on an >>>>>> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>>> - * KIND, either express or implied. See the License for the >>>>>> - * specific language governing permissions and limitations >>>>>> - * under the License. >>>>>> - *******************************************************************************/ >>>>>> -package org.ofbiz.webslinger; >>>>>> - >>>>>> -import java.util.HashMap; >>>>>> -import java.util.Iterator; >>>>>> -import java.util.Map; >>>>>> -import java.util.concurrent.Callable; >>>>>> -import java.util.concurrent.ConcurrentHashMap; >>>>>> -import java.util.concurrent.ScheduledFuture; >>>>>> -import java.util.concurrent.TimeUnit; >>>>>> -import java.util.concurrent.atomic.AtomicReference; >>>>>> - >>>>>> -import org.ofbiz.base.util.UtilMisc; >>>>>> -import org.ofbiz.entity.Delegator; >>>>>> -import org.ofbiz.entity.GenericEntityException; >>>>>> -import org.ofbiz.entity.GenericPK; >>>>>> -import org.ofbiz.entity.GenericValue; >>>>>> - >>>>>> -import org.webslinger.cache.ConcurrentCache; >>>>>> -import org.webslinger.concurrent.ExecutionPool; >>>>>> - >>>>>> -public class StatsUpdater { >>>>>> - private static final Updater UPDATER = new Updater(); >>>>>> - >>>>>> - public static void updateStats(Delegator delegator, String entityName, Map<String, ? extends Object> keyFields, >>>>>> Map<String, ? extends Long> updateCountFields) throws GenericEntityException { >>>>>> - GenericPK pk = delegator.makePK(entityName, keyFields); >>>>>> - Map<String, Long> value = UPDATER.getValue(pk); >>>>>> - synchronized (value) { >>>>>> - for (Map.Entry<String, ? extends Long> entry: updateCountFields.entrySet()) { >>>>>> - Long oldValue = value.get(entry.getKey()); >>>>>> - if (oldValue != null) { >>>>>> - value.put(entry.getKey(), Long.valueOf(oldValue.longValue() + entry.getValue())); >>>>>> - } else { >>>>>> - value.put(entry.getKey(), entry.getValue()); >>>>>> - } >>>>>> - } >>>>>> - } >>>>>> - } >>>>>> - >>>>>> - private static final class Updater implements Callable<Void> { >>>>>> - protected AtomicReference<EntityHolder> entities = new AtomicReference<EntityHolder>(new >>>>>> EntityHolder(Updater.class, "entities", null)); >>>>>> - protected ScheduledFuture<Void> future; >>>>>> - >>>>>> - protected Map<String, Long> getValue(GenericPK pk) throws GenericEntityException { >>>>>> - synchronized (this) { >>>>>> - if (future == null || future.isDone()) { >>>>>> - future = ExecutionPool.schedule(this, 1, TimeUnit.SECONDS); >>>>>> - } >>>>>> - } >>>>>> - try { >>>>>> - return entities.get().get(pk); >>>>>> - } catch (RuntimeException e) { >>>>>> - throw e; >>>>>> - } catch (GenericEntityException e) { >>>>>> - throw e; >>>>>> - } catch (Exception e) { >>>>>> - throw UtilMisc.initCause(new GenericEntityException(e.getMessage()), e); >>>>>> - } >>>>>> - } >>>>>> - >>>>>> - public Void call() { >>>>>> - EntityHolder oldEntities; >>>>>> - EntityHolder newEntities = new EntityHolder(Updater.class, "entities", null); >>>>>> - do { >>>>>> - oldEntities = entities.get(); >>>>>> - } while (!entities.compareAndSet(oldEntities, newEntities)); >>>>>> - synchronized (Updater.class) { >>>>>> - for (GenericPK pk: oldEntities.keys()) { >>>>>> - try { >>>>>> - Map<String, Long> add = oldEntities.get(pk); >>>>>> - GenericValue existing = pk.getDelegator().findOne(pk.getEntityName(), pk, false); >>>>>> - if (existing == null) { >>>>>> - existing = pk.getDelegator().create(pk.getEntityName(), pk); >>>>>> - } >>>>>> - for (Map.Entry<String, Long> entry: add.entrySet()) { >>>>>> - Long value = entry.getValue(); >>>>>> - Long oldValue = existing.getLong(entry.getKey()); >>>>>> - if (oldValue != null) { >>>>>> - existing.put(entry.getKey(), Long.valueOf(value.longValue() + oldValue.longValue())); >>>>>> - } else { >>>>>> - existing.put(entry.getKey(), value); >>>>>> - } >>>>>> - } >>>>>> - existing.store(); >>>>>> - } catch (Exception e) { >>>>>> - e.printStackTrace(); >>>>>> - } >>>>>> - } >>>>>> - } >>>>>> - return null; >>>>>> - } >>>>>> - } >>>>>> - >>>>>> - private static final class EntityHolder extends ConcurrentCache<GenericPK, Map<String, Long>> { >>>>>> - protected EntityHolder(Class<?> owner, String field, String label) { >>>>>> - super(owner, field, label, HARD); >>>>>> - } >>>>>> - >>>>>> - @Override >>>>>> - protected Map<String, Long> createValue(GenericPK pk) throws Exception { >>>>>> - return new HashMap<String, Long>(); >>>>>> - } >>>>>> - } >>>>>> -} >>>>>> +/ ******************************************************************************* >>>>>> + * Licensed to the Apache Software Foundation (ASF) under one >>>>>> + * or more contributor license agreements. See the NOTICE file >>>>>> + * distributed with this work for additional information >>>>>> + * regarding copyright ownership. The ASF licenses this file >>>>>> + * to you under the Apache License, Version 2.0 (the >>>>>> + * "License"); you may not use this file except in compliance >>>>>> + * with the License. You may obtain a copy of the License at >>>>>> + * >>>>>> + * http://www.apache.org/licenses/LICENSE-2.0 >>>>>> + * >>>>>> + * Unless required by applicable law or agreed to in writing, >>>>>> + * software distributed under the License is distributed on an >>>>>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>>> + * KIND, either express or implied. See the License for the >>>>>> + * specific language governing permissions and limitations >>>>>> + * under the License. >>>>>> + *******************************************************************************/ >>>>>> +package org.ofbiz.webslinger; >>>>>> + >>>>>> +import java.util.HashMap; >>>>>> +import java.util.Map; >>>>>> +import java.util.concurrent.Callable; >>>>>> +import java.util.concurrent.ScheduledFuture; >>>>>> +import java.util.concurrent.TimeUnit; >>>>>> +import java.util.concurrent.atomic.AtomicReference; >>>>>> + >>>>>> +import org.ofbiz.base.util.UtilMisc; >>>>>> +import org.ofbiz.entity.Delegator; >>>>>> +import org.ofbiz.entity.GenericEntityException; >>>>>> +import org.ofbiz.entity.GenericPK; >>>>>> +import org.ofbiz.entity.GenericValue; >>>>>> +import org.webslinger.cache.ConcurrentCache; >>>>>> +import org.webslinger.concurrent.ExecutionPool; >>>>>> + >>>>>> +public class StatsUpdater { >>>>>> + private static final Updater UPDATER = new Updater(); >>>>>> + >>>>>> + public static void updateStats(Delegator delegator, String entityName, Map<String, ? extends Object> keyFields, >>>>>> Map<String, ? extends Long> updateCountFields) throws GenericEntityException { >>>>>> + GenericPK pk = delegator.makePK(entityName, keyFields); >>>>>> + Map<String, Long> value = UPDATER.getValue(pk); >>>>>> + synchronized (value) { >>>>>> + for (Map.Entry<String, ? extends Long> entry: updateCountFields.entrySet()) { >>>>>> + Long oldValue = value.get(entry.getKey()); >>>>>> + if (oldValue != null) { >>>>>> + value.put(entry.getKey(), Long.valueOf(oldValue.longValue() + entry.getValue())); >>>>>> + } else { >>>>>> + value.put(entry.getKey(), entry.getValue()); >>>>>> + } >>>>>> + } >>>>>> + } >>>>>> + } >>>>>> + >>>>>> + private static final class Updater implements Callable<Void> { >>>>>> + protected AtomicReference<EntityHolder> entities = new AtomicReference<EntityHolder>(new >>>>>> EntityHolder(Updater.class, "entities", null)); >>>>>> + protected ScheduledFuture<Void> future; >>>>>> + >>>>>> + protected Map<String, Long> getValue(GenericPK pk) throws GenericEntityException { >>>>>> + synchronized (this) { >>>>>> + if (future == null || future.isDone()) { >>>>>> + future = ExecutionPool.schedule(this, 1, TimeUnit.SECONDS); >>>>>> + } >>>>>> + } >>>>>> + try { >>>>>> + return entities.get().get(pk); >>>>>> + } catch (RuntimeException e) { >>>>>> + throw e; >>>>>> + } catch (GenericEntityException e) { >>>>>> + throw e; >>>>>> + } catch (Exception e) { >>>>>> + throw UtilMisc.initCause(new GenericEntityException(e.getMessage()), e); >>>>>> + } >>>>>> + } >>>>>> + >>>>>> + public Void call() { >>>>>> + EntityHolder oldEntities; >>>>>> + EntityHolder newEntities = new EntityHolder(Updater.class, "entities", null); >>>>>> + do { >>>>>> + oldEntities = entities.get(); >>>>>> + } while (!entities.compareAndSet(oldEntities, newEntities)); >>>>>> + synchronized (Updater.class) { >>>>>> + for (GenericPK pk: oldEntities.keys()) { >>>>>> + try { >>>>>> + Map<String, Long> add = oldEntities.get(pk); >>>>>> + GenericValue existing = pk.getDelegator().findOne(pk.getEntityName(), pk, false); >>>>>> + if (existing == null) { >>>>>> + existing = pk.getDelegator().create(pk.getEntityName(), pk); >>>>>> + } >>>>>> + for (Map.Entry<String, Long> entry: add.entrySet()) { >>>>>> + Long value = entry.getValue(); >>>>>> + Long oldValue = existing.getLong(entry.getKey()); >>>>>> + if (oldValue != null) { >>>>>> + existing.put(entry.getKey(), Long.valueOf(value.longValue() + oldValue.longValue())); >>>>>> + } else { >>>>>> + existing.put(entry.getKey(), value); >>>>>> + } >>>>>> + } >>>>>> + existing.store(); >>>>>> + } catch (Exception e) { >>>>>> + e.printStackTrace(); >>>>>> + } >>>>>> + } >>>>>> + } >>>>>> + return null; >>>>>> + } >>>>>> + } >>>>>> + >>>>>> + private static final class EntityHolder extends ConcurrentCache<GenericPK, Map<String, Long>> { >>>>>> + protected EntityHolder(Class<?> owner, String field, String label) { >>>>>> + super(owner, field, label, HARD); >>>>>> + } >>>>>> + >>>>>> + @Override >>>>>> + protected Map<String, Long> createValue(GenericPK pk) throws Exception { >>>>>> + return new HashMap<String, Long>(); >>>>>> + } >>>>>> + } >>>>>> +} >>>>>> >>>>>> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/ webslinger/ WebslingerContextMapper.java >>>>>> URL: >>>>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/WebslingerContextMapper.java?rev=833727&r1=833726&r2=833727&view=diff >>>>>> = = = = = = = = = = = = ================================================================== >>>>>> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ WebslingerContextMapper.java (original) >>>>>> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ WebslingerContextMapper.java Sat Nov 7 18:18:33 2009 >>>>>> @@ -1,218 +1,216 @@ >>>>>> -/ ******************************************************************************* >>>>>> - * Licensed to the Apache Software Foundation (ASF) under one >>>>>> - * or more contributor license agreements. See the NOTICE file >>>>>> - * distributed with this work for additional information >>>>>> - * regarding copyright ownership. The ASF licenses this file >>>>>> - * to you under the Apache License, Version 2.0 (the >>>>>> - * "License"); you may not use this file except in compliance >>>>>> - * with the License. You may obtain a copy of the License at >>>>>> - * >>>>>> - * http://www.apache.org/licenses/LICENSE-2.0 >>>>>> - * >>>>>> - * Unless required by applicable law or agreed to in writing, >>>>>> - * software distributed under the License is distributed on an >>>>>> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>>> - * KIND, either express or implied. See the License for the >>>>>> - * specific language governing permissions and limitations >>>>>> - * under the License. >>>>>> - *******************************************************************************/ >>>>>> -package org.ofbiz.webslinger; >>>>>> - >>>>>> -import java.io.IOException; >>>>>> -import java.net.URL; >>>>>> -import java.util.ArrayList; >>>>>> -import java.util.Arrays; >>>>>> -import java.util.HashSet; >>>>>> -import java.util.List; >>>>>> -import java.util.Set; >>>>>> - >>>>>> -import javax.servlet.ServletConfig; >>>>>> -import javax.servlet.ServletContext; >>>>>> -import javax.servlet.ServletException; >>>>>> -import javax.servlet.http.HttpServletRequest; >>>>>> - >>>>>> -import org.ofbiz.base.util.UtilMisc; >>>>>> -import org.ofbiz.base.util.UtilProperties; >>>>>> -import org.ofbiz.entity.Delegator; >>>>>> -import org.ofbiz.entity.DelegatorFactory; >>>>>> -import org.ofbiz.entity.GenericEntityException; >>>>>> -import org.ofbiz.entity.GenericValue; >>>>>> -import org.ofbiz.entity.cache.Cache; >>>>>> -import org.ofbiz.entity.util.EntityUtil; >>>>>> -import org.ofbiz.security.SecurityFactory; >>>>>> -import org.ofbiz.security.authz.AuthorizationFactory; >>>>>> -import org.ofbiz.service.GenericDispatcher; >>>>>> -import org.ofbiz.service.LocalDispatcher; >>>>>> -import org.ofbiz.service.ServiceDispatcher; >>>>>> -import org.ofbiz.service.DispatchContext; >>>>>> - >>>>>> -import org.webslinger.AbstractMappingWebslingerServletContextFactory; >>>>>> -import org.webslinger.WebslingerServletContext; >>>>>> -import org.webslinger.collections.CollectionUtil; >>>>>> -import org.webslinger.lang.ObjectUtil; >>>>>> - >>>>>> -public class WebslingerContextMapper extends AbstractMappingWebslingerServletContextFactory { >>>>>> - protected ServletContext servletContext; >>>>>> - protected Delegator delegator; >>>>>> - protected final ArrayList<URL> globalReaderURLs = new ArrayList<URL>(); >>>>>> - >>>>>> - public void init(ServletConfig config) throws ServletException, IOException { >>>>>> - System .err .println(org.webslinger.commons.vfs.flat.FlatFileProvider.class); >>>>>> - servletContext = config.getServletContext(); >>>>>> - String delegatorName = servletContext.getInitParameter("entityDelegatorName"); >>>>>> - delegator = DelegatorFactory.getDelegator(delegatorName); >>>>>> - String readerFiles = servletContext.getInitParameter("serviceReaderUrls"); >>>>>> - if (readerFiles != null) { >>>>>> - for (String reader: CollectionUtil.split(readerFiles, ";")) { >>>>>> - URL url = config.getServletContext().getResource(reader); >>>>>> - if (url != null) globalReaderURLs.add(url); >>>>>> - } >>>>>> - } >>>>>> - super.init(config, UtilProperties.getPropertyValue("webslinger.properties", "moduleBase")); >>>>>> - } >>>>>> - >>>>>> - @Override >>>>>> - protected Layout[] getStartLayouts() throws Exception { >>>>>> - ArrayList<Layout> layouts = new ArrayList<Layout>(); >>>>>> - try { >>>>>> - for (GenericValue value: delegator.findByAnd("WebslingerServer", UtilMisc.toMap("loadAtStart", "Y"))) { >>>>>> - layouts.add(new OfbizLayout(value)); >>>>>> - } >>>>>> - } catch (GenericEntityException e) { >>>>>> - } >>>>>> - return layouts.toArray(new Layout[layouts.size()]); >>>>>> - } >>>>>> - >>>>>> - @Override >>>>>> - public void initializeRequest(WebslingerServletContext context, HttpServletRequest request) { >>>>>> - request.setAttribute("servletContext", context); >>>>>> - Object delegator = context.getAttribute("delegator"); >>>>>> - Object dispatcher = context.getAttribute("dispatcher"); >>>>>> - Object authz = context.getAttribute("authz"); >>>>>> - Object security = context.getAttribute("security"); >>>>>> - request.setAttribute("delegator", delegator); >>>>>> - request.setAttribute("dispatcher", dispatcher); >>>>>> - request.setAttribute("authz", authz); >>>>>> - request.setAttribute("security", security); >>>>>> - // FIXME!!! These next two are a hack until proper fake/ wrapped session support is done in webslinger >>>>>> - servletContext.setAttribute("delegator", delegator); >>>>>> - servletContext.setAttribute("dispatcher", dispatcher); >>>>>> - servletContext.setAttribute("authz", authz); >>>>>> - servletContext.setAttribute("security", security); >>>>>> - } >>>>>> - >>>>>> - @Override >>>>>> - protected void initializeContext(WebslingerServletContext context, Layout layout) throws Exception { >>>>>> - OfbizLayout ofbizLayout = (OfbizLayout) layout; >>>>>> - Delegator delegator = null; >>>>>> - delegator = DelegatorFactory.getDelegator(ofbizLayout.delegatorName); >>>>>> - context.setAttribute("delegator", delegator); >>>>>> - context.setAttribute("dispatcher", new WebslingerGenericDispatcher(context, layout.getTarget(), delegator, >>>>>> globalReaderURLs)); >>>>>> - context.setAttribute("authz", AuthorizationFactory.getInstance(delegator)); >>>>>> - context.setAttribute("security", SecurityFactory.getInstance(delegator)); >>>>>> - } >>>>>> - >>>>>> - protected static final class WebslingerGenericDispatcher extends GenericDispatcher { >>>>>> - protected WebslingerGenericDispatcher(WebslingerServletContext context, String name, Delegator delegator, >>>>>> List<URL> globalReaderURLs) throws IOException { >>>>>> - ArrayList<URL> readerURLs = new ArrayList<URL>(globalReaderURLs); >>>>>> - String readerFiles = context.getInitParameter("serviceReaderUrls"); >>>>>> - if (readerFiles != null) { >>>>>> - for (String reader: CollectionUtil.split(readerFiles, ";")) { >>>>>> - URL url = context.getResource(reader); >>>>>> - if (url != null) readerURLs.add(url); >>>>>> - } >>>>>> - } >>>>>> - System.err.println(readerURLs); >>>>>> - this.dispatcher = new ServiceDispatcher(delegator, true, true, true) { >>>>>> - }; >>>>>> - ClassLoader loader = null; >>>>>> - try { >>>>>> - loader = Thread.currentThread().getContextClassLoader(); >>>>>> - } catch (SecurityException e) { >>>>>> - loader = WebslingerContextMapper.class.getClassLoader(); >>>>>> - } >>>>>> - DispatchContext dc = new DispatchContext(name, readerURLs, loader, null); >>>>>> - init(name, delegator, dc); >>>>>> - } >>>>>> - } >>>>>> - >>>>>> - @Override >>>>>> - protected Set<String> getSuffixes() throws Exception { >>>>>> - Cache cache = delegator.getCache(); >>>>>> - Set<String> suffixes; >>>>>> - synchronized (WebslingerContextMapper.class) { >>>>>> - suffixes = cache.get("WebslingerHostSuffix", null, "WebslingerContextMapper.Suffixes"); >>>>>> - if (suffixes == null) { >>>>>> - suffixes = new HashSet<String>(); >>>>>> - for (GenericValue value: delegator.findList("WebslingerHostSuffix", null, null, null, null, false)) { >>>>>> - suffixes.add(value.getString("hostSuffix")); >>>>>> - } >>>>>> - cache.put("WebslingerHostSuffix", null, "WebslingerContextMapper.Suffixes", suffixes); >>>>>> - } >>>>>> - } >>>>>> - return suffixes; >>>>>> - } >>>>>> - >>>>>> - @Override >>>>>> - protected Layout lookupLayout(String hostName, String contextPath) throws Exception { >>>>>> - GenericValue layout = EntityUtil .getOnly(delegator.findByAndCache("WebslingerLayout", >>>>>> UtilMisc.toMap("hostName", hostName, "contextPath", contextPath))); >>>>>> - if (layout == null) return null; >>>>>> - return new OfbizLayout(layout); >>>>>> - } >>>>>> - >>>>>> - protected class OfbizLayout implements Layout { >>>>>> - private final String contextPath; >>>>>> - private final String id; >>>>>> - private final String target; >>>>>> - private final String[] bases; >>>>>> - private final int hashCode; >>>>>> - protected final String delegatorName; >>>>>> - protected final String dispatcherName; >>>>>> - >>>>>> - protected OfbizLayout(GenericValue server) throws GenericEntityException { >>>>>> - contextPath = server.getString("contextPath"); >>>>>> - id = server.getString("webslingerServerId"); >>>>>> - target = server.getString("target"); >>>>>> - List<GenericValue> baseValues = server.getRelatedCache("WebslingerServerBase", UtilMisc.toList("seqNum")); >>>>>> - bases = new String[baseValues.size()]; >>>>>> - for (int i = 0; i < bases.length; i++) { >>>>>> - GenericValue baseValue = baseValues.get(i); >>>>>> - bases[i] = baseValue.getString("baseName"); >>>>>> - } >>>>>> - delegatorName = server.getString("delegatorName"); >>>>>> - dispatcherName = server.getString("dispatcherName"); >>>>>> - hashCode = target.hashCode() ^ ObjectUtil.hashCodeHelper(delegatorName) ^ Arrays.hashCode(bases); >>>>>> - } >>>>>> - >>>>>> - public String getContextPath() { >>>>>> - return contextPath; >>>>>> - } >>>>>> - >>>>>> - public String getId() { >>>>>> - return id; >>>>>> - } >>>>>> - >>>>>> - public String getTarget() { >>>>>> - return target; >>>>>> - } >>>>>> - >>>>>> - public String[] getBases() { >>>>>> - return bases; >>>>>> - } >>>>>> - >>>>>> - @Override >>>>>> - public int hashCode() { >>>>>> - return hashCode; >>>>>> - } >>>>>> - >>>>>> - @Override >>>>>> - public boolean equals(Object o) { >>>>>> - if (!(o instanceof OfbizLayout)) return false; >>>>>> - OfbizLayout other = (OfbizLayout) o; >>>>>> - if (!contextPath.equals(other.contextPath)) return false; >>>>>> - if (!target.equals(other.target)) return false; >>>>>> - if (!ObjectUtil.equalsHelper(delegatorName, other.delegatorName)) return false; >>>>>> - return Arrays.equals(bases, other.bases); >>>>>> - } >>>>>> - } >>>>>> -} >>>>>> +/ ******************************************************************************* >>>>>> + * Licensed to the Apache Software Foundation (ASF) under one >>>>>> + * or more contributor license agreements. See the NOTICE file >>>>>> + * distributed with this work for additional information >>>>>> + * regarding copyright ownership. The ASF licenses this file >>>>>> + * to you under the Apache License, Version 2.0 (the >>>>>> + * "License"); you may not use this file except in compliance >>>>>> + * with the License. You may obtain a copy of the License at >>>>>> + * >>>>>> + * http://www.apache.org/licenses/LICENSE-2.0 >>>>>> + * >>>>>> + * Unless required by applicable law or agreed to in writing, >>>>>> + * software distributed under the License is distributed on an >>>>>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>>> + * KIND, either express or implied. See the License for the >>>>>> + * specific language governing permissions and limitations >>>>>> + * under the License. >>>>>> + *******************************************************************************/ >>>>>> +package org.ofbiz.webslinger; >>>>>> + >>>>>> +import java.io.IOException; >>>>>> +import java.net.URL; >>>>>> +import java.util.ArrayList; >>>>>> +import java.util.Arrays; >>>>>> +import java.util.HashSet; >>>>>> +import java.util.List; >>>>>> +import java.util.Set; >>>>>> + >>>>>> +import javax.servlet.ServletConfig; >>>>>> +import javax.servlet.ServletContext; >>>>>> +import javax.servlet.ServletException; >>>>>> +import javax.servlet.http.HttpServletRequest; >>>>>> + >>>>>> +import org.ofbiz.base.util.UtilMisc; >>>>>> +import org.ofbiz.base.util.UtilProperties; >>>>>> +import org.ofbiz.entity.Delegator; >>>>>> +import org.ofbiz.entity.DelegatorFactory; >>>>>> +import org.ofbiz.entity.GenericEntityException; >>>>>> +import org.ofbiz.entity.GenericValue; >>>>>> +import org.ofbiz.entity.cache.Cache; >>>>>> +import org.ofbiz.entity.util.EntityUtil; >>>>>> +import org.ofbiz.security.SecurityFactory; >>>>>> +import org.ofbiz.security.authz.AuthorizationFactory; >>>>>> +import org.ofbiz.service.DispatchContext; >>>>>> +import org.ofbiz.service.GenericDispatcher; >>>>>> +import org.ofbiz.service.ServiceDispatcher; >>>>>> +import org.webslinger.AbstractMappingWebslingerServletContextFactory; >>>>>> +import org.webslinger.WebslingerServletContext; >>>>>> +import org.webslinger.collections.CollectionUtil; >>>>>> +import org.webslinger.lang.ObjectUtil; >>>>>> + >>>>>> +public class WebslingerContextMapper extends AbstractMappingWebslingerServletContextFactory { >>>>>> + protected ServletContext servletContext; >>>>>> + protected Delegator delegator; >>>>>> + protected final ArrayList<URL> globalReaderURLs = new ArrayList<URL>(); >>>>>> + >>>>>> + public void init(ServletConfig config) throws ServletException, IOException { >>>>>> + System .err .println(org.webslinger.commons.vfs.flat.FlatFileProvider.class); >>>>>> + servletContext = config.getServletContext(); >>>>>> + String delegatorName = servletContext.getInitParameter("entityDelegatorName"); >>>>>> + delegator = DelegatorFactory.getDelegator(delegatorName); >>>>>> + String readerFiles = servletContext.getInitParameter("serviceReaderUrls"); >>>>>> + if (readerFiles != null) { >>>>>> + for (String reader: CollectionUtil.split(readerFiles, ";")) { >>>>>> + URL url = config.getServletContext().getResource(reader); >>>>>> + if (url != null) globalReaderURLs.add(url); >>>>>> + } >>>>>> + } >>>>>> + super.init(config, UtilProperties.getPropertyValue("webslinger.properties", "moduleBase")); >>>>>> + } >>>>>> + >>>>>> + @Override >>>>>> + protected Layout[] getStartLayouts() throws Exception { >>>>>> + ArrayList<Layout> layouts = new ArrayList<Layout>(); >>>>>> + try { >>>>>> + for (GenericValue value: delegator.findByAnd("WebslingerServer", UtilMisc.toMap("loadAtStart", "Y"))) { >>>>>> + layouts.add(new OfbizLayout(value)); >>>>>> + } >>>>>> + } catch (GenericEntityException e) { >>>>>> + } >>>>>> + return layouts.toArray(new Layout[layouts.size()]); >>>>>> + } >>>>>> + >>>>>> + @Override >>>>>> + public void initializeRequest(WebslingerServletContext context, HttpServletRequest request) { >>>>>> + request.setAttribute("servletContext", context); >>>>>> + Object delegator = context.getAttribute("delegator"); >>>>>> + Object dispatcher = context.getAttribute("dispatcher"); >>>>>> + Object authz = context.getAttribute("authz"); >>>>>> + Object security = context.getAttribute("security"); >>>>>> + request.setAttribute("delegator", delegator); >>>>>> + request.setAttribute("dispatcher", dispatcher); >>>>>> + request.setAttribute("authz", authz); >>>>>> + request.setAttribute("security", security); >>>>>> + // FIXME!!! These next two are a hack until proper fake/ wrapped session support is done in webslinger >>>>>> + servletContext.setAttribute("delegator", delegator); >>>>>> + servletContext.setAttribute("dispatcher", dispatcher); >>>>>> + servletContext.setAttribute("authz", authz); >>>>>> + servletContext.setAttribute("security", security); >>>>>> + } >>>>>> + >>>>>> + @Override >>>>>> + protected void initializeContext(WebslingerServletContext context, Layout layout) throws Exception { >>>>>> + OfbizLayout ofbizLayout = (OfbizLayout) layout; >>>>>> + Delegator delegator = null; >>>>>> + delegator = DelegatorFactory.getDelegator(ofbizLayout.delegatorName); >>>>>> + context.setAttribute("delegator", delegator); >>>>>> + context.setAttribute("dispatcher", new WebslingerGenericDispatcher(context, layout.getTarget(), delegator, >>>>>> globalReaderURLs)); >>>>>> + context.setAttribute("authz", AuthorizationFactory.getInstance(delegator)); >>>>>> + context.setAttribute("security", SecurityFactory.getInstance(delegator)); >>>>>> + } >>>>>> + >>>>>> + protected static final class WebslingerGenericDispatcher extends GenericDispatcher { >>>>>> + protected WebslingerGenericDispatcher(WebslingerServletContext context, String name, Delegator delegator, >>>>>> List<URL> globalReaderURLs) throws IOException { >>>>>> + ArrayList<URL> readerURLs = new ArrayList<URL>(globalReaderURLs); >>>>>> + String readerFiles = context.getInitParameter("serviceReaderUrls"); >>>>>> + if (readerFiles != null) { >>>>>> + for (String reader: CollectionUtil.split(readerFiles, ";")) { >>>>>> + URL url = context.getResource(reader); >>>>>> + if (url != null) readerURLs.add(url); >>>>>> + } >>>>>> + } >>>>>> + System.err.println(readerURLs); >>>>>> + this.dispatcher = new ServiceDispatcher(delegator, true, true, true) { >>>>>> + }; >>>>>> + ClassLoader loader = null; >>>>>> + try { >>>>>> + loader = Thread.currentThread().getContextClassLoader(); >>>>>> + } catch (SecurityException e) { >>>>>> + loader = WebslingerContextMapper.class.getClassLoader(); >>>>>> + } >>>>>> + DispatchContext dc = new DispatchContext(name, readerURLs, loader, null); >>>>>> + init(name, delegator, dc); >>>>>> + } >>>>>> + } >>>>>> + >>>>>> + @Override >>>>>> + protected Set<String> getSuffixes() throws Exception { >>>>>> + Cache cache = delegator.getCache(); >>>>>> + Set<String> suffixes; >>>>>> + synchronized (WebslingerContextMapper.class) { >>>>>> + suffixes = cache.get("WebslingerHostSuffix", null, "WebslingerContextMapper.Suffixes"); >>>>>> + if (suffixes == null) { >>>>>> + suffixes = new HashSet<String>(); >>>>>> + for (GenericValue value: delegator.findList("WebslingerHostSuffix", null, null, null, null, false)) { >>>>>> + suffixes.add(value.getString("hostSuffix")); >>>>>> + } >>>>>> + cache.put("WebslingerHostSuffix", null, "WebslingerContextMapper.Suffixes", suffixes); >>>>>> + } >>>>>> + } >>>>>> + return suffixes; >>>>>> + } >>>>>> + >>>>>> + @Override >>>>>> + protected Layout lookupLayout(String hostName, String contextPath) throws Exception { >>>>>> + GenericValue layout = EntityUtil .getOnly(delegator.findByAndCache("WebslingerLayout", >>>>>> UtilMisc.toMap("hostName", hostName, "contextPath", contextPath))); >>>>>> + if (layout == null) return null; >>>>>> + return new OfbizLayout(layout); >>>>>> + } >>>>>> + >>>>>> + protected class OfbizLayout implements Layout { >>>>>> + private final String contextPath; >>>>>> + private final String id; >>>>>> + private final String target; >>>>>> + private final String[] bases; >>>>>> + private final int hashCode; >>>>>> + protected final String delegatorName; >>>>>> + protected final String dispatcherName; >>>>>> + >>>>>> + protected OfbizLayout(GenericValue server) throws GenericEntityException { >>>>>> + contextPath = server.getString("contextPath"); >>>>>> + id = server.getString("webslingerServerId"); >>>>>> + target = server.getString("target"); >>>>>> + List<GenericValue> baseValues = server.getRelatedCache("WebslingerServerBase", UtilMisc.toList("seqNum")); >>>>>> + bases = new String[baseValues.size()]; >>>>>> + for (int i = 0; i < bases.length; i++) { >>>>>> + GenericValue baseValue = baseValues.get(i); >>>>>> + bases[i] = baseValue.getString("baseName"); >>>>>> + } >>>>>> + delegatorName = server.getString("delegatorName"); >>>>>> + dispatcherName = server.getString("dispatcherName"); >>>>>> + hashCode = target.hashCode() ^ ObjectUtil.hashCodeHelper(delegatorName) ^ Arrays.hashCode(bases); >>>>>> + } >>>>>> + >>>>>> + public String getContextPath() { >>>>>> + return contextPath; >>>>>> + } >>>>>> + >>>>>> + public String getId() { >>>>>> + return id; >>>>>> + } >>>>>> + >>>>>> + public String getTarget() { >>>>>> + return target; >>>>>> + } >>>>>> + >>>>>> + public String[] getBases() { >>>>>> + return bases; >>>>>> + } >>>>>> + >>>>>> + @Override >>>>>> + public int hashCode() { >>>>>> + return hashCode; >>>>>> + } >>>>>> + >>>>>> + @Override >>>>>> + public boolean equals(Object o) { >>>>>> + if (!(o instanceof OfbizLayout)) return false; >>>>>> + OfbizLayout other = (OfbizLayout) o; >>>>>> + if (!contextPath.equals(other.contextPath)) return false; >>>>>> + if (!target.equals(other.target)) return false; >>>>>> + if (!ObjectUtil.equalsHelper(delegatorName, other.delegatorName)) return false; >>>>>> + return Arrays.equals(bases, other.bases); >>>>>> + } >>>>>> + } >>>>>> +} >>>>>> >>>>>> Modified: ofbiz/trunk/framework/webslinger/src/org/ofbiz/ webslinger/ WebslingerServerEngine.java >>>>>> URL: >>>>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/WebslingerServerEngine.java?rev=833727&r1=833726&r2=833727&view=diff >>>>>> = = = = = = = = = = = = ================================================================== >>>>>> --- ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ WebslingerServerEngine.java (original) >>>>>> +++ ofbiz/trunk/framework/webslinger/src/org/ofbiz/webslinger/ WebslingerServerEngine.java Sat Nov 7 18:18:33 2009 >>>>>> @@ -1,64 +1,59 @@ >>>>>> -/ ******************************************************************************* >>>>>> - * Licensed to the Apache Software Foundation (ASF) under one >>>>>> - * or more contributor license agreements. See the NOTICE file >>>>>> - * distributed with this work for additional information >>>>>> - * regarding copyright ownership. The ASF licenses this file >>>>>> - * to you under the Apache License, Version 2.0 (the >>>>>> - * "License"); you may not use this file except in compliance >>>>>> - * with the License. You may obtain a copy of the License at >>>>>> - * >>>>>> - * http://www.apache.org/licenses/LICENSE-2.0 >>>>>> - * >>>>>> - * Unless required by applicable law or agreed to in writing, >>>>>> - * software distributed under the License is distributed on an >>>>>> - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>>> - * KIND, either express or implied. See the License for the >>>>>> - * specific language governing permissions and limitations >>>>>> - * under the License. >>>>>> - *******************************************************************************/ >>>>>> -package org.ofbiz.webslinger; >>>>>> - >>>>>> -import java.io.IOException; >>>>>> -import java.io.StringReader; >>>>>> -import java.io.StringWriter; >>>>>> -import java.util.Collections; >>>>>> -import java.util.Map; >>>>>> - >>>>>> -import org.ofbiz.base.util.UtilGenerics; >>>>>> -import org.ofbiz.base.util.UtilMisc; >>>>>> -import org.ofbiz.entity.Delegator; >>>>>> -import org.ofbiz.entity.GenericValue; >>>>>> -import org.ofbiz.entity.util.EntityUtil; >>>>>> -import org.ofbiz.service.GenericServiceException; >>>>>> -import org.ofbiz.service.ModelService; >>>>>> -import org.ofbiz.service.ServiceDispatcher; >>>>>> -import org.ofbiz.service.engine.GenericAsyncEngine; >>>>>> - >>>>>> -import org.webslinger.WebslingerServletContext; >>>>>> - >>>>>> -public class WebslingerServerEngine extends GenericAsyncEngine { >>>>>> - public WebslingerServerEngine(ServiceDispatcher dispatcher) { >>>>>> - super(dispatcher); >>>>>> - } >>>>>> - >>>>>> - @Override >>>>>> - public void runSyncIgnore(String localName, ModelService modelService, Map<String, Object> context) throws >>>>>> GenericServiceException { >>>>>> - runSync(localName, modelService, context); >>>>>> - } >>>>>> - >>>>>> - @Override >>>>>> - public Map<String, Object> runSync(String localName, ModelService modelService, Map<String, Object> context) throws >>>>>> GenericServiceException { >>>>>> - Delegator delegator = dispatcher.getDelegator(); >>>>>> - try { >>>>>> - GenericValue found = EntityUtil.getFirst(delegator.findByAndCache("WebslingerLayout", >>>>>> UtilMisc.toMap("webslingerServerId", modelService.location))); >>>>>> - if (found == null) throw new GenericServiceException("Couldn't find server mapping for(" + >>>>>> modelService.location + ")"); >>>>>> - return UtilGenerics .checkMap (WebslingerServletContext .invokeInVM(found.getString("hostName"), 8080, >>>>>> modelService.invoke, context)); >>>>>> - } catch (RuntimeException e) { >>>>>> - throw e; >>>>>> - } catch (GenericServiceException e) { >>>>>> - throw e; >>>>>> - } catch (Exception e) { >>>>>> - throw UtilMisc.initCause(new GenericServiceException(e.getMessage()), e); >>>>>> - } >>>>>> - } >>>>>> -} >>>>>> +/ ******************************************************************************* >>>>>> + * Licensed to the Apache Software Foundation (ASF) under one >>>>>> + * or more contributor license agreements. See the NOTICE file >>>>>> + * distributed with this work for additional information >>>>>> + * regarding copyright ownership. The ASF licenses this file >>>>>> + * to you under the Apache License, Version 2.0 (the >>>>>> + * "License"); you may not use this file except in compliance >>>>>> + * with the License. You may obtain a copy of the License at >>>>>> + * >>>>>> + * http://www.apache.org/licenses/LICENSE-2.0 >>>>>> + * >>>>>> + * Unless required by applicable law or agreed to in writing, >>>>>> + * software distributed under the License is distributed on an >>>>>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >>>>>> + * KIND, either express or implied. See the License for the >>>>>> + * specific language governing permissions and limitations >>>>>> + * under the License. >>>>>> + *******************************************************************************/ >>>>>> +package org.ofbiz.webslinger; >>>>>> + >>>>>> +import java.util.Map; >>>>>> + >>>>>> +import org.ofbiz.base.util.UtilGenerics; >>>>>> +import org.ofbiz.base.util.UtilMisc; >>>>>> +import org.ofbiz.entity.Delegator; >>>>>> +import org.ofbiz.entity.GenericValue; >>>>>> +import org.ofbiz.entity.util.EntityUtil; >>>>>> +import org.ofbiz.service.GenericServiceException; >>>>>> +import org.ofbiz.service.ModelService; >>>>>> +import org.ofbiz.service.ServiceDispatcher; >>>>>> +import org.ofbiz.service.engine.GenericAsyncEngine; >>>>>> +import org.webslinger.WebslingerServletContext; >>>>>> + >>>>>> +public class WebslingerServerEngine extends GenericAsyncEngine { >>>>>> + public WebslingerServerEngine(ServiceDispatcher dispatcher) { >>>>>> + super(dispatcher); >>>>>> + } >>>>>> + >>>>>> + @Override >>>>>> + public void runSyncIgnore(String localName, ModelService modelService, Map<String, Object> context) throws >>>>>> GenericServiceException { >>>>>> + runSync(localName, modelService, context); >>>>>> + } >>>>>> + >>>>>> + @Override >>>>>> + public Map<String, Object> runSync(String localName, ModelService modelService, Map<String, Object> context) throws >>>>>> GenericServiceException { >>>>>> + Delegator delegator = dispatcher.getDelegator(); >>>>>> + try { >>>>>> + GenericValue found = EntityUtil.getFirst(delegator.findByAndCache("WebslingerLayout", >>>>>> UtilMisc.toMap("webslingerServerId", modelService.location))); >>>>>> + if (found == null) throw new GenericServiceException("Couldn't find server mapping for(" + >>>>>> modelService.location + ")"); >>>>>> + return UtilGenerics .checkMap (WebslingerServletContext .invokeInVM(found.getString("hostName"), 8080, >>>>>> modelService.invoke, context)); >>>>>> + } catch (RuntimeException e) { >>>>>> + throw e; >>>>>> + } catch (GenericServiceException e) { >>>>>> + throw e; >>>>>> + } catch (Exception e) { >>>>>> + throw UtilMisc.initCause(new GenericServiceException(e.getMessage()), e); >>>>>> + } >>>>>> + } >>>>>> +} >>>>>> >>>>>> >>>>> >>>> >>>> >>> >> >> > > |
Free forum by Nabble | Edit this page |