Skip to main content

Posts

Showing posts from December, 2014

How to run odoo(openerp8) in IDE from source on windows

1. install python 2.7 (per openerp8's official doc, python 27 is required.) 2. download get-pip.py from https://bootstrap.pypa.io/get-pip.py , execute the command: python get-pip.py 3. get source of openerp8 from https://github.com/odoo/odoo.git 4. execute the command: pip install -r D:\source_code\odoo\openerp8/requirements.txt . (requirements.txt contains all dependencies. ) The pip will install the python module automatically. However, the real world always bring us the issues because our C++ compile environment is not setup correctly.  we will get the link error when pip try to install psycopg2 (driver to access postgresql db.). Go to  http://www.stickpeople.com/projects/python/win-psycopg/  and choose the compiled binary file directly. For Python-ldap, go to  http://www.lfd.uci.edu/~gohlke/pythonlibs/ 5. Finally, go to http://sourceforge.net/projects/pywin32/files/pywin32 and choose correct version for python-win32service. 6. If you are family with...

How to create Dynamic Java Bean using CGLIB

When I try to convert one python code to java code to handle QWeb dynamic object, it is awesome to use CGLIB to create dynamic java bean.  Here is simple implement: package org.easyerp.utils; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; import net.sf.cglib.beans.BeanGenerator; import net.sf.cglib.beans.BeanMap; public class DynamicBeanFactory { private Map<String, Object> propertyValueMap = new HashMap<>(); private  Map<String, Class> propertyTypeMap = new HashMap<>(); public DynamicBeanFactory() { } public void setBeanProperty(String name, Class type, Object value) { this.propertyValueMap.put(name, value); this.propertyTypeMap.put(name, type); } public DynamicBeanBuilder createBeanBuilder() { DynamicBeanBuilder beanBuilder = new DynamicBeanBuilder(propertyTypeMap); propertyValueMap.entrySet().parallelStream().forEach(entry -> beanBuilder.set...