Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » EclipseLink » Equinox weaving configuration - Clasloading issue
Equinox weaving configuration - Clasloading issue [message #481551] Fri, 21 August 2009 13:49 Go to next message
Thomas Haskes is currently offline Thomas Haskes
Messages: 147
Registered: July 2009
Senior Member
Hi Guys,

I recently migrated an application from an JavaEE App server to an OSGi
Environment and was wondering why my application suddenly showed such a
poor performance, when I discovered that lazy loading of entities
doesn't work anymore because the entites are not woven.

A Google search on the topic brought me to this tutorial [1] which I
followed, but now I get ClassNotFoundExceptions.

I have the following setup on the server:

Bundle A contains all the entities and exports them, so that the client
can use the same bundle.

Bundle A.internal creates the EMF and the EM an does all the persistence
operations.

Now when I start my application, I get a ClassNotFoundException on my
entity classes, but only when I start the fragments
org.eclipse.persistence.equinox and org.eclipse.equinox.weaving (which
are required to start to get lazy loading working as mentioned in [1]).

If I dont start those fragments, everything works, but then theres no
weaving at all(which is clear as the fragment are not started). It seems
that I have to configure some more Bundle-Requirements or
Buddy-Classloading directives, but I don't know where and what.

I provided the EMF with the Classloader of the Activator of the Bundle
A.internal, and that works when I do not start the fragments.

Any Ideas?

TIA

Tom

[1]
http://wiki.eclipse.org/EclipseLink/Examples/OSGi/Equinox_By te_Code_Weaving
Re: Equinox weaving configuration - Clasloading issue [message #481850 is a reply to message #481551] Mon, 24 August 2009 14:38 Go to previous messageGo to next message
James Sutherland is currently offline James Sutherland
Messages: 1939
Registered: July 2009
Location: Ottawa, Canada
Senior Member

Could you include the ClassNotFound exception and stack.

James : Wiki : Book : Blog : Twitter
Re: Equinox weaving configuration - Clasloading issue [message #481859 is a reply to message #481551] Mon, 24 August 2009 15:03 Go to previous messageGo to next message
Shaun Smith is currently offline Shaun Smith
Messages: 197
Registered: July 2009
Senior Member
Thomas Haskes wrote:
> ...
> Now when I start my application, I get a ClassNotFoundException on my
> entity classes, but only when I start the fragments
> org.eclipse.persistence.equinox and org.eclipse.equinox.weaving (which
> are required to start to get lazy loading working as mentioned in [1]).

You don't have to start those fragments; I don't think you can really. In
the example you deploy those fragments and start the javax.persistence
bundle and then the org.eclipse.persistence.jpa bundle. Finally you start
your client bundle.

> If I dont start those fragments, everything works, but then theres no
> weaving at all(which is clear as the fragment are not started). It seems
> that I have to configure some more Bundle-Requirements or
> Buddy-Classloading directives, but I don't know where and what.

You don't have to use an Equinox specific buddy loading with EclipseLink.
If it works without weaving then your config is probably ok.

One of the key issues for weaving is the requirement that framework
fragments be co-located with the org.eclipse.osgi bundle. In the example
[1], all the bundles are in the same folder so the fragment loads
properly. The way Equinox is launched is key to this working and the
config I describe is critical to success. If you're running inside PDE
then you need to checkout the source for Equinox (org.eclipse.osgi) from
CVS. See the comments on the Adaptor Hook [2] page for details. By
having the Equinox source in your dev environment when you deploy
org.eclipse.osgi and the framework extension fragment
org.eclipse.persistence.equinox.weaving are in the same folder. Luckily,
PDE launches Equinox in such a way that the fragments are loaded
correctly--when I went outside PDE I soon discovered that launching
Equinox with "java -jar org.eclipse.osgi_<version>" did not work, the
framework extensions are loaded after the Adapter Hook framework has
looked for extensions! So, as I said, *luckily* PDE launches Equinox in a
way that works.

> Any Ideas?

I've thrown out a bunch of background and hopefully this helps. In my
experience, the most common problem is the weaving extension either not
being attached to org.eclipse.osgi or being attached after the Adaptor
Hook framework has looked for extensions. Making sure you launch Equinox
as described should solve these issues. If this doesn't help can you post
your short status (ss) which will show if the fragments are properly
attached?

--Shaun

> Tom

> [1]
> http://wiki.eclipse.org/EclipseLink/Examples/OSGi/Equinox_By te_Code_Weaving
[2] http://wiki.eclipse.org/Adaptor_Hooks
Re: Equinox weaving configuration - Clasloading issue [message #482068 is a reply to message #481859] Tue, 25 August 2009 10:19 Go to previous messageGo to next message
Thomas Haskes is currently offline Thomas Haskes
Messages: 147
Registered: July 2009
Senior Member
Shaun, James, thanks for all the information, i'll try everything. But I
still have some questions and comments, though.

First of all, when I said that I started the fragments I did not mean
that I literally tried to start them (by using the "start bundle"
command on the console, as fragments cannot be started at all), I meant
that I checked them to be loaded in the eclipse run configuration, sorry
for being not clear at that point.

My first problem is that I do not really know where to put the line

osgi.framework.extensions=org.eclipse.persistence.jpa.equino x.weaving.

I know it belongs in the config.ini, and in a deployed equinox runtime
environment (i'm using inside an tomcat container using the
servletbridge) I have a config.ini where I can put the line.

The problem is that I would like to launch the application form inside
Eclipse using an OSGi launch configuration, and there is simply no
option in that dialog where I could place a config.ini file that should
be used (or I just didn't find it yet). There is such an option in the
"eclipse application" ("use an existing config.ini as template"), but I
could not get that to work as I need to provide an eclipse application
to start, which I don't have since I'm using pure OSGi for the
serverside here).

I tried to give the line as an argument (on the "arguments tab" in the
launch configuration dialog) like this:

-Declipse.ignoreApp=true -Dosgi.noShutdown=true -Xms512m -Xmx512m
-Dosgi.framework.extensions=org.eclipse.persistence.jpa.equi nox.weaving

Maybe this is wrong or does nothing at all.

But what really puzzles me is the classloading problem, I would have
expected some errors on indirection or something. As soon as the
fragments are checked in the launch configuration, eclipselink complains
about not being able to find the (entity) classes defined in the
persistence.xml

To be honest I'm not quite sure that I understood all of your
suggestions right, but I think the root of the problem is probably that
I didn't place the aforementioned framework extensions configuration
line in the right place, so maybe we should start solving this first.

For the sake of completeness I post the short status and the exception
message, maybe it helps. The exception occurs when
Persistence.createEntityManager() is called in this part of code:


HashMap<String, Object> props = new HashMap<String, Object>();
props.put(PersistenceUnitProperties.EXCLUSIVE_CONNECTION_MOD E, "Always");
entityManagerFactory = Persistence.createEntityManagerFactory("tup_pu",
props);



Here is the short status output:


id State Bundle
0 ACTIVE org.eclipse.osgi_3.4.2.R34x_v20080826-1230
Fragments=1
1 RESOLVED
org.eclipse.persistence.jpa.equinox.weaving_1.1.2.v20090612- r4475
Master=0
2 ACTIVE com.springsource.org.aopalliance_1.0.0
3 ACTIVE com.tp.server.persistence_1.0.0
4 ACTIVE com.tp.server.remoting_1.0.0
5 ACTIVE com.tp.server.persistence.internal_1.0.0
6 ACTIVE org.eclipse.persistence.jpa_1.1.2.v20090612-r4475
Fragments=35
7 ACTIVE com.springsource.net.sf.cglib_2.1.3
8 ACTIVE org.eclipse.osgi.services_3.1.200.v20071203
9 RESOLVED org.eclipse.persistence.oracle_1.1.2.v20090612-r4475
Master=44
10 ACTIVE com.tp.server.lisa.masterdata.internal_1.0.0
11 ACTIVE org.eclipse.persistence.antlr_1.1.2.v20090612-r4475
12 ACTIVE com.tp.server.util_1.0.0
13 ACTIVE org.springframework.osgi.web_1.2.0
14 ACTIVE com.tp.server.config.ui.internal_1.0.0
15 ACTIVE org.springframework.web_2.5.6
16 ACTIVE com.springsource.slf4j.api_1.5.0
Fragments=24
17 ACTIVE com.tp.oracledriver_1.0.0
18 ACTIVE org.springframework.osgi.extender_1.2.0
19 ACTIVE org.springframework.beans_2.5.6
20 ACTIVE org.eclipse.equinox.http.servlet_1.0.100.v20080427-0830
21 ACTIVE org.springframework.osgi.core_1.2.0
22 ACTIVE javax.persistence_1.99.0.v200906021518
23 ACTIVE com.tp.server.lisa.core_1.0.0
24 RESOLVED com.springsource.slf4j.log4j_1.5.0
Master=16
25 ACTIVE com.tp.server.config.ui_1.0.0
26 ACTIVE com.tp.server.lisa.masterdata_1.0.0
27 ACTIVE org.eclipse.equinox.http.jetty_2.0.0.v20090429-1630
28 ACTIVE org.springframework.osgi.io_1.2.0
29 ACTIVE org.springframework.orm_2.5.6
30 ACTIVE org.springframework.core_2.5.6
31 ACTIVE org.springframework.aop_2.5.6
32 ACTIVE com.springsource.slf4j.org.apache.commons.logging_1.5.0
33 ACTIVE com.tp.server.lisa.core.internal_1.0.0
34 ACTIVE org.mortbay.jetty.server_6.1.15.v200904241724
35 RESOLVED org.eclipse.persistence.jpa.equinox_1.1.2.v20090612-r4475
Master=6
36 ACTIVE javax.servlet_2.5.0.v200806031605
37 RESOLVED org.springframework.osgi.log4j.config_1.0.0
Master=38
38 ACTIVE org.springframework.osgi.log4j.osgi_1.2.15.SNAPSHOT
Fragments=37
39 ACTIVE org.springframework.transaction_2.5.6
40 ACTIVE org.springframework.web.servlet_2.5.6
41 ACTIVE org.mortbay.jetty.util_6.1.15.v200904241724
42 ACTIVE org.eclipse.equinox.common_3.4.0.v20080421-2006
43 ACTIVE org.springframework.context_2.5.6
44 ACTIVE org.eclipse.persistence.core_1.1.2.v20090612-r4475
Fragments=9


And the exception message:


------------------------------------------------------------ ----------------

javax.persistence.PersistenceException: Exception [EclipseLink-28018]
(Eclipse Persistence Services - 1.1.2.v20090612-r4475):
org.eclipse.persistence.exceptions.EntityManagerSetupExcepti on
Exception Description: Predeployment of PersistenceUnit [tup_pu] failed.
Internal Exception: Exception [EclipseLink-7156] (Eclipse Persistence
Services - 1.1.2.v20090612-r4475):
org.eclipse.persistence.exceptions.ValidationException
Exception Description: Unable to find the class named
[com.tp.server.lisa.core.Company]. Ensure the class name/path is correct
and available to the classloader.
Internal Exception: java.lang.ClassNotFoundException:
com.tp.server.lisa.core.Company
at
org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl. predeploy(EntityManagerSetupImpl.java:878)
at
org.eclipse.persistence.jpa.PersistenceProvider.createEntity ManagerFactory(PersistenceProvider.java:162)
at
org.eclipse.persistence.jpa.PersistenceProvider.createEntity ManagerFactory(PersistenceProvider.java:67)
at javax.persistence.Persistence.createEntityManagerFactory(Unk nown Source)
at
com.tp.server.persistence.internal.Activator.getEntityManage rFactory(Activator.java:49)
at
com.tp.server.persistence.internal.TransactionManagerBean.lo gin(TransactionManagerBean.java:26)
at
com.tp.server.persistence.internal.TransactionManagerBean$$F astClassByCGLIB$$d216f03b.invoke( <generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at
org.springframework.aop.framework.Cglib2AopProxy$CglibMethod Invocation.invokeJoinpoint(Cglib2AopProxy.java:700)
at
org.springframework.aop.framework.ReflectiveMethodInvocation .proceed(ReflectiveMethodInvocation.java:149)
at
org.springframework.aop.support.DelegatingIntroductionInterc eptor.doProceed(DelegatingIntroductionInterceptor.java:131)
at
org.springframework.aop.support.DelegatingIntroductionInterc eptor.invoke(DelegatingIntroductionInterceptor.java:119)
at
org.springframework.aop.framework.ReflectiveMethodInvocation .proceed(ReflectiveMethodInvocation.java:171)
at
org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvi sedInterceptor.intercept(Cglib2AopProxy.java:635)
at
com.tp.server.persistence.internal.TransactionManagerBean$$E nhancerByCGLIB$$3f29ba32.login( <generated>)
at
com.tp.server.persistence.internal.PersistenceSessionBean.lo gin(PersistenceSessionBean.java:36)
at
com.tp.server.persistence.internal.PersistenceSessionBean$$F astClassByCGLIB$$21a5a443.invoke( <generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at
org.springframework.aop.framework.Cglib2AopProxy$CglibMethod Invocation.invokeJoinpoint(Cglib2AopProxy.java:700)
at
org.springframework.aop.framework.ReflectiveMethodInvocation .proceed(ReflectiveMethodInvocation.java:149)
at
org.springframework.aop.support.DelegatingIntroductionInterc eptor.doProceed(DelegatingIntroductionInterceptor.java:131)
at
org.springframework.aop.support.DelegatingIntroductionInterc eptor.invoke(DelegatingIntroductionInterceptor.java:119)
at
org.springframework.aop.framework.ReflectiveMethodInvocation .proceed(ReflectiveMethodInvocation.java:171)
at
org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvi sedInterceptor.intercept(Cglib2AopProxy.java:635)
at
com.tp.server.persistence.internal.PersistenceSessionBean$$E nhancerByCGLIB$$108b16ca.login( <generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.springframework.aop.support.AopUtils.invokeJoinpointUsin gReflection(AopUtils.java:307)
at
org.springframework.aop.framework.ReflectiveMethodInvocation .invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at
org.springframework.aop.framework.ReflectiveMethodInvocation .proceed(ReflectiveMethodInvocation.java:149)
at
org.springframework.remoting.support.RemoteInvocationTraceIn terceptor.invoke(RemoteInvocationTraceInterceptor.java:77)
at
org.springframework.aop.framework.ReflectiveMethodInvocation .proceed(ReflectiveMethodInvocation.java:171)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke( JdkDynamicAopProxy.java:204)
at $Proxy16.login(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.springframework.remoting.support.RemoteInvocation.invoke (RemoteInvocation.java:205)
at
org.springframework.remoting.support.DefaultRemoteInvocation Executor.invoke(DefaultRemoteInvocationExecutor.java:38)
at
org.springframework.remoting.support.RemoteInvocationBasedEx porter.invoke(RemoteInvocationBasedExporter.java:78)
at
org.springframework.remoting.support.RemoteInvocationBasedEx porter.invokeAndCreateResult(RemoteInvocationBasedExporter.j ava:114)
at
org.springframework.remoting.httpinvoker.HttpInvokerServiceE xporter.handleRequest(HttpInvokerServiceExporter.java:74)
at
org.springframework.web.servlet.mvc.HttpRequestHandlerAdapte r.handle(HttpRequestHandlerAdapter.java:49)
at
org.springframework.web.servlet.DispatcherServlet.doDispatch (DispatcherServlet.java:875)
at
org.springframework.web.servlet.DispatcherServlet.doService( DispatcherServlet.java:807)
at
org.springframework.web.servlet.FrameworkServlet.processRequ est(FrameworkServlet.java:571)
at
org.springframework.web.servlet.FrameworkServlet.doPost(Fram eworkServlet.java:511)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at
org.eclipse.equinox.http.servlet.internal.ServletRegistratio n.handleRequest(ServletRegistration.java:90)
at
org.eclipse.equinox.http.servlet.internal.ProxyServlet.proce ssAlias(ProxyServlet.java:111)
at
org.eclipse.equinox.http.servlet.internal.ProxyServlet.servi ce(ProxyServlet.java:67)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at
org.eclipse.equinox.http.jetty.internal.HttpServerManager$In ternalHttpServiceServlet.service(HttpServerManager.java:311)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder .java:502)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandl er.java:380)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandl er.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandl er.java:765)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapp er.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnectio n.java:535)
at
org.mortbay.jetty.HttpConnection$RequestHandler.content(Http Connection.java:880)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java: 218)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java: 404)
at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEn dPoint.java:409)
at
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThr eadPool.java:520)
Caused by: Exception [EclipseLink-28018] (Eclipse Persistence Services -
1.1.2.v20090612-r4475):
org.eclipse.persistence.exceptions.EntityManagerSetupExcepti on
Exception Description: Predeployment of PersistenceUnit [tup_pu] failed.
Internal Exception: Exception [EclipseLink-7156] (Eclipse Persistence
Services - 1.1.2.v20090612-r4475):
org.eclipse.persistence.exceptions.ValidationException
Exception Description: Unable to find the class named
[com.tp.server.lisa.core.Company]. Ensure the class name/path is correct
and available to the classloader.
Internal Exception: java.lang.ClassNotFoundException:
com.tp.server.lisa.core.Company
at
org.eclipse.persistence.exceptions.EntityManagerSetupExcepti on.predeployFailed(EntityManagerSetupException.java:210)
... 70 more
Caused by: Exception [EclipseLink-7156] (Eclipse Persistence Services -
1.1.2.v20090612-r4475):
org.eclipse.persistence.exceptions.ValidationException
Exception Description: Unable to find the class named
[com.tp.server.lisa.core.Company]. Ensure the class name/path is correct
and available to the classloader.
Internal Exception: java.lang.ClassNotFoundException:
com.tp.server.lisa.core.Company
at
org.eclipse.persistence.exceptions.ValidationException.unabl eToLoadClass(ValidationException.java:1821)
at
org.eclipse.persistence.internal.jpa.metadata.xml.XMLEntityM appings.getClassForName(XMLEntityMappings.java:141)
at
org.eclipse.persistence.internal.jpa.metadata.xml.XMLEntityM appings.getClassForName(XMLEntityMappings.java:175)
at
org.eclipse.persistence.internal.jpa.metadata.xml.XMLEntityM appings.initPersistenceUnitClasses(XMLEntityMappings.java:41 5)
at
org.eclipse.persistence.internal.jpa.metadata.MetadataProces sor.initPersistenceUnitClasses(MetadataProcessor.java:202)
at
org.eclipse.persistence.internal.jpa.metadata.MetadataProces sor.processEntityMappings(MetadataProcessor.java:425)
at
org.eclipse.persistence.internal.jpa.deployment.PersistenceU nitProcessor.processORMetadata(PersistenceUnitProcessor.java :299)
at
org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl. predeploy(EntityManagerSetupImpl.java:838)
... 69 more
Caused by: java.lang.ClassNotFoundException: com.tp.server.lisa.core.Company
at
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLoc alClassImpl(ClasspathManager.java:469)
at
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLoc alClass_LockClassLoader(ClasspathManager.java:443)
at
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLoc alClass(ClasspathManager.java:423)
at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.fin dLocalClass(DefaultClassLoader.java:193)
at
org.eclipse.persistence.internal.jpa.deployment.osgi.equinox .EquinoxInitializer$TempEquinoxEntityLoader.loadClass(Equino xInitializer.java:200)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at
org.eclipse.persistence.internal.security.PrivilegedAccessHe lper.getClassForName(PrivilegedAccessHelper.java:86)
at
org.eclipse.persistence.internal.jpa.metadata.xml.XMLEntityM appings.getClassForName(XMLEntityMappings.java:138)
... 75 more

------------------------------------------------------------ -


Thanks again,

Tom



Shaun Smith schrieb:
> Thomas Haskes wrote:
>> ...
>> Now when I start my application, I get a ClassNotFoundException on my
>> entity classes, but only when I start the fragments
>> org.eclipse.persistence.equinox and org.eclipse.equinox.weaving (which
>> are required to start to get lazy loading working as mentioned in [1]).
>
> You don't have to start those fragments; I don't think you can really.
> In the example you deploy those fragments and start the
> javax.persistence bundle and then the org.eclipse.persistence.jpa
> bundle. Finally you start your client bundle.
>
>> If I dont start those fragments, everything works, but then theres no
>> weaving at all(which is clear as the fragment are not started). It seems
>> that I have to configure some more Bundle-Requirements or
>> Buddy-Classloading directives, but I don't know where and what.
>
> You don't have to use an Equinox specific buddy loading with
> EclipseLink. If it works without weaving then your config is probably ok.
>
> One of the key issues for weaving is the requirement that framework
> fragments be co-located with the org.eclipse.osgi bundle. In the
> example [1], all the bundles are in the same folder so the fragment
> loads properly. The way Equinox is launched is key to this working and
> the config I describe is critical to success. If you're running inside
> PDE then you need to checkout the source for Equinox (org.eclipse.osgi)
> from CVS. See the comments on the Adaptor Hook [2] page for details.
> By having the Equinox source in your dev environment when you deploy
> org.eclipse.osgi and the framework extension fragment
> org.eclipse.persistence.equinox.weaving are in the same folder.
> Luckily, PDE launches Equinox in such a way that the fragments are
> loaded correctly--when I went outside PDE I soon discovered that
> launching Equinox with "java -jar org.eclipse.osgi_<version>" did not
> work, the framework extensions are loaded after the Adapter Hook
> framework has looked for extensions! So, as I said, *luckily* PDE
> launches Equinox in a way that works.
>
>> Any Ideas?
>
> I've thrown out a bunch of background and hopefully this helps. In my
> experience, the most common problem is the weaving extension either not
> being attached to org.eclipse.osgi or being attached after the Adaptor
> Hook framework has looked for extensions. Making sure you launch
> Equinox as described should solve these issues. If this doesn't help can
> you post your short status (ss) which will show if the fragments are
> properly attached?
>
> --Shaun
>
>> Tom
>
>> [1]
>> http://wiki.eclipse.org/EclipseLink/Examples/OSGi/Equinox_By te_Code_Weaving
>>
> [2] http://wiki.eclipse.org/Adaptor_Hooks
>
Re: Equinox weaving configuration - Clasloading issue [message #482226 is a reply to message #482068] Tue, 25 August 2009 18:29 Go to previous messageGo to next message
Shaun Smith is currently offline Shaun Smith
Messages: 197
Registered: July 2009
Senior Member
Hi Thomas,

Thanks for clarifying your situation--you're on the right track. To
enable weaving when launching inside PDE you need to specify the VM arg:

-Dosgi.framework.extensions=org.eclipse.persistence.jpa.equi nox.weaving

as well as deploy the two weaving related fragments. I've done this to
the "Developing with EclipseLink OSGi in PDE" [1] example and I can see
weaving is working. You can check by seeing if an Entity implements the
PersistenceWeaved marker interface. I added:

if (Helper.classImplementsInterface(Person.class,
PersistenceWeaved.class)) {
System.err.println("Person Woven!");
} else {
System.err.println("Person NOT Woven!");
}

to the Activator after I create my EntityManagerFactory and in my console
I see the "Person Woven!" message.

Can you try to get weaving working with the example? Your application is
using a number of other technologies that might be the issue. What I've
described should work in a "pure" OSGi Equinox app. I'm not sure what
effect introducing Spring has. I don't think you are using Spring to
create and inject your EntityManager so how it may be a red herring. I
suggest getting the wiki example working, then a small example with your
domain model, then your full app.

--Shaun

[1]
http://wiki.eclipse.org/EclipseLink/Examples/OSGi/Developing _with_EclipseLink_OSGi_in_PDE
Re: Equinox weaving configuration - Clasloading issue [message #482447 is a reply to message #482226] Wed, 26 August 2009 15:04 Go to previous messageGo to next message
Thomas Haskes is currently offline Thomas Haskes
Messages: 147
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------090307030007050208070305
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: 7bit

Hi Shaun,

> Can you try to get weaving working with the example? Your application
> is using a number of other technologies that might be the issue. What
> I've described should work in a "pure" OSGi Equinox app.

I tried, unfortunately I wasn't able to make it work, I set up the
example project from the article in the wiki you wrote, and everything
works except that the Person class does not implement the marker
interface. I slightly changed the example project by putting the Person
entity in a seperate bundle to see if I can reproduce my classloading
issue that way (as entities reside in an extra bundle in my application,
too), but thats all (the classloading error does not occur in the sample
btw).

I attached the to plugin projects to this post, maybe you can have a
look at it. I don't get what I'm missing. i followed the tutorial [1]
exactly, added the two fragments to the launch config and added the VM
arg -Dosgi.framework.extensions=org.eclipse.persistence.jpa.equi nox.weaving

but I still get a "Person NOT Woven!" message.

> I'm not sure
> what effect introducing Spring has. I don't think you are using Spring
> to create and inject your EntityManager so how it may be a red herring.
> I suggest getting the wiki example working, then a small example with
> your domain model, then your full app.
>

With that classloading problem, I meanwhile ruled out spring as a cause
(I'm using the Spring HTTPInvoker for remoting only) ,
the classloading problem still occurs when I deploy the two fragments.
As everything works without deploying the fragments, I really don't get
what could cause the problem. I've given up. I think the best solution
for that is just to eleminate all entity-mappings from my datamodel so
that I am not depending on lazy loading anymore. I think with a little
effort I can use queries to get the related objects.

Thanks for helping and reading all my posts, I'm sorry it didn't work
out for me.


[1]
http://wiki.eclipse.org/EclipseLink/Examples/OSGi/Developing _with_EclipseLink_OSGi_in_PDE




--------------090307030007050208070305
Content-Type: application/octet-stream;
name="hello.jpa.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="hello.jpa.zip"

UEsDBAoAAAAAAMhbGjsAAAAAAAAAAAAAAAAKAAAAaGVsbG8uanBhL1BLAwQU AAAACADGWxo7
GOREa9AAAAB4AQAAFAAAAGhlbGxvLmpwYS8uY2xhc3NwYXRolZDBagIxEIbP LfQdltydrZfS
w26llC0oVItue5WYDOvUdBIniejbq6VS8SD0Nv/wzcfwV4Pttys2KJE816oP 96pANt4Sd7X6
aF97j2rwdHdbGadjDDotD+HmLyEn2RUrYlsr41kVx2WtvHSAxlGICF82gdOZ zfLghNG0mb9M
xu3zcNxMy0uOOKGwdmBxkTvI9HuJArOk2Wqxn2/tLmA50hs9a3p9eFDlv18K FsF4QRBcZxK0
7y53xPGaKoo5qY7jFdLnFHI6wQviH7gqzyvcA1BLAwQUAAAACADGWxo7GQUj decAAACeAgAA
EgAAAGhlbGxvLmpwYS8ucHJvamVjdL2SwU7EIBCGz5r4DpvehfXmgXaT1ext NybVB0AYuzQw
EKAbH19AqmkaEw/G2/z/zM9HYNju3ejNBXxQFtvmjmybDaCwUuHQNi/Ph9v7 ZtfdXDPn7Qgi
PkIQXrmYppN7xZAb6M6gtSWj44wWnRvCGgMYO0bnKrv1lFAEXajXSWnZOxBZ VfmQohxlcSrL
+oGA0MoFIKOMRFifCn7hJQD++wopwf0wZXaomi4NRleUX3GdBHLkqN4gxP3/ YntxBsP/BFqd
+ckTL04e6vSnWOGf9DQoPJVmppehnwKL78FVZq4z8WsXlvv1AVBLAwQKAAAA AADGWxo7AAAA
AAAAAAAAAAAAFAAAAGhlbGxvLmpwYS8uc2V0dGluZ3MvUEsDBBQAAAAIAMZb GjsSpf70qwAA
AIwBAAAuAAAAaGVsbG8uanBhLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQu Y29yZS5wcmVm
c5WOPQvCMBRFd6H/IeAemgoFCxlUHHQSFJxjc1si+eIlFfz3xqGzdXlcHvdc zvoOzXbTyJqW
CdFt6k407HC83lhT19tqhd6amMAjYQDB90j8BUomeCmqVaCRz5WnzrwPhHJc NBZUgsYIz423
xuOcaP/O+D4lvHpY6KUDWdGIfLEqD4GcFLz9TbpojSq+S9qRQtFxXKUEyicN n81gQBJEgZbS
8JP7l01hotnxA1BLAwQKAAAAAAAybRo7AAAAAAAAAAAAAAAADgAAAGhlbGxv LmpwYS9iaW4v
UEsDBAoAAAAAADJtGjsAAAAAAAAAAAAAAAAUAAAAaGVsbG8uanBhL2Jpbi9o ZWxsby9QSwME
CgAAAAAAMm0aOwAAAAAAAAAAAAAAABgAAABoZWxsby5qcGEvYmluL2hlbGxv L2pwYS9QSwME
FAAAAAgARXAaO/VKE3KMBQAAAgsAACcAAABoZWxsby5qcGEvYmluL2hlbGxv L2pwYS9BY3Rp
dmF0b3IuY2xhc3ONVll301YQ/m5iR4kRAUxZzFLCEnACiVgLxKwBAgZngYRQ 6EIV5cZRIkuu
LIekG93o3tK9pY/tQ18LPSeQck5Pn/uj2n5XdlanhBfpau7cmbnffDOjv//5 408A+3FPQ5XA
6mHpOJ4xkjeN01Zgj5mB52uICGzx/KwhLcfOF6Rheb40/KIb2Dlp9DjFrO0K 1PVkrp5Pd91M
nxWIZ0bMMdNwTDdr9Aa+7WZTAsvPeG4hMN2g33SKshZ1PBO6a6U7gZp82dCa zCJB8HzNMdu1
gxMC1cmmfoHIGW9QxlCNlTp0LBdYkbFd2VXMDUi/zxxwpArDs0yn3/Rt9V0W RoJhuyAQZSh+
INCYzKireYWsbQz5Zk7e8vxRo73oDjqSAQdyPEgpd7Fz45bMBzbvoGE9kZq9 4cyOimaDjmew
pg4Cm3TEsEzDswKrQuViYDvGBbMw3GnmY9iMlbXYKrCujKpju6OtlmMWCo5n Dko/hu1o1LBD
YOWsq+6BEWkFOnZil0BtVgZn1AFGk2yaA3koTMXQhN0amonMgi0de9AiUD99 PhM6FEhUWilt
pVS4ho692Ef480XidiSZWRhWqlLSVCmK4QAOaTgosFntjRt56RfsQiBdi2Sa Xet4DocFNli+
NAN5jmQLJjpN18xKv8O0SIkJgWPJSqKVXM43u9jp1DIcRUpDm8DOpzuh4xiO E+tFIhLYnlzS
MT2exGkNp1hOS6jqaMeZUob6fNMtMADyS2DXE7zMUaSnczivoYNxPYW6jguq gKIDkgWo4SKZ
MFuCUmnbshDmRnE8rYjbSR60ewPqq1tHDy4LaAUZdLGAWMGLpaVf3b5XRx+u UrcczwLdadb0
x3AN1zU8P1064W6a1RhicwMv0MSYaiPdQwJrk+m5PCurhWi/pONl3GTRD9nu oMDhZEWVPBVn
62DC0jAwrxZ7J4hnTscgeOVqTxXFmtJR2zN6eOmAV5dmjozPwtYwPN005m/r GCkhokSOqzLn
6MiphNRYXi5nB+oino58mCPL8QpSUdfTwMJvm9uX5yaZxqTvmo5xS5pjTMDc 0rpGkRyMoYhb
GsYEWpc0QjpQblwIXzrGweJbHzardC7vyBxJUlC4+0OmJcOm+gScS4KmGwrV 13W8EeInfb8W
b3FKlGjWcM0bk+5WBd3bCqHLtXiXZChvdnX3lRUInFXq0gLblu7kBDDve3nV MTMVPTmlwsiR
UMmnbSECVTInsHXJyqflAY/02Zj538Kiztr582oiPz2zjlYGe6yyxCp5e0KN 3d7AtEZ5IrSl
4SuBhqVwYsEUAi+v5tm3Or7GGs4/tqKzcsgsOtxdxza0+JCO9XpF35Idtgq7 fmanVYWGrZyK
1fzbqEICUdTwSwu/ajkoOSq5jlDGYc5nPb8O8C34jjY/xIr7oeoqPmN8A1uo 3IA4V3pJCatD
E0LNX2qsLZtbp0yJ23RcQ8kvzbsfItH8OzY+xubrD7Glc0+8oXkS2yaRnETr tXjtI+zvapnC
EdZWJBGZAn84psB/msdIU/9SWzQRjWcm0ZWIJKJTuMK7ROLpyCP0T+HFavyF dFv0AV5JRCcx
NHN8lB2VazZwWn6VPybpuP8IwT3UP8Br8TcncftXLFPLd7i8HwauLnqFVwGn eBTNqMNuyvbw
2q3YgRY0wuBzLxvBPs6K/ezDB6h/kN3oEByOznEcwW3u3kEb7iKFn3AcP+NU CNiJEhRlwNTq
PbxPqFYx1XfwAcFrxFv4EB8RtBaM4WN8wojaWa6f4jNG83kZ9JL+F9S/S8km VP1LNzUahIYv
NWzWcFTDSY2hMc9C0WhhWtBBiUpmTDAjKjXfzKa5PuRKmtoXeftLYeRrS9oz kcfKkdfhO3xf
Zs2OkA708gAbf5uxVhNKe0MrVSFNfghXP/4HUEsDBBQAAAAIAMZbGjvSW2D7 PwAAAFAAAAAa
AAAAaGVsbG8uanBhL2J1aWxkLnByb3BlcnRpZXMrzi8tSk7V01OwVSguStbn 5covLSkoLQEL
JGXmAQWApF5mXnJOaUpqMVDQ1zXEUdfTz01fJ4aXSwEV6PFyAQBQSwMECgAA AAAABlwaOwAA
AAAAAAAAAAAAABMAAABoZWxsby5qcGEvTUVUQS1JTkYvUEsDBBQAAAAIAEtw GjsjJuryJwEA
AFYCAAAeAAAAaGVsbG8uanBhL01FVEEtSU5GL01BTklGRVNULk1GjZBBT4NA EIXv/ArSs2yA
xMZiPNSkB5vUEBu9D8uUTl1m6bJg8de7hNKih8bsbb63b968DTDtsLbBB5qa NCd+JELvueFc
YbA5wwuLR/IKJSb+uoJxsO3KTCuSA9ijUlocrnjq7t6xAUU7QjPypbTUgtVm 8ldcht4bHhsy
GAzqxNemECgVVTUKqQ0K07ClEu+8X6jqt9YWWWJv+JgNy9ohzNMsEpGIZ38y OJL2l3SJr+C7
G+k5Qr46oWx60YpbMppLZOuagBa2qyASc2+dLoP0uvidydbTRl7KShsbpCA/ oZh2JZwTWcLa
XXFwfqdp/sdJ6MXCVdjGYbgI52Ec3UcPs/PhUIHco8jRZJ045Jm8UYjUvKPi hoDYomFQwiV0
8/8ovxBa4sL7AVBLAwQUAAAACAC9bRo7x/q++fYBAACnBgAAIgAAAGhlbGxv LmpwYS9NRVRB
LUlORi9wZXJzaXN0ZW5jZS54bWytlE2P0zAQhu9I/AeTu+0WbiHtge0igQpC 2gu3lWMPqYtj
Rx4n6f57nI9ms91FahZyijzvPDMev3ZWgUeNAawE0nT/zm6SNVsl5FQai5vk EEKVcn4UjWBY
WyZdyWOIW+Sz3FGenlBPKW3bsvYDc77g71erNf/5bX8nD1AKqi0GMWShTrFf 3DspQl/9uork
Otn8/359v2InVMn27RsSv2wWo7XVgVhRQmwAjHHsWImzsBdLIxC3U4yBDTpo QPYjUpzN+CCY
ZVTexQqdZrbaR95RSm7LHJQCRXbg8weyd4W2hNJL6Qh5GHsDaXSFYLT9zYLw BQSqRBC5wDjN
Rpg6anpgwheQjiqXTHkdHTBR4rkxUYl4OEx1wEF07no3iBcXqb2ZKnQLac9O 4+FpiR+lBxFg
E3wNy9ExV1HprAXZGQlZqe1Ua72c13od4H8CcxHkgXZYbYsJ9HX36WZgvWCS 3Xi2ZLg55KYb
UOxlmVGUMrQAC77PnSqrmEGFjUPrx05jKQO4aF9PyczVoaoDLZ16dONkz7/t MTo/Wr8gdxC6
weCyvZkhmxlo4NFan798v03Ikp2cOeHQ+WgC/RKmu1mvISEgzsf9Dyg4Sah6 D060/o68boe6
hPj+ltVFZ3w7J13PbUE0c0OPt/dlWMafvYoZv3yHY+DJ4vYPUEsDBAoAAAAA AMZbGjsAAAAA
AAAAAAAAAAAOAAAAaGVsbG8uanBhL3NyYy9QSwMECgAAAAAAxlsaOwAAAAAA AAAAAAAAABQA
AABoZWxsby5qcGEvc3JjL2hlbGxvL1BLAwQKAAAAAADjbBo7AAAAAAAAAAAA AAAAGAAAAGhl
bGxvLmpwYS9zcmMvaGVsbG8vanBhL1BLAwQUAAAACABFcBo7yXsleQADAABW CAAAJgAAAGhl
bGxvLmpwYS9zcmMvaGVsbG8vanBhL0FjdGl2YXRvci5qYXZhrVRNbxoxED2D xH9w6WWJEqOe
aasmIW2p8qWQKMfKeGfBidde2V4IqvLfO16bZSGkNFUv+2G/eX4znjcF449s CmQGUmr6ULBB
p91pi7zQxpEHNme0dELS78zOLlixvflECzBWWAeKAz1TTrjlBVNIaAZ/C/zK uNNm+Sf89fq7
qUCbKQUuRWGBcm2AmhKJc8TLcirUYCewycu1ysS0SX+nhLs2GkFOgN3PIJQD o5ikWD9cp9+r
1xviFsDmQm1ouMclSDc5tJ0KmhmWw0KbR3pSqlTCqUaWJ9csSX2NFHyNMYeK WasK1D846LTJ
AbmdAcGqiznDyhMumbUEa+GMlpY43CywgEdCESkyIHzJJfi4fqddlBMpeAw5 rilQBajUklB4
8ssf1ur3q4NWXKMhrsV465jDVyawBGTsDFaAXJ/ffRtd/hwNySfSrfPoDppc dsYMpEQoJMBK
eULjJcCKcS2pWPWAj/Z5t2LimKh1pvRNVy3217Lq6KTnc2g9x+gQnCitjn5g c6aa98JSeH6x
AOFrT0fa9yjTuGTfjfa2hc21SEmI3QBWt+YD8NaMXlhy9sShcEJXd9Bq2dI3 ZQhcQQd+I1QH
K+1mwlYr0eEfw20ckqvJA3D3mRToBotABQvyCiaJnB5Ji9IlrxqKnp4fj8fn V8fDs5vD6mw6
BXfquynp1Z/nmqWAdxBodw0LAnmGmhrneGSrRbkB7IZdIUmjp3YQIyMSIu0u ipgg5F7irWHK
evdohZongHWM+8FpZKInsV5hIe7iMrXgLvHGk+6JnnRr0jgYEkTU0EoMRYOk SWChlecOyYcA
GS8x75zq0lG0gHJSrcN36eQ6z4WLUiKIS22hzi3b+BcZScIwCweP8kJCjkPF jvzoyhiHLWEv
JljY6AUr1YrBmFpxN1bsXs9BvYsFeSYgLewPury63Q6s7Pq/TYue1cU/WxZD 3+TY2piqlHLQ
9DAyNS38vDnZbsCVRoXp/XJKrrM2Fe5VWCOBFxMVe2oIGSuli+OxFcnqURtE 4eM3UEsBAhQA
CgAAAAAAyFsaOwAAAAAAAAAAAAAAAAoAAAAAAAAAAAAQAAAAAAAAAGhlbGxv LmpwYS9QSwEC
FAAUAAAACADGWxo7GOREa9AAAAB4AQAAFAAAAAAAAAABACAAAAAoAAAAaGVs bG8uanBhLy5j
bGFzc3BhdGhQSwECFAAUAAAACADGWxo7GQUjdecAAACeAgAAEgAAAAAAAAAB ACAAAAAqAQAA
aGVsbG8uanBhLy5wcm9qZWN0UEsBAhQACgAAAAAAxlsaOwAAAAAAAAAAAAAA ABQAAAAAAAAA
AAAQAAAAQQIAAGhlbGxvLmpwYS8uc2V0dGluZ3MvUEsBAhQAFAAAAAgAxlsa OxKl/vSrAAAA
jAEAAC4AAAAAAAAAAQAgAAAAcwIAAGhlbGxvLmpwYS8uc2V0dGluZ3Mvb3Jn LmVjbGlwc2Uu
amR0LmNvcmUucHJlZnNQSwECFAAKAAAAAAAybRo7AAAAAAAAAAAAAAAADgAA AAAAAAAAABAA
AABqAwAAaGVsbG8uanBhL2Jpbi9QSwECFAAKAAAAAAAybRo7AAAAAAAAAAAA AAAAFAAAAAAA
AAAAABAAAACWAwAAaGVsbG8uanBhL2Jpbi9oZWxsby9QSwECFAAKAAAAAAAy bRo7AAAAAAAA
AAAAAAAAGAAAAAAAAAAAABAAAADIAwAAaGVsbG8uanBhL2Jpbi9oZWxsby9q cGEvUEsBAhQA
FAAAAAgARXAaO/VKE3KMBQAAAgsAACcAAAAAAAAAAAAgAAAA/gMAAGhlbGxv LmpwYS9iaW4v
aGVsbG8vanBhL0FjdGl2YXRvci5jbGFzc1BLAQIUABQAAAAIAMZbGjvSW2D7 PwAAAFAAAAAa
AAAAAAAAAAEAIAAAAM8JAABoZWxsby5qcGEvYnVpbGQucHJvcGVydGllc1BL AQIUAAoAAAAA
AAZcGjsAAAAAAAAAAAAAAAATAAAAAAAAAAAAEAAAAEYKAABoZWxsby5qcGEv TUVUQS1JTkYv
UEsBAhQAFAAAAAgAS3AaOyMm6vInAQAAVgIAAB4AAAAAAAAAAQAgAAAAdwoA AGhlbGxvLmpw
YS9NRVRBLUlORi9NQU5JRkVTVC5NRlBLAQIUABQAAAAIAL1tGjvH+r759gEA AKcGAAAiAAAA
AAAAAAEAIAAAANoLAABoZWxsby5qcGEvTUVUQS1JTkYvcGVyc2lzdGVuY2Uu eG1sUEsBAhQA
CgAAAAAAxlsaOwAAAAAAAAAAAAAAAA4AAAAAAAAAAAAQAAAAEA4AAGhlbGxv LmpwYS9zcmMv
UEsBAhQACgAAAAAAxlsaOwAAAAAAAAAAAAAAABQAAAAAAAAAAAAQAAAAPA4A AGhlbGxvLmpw
YS9zcmMvaGVsbG8vUEsBAhQACgAAAAAA42waOwAAAAAAAAAAAAAAABgAAAAA AAAAAAAQAAAA
bg4AAGhlbGxvLmpwYS9zcmMvaGVsbG8vanBhL1BLAQIUABQAAAAIAEVwGjvJ eyV5AAMAAFYI
AAAmAAAAAAAAAAEAIAAAAKQOAABoZWxsby5qcGEvc3JjL2hlbGxvL2pwYS9B Y3RpdmF0b3Iu
amF2YVBLBQYAAAAAEQARAK4EAADoEQAAAAA=
--------------090307030007050208070305
Content-Type: application/octet-stream;
name="hello.jpa.entities.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="hello.jpa.entities.zip"

UEsDBAoAAAAAAOBsGjsAAAAAAAAAAAAAAAATAAAAaGVsbG8uanBhLmVudGl0 aWVzL1BLAwQU
AAAACADgbBo7GOREa9AAAAB4AQAAHQAAAGhlbGxvLmpwYS5lbnRpdGllcy8u Y2xhc3NwYXRo
lZDBagIxEIbPLfQdltydrZfSw26llC0oVItue5WYDOvUdBIniejbq6VS8SD0 Nv/wzcfwV4Pt
tys2KJE816oP96pANt4Sd7X6aF97j2rwdHdbGadjDDotD+HmLyEn2RUrYlsr 41kVx2WtvHSA
xlGICF82gdOZzfLghNG0mb9Mxu3zcNxMy0uOOKGwdmBxkTvI9HuJArOk2Wqx n2/tLmA50hs9
a3p9eFDlv18KFsF4QRBcZxK07y53xPGaKoo5qY7jFdLnFHI6wQviH7gqzyvc A1BLAwQUAAAA
CADgbBo7L1a+QewAAACnAgAAGwAAAGhlbGxvLmpwYS5lbnRpdGllcy8ucHJv amVjdL2SwU7E
IBCGz5r4DpveBb15YLvJarxpTFYfAGHsTgMDAbrx8QWkmqYx8WC8zf/P/HwE RuzerdmcIER0
tO2u2VW3AVJOIw3b7uX5/vKm2/UX58IHN4JKdxBVQJ/ydHbPBEkL/RGMcWz0 kgElTAhR8Noo
E8pZm+1e8LkqbjsuVsEX6nVCow8eVFFN3uaoJF2dBnVhYKAM+ghs1IkpF3Ih T7IGIHxfISdk
GKbCjk3zpSH4ivIrrtfAHiThG8S0/1/sQR3Byj+BNmd+8sxLU4A2/SlW+Ccz DUiPtVnodein
wOJ7aJWZ60L82oXlon0AUEsDBAoAAAAAAOBsGjsAAAAAAAAAAAAAAAAdAAAA aGVsbG8uanBh
LmVudGl0aWVzLy5zZXR0aW5ncy9QSwMEFAAAAAgA4GwaO9hGDH2sAAAAjAEA ADcAAABoZWxs
by5qcGEuZW50aXRpZXMvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3Jl LnByZWZzlY47
C8IwFIX3Qv9DwD30gcUKHVQcdBIUnGNzGiJ5cZMK/nvr0Nm6XA6X8x2+1R2S 7UbFqoaV9bbe
bNctOxyvN1YVRZtn6I0OETwQBhBcj8hfoKi968o886T4XHnKxHtPmI4N2oCm IKHguHZGO5wj
7d8J32cHJx4GculAEqSQLkakwZPtSt78Jm0wWky+S9qB/KRjuYgRlE4SLulB gzoQeVpKw432
Xzb6kWbHD1BLAwQKAAAAAADobBo7AAAAAAAAAAAAAAAAFwAAAGhlbGxvLmpw YS5lbnRpdGll
cy9iaW4vUEsDBAoAAAAAAOhsGjsAAAAAAAAAAAAAAAAdAAAAaGVsbG8uanBh LmVudGl0aWVz
L2Jpbi9oZWxsby9QSwMECgAAAAAAMm0aOwAAAAAAAAAAAAAAACEAAABoZWxs by5qcGEuZW50
aXRpZXMvYmluL2hlbGxvL2pwYS9QSwMECgAAAAAAMm0aOwAAAAAAAAAAAAAA ACoAAABoZWxs
by5qcGEuZW50aXRpZXMvYmluL2hlbGxvL2pwYS9lbnRpdGllcy9QSwMEFAAA AAgAYHIaO/9T
hlHNAQAAZwMAADYAAABoZWxsby5qcGEuZW50aXRpZXMvYmluL2hlbGxvL2pw YS9lbnRpdGll
cy9QZXJzb24uY2xhc3N1U11rE0EUPZPPdrvaqEnaNK0f1Ye0ggu+RgoiKoFQ xUreJ9khnbCZ
LbsT0f/kg0KL4IM/wB8lnplEiknKsnNn7px7zpk7u7///PwF4DmeVFEQaJ2r JEmjyYWMlLHa
apVH71WWp6aKkkBtIj/JKJFmHL0bTtTIChR0LCB6AiUjp0rgbv8ac2YzbcZd gcoLbbQ9ESh2
jgaEvkpjFaCIWyE2EQhs97VRp7PpUGUf5TDxNOlIJgOZabdeJEv2XOcC7f6N LqlVHivbi70U
XbU+zIiYqoHONTleGpNaaXVqyNP0Vj9HFyzVuVVmpKJeTIrDNRtvlVGZtCoe yGSmupsQ2A1R
RoWK+Vyx1Om501Vp4NT3ot45Wu2Gq7wfoooNQvN/0EZnFenIgrN0lo3UG+3O vzU/5DOHFNhb
4/K1a8eXLh5RpMh7LfChRz+jImOZO+w5xy2uIkbhssc/EH73sNscKz65gW2O 4RyAGu4w8mZw
j6g65wFjg7HJ93+yS+x8XSKrrSVrYW/h5MR7Jfq4fYWdayuBz9ZZ0/AMzTlq weBmZa/AzwL7
K6e6xMG3JSO7a408wMMVI0+vcLBspM2a/RuMuAbzh2DzXc2h75HTfAz8BVBL AwQUAAAACADg
bBo70ltg+z8AAABQAAAAIwAAAGhlbGxvLmpwYS5lbnRpdGllcy9idWlsZC5w cm9wZXJ0aWVz
K84vLUpO1dNTsFUoLkrW5+XKLy0pKC0BCyRl5gEFgKReZl5yTmlKajFQ0Nc1 xFHX089NXyeG
l0sBFejxcgEAUEsDBAoAAAAAAOBsGjsAAAAAAAAAAAAAAAAcAAAAaGVsbG8u anBhLmVudGl0
aWVzL01FVEEtSU5GL1BLAwQUAAAACABCcBo76Ia0s7wAAAAxAQAAJwAAAGhl bGxvLmpwYS5l
bnRpdGllcy9NRVRBLUlORi9NQU5JRkVTVC5NRmWPsQ7CMAxE935Ff6ARMDAU MYCUASQQAond
BAOGNCmJU7V8PakgCIS8+Z3vziswdELPxR6dJ2vKfCgG2TyYo8Zi9YYfNkpk DRWWuTRMTOjT
dtdVB6tJvegFtbbiWoPAt27iyZw1crSasguY7r6z49wDaDoRusS3eA/k8Chb VIGjUpqGnDVV
NC7zJTSwk8VQjLNFVVvHxQbUDc6xwjWiVtS9vWc0CjPZ/ir+S6bQmWJqoE/b 9D91Za7h0WVP
UEsDBAoAAAAAAONsGjsAAAAAAAAAAAAAAAAXAAAAaGVsbG8uanBhLmVudGl0 aWVzL3NyYy9Q
SwMECgAAAAAA42waOwAAAAAAAAAAAAAAAB0AAABoZWxsby5qcGEuZW50aXRp ZXMvc3JjL2hl
bGxvL1BLAwQKAAAAAAAwbRo7AAAAAAAAAAAAAAAAIQAAAGhlbGxvLmpwYS5l bnRpdGllcy9z
cmMvaGVsbG8vanBhL1BLAwQKAAAAAAADbRo7AAAAAAAAAAAAAAAAKgAAAGhl bGxvLmpwYS5l
bnRpdGllcy9zcmMvaGVsbG8vanBhL2VudGl0aWVzL1BLAwQUAAAACABgcho7 oFEAadoAAADD
AQAANQAAAGhlbGxvLmpwYS5lbnRpdGllcy9zcmMvaGVsbG8vanBhL2VudGl0 aWVzL1BlcnNv
bi5qYXZhfY9BasMwEEXXMvgOs2w2ukAIZFOKN6UQ6H5qDc4kiiyksWkJuXsl SzRuFtkILP33
/rfH/owDwZGsHfXJoyYnLExx2zZtwxc/BoETzvitPYXIUcj1pF9z6mf7JPFG jgIKmU+0Ez1L
dia9Qtvsi7Rt/PRluYfeYozwkZKjg2ueo3zgOTmBnQBn7O/mIIHdAA4vVGxq 35l8/t+RiWLP
ioGkMy+bLFcqkEzBVe2tOGp2HtlAXMKluSJy5KjT0+5OqTtVJ6WS97TqoaYO XZCHliW9+p91
Wf5OdSv69gtQSwECFAAKAAAAAADgbBo7AAAAAAAAAAAAAAAAEwAAAAAAAAAA ABAAAAAAAAAA
aGVsbG8uanBhLmVudGl0aWVzL1BLAQIUABQAAAAIAOBsGjsY5ERr0AAAAHgB AAAdAAAAAAAA
AAEAIAAAADEAAABoZWxsby5qcGEuZW50aXRpZXMvLmNsYXNzcGF0aFBLAQIU ABQAAAAIAOBs
GjsvVr5B7AAAAKcCAAAbAAAAAAAAAAEAIAAAADwBAABoZWxsby5qcGEuZW50 aXRpZXMvLnBy
b2plY3RQSwECFAAKAAAAAADgbBo7AAAAAAAAAAAAAAAAHQAAAAAAAAAAABAA AABhAgAAaGVs
bG8uanBhLmVudGl0aWVzLy5zZXR0aW5ncy9QSwECFAAUAAAACADgbBo72EYM fawAAACMAQAA
NwAAAAAAAAABACAAAACcAgAAaGVsbG8uanBhLmVudGl0aWVzLy5zZXR0aW5n cy9vcmcuZWNs
aXBzZS5qZHQuY29yZS5wcmVmc1BLAQIUAAoAAAAAAOhsGjsAAAAAAAAAAAAA AAAXAAAAAAAA
AAAAEAAAAJ0DAABoZWxsby5qcGEuZW50aXRpZXMvYmluL1BLAQIUAAoAAAAA AOhsGjsAAAAA
AAAAAAAAAAAdAAAAAAAAAAAAEAAAANIDAABoZWxsby5qcGEuZW50aXRpZXMv YmluL2hlbGxv
L1BLAQIUAAoAAAAAADJtGjsAAAAAAAAAAAAAAAAhAAAAAAAAAAAAEAAAAA0E AABoZWxsby5q
cGEuZW50aXRpZXMvYmluL2hlbGxvL2pwYS9QSwECFAAKAAAAAAAybRo7AAAA AAAAAAAAAAAA
KgAAAAAAAAAAABAAAABMBAAAaGVsbG8uanBhLmVudGl0aWVzL2Jpbi9oZWxs by9qcGEvZW50
aXRpZXMvUEsBAhQAFAAAAAgAYHIaO/9ThlHNAQAAZwMAADYAAAAAAAAAAAAg AAAAlAQAAGhl
bGxvLmpwYS5lbnRpdGllcy9iaW4vaGVsbG8vanBhL2VudGl0aWVzL1BlcnNv bi5jbGFzc1BL
AQIUABQAAAAIAOBsGjvSW2D7PwAAAFAAAAAjAAAAAAAAAAEAIAAAALUGAABo ZWxsby5qcGEu
ZW50aXRpZXMvYnVpbGQucHJvcGVydGllc1BLAQIUAAoAAAAAAOBsGjsAAAAA AAAAAAAAAAAc
AAAAAAAAAAAAEAAAADUHAABoZWxsby5qcGEuZW50aXRpZXMvTUVUQS1JTkYv UEsBAhQAFAAA
AAgAQnAaO+iGtLO8AAAAMQEAACcAAAAAAAAAAQAgAAAAbwcAAGhlbGxvLmpw YS5lbnRpdGll
cy9NRVRBLUlORi9NQU5JRkVTVC5NRlBLAQIUAAoAAAAAAONsGjsAAAAAAAAA AAAAAAAXAAAA
AAAAAAAAEAAAAHAIAABoZWxsby5qcGEuZW50aXRpZXMvc3JjL1BLAQIUAAoA AAAAAONsGjsA
AAAAAAAAAAAAAAAdAAAAAAAAAAAAEAAAAKUIAABoZWxsby5qcGEuZW50aXRp ZXMvc3JjL2hl
bGxvL1BLAQIUAAoAAAAAADBtGjsAAAAAAAAAAAAAAAAhAAAAAAAAAAAAEAAA AOAIAABoZWxs
by5qcGEuZW50aXRpZXMvc3JjL2hlbGxvL2pwYS9QSwECFAAKAAAAAAADbRo7 AAAAAAAAAAAA
AAAAKgAAAAAAAAAAABAAAAAfCQAAaGVsbG8uanBhLmVudGl0aWVzL3NyYy9o ZWxsby9qcGEv
ZW50aXRpZXMvUEsBAhQAFAAAAAgAYHIaO6BRAGnaAAAAwwEAADUAAAAAAAAA AQAgAAAAZwkA
AGhlbGxvLmpwYS5lbnRpdGllcy9zcmMvaGVsbG8vanBhL2VudGl0aWVzL1Bl cnNvbi5qYXZh
UEsFBgAAAAASABIAqgUAAJQKAAAAAA==
--------------090307030007050208070305--
Re: Equinox weaving configuration - Clasloading issue [message #482754 is a reply to message #482447] Thu, 27 August 2009 19:23 Go to previous messageGo to next message
Shaun Smith is currently offline Shaun Smith
Messages: 197
Registered: July 2009
Senior Member
Hi Thomas,

I'll take a detailed look at your code but right away I can see you are
not following the instructions. In the example, all the code is in single
bundle with an Activator that implements
org.osgi.framework.BundleActivator. Your version is using Eclipse
classes. See if you can get the example I describe running then we can
make changes until it breaks. Members of the EclipseLink development team
have got the example running as described.

I'll let you know what I turn up.

--Shaun
Re: Equinox weaving configuration - Clasloading issue [message #482831 is a reply to message #482754] Fri, 28 August 2009 09:38 Go to previous messageGo to next message
Thomas Haskes is currently offline Thomas Haskes
Messages: 147
Registered: July 2009
Senior Member
Shaun Smith schrieb:
> Hi Thomas,
>
> I'll take a detailed look at your code but right away I can see you
> are not following the instructions. In the example, all the code is in
> single bundle with an Activator that implements
> org.osgi.framework.BundleActivator. Your version is using Eclipse
> classes.

I missed to check the OSGi Target radio button in the new plugin wizard,
I see, but I let the activator implement the BundleActivator interface
instead of extending Plugin (which I thought is the only difference, but
it seems that it is not). Sorry.

Anyway, I made some progress on the whle issue:

First, I was able to get the example running, attached it as example1.zip.

Second, I was able to reproduce the class loading error with that
example, it now behaves exactly as may application does. Attached it as
example2.zip. It would be nice if you could confirm this and tell me if
that behaviour is a bug, or just cannot work the way I'm using it.

So here is what you need to do to (by using the examples it should be
just a matter of minutes):

Optional: Unzip the example1.zip attachment and import the project
"hello.jpa" into a fresh workspace, create a launch configuration with
the two weaving related fragment and put the

-Dosgi.framework.extensions=org.eclipse.persistence.jpa.equi nox.weaving

parameter into the vm args. See the "Person woven" message. This example
works.

Next: delete the "hello.jpa" project from the workspace and import the
two projects "hello.jpa" (which is basically the same project as before,
except that the "class" child in the persistence.xml now points to
"hello.jpa.entities.Person" and that the "hello.jpa.entities package is
imported in the manifest.mf) and "hello.jpa.entities". This setup
reflects the one my application has, entities just reside in another bundle.

Create a run configuration with everything neccessary for weaving again
(fragments vm arg etc. don't forget to deploy "hello.jpa.entities"). You
see that the hello.jpa bundle does not start automatically. If you start
form the console you get a classloading error "hello.jpa.entities not
found". Remove the two weaving related fragments from the run
configuration, leave evrything else as it is. Launch it and see the
example working (except weaving). The "Person NOT woven" message
appears, which is ok as the fragments are not deployed.

That is exactly what happens in my app.

Again, I'm sorry that I screwed to follow the example the first time, I
did not mean to waste your time with this. I hope you can reproduce the
behaviour I see here with the two examples, so we can make some progress .

Thanks for all your effort from rainy Bochum, Germany,

Tom
Re: Equinox weaving configuration - Clasloading issue [message #482832 is a reply to message #482831] Fri, 28 August 2009 09:39 Go to previous messageGo to next message
Thomas Haskes is currently offline Thomas Haskes
Messages: 147
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------010308000905010309030401
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: 7bit

And now with the attachements...

Thomas Haskes schrieb:
> Shaun Smith schrieb:
>> Hi Thomas,
>>
>> I'll take a detailed look at your code but right away I can see you
>> are not following the instructions. In the example, all the code is in
>> single bundle with an Activator that implements
>> org.osgi.framework.BundleActivator. Your version is using Eclipse
>> classes.
>
> I missed to check the OSGi Target radio button in the new plugin wizard,
> I see, but I let the activator implement the BundleActivator interface
> instead of extending Plugin (which I thought is the only difference, but
> it seems that it is not). Sorry.
>
> Anyway, I made some progress on the whle issue:
>
> First, I was able to get the example running, attached it as example1.zip.
>
> Second, I was able to reproduce the class loading error with that
> example, it now behaves exactly as may application does. Attached it as
> example2.zip. It would be nice if you could confirm this and tell me if
> that behaviour is a bug, or just cannot work the way I'm using it.
>
> So here is what you need to do to (by using the examples it should be
> just a matter of minutes):
>
> Optional: Unzip the example1.zip attachment and import the project
> "hello.jpa" into a fresh workspace, create a launch configuration with
> the two weaving related fragment and put the
>
> -Dosgi.framework.extensions=org.eclipse.persistence.jpa.equi nox.weaving
>
> parameter into the vm args. See the "Person woven" message. This example
> works.
>
> Next: delete the "hello.jpa" project from the workspace and import the
> two projects "hello.jpa" (which is basically the same project as before,
> except that the "class" child in the persistence.xml now points to
> "hello.jpa.entities.Person" and that the "hello.jpa.entities package is
> imported in the manifest.mf) and "hello.jpa.entities". This setup
> reflects the one my application has, entities just reside in another bundle.
>
> Create a run configuration with everything neccessary for weaving again
> (fragments vm arg etc. don't forget to deploy "hello.jpa.entities"). You
> see that the hello.jpa bundle does not start automatically. If you start
> form the console you get a classloading error "hello.jpa.entities not
> found". Remove the two weaving related fragments from the run
> configuration, leave evrything else as it is. Launch it and see the
> example working (except weaving). The "Person NOT woven" message
> appears, which is ok as the fragments are not deployed.
>
> That is exactly what happens in my app.
>
> Again, I'm sorry that I screwed to follow the example the first time, I
> did not mean to waste your time with this. I hope you can reproduce the
> behaviour I see here with the two examples, so we can make some progress .
>
> Thanks for all your effort from rainy Bochum, Germany,
>
> Tom
>


--------------010308000905010309030401
Content-Type: application/octet-stream;
name="example2.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="example2.zip"

UEsDBAoAAAAAACZRHDsAAAAAAAAAAAAAAAAKAAAAaGVsbG8uanBhL1BLAwQU AAAACAAlURw7
GOREa9AAAAB4AQAAFAAAAGhlbGxvLmpwYS8uY2xhc3NwYXRolZDBagIxEIbP LfQdltydrZfS
w26llC0oVItue5WYDOvUdBIniejbq6VS8SD0Nv/wzcfwV4Pttys2KJE816oP 96pANt4Sd7X6
aF97j2rwdHdbGadjDDotD+HmLyEn2RUrYlsr41kVx2WtvHSAxlGICF82gdOZ zfLghNG0mb9M
xu3zcNxMy0uOOKGwdmBxkTvI9HuJArOk2Wqxn2/tLmA50hs9a3p9eFDlv18K FsF4QRBcZxK0
7y53xPGaKoo5qY7jFdLnFHI6wQviH7gqzyvcA1BLAwQUAAAACAAlURw7GQUj decAAACeAgAA
EgAAAGhlbGxvLmpwYS8ucHJvamVjdL2SwU7EIBCGz5r4DpvehfXmgXaT1ext NybVB0AYuzQw
EKAbH19AqmkaEw/G2/z/zM9HYNju3ejNBXxQFtvmjmybDaCwUuHQNi/Ph9v7 ZtfdXDPn7Qgi
PkIQXrmYppN7xZAb6M6gtSWj44wWnRvCGgMYO0bnKrv1lFAEXajXSWnZOxBZ VfmQohxlcSrL
+oGA0MoFIKOMRFifCn7hJQD++wopwf0wZXaomi4NRleUX3GdBHLkqN4gxP3/ YntxBsP/BFqd
+ckTL04e6vSnWOGf9DQoPJVmppehnwKL78FVZq4z8WsXlvv1AVBLAwQKAAAA AAAlURw7AAAA
AAAAAAAAAAAAFAAAAGhlbGxvLmpwYS8uc2V0dGluZ3MvUEsDBBQAAAAIACVR HDuFMD/UrgAA
AIwBAAAuAAAAaGVsbG8uanBhLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQu Y29yZS5wcmVm
c5WOu2rDQBREe4P/YcH9olVhYoEK2ziQVIb4B9bSSFyzL2ZXAf99lEK15eYy XOYMZ/dJUcdp
VPWHMlVTHRpj1Pnyc1N1VR22G3ROUoZOxAAidMj6F8wSQ2u2m8hRL5VHX3QX ifn4JA6cQ48R
QUtwEvCdeXoW/D9bBHt36NcOFMsR5epsGSJ9a/T+NemTEzv7rmknxlnHa5sz WL56hCKDgC3I
yLU0wuTfZXOcuDj+AVBLAwQUAAAACAAlURw745d8im8AAAB8AAAALgAAAGhl bGxvLmpwYS8u
c2V0dGluZ3Mvb3JnLmVjbGlwc2UucGRlLmNvcmUucHJlZnM1ybEKwjAQBuA9 kHc4cA9Jp7bQ
QURnwb6Axr8lEi7xrik+vjj4rd/hIomObaWup+BHP4wh0Ol8m6nzfrAGMaeq cFWwQMAR6naI
psJTsKbmtia+Snkhbg6fDfwrnZZ7Vlgj0JJ3OMG7JcGj8TPjn19QSwMECgAA AAAAJ1kcOwAA
AAAAAAAAAAAAAA4AAABoZWxsby5qcGEvYmluL1BLAwQKAAAAAAAnWRw7AAAA AAAAAAAAAAAA
FAAAAGhlbGxvLmpwYS9iaW4vaGVsbG8vUEsDBAoAAAAAACdZHDsAAAAAAAAA AAAAAAAYAAAA
aGVsbG8uanBhL2Jpbi9oZWxsby9qcGEvUEsDBBQAAAAIACdZHDtiCSN7kQQA AFwJAAAnAAAA
aGVsbG8uanBhL2Jpbi9oZWxsby9qcGEvQWN0aXZhdG9yLmNsYXNzjVXrVttG EP6W2F4wgjRO
gThAuIXEpgQ1adMkmNIChUBiLg0UmjRpu5YXI5AlVZIB93bax+gT9Hf6g4Tm nD5AH6rtrGyu
hjrHx9Jqdnbmm292Zv7+58+/ANzBzxwNDJc3pGU5+qYr9AkjMLdF4HgcEYZ3 NsW20C1hF/TF
3KY0Ao4YQ7/jFXTHL5j6uieKcsfxtvTJkp235OFphtiYaZvBOMOFVHqVITLl 5GUcF9CsgaOR
4WLWtOVCqZiT3orIWZIhkXUMYa0Kz1TfVWEk2DB9hrbsGRAzDFE/EF7AMJjK ngtqyrEDuRtk
FIz49K4h3cB0bJ/jXYr8KMDDHY52hkvhRikwLX1W+Bvzwo2jDc2NSDJ0SMMy XV9apr01YljC
9y1H5KWnwuvU0IVuhsaCDKbUFvlIpbNHbkJhJo4e9HH0Eg+ntjT0Y4Ch9eB8 NjTNkKy1UtnK
KGCDGm7gJpHtloiN+6ns6cRlaiXpWlEj0gxNIdUjRHUc7+EWxzBDt1Ld1V3p +aYfSNuQ+tLR
WsMIdIarhidFIKftwAzK88IWBenNCIMyVWZ4fBzTcuCZdqGKKSSZCK4COunl LGOZZtzGBxx3
GG683QkNH+IuZeIMgAwDqbqOyeM9POC4z9BTR1XDKDKV/K14wvYJAN0phpv/ 4+WYInn6GJ9w
UOEMvIW6hk9VMUVzsmDSxZ2ke3JUKFJpm9IPU+XYcUyoCzxNt2TSyamvhxpm McfAfRksUNFQ
nZ2RpfSqiv6xhizmSbeK55TuwZ1aVfgXNSwpWDHDKRbNQB1/omE5RGpYji9V Ap9wUEGOqrKt
1tOJUE0qWs8Wlr4jxTbBOH7f1kgk83F8iWccTxlG6hohUkiuz4YvDV/hOcOV sHTniq4li0SV
P6eU14Uhw3ZyumJrBOlnTfga33J8c6JPLpfJd1GDQI6Ilp6nmle4bTr6EhEa EK1SFKnW8gwt
ldT07jjb0u6LYx0bHIWDvnTyhAYzTJarRJbdiC1yXD2/sLjSu6Zs0L5R6XfU p+v3REqI6zmu
6lLZmo6XUQEU1xlSb1uYDA2yyNBXt57Ics4hgjqz515X0mk/ORHK7sFUeFAL duy89nL8eo6T
0ZblQBhbdCK0xfE9Q289nmgO+YHj0vxYdkqeIWdMhaL1cBKNKE/oA4VF/yiN VvWmOUfPJvrS
6c3oHR16hfhLWjRAo2csFHaghZ5aRQGtuEhvyiwukVaC1hH6uqzMsHkyGyPJ r2/Q9vQVOuaH
E1eG9nB1D9f2cH0tkRp+jaGFW/t4nworkozs4yOGfYwxvMEEHZgajSajic/2 MJOMJKP7eNSA
Q6UFFq4/Z6DzKzSNJxJfvMbab2j9Ay8Sxh7k72hWy01avgxhqRAmCSjQSZF2 oR3X1PCjXw8G
0Us13kfNsJ8azQAe4TpWSfqC5pSBFIpIY5fGyy8YDsMfrwRWDV+tLNKhOYoy bDhERTfycPEd
UTCI5/DgE4JRPESAEtG2XaWwor9D+rsk6ULDv7SIcTCOMkcbx22Oe5wgUXYY fqglGXfD9BDb
p/Okh0DbK5uHQFkVKMOPof5P/wFQSwMEFAAAAAgAJVEcO9JbYPs/AAAAUAAA ABoAAABoZWxs
by5qcGEvYnVpbGQucHJvcGVydGllcyvOLy1KTtXTU7BVKC5K1uflyi8tKSgt AQskZeYBBYCk
XmZeck5pSmoxUNDXNcRR19PPTV8nhpdLARXo8XIBAFBLAwQKAAAAAABVURw7 AAAAAAAAAAAA
AAAAEwAAAGhlbGxvLmpwYS9NRVRBLUlORi9QSwMEFAAAAAgAJlkcO83weUH6 AAAAuwEAAB4A
AABoZWxsby5qcGEvTUVUQS1JTkYvTUFOSUZFU1QuTUZdkDFvgzAQhXd+Bcpc TiVDB6oOqcTQ
SKlQo3Y/zEGOGJvYhob++poCCaq8ve/53bs7oOKSrIu+yFjWKgljeAxeO1VI ig4zvLHtQt6x
oSTct7gIx6HJtWQxgRNJqaG+43W6f5cOJZdMZuE74bhHp83qL9zEfy4flI2z hiSU+DMs9IMu
HRsq0iuJbjSlqmejVUPK+a7Y4zGNYngK9tkuysZC1pES9KnY2XXnt6bVxkUZ ijNW623AJ7Fj
sg9BWPu8K7T3GK9pUwG2KE4EBZl8gLrIxaxrWzGUxp/nW5tzMJeNpu7Jn4WE 5NbSOnSc+pxP
+/XTDV82McSw3QS/UEsDBBQAAAAIACxZHDvH+r759gEAAKcGAAAiAAAAaGVs bG8uanBhL01F
VEEtSU5GL3BlcnNpc3RlbmNlLnhtbK2UTY/TMBCG70j8B5O77RZuIe2B7SKB CkLaC7eVYw+p
i2NHHifp/nucj2az3UVqFnKKPO88Mx6/dlaBR40BrATSdP/ObpI1WyXkVBqL m+QQQpVyfhSN
YFhbJl3JY4hb5LPcUZ6eUE8pbduy9gNzvuDvV6s1//ltfycPUAqqLQYxZKFO sV/cOylCX/26
iuQ62fz/fn2/YidUyfbtGxK/bBajtdWBWFFCbACMcexYibOwF0sjELdTjIEN OmhA9iNSnM34
IJhlVN7FCp1mttpH3lFKbssclAJFduDzB7J3hbaE0kvpCHkYewNpdIVgtP3N gvAFBKpEELnA
OM1GmDpqemDCF5COKpdMeR0dMFHiuTFRiXg4THXAQXTuejeIFxepvZkqdAtp z07j4WmJH6UH
EWATfA3L0TFXUemsBdkZCVmp7VRrvZzXeh3gfwJzEeSBdlhtiwn0dffpZmC9 YJLdeLZkuDnk
phtQ7GWZUZQytAALvs+dKquYQYWNQ+vHTmMpA7hoX0/JzNWhqgMtnXp042TP v+0xOj9avyB3
ELrB4LK9mSGbGWjg0Vqfv3y/TciSnZw54dD5aAL9Eqa7Wa8hISDOx/0PKDhJ qHoPTrT+jrxu
h7qE+P6W1UVnfDsnXc9tQTRzQ4+392VYxp+9ihm/fIdj4Mni9g9QSwMECgAA AAAAJVEcOwAA
AAAAAAAAAAAAAA4AAABoZWxsby5qcGEvc3JjL1BLAwQKAAAAAAAlURw7AAAA AAAAAAAAAAAA
FAAAAGhlbGxvLmpwYS9zcmMvaGVsbG8vUEsDBAoAAAAAABpZHDsAAAAAAAAA AAAAAAAYAAAA
aGVsbG8uanBhL3NyYy9oZWxsby9qcGEvUEsDBBQAAAAIABpZHDuBw7NnBgIA AEgFAAAmAAAA
aGVsbG8uanBhL3NyYy9oZWxsby9qcGEvQWN0aXZhdG9yLmphdmGVU9tuGyEQ fXak/AP1EytZ
/MC2lRzXVSI5sVWnyjOLZ9c4LCDAN1X59w5ms77ErhutEJeZOZw5e7BcvPIK yByUMmxheX57
s/9kbY0L+yADHWSQ4NkEnDc6P0ha8BVnyyAVu+d+/sjtaXDDLBZJH0ALYMOI tH3kGm93+f8m
/uQiGLf9V/5kvz5kYFzFjK8kKx2vYW3cK7tb6pmCvghyxRE1v547MDrAJpzi glDSejiiIYwu
ZXXI5reWYeIMJkUF86sIEu9ymiuG8uM5u99Nn6hbA19JfcThBY9g1vxjuyyU FEQo7j1pZSAI
r6DGP+3JiULkTyzrNHUrI2fEB+4CPVKHiDRnJMydWXsy3AiwQRod6zudOBqL fJ0Ghwx7ZFws
QITvxKI+nnwjGtbkQg7N8oiwy2R2GehFidlg1J9OR+P+j+GvHpKRnlUQBrFd mrXLkeEzcDRL
sOfcRqAukdPBPTGz02HCAQ9wroR22zfT7aWuzuAjMOIi+jmkpk+oI9Nnx7VH aBQRqRdQSd3E
00MkhSka2dJBE8Vj5iE8oY1p984U3Ra0cQzFjMsXCVPXMuyZCGU8tNvyaB+H LAlNNmU7Vz20
VnqIpiy5AJr4pXiPfPBmCmTZTuLpFkM1A+eYRRMEpWm3aXhtVqC/vPejPJBr FU/jZ/ISq1LR
2+0N+WBmYz/l5bf0kHD6C1BLAwQKAAAAAACVUhw7AAAAAAAAAAAAAAAAEwAA AGhlbGxvLmpw
YS5lbnRpdGllcy9QSwMEFAAAAAgAlFIcOxjkRGvQAAAAeAEAAB0AAABoZWxs by5qcGEuZW50
aXRpZXMvLmNsYXNzcGF0aJWQwWoCMRCGzy30HZbcna2X0sNupZQtKFSLbnuV mAzr1HQSJ4no
26ulUvEg9Db/8M3H8FeD7bcrNiiRPNeqD/eqQDbeEne1+mhfe49q8HR3Wxmn Yww6LQ/h5i8h
J9kVK2JbK+NZFcdlrbx0gMZRiAhfNoHTmc3y4ITRtJm/TMbt83DcTMtLjjih sHZgcZE7yPR7
iQKzpNlqsZ9v7S5gOdIbPWt6fXhQ5b9fChbBeEEQXGcStO8ud8TxmiqKOamO 4xXS5xRyOsEL
4h+4Ks8r3ANQSwMEFAAAAAgAlFUcOy9WvkHsAAAApwIAABsAAABoZWxsby5q cGEuZW50aXRp
ZXMvLnByb2plY3S9ksFOxCAQhs+a+A6b3gW9eWC7yWq8aUxWHwBh7E4DAwG6 8fEFpJqmMfFg
vM3/z/x8BEbs3q3ZnCBEdLTtrtlVtwFSTiMN2+7l+f7yptv1F+fCBzeCSncQ VUCf8nR2zwRJ
C/0RjHFs9JIBJUwIUfDaKBPKWZvtXvC5Km47LlbBF+p1QqMPHlRRTd7mqCRd nQZ1YWCgDPoI
bNSJKRdyIU+yBiB8XyEnZBimwo5N86Uh+IryK67XwB4k4RvEtP9f7EEdwco/ gTZnfvLMS1OA
Nv0pVvgnMw1Ij7VZ6HXop8Die2iVmetC/NqF5aJ9AFBLAwQKAAAAAACUUhw7 AAAAAAAAAAAA
AAAAHQAAAGhlbGxvLmpwYS5lbnRpdGllcy8uc2V0dGluZ3MvUEsDBBQAAAAI AJRSHDtEE1KK
rgAAAIwBAAA3AAAAaGVsbG8uanBhLmVudGl0aWVzLy5zZXR0aW5ncy9vcmcu ZWNsaXBzZS5q
ZHQuY29yZS5wcmVmc5WOy4rCQBRE90L+ocF90wkyjEIWM4OCsxLGH+hJKuFK v6juCP69ceHa
uLkUlzrFWR8o6msaVfOparNrzG5j1M/+76waY7bVCp2TlKETMYAIHbK+glli aOtqFTnqZ+XS
F91FYj4+iQPn0GNE0BKcBPxmft8KHs8Wwf479EsHiuWIcnK2DJG+rfXHa9In J3b2XdJOjLOO
1zZnsBx7hCKDgC3IyKU0wuTfZXOc+HS8A1BLAwQUAAAACACUUhw7MeJI8HAA AAB8AAAANwAA
AGhlbGxvLmpwYS5lbnRpdGllcy8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UucGRl LmNvcmUucHJl
ZnM1yTEKAjEQBdA+kDsM2IckWOjCFiJaC3oBjX+XSJjEmc3i8cXC177NWTId +kxxR8EP0Q/b
QMfT9UbR+701SCU3hWuCCQJOULdCNFcegzWt9DnzReoLaXH4LOBf6Tjdi8Ia gdaywgnePQse
nZ8F//wCUEsDBAoAAAAAAJVVHDsAAAAAAAAAAAAAAAAXAAAAaGVsbG8uanBh LmVudGl0aWVz
L2Jpbi9QSwMECgAAAAAAlVUcOwAAAAAAAAAAAAAAAB0AAABoZWxsby5qcGEu ZW50aXRpZXMv
YmluL2hlbGxvL1BLAwQKAAAAAACVVRw7AAAAAAAAAAAAAAAAIQAAAGhlbGxv LmpwYS5lbnRp
dGllcy9iaW4vaGVsbG8vanBhL1BLAwQKAAAAAAAbWRw7AAAAAAAAAAAAAAAA KgAAAGhlbGxv
LmpwYS5lbnRpdGllcy9iaW4vaGVsbG8vanBhL2VudGl0aWVzL1BLAwQUAAAA CAAbWRw73CU2
qasBAAAMAwAANgAAAGhlbGxvLmpwYS5lbnRpdGllcy9iaW4vaGVsbG8vanBh L2VudGl0aWVz
L1BlcnNvbi5jbGFzc3VSXWsTURA9N5/tNpra1tQ2am2f0gou+FopiKgEQhUr eb/JDukNm7tl
90b0P/mgoAg++AP8UeK5N5FCs7IwszNzzsyZ2f395+cvAE9x1ERFYe9S0jSL p1c6FuuMM1LE
byUvMttETWFzqj/oONV2Er8ZTWXsFComUVB9Ut/NyZjJ0BRmlMpzazOnncls odAZeOLH+Iqt
TOHEjiXuJ6cKRyWF12Il106SoU7nQlDN6pkobA2up1+43NgJa41nxhp3plDt HQ8JfZElEqGK
zRZauKXQHhgr5/PZSPL3mrJ8m2ys06HOjY+XyZq7NNTZHfx3f86qT8T1kzCq vw6Fey3U0VBo
Mn8eJO70jldFeuj9FiJsEFr8g97trSL9BtFFNs/H8sp4WRuL2U88UmG/5Fgv vcpPpzjkkCo/
ZIUPRTFqMooYrdGvhwoV0NdY42lobzOK6RV9/eQH2l8D7A5tIyTXsEXbWgCw jR16KkdnhfwN
u59vkNul5D3sl5C7X26Qt0vJD/BwST4LixJ98vg7ute6o5DtkLMbOnQWqGUH /+aPwL8WB4Hz
KJzJzzwE/gJQSwMEFAAAAAgAlFIcO9JbYPs/AAAAUAAAACMAAABoZWxsby5q cGEuZW50aXRp
ZXMvYnVpbGQucHJvcGVydGllcyvOLy1KTtXTU7BVKC5K1uflyi8tKSgtAQsk ZeYBBYCkXmZe
ck5pSmoxUNDXNcRR19PPTV8nhpdLARXo8XIBAFBLAwQKAAAAAACUUhw7AAAA AAAAAAAAAAAA
HAAAAGhlbGxvLmpwYS5lbnRpdGllcy9NRVRBLUlORi9QSwMEFAAAAAgAlFUc O/gghcq7AAAA
JwEAACcAAABoZWxsby5qcGEuZW50aXRpZXMvTUVUQS1JTkYvTUFOSUZFU1Qu TUZtjk0LgkAU
Rff+CmmdjyxoYbQJZlFQREL7SZ/2dJyxmdHs3zdi9gHxdu8c7r17LilDY4Mz akNKRn4IM2/T
yFRgsH/BN5uP5MArjHwmLVk04zN+VBclKBngFYVQUNQcsNfo431Xubs1XFBG qEd+wltDGlPW
YdJYZzLZklayckGRv+Mtj1kQwtLbVrXSNjjypOS5qywc6qDu441FmeDU85XO QZmcINNu1l3p
ctUO/etJCAuYTTzW/cb8Wf4EUEsDBAoAAAAAAJRSHDsAAAAAAAAAAAAAAAAX AAAAaGVsbG8u
anBhLmVudGl0aWVzL3NyYy9QSwMECgAAAAAAlFIcOwAAAAAAAAAAAAAAAB0A AABoZWxsby5q
cGEuZW50aXRpZXMvc3JjL2hlbGxvL1BLAwQKAAAAAABDVRw7AAAAAAAAAAAA AAAAIQAAAGhl
bGxvLmpwYS5lbnRpdGllcy9zcmMvaGVsbG8vanBhL1BLAwQKAAAAAAAaWRw7 AAAAAAAAAAAA
AAAAKgAAAGhlbGxvLmpwYS5lbnRpdGllcy9zcmMvaGVsbG8vanBhL2VudGl0 aWVzL1BLAwQU
AAAACAAaWRw7Zt7aLcMAAACMAQAANQAAAGhlbGxvLmpwYS5lbnRpdGllcy9z cmMvaGVsbG8v
anBhL2VudGl0aWVzL1BlcnNvbi5qYXZhfY7BCsIwDEDPG+wfctRLf0AELyK7 iCB4j2uY0dqV
NhuK+O+2rop68FJIeO+lDpsTtgQHMqZTR4eKrLAwhVlVQlXy2XVe4IgDXpQj HzgI2YbUMmHX
2R9iRZY8Cukdmp7+kbUejy3GaFW6fm+4gcZgCLCJZGfhVpXFotbp/S7HjfM8 xBnYCnCKvTdb
8WxbsHim8UaR2wltSWo9mT7ThSfpvc36/YvNkYivY+dHyOmkvPihYw0h0x8/ yKIcOKg0w/zT
vj8AUEsBAhQACgAAAAAAJlEcOwAAAAAAAAAAAAAAAAoAAAAAAAAAAAAQAAAA AAAAAGhlbGxv
LmpwYS9QSwECFAAUAAAACAAlURw7GOREa9AAAAB4AQAAFAAAAAAAAAABACAA AAAoAAAAaGVs
bG8uanBhLy5jbGFzc3BhdGhQSwECFAAUAAAACAAlURw7GQUjdecAAACeAgAA EgAAAAAAAAAB
ACAAAAAqAQAAaGVsbG8uanBhLy5wcm9qZWN0UEsBAhQACgAAAAAAJVEcOwAA AAAAAAAAAAAA
ABQAAAAAAAAAAAAQAAAAQQIAAGhlbGxvLmpwYS8uc2V0dGluZ3MvUEsBAhQA FAAAAAgAJVEc
O4UwP9SuAAAAjAEAAC4AAAAAAAAAAQAgAAAAcwIAAGhlbGxvLmpwYS8uc2V0 dGluZ3Mvb3Jn
LmVjbGlwc2UuamR0LmNvcmUucHJlZnNQSwECFAAUAAAACAAlURw745d8im8A AAB8AAAALgAA
AAAAAAABACAAAABtAwAAaGVsbG8uanBhLy5zZXR0aW5ncy9vcmcuZWNsaXBz ZS5wZGUuY29y
ZS5wcmVmc1BLAQIUAAoAAAAAACdZHDsAAAAAAAAAAAAAAAAOAAAAAAAAAAAA EAAAACgEAABo
ZWxsby5qcGEvYmluL1BLAQIUAAoAAAAAACdZHDsAAAAAAAAAAAAAAAAUAAAA AAAAAAAAEAAA
AFQEAABoZWxsby5qcGEvYmluL2hlbGxvL1BLAQIUAAoAAAAAACdZHDsAAAAA AAAAAAAAAAAY
AAAAAAAAAAAAEAAAAIYEAABoZWxsby5qcGEvYmluL2hlbGxvL2pwYS9QSwEC FAAUAAAACAAn
WRw7Ygkje5EEAABcCQAAJwAAAAAAAAAAACAAAAC8BAAAaGVsbG8uanBhL2Jp bi9oZWxsby9q
cGEvQWN0aXZhdG9yLmNsYXNzUEsBAhQAFAAAAAgAJVEcO9JbYPs/AAAAUAAA ABoAAAAAAAAA
AQAgAAAAkgkAAGhlbGxvLmpwYS9idWlsZC5wcm9wZXJ0aWVzUEsBAhQACgAA AAAAVVEcOwAA
AAAAAAAAAAAAABMAAAAAAAAAAAAQAAAACQoAAGhlbGxvLmpwYS9NRVRBLUlO Ri9QSwECFAAU
AAAACAAmWRw7zfB5QfoAAAC7AQAAHgAAAAAAAAABACAAAAA6CgAAaGVsbG8u anBhL01FVEEt
SU5GL01BTklGRVNULk1GUEsBAhQAFAAAAAgALFkcO8f6vvn2AQAApwYAACIA AAAAAAAAAQAg
AAAAcAsAAGhlbGxvLmpwYS9NRVRBLUlORi9wZXJzaXN0ZW5jZS54bWxQSwEC FAAKAAAAAAAl
URw7AAAAAAAAAAAAAAAADgAAAAAAAAAAABAAAACmDQAAaGVsbG8uanBhL3Ny Yy9QSwECFAAK
AAAAAAAlURw7AAAAAAAAAAAAAAAAFAAAAAAAAAAAABAAAADSDQAAaGVsbG8u anBhL3NyYy9o
ZWxsby9QSwECFAAKAAAAAAAaWRw7AAAAAAAAAAAAAAAAGAAAAAAAAAAAABAA AAAEDgAAaGVs
bG8uanBhL3NyYy9oZWxsby9qcGEvUEsBAhQAFAAAAAgAGlkcO4HDs2cGAgAA SAUAACYAAAAA
AAAAAQAgAAAAOg4AAGhlbGxvLmpwYS9zcmMvaGVsbG8vanBhL0FjdGl2YXRv ci5qYXZhUEsB
AhQACgAAAAAAlVIcOwAAAAAAAAAAAAAAABMAAAAAAAAAAAAQAAAAhBAAAGhl bGxvLmpwYS5l
bnRpdGllcy9QSwECFAAUAAAACACUUhw7GOREa9AAAAB4AQAAHQAAAAAAAAAB ACAAAAC1EAAA
aGVsbG8uanBhLmVudGl0aWVzLy5jbGFzc3BhdGhQSwECFAAUAAAACACUVRw7 L1a+QewAAACn
AgAAGwAAAAAAAAABACAAAADAEQAAaGVsbG8uanBhLmVudGl0aWVzLy5wcm9q ZWN0UEsBAhQA
CgAAAAAAlFIcOwAAAAAAAAAAAAAAAB0AAAAAAAAAAAAQAAAA5RIAAGhlbGxv LmpwYS5lbnRp
dGllcy8uc2V0dGluZ3MvUEsBAhQAFAAAAAgAlFIcO0QTUoquAAAAjAEAADcA AAAAAAAAAQAg
AAAAIBMAAGhlbGxvLmpwYS5lbnRpdGllcy8uc2V0dGluZ3Mvb3JnLmVjbGlw c2UuamR0LmNv
cmUucHJlZnNQSwECFAAUAAAACACUUhw7MeJI8HAAAAB8AAAANwAAAAAAAAAB ACAAAAAjFAAA
aGVsbG8uanBhLmVudGl0aWVzLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5wZGUu Y29yZS5wcmVm
c1BLAQIUAAoAAAAAAJVVHDsAAAAAAAAAAAAAAAAXAAAAAAAAAAAAEAAAAOgU AABoZWxsby5q
cGEuZW50aXRpZXMvYmluL1BLAQIUAAoAAAAAAJVVHDsAAAAAAAAAAAAAAAAd AAAAAAAAAAAA
EAAAAB0VAABoZWxsby5qcGEuZW50aXRpZXMvYmluL2hlbGxvL1BLAQIUAAoA AAAAAJVVHDsA
AAAAAAAAAAAAAAAhAAAAAAAAAAAAEAAAAFgVAABoZWxsby5qcGEuZW50aXRp ZXMvYmluL2hl
bGxvL2pwYS9QSwECFAAKAAAAAAAbWRw7AAAAAAAAAAAAAAAAKgAAAAAAAAAA ABAAAACXFQAA
aGVsbG8uanBhLmVudGl0aWVzL2Jpbi9oZWxsby9qcGEvZW50aXRpZXMvUEsB AhQAFAAAAAgA
G1kcO9wlNqmrAQAADAMAADYAAAAAAAAAAAAgAAAA3xUAAGhlbGxvLmpwYS5l bnRpdGllcy9i
aW4vaGVsbG8vanBhL2VudGl0aWVzL1BlcnNvbi5jbGFzc1BLAQIUABQAAAAI AJRSHDvSW2D7
PwAAAFAAAAAjAAAAAAAAAAEAIAAAAN4XAABoZWxsby5qcGEuZW50aXRpZXMv YnVpbGQucHJv
cGVydGllc1BLAQIUAAoAAAAAAJRSHDsAAAAAAAAAAAAAAAAcAAAAAAAAAAAA EAAAAF4YAABo
ZWxsby5qcGEuZW50aXRpZXMvTUVUQS1JTkYvUEsBAhQAFAAAAAgAlFUcO/gg hcq7AAAAJwEA
ACcAAAAAAAAAAQAgAAAAmBgAAGhlbGxvLmpwYS5lbnRpdGllcy9NRVRBLUlO Ri9NQU5JRkVT
VC5NRlBLAQIUAAoAAAAAAJRSHDsAAAAAAAAAAAAAAAAXAAAAAAAAAAAAEAAA AJgZAABoZWxs
by5qcGEuZW50aXRpZXMvc3JjL1BLAQIUAAoAAAAAAJRSHDsAAAAAAAAAAAAA AAAdAAAAAAAA
AAAAEAAAAM0ZAABoZWxsby5qcGEuZW50aXRpZXMvc3JjL2hlbGxvL1BLAQIU AAoAAAAAAENV
HDsAAAAAAAAAAAAAAAAhAAAAAAAAAAAAEAAAAAgaAABoZWxsby5qcGEuZW50 aXRpZXMvc3Jj
L2hlbGxvL2pwYS9QSwECFAAKAAAAAAAaWRw7AAAAAAAAAAAAAAAAKgAAAAAA AAAAABAAAABH
GgAAaGVsbG8uanBhLmVudGl0aWVzL3NyYy9oZWxsby9qcGEvZW50aXRpZXMv UEsBAhQAFAAA
AAgAGlkcO2be2i3DAAAAjAEAADUAAAAAAAAAAQAgAAAAjxoAAGhlbGxvLmpw YS5lbnRpdGll
cy9zcmMvaGVsbG8vanBhL2VudGl0aWVzL1BlcnNvbi5qYXZhUEsFBgAAAAAl ACUAGQsAAKUb
AAAAAA==
--------------010308000905010309030401
Content-Type: application/octet-stream;
name="example1.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="example1.zip"

UEsDBAoAAAAAACZRHDsAAAAAAAAAAAAAAAAKAAAAaGVsbG8uanBhL1BLAwQU AAAACAAlURw7
GOREa9AAAAB4AQAAFAAAAGhlbGxvLmpwYS8uY2xhc3NwYXRolZDBagIxEIbP LfQdltydrZfS
w26llC0oVItue5WYDOvUdBIniejbq6VS8SD0Nv/wzcfwV4Pttys2KJE816oP 96pANt4Sd7X6
aF97j2rwdHdbGadjDDotD+HmLyEn2RUrYlsr41kVx2WtvHSAxlGICF82gdOZ zfLghNG0mb9M
xu3zcNxMy0uOOKGwdmBxkTvI9HuJArOk2Wqxn2/tLmA50hs9a3p9eFDlv18K FsF4QRBcZxK0
7y53xPGaKoo5qY7jFdLnFHI6wQviH7gqzyvcA1BLAwQUAAAACAAlURw7GQUj decAAACeAgAA
EgAAAGhlbGxvLmpwYS8ucHJvamVjdL2SwU7EIBCGz5r4DpvehfXmgXaT1ext NybVB0AYuzQw
EKAbH19AqmkaEw/G2/z/zM9HYNju3ejNBXxQFtvmjmybDaCwUuHQNi/Ph9v7 ZtfdXDPn7Qgi
PkIQXrmYppN7xZAb6M6gtSWj44wWnRvCGgMYO0bnKrv1lFAEXajXSWnZOxBZ VfmQohxlcSrL
+oGA0MoFIKOMRFifCn7hJQD++wopwf0wZXaomi4NRleUX3GdBHLkqN4gxP3/ YntxBsP/BFqd
+ckTL04e6vSnWOGf9DQoPJVmppehnwKL78FVZq4z8WsXlvv1AVBLAwQKAAAA AAAlURw7AAAA
AAAAAAAAAAAAFAAAAGhlbGxvLmpwYS8uc2V0dGluZ3MvUEsDBBQAAAAIACVR HDuFMD/UrgAA
AIwBAAAuAAAAaGVsbG8uanBhLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQu Y29yZS5wcmVm
c5WOu2rDQBREe4P/YcH9olVhYoEK2ziQVIb4B9bSSFyzL2ZXAf99lEK15eYy XOYMZ/dJUcdp
VPWHMlVTHRpj1Pnyc1N1VR22G3ROUoZOxAAidMj6F8wSQ2u2m8hRL5VHX3QX ifn4JA6cQ48R
QUtwEvCdeXoW/D9bBHt36NcOFMsR5epsGSJ9a/T+NemTEzv7rmknxlnHa5sz WL56hCKDgC3I
yLU0wuTfZXOcuDj+AVBLAwQUAAAACAAlURw745d8im8AAAB8AAAALgAAAGhl bGxvLmpwYS8u
c2V0dGluZ3Mvb3JnLmVjbGlwc2UucGRlLmNvcmUucHJlZnM1ybEKwjAQBuA9 kHc4cA9Jp7bQ
QURnwb6Axr8lEi7xrik+vjj4rd/hIomObaWup+BHP4wh0Ol8m6nzfrAGMaeq cFWwQMAR6naI
psJTsKbmtia+Snkhbg6fDfwrnZZ7Vlgj0JJ3OMG7JcGj8TPjn19QSwMECgAA AAAAalgcOwAA
AAAAAAAAAAAAAA4AAABoZWxsby5qcGEvYmluL1BLAwQKAAAAAABqWBw7AAAA AAAAAAAAAAAA
FAAAAGhlbGxvLmpwYS9iaW4vaGVsbG8vUEsDBAoAAAAAAGpYHDsAAAAAAAAA AAAAAAAYAAAA
aGVsbG8uanBhL2Jpbi9oZWxsby9qcGEvUEsDBBQAAAAIAGpYHDszCA7JjQQA AEoJAAAnAAAA
aGVsbG8uanBhL2Jpbi9oZWxsby9qcGEvQWN0aXZhdG9yLmNsYXNzjVV9WxtF EP8tTXIQDmpT
oQ2FAqWUBIGz1dqWIAoIhTa8WBBsbdXNZQkHl7vzbnmJb49+DD+Bf9c/aLHP 4wfwQ6mzl/CW
UMOTJ7e7M7Mzv5nZmfn7nz//AnAHP2toYLi8IWzbNTY9bkyY0trh0vU1RBje 2eQ73LC5UzAW
c5vClBpiDDdcv2C4QcEy1n1eFLuuv2VMbjt5WxzdZoiNWY4lxxkupNKrDJEp Ny/iuIBmHRoa
GS5mLUcsbBdzwl/hOVswJLKuye1V7lvqXCFG5IYVMLRlz4CYYYgGkvuSoT+V fSuoKdeRYk9m
FIz49J4pPGm5TqDhXfL82MEjjoZ2hkshY1tatjHLg4157sXRhuZGJBmuCNO2 vEDYlrM1Yto8
CGyX54Wv3LumoxNdDI0FIacUi2yk0tljMyExE0c3ejX0UByqWDpuoI+h9fB+ NlTNkKzVUmZl
FLB+HbcwQMH2tika91PZ6sRlainpWlIj0gxNYahHKNRxvIdhDUMMXUp0z/CE H1iBFI4pjKXj
vY4RGAwdpi+4FNOOtGRpnju8IPwZblKmSgyPT2Jalr7lFCqYwiBTgCuATls5 S1mmGbfxgYY7
DLfOd0PHh7hLmTgDIENfqq5hsngPDzTcZ+iuI6pjFJly/lZ87gQEgN4Uw8D/ WDkhSJY+xica
qHD6ziGu41NVTNGcKFj0cCepZI8LRWXIdeKYUO92mh7HpJtTp4c6ZjHHoAVC LlCtUHmdkZz0
qnL6sY4s5km2AqNK9vAprSrYizqWFJqY6RaLllTXn+hYDgGathsIlbcnGqgO R1W1VsrolIcW
1arvcNvYFXyHYJx8ZmtEEvk4vsQzDU8ZRuoqoVgQ3ZgNFx1f4TnD1bBi54qe LYrCkcGcEl7n
pgi7SHWh1hDSz5rwNb7V8M2p9rhcIttFHRw5CrTwfdWzQrblGksUUElhFbxI JZZnaCmnpmfX
3RFObxzr2NBQOGxHp2/osMJkeYpkO43YIsOV+wuLKz1rSgfxzXKbo/ZcvxVS Qjzf9VRzytY0
uoxyoLjOkDpvPTI0iCJDb90yIs05N6daffUrJVb76f5f8g5nwINajGNvayYn X+U4KW1Zltzc
ohuhLg3fM/TUCw9NnUC6Hk2LZXfbN8WMpVC0Hs2dEWUJvSBv6B+lQapWmmr0 baKTQSujNTr4
CvGXtGmATt9YSGxDC331sgBacZFWSigukVSC9hE6XVZq2DypjRHl1zdoe/oK V+aHElcH99Gx
j+v7uLmWSA29xuDC8AHep3qKJCMH+IjhAGMMbzBBF6ZGo8lo4rN9zCQjyegB HjXgSGiBhfvP
Gej+CiVkIvHFa6z9htY/8CJh7kP8jma13aTtyxCWcmGSgAJJ8rQD7TToOnEN XfTrx3Uq7W5q
fT3UX3rxiIbYKvrwAjdh0mQqYgB7SOMXDIbuj5cdq7ivdjbJ0NRECQ5cCkUX 8vDwHYWgH8/h
IyAEo3gIiW0K204lhGX5XZLfI0onGv6lTUwD01DS0KbhtoZ7GkGi7DD8UBtk 3A3TQ9GuztNw
CLS9zDwCyipAGX4M5X/6D1BLAwQUAAAACABqWBw7ckqfLaEBAAD6AgAAJAAA AGhlbGxvLmpw
YS9iaW4vaGVsbG8vanBhL1BlcnNvbi5jbGFzc21S20ojQRA9nauOo/G28X59 igo74KsiiKgE
gopK3juZInaY9MhMR/SffNiFFcGH/YD9KNnqTkRIhoGuqapz6pyumX+fH38B HGK3jJzA7ANF
URx0H2VwQ0ka6zIKXO3KJxlEUneC61aX2kYgp0IBURdYue1ro3rUVKlqRXSq dWykUbFOBaoN
S3wOHnmUSg3pNgX18EhgN6NxSZoSaShsyqhPDCpo2SOB+ca3+p1JlO5wr3Ss tDInAvnaXpOh
Z3FIHvKY9eFjWqDSUJqu+r0WJfeSbdkxcVtGTZkomw+LBfOgUtsbvTZLFDtk 6qFTqE9CYNlH
ESWBMtevnLPF2t64Nwtd9+FhiqHpF/RHbRxpjXt3cT9p04WybqYG2j8tUmA1 Y0fnvGrzcoQd
FsnzZ8vxw6Y4K3PmcTbBcdJ12AHHAvd4I3zOcBZwFByL+++o/HawOT5LrjiB eT79AQALWOTI
zlEdI//B0usIuZJJXsFqBnnt1wh5IZO8gc0h+cRdlNH7B29Y+/btuWqVOUtu QnWAGk6wb3YJ
/LNiy3G23Zqs5g7wH1BLAwQUAAAACAAlURw70ltg+z8AAABQAAAAGgAAAGhl bGxvLmpwYS9i
dWlsZC5wcm9wZXJ0aWVzK84vLUpO1dNTsFUoLkrW5+XKLy0pKC0BCyRl5gEF gKReZl5yTmlK
ajFQ0Nc1xFHX089NXyeGl0sBFejxcgEAUEsDBAoAAAAAAFVRHDsAAAAAAAAA AAAAAAATAAAA
aGVsbG8uanBhL01FVEEtSU5GL1BLAwQUAAAACABwVxw7L5loC/QAAACmAQAA HgAAAGhlbGxv
LmpwYS9NRVRBLUlORi9NQU5JRkVTVC5NRl2QQW+DMAyF7/kVqOfFGj3swLRD J3FYpU5o1XY3
wdDQkNAksLJfvzCgRZNv/vyen31ALUtynn+RddLoJIrhkb12ulDEDzO8se1C 3rGhJNq3uDSO
Q5MbJcUETqSUgfqO1+6hLh0qWUqyC98JL3v0xq60cGv+mwpG2bhrSCKFP8NC P+jSSUtFeiXR
jUOp7qU1uiHtQ1bs8ZjyGJ7YPtvxbAzkPGlBn1p6t8781rTGep6hOGMVrqmD 9ArtXfHAImMr
wBbFiaAgmw9QF7mY+8ZVEkobPvFt7JnNufgUM/kbIaFk62htOq5+zqdT+uld L5sYYthu2C9Q
SwMEFAAAAAgAAVgcO6y3jXTwAQAAngYAACIAAABoZWxsby5qcGEvTUVUQS1J TkYvcGVyc2lz
dGVuY2UueG1srZRNj9MwEIbvSPwHk7vtFm4h7YHtIoEKQtoLt5VjD6mLY0ce J+n+e5yPZrPd
RWoWcoo8M898vXZWgUeNAawE0nT/zm6SNVsl5FQai5vkEEKVcn4UjWBYWyZd yaOJW+Sz2NE9
PaGeQtq2Ze0H5nzB369Wa/7z2/5OHqAUVFsMYohCnWJ/uHdShD77dRnJdW7z //v1/YqdUCXb
t29I/LKZjdZWB2JFCbEAMMaxYyXOjr2zNAJxO9nYjxjsbMaH85lj5V0EBw3z 097yjlJyW+ag
FCiyA58/kL0rtCWUXrqOkIexJJBGVwhG298sCF9AoEoEkQuMQ2yEqaNPD0z4 AtJR5ZIpr+Pi
J0pcFxOViDthqgMOTueqd4Pz4iS1N1OG7iDt2WncmZb4UXoQATbB17AcHWMV lc5akJ1+kJXa
TrnWy3mt1wH+JzAXQR5oh9W2mEBfd59uBtYLItmNuyXDhSE33YBiLcuEopSh BVjwfeyUWcUI
KmwcWj92GlMZwEV9PSUzV4eqDrR06lGNkzz/1mNUfpR+Qe4gdIPBZb2ZIZoZ aOBRWp+/fL9N
yJJOzpxw6HQ0gX4J092s15AQEOfj/gcUnCRUvQYnWn9HXtehLiE+u2V1URnf zknXc1sQzVzQ
4+19GZbxZ69ixi+f32h4crj9A1BLAwQKAAAAAAAlURw7AAAAAAAAAAAAAAAA DgAAAGhlbGxv
LmpwYS9zcmMvUEsDBAoAAAAAACVRHDsAAAAAAAAAAAAAAAAUAAAAaGVsbG8u anBhL3NyYy9o
ZWxsby9QSwMECgAAAAAAUVccOwAAAAAAAAAAAAAAABgAAABoZWxsby5qcGEv c3JjL2hlbGxv
L2pwYS9QSwMEFAAAAAgAQFgcOxtEE6r7AQAAIwUAACYAAABoZWxsby5qcGEv c3JjL2hlbGxv
L2pwYS9BY3RpdmF0b3IuamF2YZVT22rjMBB9TqH/oM2TDEE/4N2FNJvSQtqU TZc+y8rYUSpL
QprcWPrvO45d59Jk02KELjNzdOb4yEv1KgtgMzDGibmX6fXV7tOldwHZXC6l WKA24k7G2YP0
6VFwLTyEqCOCVSCGFjVuHqQl4JB+NvFWKnRh87/8p916n4ELhXCx0CIPsoSV C6/iZmGnBvoK
9VISano5d+AswhqPcUEZ7SMc0FDO5rrYZ/PHanwKjpJQQ0wvImi6K1hpBMlO 5+JuO32hbgVy
qe0Bhxc6gmnz+/wiM1oxZWSMrJWBEbyBEixGdqQQ+1uVdZq6pdNTFlEG5Afq MFXPCcNZcKvI
hmsFHrWzVX2nU43GIt8nGIhhj42zOSj8yTzpE9kPZmHFzuTwJK0QtpnCL5Cf lVgMRv3JZDTu
/xr+7hEZHUUBOKja5Um7HDk5hcCTGvaU2xiUOXHau6fK7HSECiARTpXwbvtW ur26qxP4BEy4
hH4KqekTyorpc5A2EjSJSNQzKLRt4hUrUjZzWSNbfdBE6VhEwEeyMe/euKzb gjaO4ZRx/iLl
ylLjjokyLkK7zQ/21dA547VNxdZV962V7itT5lIBr/nV8R774M06kCRbiScb CpUCQhCeTIDG
8m7T8MotwX5778dEYJcqHsfP7KWqqoverq/YBzM7/yUvv9UPiaD+AVBLAwQU AAAACABRVxw7
yFF+mL8AAACDAQAAIwAAAGhlbGxvLmpwYS9zcmMvaGVsbG8vanBhL1BlcnNv bi5qYXZhfY7B
CsIwDEDPG+wfctTLfkCEXUR2EUHwHtewRWtX2mwo4r/buirqwUsh4b2XWmxO 2BJ0pHVfHi0u
ihyKnM+2dwJHHPFSWnKevZBpqFwZYbku/hBrMuRQSO1RD/SPrNV0rJqiRW6H g+YGGo3ewzaQ
vYFbkWdVreL7XQ4b63gMM7AR4Bh7b3bi2LRg8EzTjSy1I9qS1Go2f6YzRzI4 k/T7F5siAd+E
zo+Q0lF58WPPCnyiP36QROnYl3GG5ad9fwBQSwECFAAKAAAAAAAmURw7AAAA AAAAAAAAAAAA
CgAAAAAAAAAAABAAAAAAAAAAaGVsbG8uanBhL1BLAQIUABQAAAAIACVRHDsY 5ERr0AAAAHgB
AAAUAAAAAAAAAAEAIAAAACgAAABoZWxsby5qcGEvLmNsYXNzcGF0aFBLAQIU ABQAAAAIACVR
HDsZBSN15wAAAJ4CAAASAAAAAAAAAAEAIAAAACoBAABoZWxsby5qcGEvLnBy b2plY3RQSwEC
FAAKAAAAAAAlURw7AAAAAAAAAAAAAAAAFAAAAAAAAAAAABAAAABBAgAAaGVs bG8uanBhLy5z
ZXR0aW5ncy9QSwECFAAUAAAACAAlURw7hTA/1K4AAACMAQAALgAAAAAAAAAB ACAAAABzAgAA
aGVsbG8uanBhLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVm c1BLAQIUABQA
AAAIACVRHDvjl3yKbwAAAHwAAAAuAAAAAAAAAAEAIAAAAG0DAABoZWxsby5q cGEvLnNldHRp
bmdzL29yZy5lY2xpcHNlLnBkZS5jb3JlLnByZWZzUEsBAhQACgAAAAAAalgc OwAAAAAAAAAA
AAAAAA4AAAAAAAAAAAAQAAAAKAQAAGhlbGxvLmpwYS9iaW4vUEsBAhQACgAA AAAAalgcOwAA
AAAAAAAAAAAAABQAAAAAAAAAAAAQAAAAVAQAAGhlbGxvLmpwYS9iaW4vaGVs bG8vUEsBAhQA
CgAAAAAAalgcOwAAAAAAAAAAAAAAABgAAAAAAAAAAAAQAAAAhgQAAGhlbGxv LmpwYS9iaW4v
aGVsbG8vanBhL1BLAQIUABQAAAAIAGpYHDszCA7JjQQAAEoJAAAnAAAAAAAA AAAAIAAAALwE
AABoZWxsby5qcGEvYmluL2hlbGxvL2pwYS9BY3RpdmF0b3IuY2xhc3NQSwEC FAAUAAAACABq
WBw7ckqfLaEBAAD6AgAAJAAAAAAAAAAAACAAAACOCQAAaGVsbG8uanBhL2Jp bi9oZWxsby9q
cGEvUGVyc29uLmNsYXNzUEsBAhQAFAAAAAgAJVEcO9JbYPs/AAAAUAAAABoA AAAAAAAAAQAg
AAAAcQsAAGhlbGxvLmpwYS9idWlsZC5wcm9wZXJ0aWVzUEsBAhQACgAAAAAA VVEcOwAAAAAA
AAAAAAAAABMAAAAAAAAAAAAQAAAA6AsAAGhlbGxvLmpwYS9NRVRBLUlORi9Q SwECFAAUAAAA
CABwVxw7L5loC/QAAACmAQAAHgAAAAAAAAABACAAAAAZDAAAaGVsbG8uanBh L01FVEEtSU5G
L01BTklGRVNULk1GUEsBAhQAFAAAAAgAAVgcO6y3jXTwAQAAngYAACIAAAAA AAAAAQAgAAAA
SQ0AAGhlbGxvLmpwYS9NRVRBLUlORi9wZXJzaXN0ZW5jZS54bWxQSwECFAAK AAAAAAAlURw7
AAAAAAAAAAAAAAAADgAAAAAAAAAAABAAAAB5DwAAaGVsbG8uanBhL3NyYy9Q SwECFAAKAAAA
AAAlURw7AAAAAAAAAAAAAAAAFAAAAAAAAAAAABAAAAClDwAAaGVsbG8uanBh L3NyYy9oZWxs
by9QSwECFAAKAAAAAABRVxw7AAAAAAAAAAAAAAAAGAAAAAAAAAAAABAAAADX DwAAaGVsbG8u
anBhL3NyYy9oZWxsby9qcGEvUEsBAhQAFAAAAAgAQFgcOxtEE6r7AQAAIwUA ACYAAAAAAAAA
AQAgAAAADRAAAGhlbGxvLmpwYS9zcmMvaGVsbG8vanBhL0FjdGl2YXRvci5q YXZhUEsBAhQA
FAAAAAgAUVccO8hRfpi/AAAAgwEAACMAAAAAAAAAAQAgAAAATBIAAGhlbGxv LmpwYS9zcmMv
aGVsbG8vanBhL1BlcnNvbi5qYXZhUEsFBgAAAAAUABQArQUAAEwTAAAAAA==
--------------010308000905010309030401--
Re: Equinox weaving configuration - Clasloading issue [message #483211 is a reply to message #482832] Mon, 31 August 2009 15:18 Go to previous messageGo to next message
Shaun Smith is currently offline Shaun Smith
Messages: 197
Registered: July 2009
Senior Member
> And now with the attachements...

Hi Tom,

I can't open the zipped attachments. They appear to be corrupt
somehow. I had a colleague try and he got the same "does not appear to be
a valid archive" message. Can you re-post them?

--Shaun
Re: Equinox weaving configuration - Clasloading issue [message #483323 is a reply to message #483211] Tue, 01 September 2009 06:41 Go to previous messageGo to next message
Thomas Haskes is currently offline Thomas Haskes
Messages: 147
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------020602030107060308060208
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: 7bit


> I can't open the zipped attachments. They appear to be corrupt
> somehow. I had a colleague try and he got the same "does not appear to
> be a valid archive" message. Can you re-post them?

Sure, but they seem ok here had a colleague download them, too he was
able to open them using windows, winrar and 7-zip.

Anyway reposting is no problem, i zipped them using winrar, maybe that
was the problem, i zipped them using windows now, so it should work this
time. As backup I mailed them to you directly.

Greets,

Tom


--------------020602030107060308060208
Content-Type: application/octet-stream;
name="example2.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="example2.zip"

UEsDBAoAAAAAAK9EITsAAAAAAAAAAAAAAAAcAAAAZXhhbXBsZTIvaGVsbG8u anBhLmVudGl0
aWVzL1BLAwQUAAAACACUUhw7GOREa9AAAAB4AQAAJgAAAGV4YW1wbGUyL2hl bGxvLmpwYS5l
bnRpdGllcy8uY2xhc3NwYXRolZDBagIxEIbPLfQdltydrZfSw26llC0oVItu e5WYDOvUdBIn
iejbq6VS8SD0Nv/wzcfwV4Pttys2KJE816oP96pANt4Sd7X6aF97j2rwdHdb GadjDDotD+Hm
LyEn2RUrYlsr41kVx2WtvHSAxlGICF82gdOZzfLghNG0mb9Mxu3zcNxMy0uO OKGwdmBxkTvI
9HuJArOk2Wqxn2/tLmA50hs9a3p9eFDlv18KFsF4QRBcZxK07y53xPGaKoo5 qY7jFdLnFHI6
wQviH7gqzyvcA1BLAwQUAAAACACUVRw7L1a+QewAAACnAgAAJAAAAGV4YW1w bGUyL2hlbGxv
LmpwYS5lbnRpdGllcy8ucHJvamVjdL2SwU7EIBCGz5r4DpveBb15YLvJarxp TFYfAGHsTgMD
Abrx8QWkmqYx8WC8zf/P/HwERuzerdmcIER0tO2u2VW3AVJOIw3b7uX5/vKm 2/UX58IHN4JK
dxBVQJ/ydHbPBEkL/RGMcWz0kgElTAhR8NooE8pZm+1e8LkqbjsuVsEX6nVC ow8eVFFN3uao
JF2dBnVhYKAM+ghs1IkpF3IhT7IGIHxfISdkGKbCjk3zpSH4ivIrrtfAHiTh G8S0/1/sQR3B
yj+BNmd+8sxLU4A2/SlW+CczDUiPtVnodeinwOJ7aJWZ60L82oXlon0AUEsD BAoAAAAAAK9E
ITsAAAAAAAAAAAAAAAAgAAAAZXhhbXBsZTIvaGVsbG8uanBhLmVudGl0aWVz L2Jpbi9QSwME
CgAAAAAAr0QhOwAAAAAAAAAAAAAAACYAAABleGFtcGxlMi9oZWxsby5qcGEu ZW50aXRpZXMv
YmluL2hlbGxvL1BLAwQKAAAAAACvRCE7AAAAAAAAAAAAAAAAKgAAAGV4YW1w bGUyL2hlbGxv
LmpwYS5lbnRpdGllcy9iaW4vaGVsbG8vanBhL1BLAwQKAAAAAACvRCE7AAAA AAAAAAAAAAAA
MwAAAGV4YW1wbGUyL2hlbGxvLmpwYS5lbnRpdGllcy9iaW4vaGVsbG8vanBh L2VudGl0aWVz
L1BLAwQUAAAACAAbWRw73CU2qasBAAAMAwAAPwAAAGV4YW1wbGUyL2hlbGxv LmpwYS5lbnRp
dGllcy9iaW4vaGVsbG8vanBhL2VudGl0aWVzL1BlcnNvbi5jbGFzc3VSXWsT URA9N5/tNpra
1tQ2am2f0gou+FopiKgEQhUreb/JDukNm7tl90b0P/mgoAg++AP8UeK5N5FC s7IwszNzzsyZ
2f395+cvAE9x1ERFYe9S0jSLp1c6FuuMM1LEbyUvMttETWFzqj/oONV2Er8Z TWXsFComUVB9
Ut/NyZjJ0BRmlMpzazOnnclsodAZeOLH+IqtTOHEjiXuJ6cKRyWF12Il106S oU7nQlDN6pko
bA2up1+43NgJa41nxhp3plDtHQ8JfZElEqGKzRZauKXQHhgr5/PZSPL3mrJ8 m2ys06HOjY+X
yZq7NNTZHfx3f86qT8T1kzCqvw6Fey3U0VBoMn8eJO70jldFeuj9FiJsEFr8 g97trSL9BtFF
Ns/H8sp4WRuL2U88UmG/5FgvvcpPpzjkkCo/ZIUPRTFqMooYrdGvhwoV0NdY 42lobzOK6RV9
/eQH2l8D7A5tIyTXsEXbWgCwjR16KkdnhfwNu59vkNul5D3sl5C7X26Qt0vJ D/BwST4LixJ9
8vg7ute6o5DtkLMbOnQWqGUH/+aPwL8WB4HzKJzJzzwE/gJQSwMEFAAAAAgA lFIcO9JbYPs/
AAAAUAAAACwAAABleGFtcGxlMi9oZWxsby5qcGEuZW50aXRpZXMvYnVpbGQu cHJvcGVydGll
cyvOLy1KTtXTU7BVKC5K1uflyi8tKSgtAQskZeYBBYCkXmZeck5pSmoxUNDX NcRR19PPTV8n
hpdLARXo8XIBAFBLAwQKAAAAAACvRCE7AAAAAAAAAAAAAAAAJQAAAGV4YW1w bGUyL2hlbGxv
LmpwYS5lbnRpdGllcy9NRVRBLUlORi9QSwMEFAAAAAgAlFUcO/gghcq7AAAA JwEAADAAAABl
eGFtcGxlMi9oZWxsby5qcGEuZW50aXRpZXMvTUVUQS1JTkYvTUFOSUZFU1Qu TUZtjk0LgkAU
Rff+CmmdjyxoYbQJZlFQREL7SZ/2dJyxmdHs3zdi9gHxdu8c7r17LilDY4Mz akNKRn4IM2/T
yFRgsH/BN5uP5MArjHwmLVk04zN+VBclKBngFYVQUNQcsNfo431Xubs1XFBG qEd+wltDGlPW
YdJYZzLZklayckGRv+Mtj1kQwtLbVrXSNjjypOS5qywc6qDu441FmeDU85XO QZmcINNu1l3p
ctUO/etJCAuYTTzW/cb8Wf4EUEsDBAoAAAAAAK9EITsAAAAAAAAAAAAAAAAg AAAAZXhhbXBs
ZTIvaGVsbG8uanBhLmVudGl0aWVzL3NyYy9QSwMECgAAAAAAr0QhOwAAAAAA AAAAAAAAACYA
AABleGFtcGxlMi9oZWxsby5qcGEuZW50aXRpZXMvc3JjL2hlbGxvL1BLAwQK AAAAAACvRCE7
AAAAAAAAAAAAAAAAKgAAAGV4YW1wbGUyL2hlbGxvLmpwYS5lbnRpdGllcy9z cmMvaGVsbG8v
anBhL1BLAwQKAAAAAACvRCE7AAAAAAAAAAAAAAAAMwAAAGV4YW1wbGUyL2hl bGxvLmpwYS5l
bnRpdGllcy9zcmMvaGVsbG8vanBhL2VudGl0aWVzL1BLAwQUAAAACAAaWRw7 Zt7aLcMAAACM
AQAAPgAAAGV4YW1wbGUyL2hlbGxvLmpwYS5lbnRpdGllcy9zcmMvaGVsbG8v anBhL2VudGl0
aWVzL1BlcnNvbi5qYXZhfY7BCsIwDEDPG+wfctRLf0AELyK7iCB4j2uY0dqV NhuK+O+2rop6
8FJIeO+lDpsTtgQHMqZTR4eKrLAwhVlVQlXy2XVe4IgDXpQjHzgI2YbUMmHX 2R9iRZY8Cukd
mp7+kbUejy3GaFW6fm+4gcZgCLCJZGfhVpXFotbp/S7HjfM8xBnYCnCKvTdb 8WxbsHim8UaR
2wltSWo9mT7ThSfpvc36/YvNkYivY+dHyOmkvPihYw0h0x8/yKIcOKg0w/zT vj8AUEsDBAoA
AAAAAK9EITsAAAAAAAAAAAAAAAATAAAAZXhhbXBsZTIvaGVsbG8uanBhL1BL AwQUAAAACAAl
URw7GOREa9AAAAB4AQAAHQAAAGV4YW1wbGUyL2hlbGxvLmpwYS8uY2xhc3Nw YXRolZDBagIx
EIbPLfQdltydrZfSw26llC0oVItue5WYDOvUdBIniejbq6VS8SD0Nv/wzcfw V4Pttys2KJE8
16oP96pANt4Sd7X6aF97j2rwdHdbGadjDDotD+HmLyEn2RUrYlsr41kVx2Wt vHSAxlGICF82
gdOZzfLghNG0mb9Mxu3zcNxMy0uOOKGwdmBxkTvI9HuJArOk2Wqxn2/tLmA5 0hs9a3p9eFDl
v18KFsF4QRBcZxK07y53xPGaKoo5qY7jFdLnFHI6wQviH7gqzyvcA1BLAwQU AAAACAAlURw7
GQUjdecAAACeAgAAGwAAAGV4YW1wbGUyL2hlbGxvLmpwYS8ucHJvamVjdL2S wU7EIBCGz5r4
DpvehfXmgXaT1extNybVB0AYuzQwEKAbH19AqmkaEw/G2/z/zM9HYNju3ejN BXxQFtvmjmyb
DaCwUuHQNi/Ph9v7ZtfdXDPn7QgiPkIQXrmYppN7xZAb6M6gtSWj44wWnRvC GgMYO0bnKrv1
lFAEXajXSWnZOxBZVfmQohxlcSrL+oGA0MoFIKOMRFifCn7hJQD++wopwf0w ZXaomi4NRleU
X3GdBHLkqN4gxP3/YntxBsP/BFqd+ckTL04e6vSnWOGf9DQoPJVmppehnwKL 78FVZq4z8WsX
lvv1AVBLAwQKAAAAAACvRCE7AAAAAAAAAAAAAAAAFwAAAGV4YW1wbGUyL2hl bGxvLmpwYS9i
aW4vUEsDBAoAAAAAAK9EITsAAAAAAAAAAAAAAAAdAAAAZXhhbXBsZTIvaGVs bG8uanBhL2Jp
bi9oZWxsby9QSwMECgAAAAAAr0QhOwAAAAAAAAAAAAAAACEAAABleGFtcGxl Mi9oZWxsby5q
cGEvYmluL2hlbGxvL2pwYS9QSwMEFAAAAAgAJ1kcO2IJI3uUBAAAXAkAADAA AABleGFtcGxl
Mi9oZWxsby5qcGEvYmluL2hlbGxvL2pwYS9BY3RpdmF0b3IuY2xhc3ONVetW 20YQ/pbYFhhB
GqdAHCDcQmJTgpq0aRJMaYFCIDGXBgpNmrRdy4sRyJIqrQH3dtrH6BP0d/qD hOacPkAfqu2s
bK6GOsfH0mp2duabb3Zm/v7nz78A3MHPGhoYLm8I23aNTY8bE6a0trl0fQ0R hnc2+TY3bO4U
jMXcpjClhhhDv+sXDDcoWMa6z4tix/W3jMmSk7fF4WmG2JjlWHKc4UIqvcoQ mXLzIo4LaNah
oZHhYtZyxEKpmBP+Cs/ZgiGRdU1ur3LfUt9VYURuWAFDW/YMiBmGaCC5LxkG U9lzQU25jhS7
MqNgxKd3TeFJy3UCDe9S5EcBHu5oaGe4FG6UpGUbszzYmOdeHG1obkSSoUOY tuUFwracrRHT
5kFguzwvfBVep44udDM0FoScUlvkI5XOHrkJhZk4etCnoZd4OLWlox8DDK0H 57OhaYZkrZXK
VkYBG9RxAzeJbK9EbNxPZU8nLlMrSdeKGpFmaAqpHiGq43gPtzQMM3Qr1V3D E35gBVI4pjCW
jtY6RmAwXDV9waWYdqQly/Pc4QXhz3CTMlVmeHwc07L0LadQxRSSTARXAZ30 cpaxTDNu4wMN
dxhuvN0JHR/iLmXiDIAMA6m6jsnjPTzQcJ+hp46qjlFkKvlb8bkTEAC6Uww3 /8fLMUXy9DE+
0UCFM/AW6jo+VcUUzYmCRRd3ku7JUaEIpW2JIEyV68QxoS7wNN2SSTenvh7q mMUcgxYIuUBF
Q3V2RpbSqyr6xzqymCfdKp5Tugd3alXhX9SxpGDFTLdYtKQ6/kTHcojUtN1A qAQ+0UAFOarK
tlpPJ0K1qGh9h9vGjuDbBOP4fVsjkcjH8SWeaXjKMFLXCJFCcmM2fOn4Cs8Z roSlO1f0bFEk
qoI5pbzOTRG2k9MVWyNIP2vC1/hWwzcn+uRymXwXdXDkiGjh+6p5hduWaywR oZJoFbxItZZn
aKmkpnfH3RZOXxzr2NBQOOhLJ0/osMJkeUpkO43YIsfV8wuLK71rygbtm5V+ R326fk+khHi+
66kudawYqx0vowIorjOk6tXHQWEyNIgiQ189fWU55xJBndlzryvptJ+cCGXv YCo8qAU7dl57
OX49x8loy7Lk5hadCG1p+J6htx5PNIcC6Xo0P5bdkm+KGUuhaD2cRCPKE/pA YdE/SqNVvWnO
0bOJvgx6M3pHh14h/pIWDdDpGQuFHWihp15RQCsu0psyi0uklaB1hL4uKzNs nszGSPLrG7Q9
fYWO+eHElaE9XN3DtT1cX0ukhl9jaOHWPt6nwookI/v4iGEfYwxvMEEHpkaj yWjisz3MJCPJ
6D4eNeBQaYGF688Z6PwKTeOJxBevsfYbWv/Ai4S5B/E7mtVyk5YvQ1gqhEkC CnRSpF1oxzU1
/OjXg0H0Uo33UTPsp0YzgEe4jlWSvqA5ZSKFItLYpfHyC4bD8McrgVXDVyub dGiOogwHLlHR
jTw8fEcUDOI5fASEYBQPIVEi2rarFFb0d0h/lyRdaPiXFjENTENZQ5uG2xru aQSJssPwQy3J
uBumh9g+nScjBNpe2TwEyqpAGX4M9X/6D1BLAwQUAAAACAAlURw70ltg+z8A AABQAAAAIwAA
AGV4YW1wbGUyL2hlbGxvLmpwYS9idWlsZC5wcm9wZXJ0aWVzK84vLUpO1dNT sFUoLkrW5+XK
Ly0pKC0BCyRl5gEFgKReZl5yTmlKajFQ0Nc1xFHX089NXyeGl0sBFejxcgEA UEsDBAoAAAAA
AK9EITsAAAAAAAAAAAAAAAAcAAAAZXhhbXBsZTIvaGVsbG8uanBhL01FVEEt SU5GL1BLAwQU
AAAACAAmWRw7zfB5QfoAAAC7AQAAJwAAAGV4YW1wbGUyL2hlbGxvLmpwYS9N RVRBLUlORi9N
QU5JRkVTVC5NRl2QMW+DMBCFd34FylxOJUMHqg6pxNBIqVCjdj/MQY4Ym9iG hv76mgIJqry9
7/nduzug4pKsi77IWNYqCWN4DF47VUiKDjO8se1C3rGhJNy3uAjHocm1ZDGB E0mpob7jdbp/
lw4ll0xm4TvhuEenzeov3MR/Lh+UjbOGJJT4Myz0gy4dGyrSK4luNKWqZ6NV Q8r5rtjjMY1i
eAr22S7KxkLWkRL0qdjZdee3ptXGRRmKM1brbcAnsWOyD0FY+7wrtPcYr2lT AbYoTgQFmXyA
usjFrGtbMZTGn+dbm3Mwl42m7smfhYTk1tI6dJz6nE/79dMNXzYxxLDdBL9Q SwMEFAAAAAgA
LFkcO8f6vvn4AQAApwYAACsAAABleGFtcGxlMi9oZWxsby5qcGEvTUVUQS1J TkYvcGVyc2lz
dGVuY2UueG1srZRNj9sgEIbvlfofqO9A0t7SJIfdbKVWaVVpL72tMMw6pBgs BtvZf1+MHa/3
o1K8rU8W884zw/DCugKPGgNYCaTp/p3dZEu2yMipNBY32SGEasX5UTSCYW2Z dCWPIW6RT3IH
+eqEekxp25a1n5jzBf+4WCz5r+/7W3mAUlBtMYg+C/UK0+LeSRFS9csqkstk 0/+75d2CnVBl
2/fvSPzWkxitrQ7EihJiA2CMY8dKnIVJLI1A3I4xBjbooAHZz0hxds17wSSj 8i5W6DST1RT5
QCm5KXNQChTZgc8fyN4V2hJKn0sHyMPQG0ijKwSj7W8WhC8gUCWCyAXGaTbC 1FGTgBmfQTqq
XDLldXTASInnxkQl4uEw1QF70bnrXS+eXaT2ZqzQLawSexUPT0v8LD2IAJvg a5iPjrmKSmct
yM5IyEptx1rL+bzW6wD/E5iLIA+0w2pbjKBvu6vrnvWKSXbD2ZL+5pDrbkCx l3lGUcrQAiz4
lDtWVjGDChuHlsZOYykDOGtfT8nM1aGqAy2denTjaM+/7TE6P1q/ILcQusHg vL2ZPpsZaODR
Wl++/rjJyJydnDnh0PloBN0L092st5AQEKfj/gcUnCRUyYMjLd2RN8GCLiG+ v2X1rDO+nZIu
57Ygmqmhh9v7OmzNX7yK6+kbnd7hGHiyuP0DUEsDBAoAAAAAAK9EITsAAAAA AAAAAAAAAAAX
AAAAZXhhbXBsZTIvaGVsbG8uanBhL3NyYy9QSwMECgAAAAAAr0QhOwAAAAAA AAAAAAAAAB0A
AABleGFtcGxlMi9oZWxsby5qcGEvc3JjL2hlbGxvL1BLAwQKAAAAAACvRCE7 AAAAAAAAAAAA
AAAAIQAAAGV4YW1wbGUyL2hlbGxvLmpwYS9zcmMvaGVsbG8vanBhL1BLAwQU AAAACAAaWRw7
gcOzZwcCAABIBQAALwAAAGV4YW1wbGUyL2hlbGxvLmpwYS9zcmMvaGVsbG8v anBhL0FjdGl2
YXRvci5qYXZhlVPbbhshEH12pPwD9RMrWfzAtpUc11EiObFVp8ozi2fXOCwg wDdV+fcOZru+
1K4TrRCXmTmcOXuwXLzxCsgclDJsYXl+e7P/ZG2NC/sgAx1kkODZBJw3Oj9I WvAVZ8sgFXvg
fv7E7WlwwywWSR9AC2DDiLR94hpvd/lHE++5CMZt/5c/2a8PGRhXMeMryUrH a1gb98bulnqm
oC+CXHFEza/nDowOsAmnuCCUtB6OaAijS1kdsvmlZZg4g0lRwfwqgsS7nOaK ofx4zh520yfq
1sBXUh9xeMUjmDX/2C4LJQURintPWhkIwiuo8U97cqIQ+R3LOk3dysgZ8YG7 QI/UISLNGQlz
Z9aeDDcCbJBGx/pOJ47GIl+nwSHDHhkXCxDhO7GojyffiIY1uZBDszwi7DKZ XQZ6UWI2GPWn
09G4/2P4s4dkpGcVhEFsl2btcmT4DBzNEuw5txGoS+R0cE/M7HSYcMADnCuh 3fbNdHupqzP4
CIy4iH4OqekT6sj0xXHtERpFROoFVFI38fQQSWGKRrZ00ETxmHkIz2hj2r0z RbcFbRxDMePy
RcLUtQx7JkIZD+22PNrHIUtCk03ZzlWPrZUeoylLLoAmfineOxQ1eTMFsmwn 8XSLoZqBc8yi
CYLStNs0vDYr0F/+9qM8kGsVz+MX8hqrUtH77Q35x8zGfsrL7+kh4fQHUEsB AhQLCgAAAAAA
r0QhOwAAAAAAAAAAAAAAABwAAAAAAAAAAAAQAAAAAAAAAGV4YW1wbGUyL2hl bGxvLmpwYS5l
bnRpdGllcy9QSwECFAsUAAAACACUUhw7GOREa9AAAAB4AQAAJgAAAAAAAAAB ACAAAAA6AAAA
ZXhhbXBsZTIvaGVsbG8uanBhLmVudGl0aWVzLy5jbGFzc3BhdGhQSwECFAsU AAAACACUVRw7
L1a+QewAAACnAgAAJAAAAAAAAAABACAAAABOAQAAZXhhbXBsZTIvaGVsbG8u anBhLmVudGl0
aWVzLy5wcm9qZWN0UEsBAhQLCgAAAAAAr0QhOwAAAAAAAAAAAAAAACAAAAAA AAAAAAAQAAAA
fAIAAGV4YW1wbGUyL2hlbGxvLmpwYS5lbnRpdGllcy9iaW4vUEsBAhQLCgAA AAAAr0QhOwAA
AAAAAAAAAAAAACYAAAAAAAAAAAAQAAAAugIAAGV4YW1wbGUyL2hlbGxvLmpw YS5lbnRpdGll
cy9iaW4vaGVsbG8vUEsBAhQLCgAAAAAAr0QhOwAAAAAAAAAAAAAAACoAAAAA AAAAAAAQAAAA
/gIAAGV4YW1wbGUyL2hlbGxvLmpwYS5lbnRpdGllcy9iaW4vaGVsbG8vanBh L1BLAQIUCwoA
AAAAAK9EITsAAAAAAAAAAAAAAAAzAAAAAAAAAAAAEAAAAEYDAABleGFtcGxl Mi9oZWxsby5q
cGEuZW50aXRpZXMvYmluL2hlbGxvL2pwYS9lbnRpdGllcy9QSwECFAsUAAAA CAAbWRw73CU2
qasBAAAMAwAAPwAAAAAAAAAAACAAAACXAwAAZXhhbXBsZTIvaGVsbG8uanBh LmVudGl0aWVz
L2Jpbi9oZWxsby9qcGEvZW50aXRpZXMvUGVyc29uLmNsYXNzUEsBAhQLFAAA AAgAlFIcO9Jb
YPs/AAAAUAAAACwAAAAAAAAAAQAgAAAAnwUAAGV4YW1wbGUyL2hlbGxvLmpw YS5lbnRpdGll
cy9idWlsZC5wcm9wZXJ0aWVzUEsBAhQLCgAAAAAAr0QhOwAAAAAAAAAAAAAA ACUAAAAAAAAA
AAAQAAAAKAYAAGV4YW1wbGUyL2hlbGxvLmpwYS5lbnRpdGllcy9NRVRBLUlO Ri9QSwECFAsU
AAAACACUVRw7+CCFyrsAAAAnAQAAMAAAAAAAAAABACAAAABrBgAAZXhhbXBs ZTIvaGVsbG8u
anBhLmVudGl0aWVzL01FVEEtSU5GL01BTklGRVNULk1GUEsBAhQLCgAAAAAA r0QhOwAAAAAA
AAAAAAAAACAAAAAAAAAAAAAQAAAAdAcAAGV4YW1wbGUyL2hlbGxvLmpwYS5l bnRpdGllcy9z
cmMvUEsBAhQLCgAAAAAAr0QhOwAAAAAAAAAAAAAAACYAAAAAAAAAAAAQAAAA sgcAAGV4YW1w
bGUyL2hlbGxvLmpwYS5lbnRpdGllcy9zcmMvaGVsbG8vUEsBAhQLCgAAAAAA r0QhOwAAAAAA
AAAAAAAAACoAAAAAAAAAAAAQAAAA9gcAAGV4YW1wbGUyL2hlbGxvLmpwYS5l bnRpdGllcy9z
cmMvaGVsbG8vanBhL1BLAQIUCwoAAAAAAK9EITsAAAAAAAAAAAAAAAAzAAAA AAAAAAAAEAAA
AD4IAABleGFtcGxlMi9oZWxsby5qcGEuZW50aXRpZXMvc3JjL2hlbGxvL2pw YS9lbnRpdGll
cy9QSwECFAsUAAAACAAaWRw7Zt7aLcMAAACMAQAAPgAAAAAAAAABACAAAACP CAAAZXhhbXBs
ZTIvaGVsbG8uanBhLmVudGl0aWVzL3NyYy9oZWxsby9qcGEvZW50aXRpZXMv UGVyc29uLmph
dmFQSwECFAsKAAAAAACvRCE7AAAAAAAAAAAAAAAAEwAAAAAAAAAAABAAAACu CQAAZXhhbXBs
ZTIvaGVsbG8uanBhL1BLAQIUCxQAAAAIACVRHDsY5ERr0AAAAHgBAAAdAAAA AAAAAAEAIAAA
AN8JAABleGFtcGxlMi9oZWxsby5qcGEvLmNsYXNzcGF0aFBLAQIUCxQAAAAI ACVRHDsZBSN1
5wAAAJ4CAAAbAAAAAAAAAAEAIAAAAOoKAABleGFtcGxlMi9oZWxsby5qcGEv LnByb2plY3RQ
SwECFAsKAAAAAACvRCE7AAAAAAAAAAAAAAAAFwAAAAAAAAAAABAAAAAKDAAA ZXhhbXBsZTIv
aGVsbG8uanBhL2Jpbi9QSwECFAsKAAAAAACvRCE7AAAAAAAAAAAAAAAAHQAA AAAAAAAAABAA
AAA/DAAAZXhhbXBsZTIvaGVsbG8uanBhL2Jpbi9oZWxsby9QSwECFAsKAAAA AACvRCE7AAAA
AAAAAAAAAAAAIQAAAAAAAAAAABAAAAB6DAAAZXhhbXBsZTIvaGVsbG8uanBh L2Jpbi9oZWxs
by9qcGEvUEsBAhQLFAAAAAgAJ1kcO2IJI3uUBAAAXAkAADAAAAAAAAAAAAAg AAAAuQwAAGV4
YW1wbGUyL2hlbGxvLmpwYS9iaW4vaGVsbG8vanBhL0FjdGl2YXRvci5jbGFz c1BLAQIUCxQA
AAAIACVRHDvSW2D7PwAAAFAAAAAjAAAAAAAAAAEAIAAAAJsRAABleGFtcGxl Mi9oZWxsby5q
cGEvYnVpbGQucHJvcGVydGllc1BLAQIUCwoAAAAAAK9EITsAAAAAAAAAAAAA AAAcAAAAAAAA
AAAAEAAAABsSAABleGFtcGxlMi9oZWxsby5qcGEvTUVUQS1JTkYvUEsBAhQL FAAAAAgAJlkc
O83weUH6AAAAuwEAACcAAAAAAAAAAQAgAAAAVRIAAGV4YW1wbGUyL2hlbGxv LmpwYS9NRVRB
LUlORi9NQU5JRkVTVC5NRlBLAQIUCxQAAAAIACxZHDvH+r75+AEAAKcGAAAr AAAAAAAAAAEA
IAAAAJQTAABleGFtcGxlMi9oZWxsby5qcGEvTUVUQS1JTkYvcGVyc2lzdGVu Y2UueG1sUEsB
AhQLCgAAAAAAr0QhOwAAAAAAAAAAAAAAABcAAAAAAAAAAAAQAAAA1RUAAGV4 YW1wbGUyL2hl
bGxvLmpwYS9zcmMvUEsBAhQLCgAAAAAAr0QhOwAAAAAAAAAAAAAAAB0AAAAA AAAAAAAQAAAA
ChYAAGV4YW1wbGUyL2hlbGxvLmpwYS9zcmMvaGVsbG8vUEsBAhQLCgAAAAAA r0QhOwAAAAAA
AAAAAAAAACEAAAAAAAAAAAAQAAAARRYAAGV4YW1wbGUyL2hlbGxvLmpwYS9z cmMvaGVsbG8v
anBhL1BLAQIUCxQAAAAIABpZHDuBw7NnBwIAAEgFAAAvAAAAAAAAAAEAIAAA AIQWAABleGFt
cGxlMi9oZWxsby5qcGEvc3JjL2hlbGxvL2pwYS9BY3RpdmF0b3IuamF2YVBL BQYAAAAAHwAf
ACEKAADYGAAAAAA=
--------------020602030107060308060208
Content-Type: application/octet-stream;
name="example1.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="example1.zip"

UEsDBAoAAAAAAK9EITsAAAAAAAAAAAAAAAATAAAAZXhhbXBsZTEvaGVsbG8u anBhL1BLAwQU
AAAACAAlURw7GOREa9AAAAB4AQAAHQAAAGV4YW1wbGUxL2hlbGxvLmpwYS8u Y2xhc3NwYXRo
lZDBagIxEIbPLfQdltydrZfSw26llC0oVItue5WYDOvUdBIniejbq6VS8SD0 Nv/wzcfwV4Pt
tys2KJE816oP96pANt4Sd7X6aF97j2rwdHdbGadjDDotD+HmLyEn2RUrYlsr 41kVx2WtvHSA
xlGICF82gdOZzfLghNG0mb9Mxu3zcNxMy0uOOKGwdmBxkTvI9HuJArOk2Wqx n2/tLmA50hs9
a3p9eFDlv18KFsF4QRBcZxK07y53xPGaKoo5qY7jFdLnFHI6wQviH7gqzyvc A1BLAwQUAAAA
CAAlURw7GQUjdecAAACeAgAAGwAAAGV4YW1wbGUxL2hlbGxvLmpwYS8ucHJv amVjdL2SwU7E
IBCGz5r4DpvehfXmgXaT1extNybVB0AYuzQwEKAbH19AqmkaEw/G2/z/zM9H YNju3ejNBXxQ
FtvmjmybDaCwUuHQNi/Ph9v7ZtfdXDPn7QgiPkIQXrmYppN7xZAb6M6gtSWj 44wWnRvCGgMY
O0bnKrv1lFAEXajXSWnZOxBZVfmQohxlcSrL+oGA0MoFIKOMRFifCn7hJQD+ +wopwf0wZXao
mi4NRleUX3GdBHLkqN4gxP3/YntxBsP/BFqd+ckTL04e6vSnWOGf9DQoPJVm ppehnwKL78FV
Zq4z8WsXlvv1AVBLAwQKAAAAAACvRCE7AAAAAAAAAAAAAAAAFwAAAGV4YW1w bGUxL2hlbGxv
LmpwYS9iaW4vUEsDBAoAAAAAAK9EITsAAAAAAAAAAAAAAAAdAAAAZXhhbXBs ZTEvaGVsbG8u
anBhL2Jpbi9oZWxsby9QSwMECgAAAAAAr0QhOwAAAAAAAAAAAAAAACEAAABl eGFtcGxlMS9o
ZWxsby5qcGEvYmluL2hlbGxvL2pwYS9QSwMEFAAAAAgAalgcOzMIDsmQBAAA SgkAADAAAABl
eGFtcGxlMS9oZWxsby5qcGEvYmluL2hlbGxvL2pwYS9BY3RpdmF0b3IuY2xh c3ONVX1bG0UQ
/y1NchAOalOhDYUCpZQEgbPV2pYgCgiFNlAsCLa26uayhIPL3Xm3AeLbox/D T+Df9Q9a7PP4
AfxQ6uwlvCXU9MmT292Z2ZnfzOzM/P3Pn38BuIWfNTQxXNwUtu0aWx43pkxp 7XDp+hoiDO9s
8R1u2NwpGI9yW8KUGmIM11y/YLhBwTI2fF4Uu66/bUyXnLwtjm4zxCYsx5KT DOdS6TWGyIyb
F3GcQ6sODc0M57OWI5ZKxZzwV3nOFgyJrGtye437ljpXiRG5aQUMHdkzIGYY ooHkvmQYTGXf
CGrGdaTYkxkFIz67ZwpPWq4TaHiXPD928IijoZPhQsgoScs25nmwuci9ODrQ 2owkwyVh2pYX
CNtytsdMmweB7fK88JV7V3R0o4ehuSDkjGKRjVQ6e2wmJGbi6EW/hj6KQw1L xzUMMLQf3s+G
qhmS9VoqrIwCNqjjBoYo2F6JonE3la1NXKaekq4nNSPN0BKGeoxCHcd7GNUw wtCjRPcMT/iB
FUjhmMJYPt7rGIPB0GX6gksx60hLlhe5wwvCn+MmZarM8PAkphXpW06hiikM MgW4Cui0lbOU
ZVpxEx9ouMVw4+1u6PgQtykTZwBkGEg1NEwW7+CehrsMvQ1EdYwjU8nfqs+d gADQm2IY+h8r
JwTJ0sf4RAMVzsBbiOv4VBVTNCcKFj3caSrZ40JRGXKdOKbUu52lxzHt5tTp vo55LDBogZBL
VCtUXmckJ72mnH6oI4tFkq3CqJE9fEprCvYjHcsKTcx0i0VLquuPdayEAE3b DYTK22MNVIfj
qlqrZXTKQ4tq1Xe4bewKvkMwTj6zdSKJfBxf4qmGJwxjDZVQLIhuzIeLjq/w jOFyWLELRc8W
ReHIYEEJb3BThF2ktlDrCOmnLfga32r45lR7XCmT7aIOjhwFWvi+6lkh23KN ZQqopLAKXqQS
yzO0VVLTt+vuCKc/jg1saigctqPTN3RYYbI8RbKdZmyT4er9pUerfetKB/HN Spuj9ty4FVJC
PN/1VHM6UYPVRpdRDhQ3GFKNyuKwHhmaRJGhv5G80pxzc6rV175SYnWe7v9l 73AG3KvHOPGm
ZnLyVU6S0rYVyc1tuhHq0vA9Q1+j8NDUCaTr0bRYcUu+KeYshaL9aO6MKUvo B3lD/ygNUrXS
VKNvC50MWhmt0eGXiL+gTRN0+sZCYgfa6KtXBNCO87RSQnGBpBK0j9DpolLD FkltjCi/vkbH
k5e4tDiSuDy8j659XN3H9fVEauQVhpdGD/A+1VMkGTnARwwHmGB4jSm6MDMe TUYTn+1jLhlJ
Rg/woAlHQkss3H/OQPdXKSFTiS9eYf03tP+B5wlzH+J3tKrtFm1fhLCUC9ME FEiSp13opEHX
jSvood8grlJp91Lr66P+0o8HNMTWMIDnuA6TJlMRQ9hDGr9gOHR/suJY1X21 s0mGpibKcOBS
KHqQh4fvKASDeAYfASEYx31IlChsO9UQVuR3SX6PKN1o+pc2MQ1MQ1lDh4ab Gu5oBImyw/BD
fZBxO0wPRbs2T6Mh0M4K8wgoqwJl+DGU/+k/UEsDBBQAAAAIAGpYHDtySp8t oQEAAPoCAAAt
AAAAZXhhbXBsZTEvaGVsbG8uanBhL2Jpbi9oZWxsby9qcGEvUGVyc29uLmNs YXNzbVLbSiNB
ED2dq46j8bbxfn2KCjvgqyKIqASCikreO5kidpj0yExH9J982IUVwYf9gP0o 2epOREiGga6p
qnPqnK6Zf58ffwEcYreMnMDsA0VRHHQfZXBDSRrrMgpc7conGURSd4LrVpfa RiCnQgFRF1i5
7WujetRUqWpFdKp1bKRRsU4Fqg1LfA4eeZRKDek2BfXwSGA3o3FJmhJpKGzK qE8MKmjZI4H5
xrf6nUmU7nCvdKy0MicC+dpek6FncUge8pj14WNaoNJQmq76vRYl95Jt2TFx W0ZNmSibD4sF
86BS2xu9NksUO2TqoVOoT0Jg2UcRJYEy16+cs8Xa3rg3C1334WGKoekX9Edt HGmNe3dxP2nT
hbJupgbaPy1SYDVjR+e8avNyhB0WyfNny/HDpjgrc+ZxNsFx0nXYAccC93gj fM5wFnAUHIv7
76j8drA5PkuuOIF5Pv0BAAtY5MjOUR0j/8HS6wi5kklewWoGee3XCHkhk7yB zSH5xF2U0fsH
b1j79u25apU5S25CdYAaTrBvdgn8s2LLcbbdmqzmDvAfUEsDBBQAAAAIACVR HDvSW2D7PwAA
AFAAAAAjAAAAZXhhbXBsZTEvaGVsbG8uanBhL2J1aWxkLnByb3BlcnRpZXMr zi8tSk7V01Ow
VSguStbn5covLSkoLQELJGXmAQWApF5mXnJOaUpqMVDQ1zXEUdfTz01fJ4aX SwEV6PFyAQBQ
SwMECgAAAAAAr0QhOwAAAAAAAAAAAAAAABwAAABleGFtcGxlMS9oZWxsby5q cGEvTUVUQS1J
TkYvUEsDBBQAAAAIAHBXHDsvmWgL9AAAAKYBAAAnAAAAZXhhbXBsZTEvaGVs bG8uanBhL01F
VEEtSU5GL01BTklGRVNULk1GXZBBb4MwDIXv+RWo58UaPezAtEMncVilTmjV djfB0NCQ0CSw
sl+/MKBFk2/+/J6ffUAtS3Kef5F10ugkiuGRvXa6UMQPM7yx7ULesaEk2re4 NI5DkxslxQRO
pJSB+o7X7qEuHSpZSrIL3wkve/TGrrRwa/6bCkbZuGtIIoU/w0I/6NJJS0V6 JdGNQ6nupTW6
Ie1DVuzxmPIYntg+2/FsDOQ8aUGfWnq3zvzWtMZ6nqE4YxWuqYP0Cu1d8cAi YyvAFsWJoCCb
D1AXuZj7xlUSShs+8W3smc25+BQz+RshoWTraG06rn7Op1P66V0vmxhi2G7Y L1BLAwQUAAAA
CAABWBw7rLeNdPIBAACeBgAAKwAAAGV4YW1wbGUxL2hlbGxvLmpwYS9NRVRB LUlORi9wZXJz
aXN0ZW5jZS54bWytlE2P0zAQhu9I/AeTu+0WbqXtYbeLBCoIaS/cVo49m7o4 duRxku6/x3HS
bPYDqVnIKZqPZ8Yzr72uwKPGAFYCabp/ZzfZki0yciqNxU12CKFacX4UjWBY WyZdyaOLW+ST
3CF8dUI9prRty9pPzPmCf1wslvzX9/2tPEApqLYYRJ+FeoXJuHdShFT9sork srDp/93ybsFO
qLLt+3ckfuuJj9ZWB2JFCbEBMMaxYyXOgSlYGoG4HX3sZ0x2ds17+ySw8i6C g4apNXk+UEpu
yhyUAkV24PMHsneFtoTS56ED5GFoCaTRFYLR9jcLwhcQqBJB5ALjEBth6hiT gBmfQTqqXDLl
dVz8SInrYqIScSdMdcA+6Nz1rg+eXaT2ZqzQGVaJvYo70xI/Sw8iwCb4Guaj Y66i0lkLstMP
slLbsdZyPq/1OsD/BOYiyAPtsNoWI+jb7uq6Z70ikt2wW9JfGHLdDSj2Mk8o ShlagAWfcsfK
KmZQYePQ0thpLGUAZ53rKZm5OlR1oKVTj2oc5fm3M0blR+kX5BZCNxicdzbT ZzMDDTxK68vX
HzcZmXOSMyccOh2NoHthupv1FhIC4nTc/4CCk4QqaXCkpTvyJljQJcRnt6ye dca3U9Ll3BZE
MxX0cHtfh635i1dxPX2a0/MbHU+M2z9QSwMECgAAAAAAr0QhOwAAAAAAAAAA AAAAABcAAABl
eGFtcGxlMS9oZWxsby5qcGEvc3JjL1BLAwQKAAAAAACvRCE7AAAAAAAAAAAA AAAAHQAAAGV4
YW1wbGUxL2hlbGxvLmpwYS9zcmMvaGVsbG8vUEsDBAoAAAAAAK9EITsAAAAA AAAAAAAAAAAh
AAAAZXhhbXBsZTEvaGVsbG8uanBhL3NyYy9oZWxsby9qcGEvUEsDBBQAAAAI AEBYHDsbRBOq
/AEAACMFAAAvAAAAZXhhbXBsZTEvaGVsbG8uanBhL3NyYy9oZWxsby9qcGEv QWN0aXZhdG9y
LmphdmGVU9lu2zAQfFaA/APrJwkw+ANqCziuiwRw4qBOkWeKXsl0KJIg1xeK /HuXlioftesG
AsFjd4ezo6ET8k1UwOagteULJ/Lbm/2namc9soVYCb5Epfm9CPNH4fKT4IY7 8EEFBCOBjwwq
3D4KQ8A+/9/E70Ki9dt/5T/v14cMrK+4DZXipRc1rK1/43dLM9MwkKhWglDz 67lDaxA2eIoL
UisX4IiGtKZU1SGbn0bhs7eUhApCfhVB0V3eCM1Jdjrn97vpA3VrECtljji8 0hHM2t/nloVW
kkktQmCdDIzgNdRgMLAThdivWJa0dSurZiyg8JgeqcNkM2cM596uAxttJDhU 1sT6JImjtcjn
KXpi2GeTYgESvzJH+gT2hRlYsws5aZZHhF0md0tML0rMh+PBdDqeDL6NfvSJ jAq8AhzGdtOs
W46tmIFPswb2nNsY1CVxOrgnZiYJlx4EwrmStNe9lV6/6eoMPgETLqGfQ2r7 hDoyffHCBIIm
EYl6AZUybTyyImULW7SyNQdtlI55AHwiG6e9O1v0OtDWMSllXL5I2rpWuGci tQ3QbcujfRyq
ZGljU75z1UNnpYdoylJISBt+Tbx/KGrjzSaQZTuJp1sK1Ry8545MgNqkvbbh tV2B+fSnHx2A
Xat4mryw11jVFL3f3rC/zGzdh7z83jwkgvoNUEsDBBQAAAAIAFFXHDvIUX6Y vwAAAIMBAAAs
AAAAZXhhbXBsZTEvaGVsbG8uanBhL3NyYy9oZWxsby9qcGEvUGVyc29uLmph dmF9jsEKwjAM
QM8b7B9y1Mt+QIRdRHYRQfAe17BFa1fabCjiv9u6KurBSyHhvZdabE7YEnSk dV8eLS6KHIqc
z7Z3Akcc8VJacp69kGmoXBlhuS7+EGsy5FBI7VEP9I+s1XSsmqJFboeD5gYa jd7DNpC9gVuR
Z1Wt4vtdDhvreAwzsBHgGHtvduLYtGDwTNONLLUj2pLUajZ/pjNHMjiT9PsX myIB34TOj5DS
UXnxY88KfKI/fpBE6diXcYblp31/AFBLAQIUCwoAAAAAAK9EITsAAAAAAAAA AAAAAAATAAAA
AAAAAAAAEAAAAAAAAABleGFtcGxlMS9oZWxsby5qcGEvUEsBAhQLFAAAAAgA JVEcOxjkRGvQ
AAAAeAEAAB0AAAAAAAAAAQAgAAAAMQAAAGV4YW1wbGUxL2hlbGxvLmpwYS8u Y2xhc3NwYXRo
UEsBAhQLFAAAAAgAJVEcOxkFI3XnAAAAngIAABsAAAAAAAAAAQAgAAAAPAEA AGV4YW1wbGUx
L2hlbGxvLmpwYS8ucHJvamVjdFBLAQIUCwoAAAAAAK9EITsAAAAAAAAAAAAA AAAXAAAAAAAA
AAAAEAAAAFwCAABleGFtcGxlMS9oZWxsby5qcGEvYmluL1BLAQIUCwoAAAAA AK9EITsAAAAA
AAAAAAAAAAAdAAAAAAAAAAAAEAAAAJECAABleGFtcGxlMS9oZWxsby5qcGEv YmluL2hlbGxv
L1BLAQIUCwoAAAAAAK9EITsAAAAAAAAAAAAAAAAhAAAAAAAAAAAAEAAAAMwC AABleGFtcGxl
MS9oZWxsby5qcGEvYmluL2hlbGxvL2pwYS9QSwECFAsUAAAACABqWBw7MwgO yZAEAABKCQAA
MAAAAAAAAAAAACAAAAALAwAAZXhhbXBsZTEvaGVsbG8uanBhL2Jpbi9oZWxs by9qcGEvQWN0
aXZhdG9yLmNsYXNzUEsBAhQLFAAAAAgAalgcO3JKny2hAQAA+gIAAC0AAAAA AAAAAAAgAAAA
6QcAAGV4YW1wbGUxL2hlbGxvLmpwYS9iaW4vaGVsbG8vanBhL1BlcnNvbi5j bGFzc1BLAQIU
CxQAAAAIACVRHDvSW2D7PwAAAFAAAAAjAAAAAAAAAAEAIAAAANUJAABleGFt cGxlMS9oZWxs
by5qcGEvYnVpbGQucHJvcGVydGllc1BLAQIUCwoAAAAAAK9EITsAAAAAAAAA AAAAAAAcAAAA
AAAAAAAAEAAAAFUKAABleGFtcGxlMS9oZWxsby5qcGEvTUVUQS1JTkYvUEsB AhQLFAAAAAgA
cFccOy+ZaAv0AAAApgEAACcAAAAAAAAAAQAgAAAAjwoAAGV4YW1wbGUxL2hl bGxvLmpwYS9N
RVRBLUlORi9NQU5JRkVTVC5NRlBLAQIUCxQAAAAIAAFYHDust4108gEAAJ4G AAArAAAAAAAA
AAEAIAAAAMgLAABleGFtcGxlMS9oZWxsby5qcGEvTUVUQS1JTkYvcGVyc2lz dGVuY2UueG1s
UEsBAhQLCgAAAAAAr0QhOwAAAAAAAAAAAAAAABcAAAAAAAAAAAAQAAAAAw4A AGV4YW1wbGUx
L2hlbGxvLmpwYS9zcmMvUEsBAhQLCgAAAAAAr0QhOwAAAAAAAAAAAAAAAB0A AAAAAAAAAAAQ
AAAAOA4AAGV4YW1wbGUxL2hlbGxvLmpwYS9zcmMvaGVsbG8vUEsBAhQLCgAA AAAAr0QhOwAA
AAAAAAAAAAAAACEAAAAAAAAAAAAQAAAAcw4AAGV4YW1wbGUxL2hlbGxvLmpw YS9zcmMvaGVs
bG8vanBhL1BLAQIUCxQAAAAIAEBYHDsbRBOq/AEAACMFAAAvAAAAAAAAAAEA IAAAALIOAABl
eGFtcGxlMS9oZWxsby5qcGEvc3JjL2hlbGxvL2pwYS9BY3RpdmF0b3IuamF2 YVBLAQIUCxQA
AAAIAFFXHDvIUX6YvwAAAIMBAAAsAAAAAAAAAAEAIAAAAPsQAABleGFtcGxl MS9oZWxsby5q
cGEvc3JjL2hlbGxvL2pwYS9QZXJzb24uamF2YVBLBQYAAAAAEQARAEwFAAAE EgAAAAA=
--------------020602030107060308060208--
Re: Equinox weaving configuration - Clasloading issue [message #483414 is a reply to message #483323] Tue, 01 September 2009 14:23 Go to previous messageGo to next message
Shaun Smith is currently offline Shaun Smith
Messages: 197
Registered: July 2009
Senior Member
Hi Thomas,

There are two problems with your example #2 where you spread the code
and config files across two bundles. The first, and most critical is that
you don't provide the required classloader as a property when you create
your EntityManagerFactory. You have:

EntityManagerFactory emf = Persistence
.createEntityManagerFactory("hello.jpa");

But the byte code weaving example says you should have something like:

Map<String,Object> properties = new HashMap<String, Object>();
properties.put(PersistenceUnitProperties.CLASSLOADER,
this.getClass().getClassLoader());
emf = Persistence.createEntityManagerFactory("comics", properties);

In the weaving example, the classloader that is passed is the one for the
Entities. In the example, since all the code is on the same bundle the
classloader for the Activator is passed.

The second issue, which is related to the first one, is packaging.
EclipseLink's OSGi support for JPA supports lots of different packaging
options but the use of weaving does limit those options. To perform
weaving EclipseLink uses a temporary classloader. This temp loader
examines the Entities (identified through the persistence.xml) to
determine how to weave the classes and is then discarded. Later, when you
load the classes, the weaving is performed. EclipseLink currently builds
a temp loader based on the classloader that is passed as a property to
createEntityManagerFactory.

In your code, you've separated the Entities and persistence.xml and have
no way to get a handle to the actual classloader of your Entities. For
now, if you want to use weaving, I would recommend putting the Entities,
persistence.xml, any orm.xml files, and the EntityManagerFactory creation
code in the same bundle so all classes and config files are loadable by
the same classloader.

This situation will be improving in future releases of EclipseLink. We
have a few initiatives on-going. We're investigating a non-temploader
approach to weaving, it may be possibile to leverage the work of the
Equinox Aspects team to implement EclipseLink's weaving in OSGi, and the
OSGi JPA RFC 143 will introduce standards around how JPA should work in
OSGi. So there is quite a lot going on in this area but it is still in
process.

Until then, I'm afraid if you want to use dynamic weaving you'll have to
live with the current restrictions. Your other alternative is to use
static weaving.

Hope this helps,

--Shaun
Re: Equinox weaving configuration - Clasloading issue [message #483571 is a reply to message #483414] Wed, 02 September 2009 07:03 Go to previous message
Thomas Haskes is currently offline Thomas Haskes
Messages: 147
Registered: July 2009
Senior Member
Shaun, Thanks for all the information, the situation is much clearer to
me no.
> This situation will be improving in future releases of EclipseLink. We
> have a few initiatives on-going. We're investigating a non-temploader
> approach to weaving, it may be possibile to leverage the work of the
> Equinox Aspects team to implement EclipseLink's weaving in OSGi, and the
> OSGi JPA RFC 143 will introduce standards around how JPA should work in
> OSGi. So there is quite a lot going on in this area but it is still in
> process.

I hope so, and will be following what comes up in future releases. It
seems to me that the JPA standard is not really aware of the modularity
the OSGi Envrionment enables, and it is well known that the classloading
algorithms are the most complicated part when it comes to deploy
osgi-fied versions of java libraries.

> Until then, I'm afraid if you want to use dynamic weaving you'll have to
> live with the current restrictions. Your other alternative is to use
> static weaving.

While our product is designed to be modular, I can't have all the
entities in one bundle right now (we are not happy about having the
persistence.xml with the list of ALL entities in just one bundle that
has to be adjusted every time a new bundle with new enitities is
deployed, but since it is possible to do that without recompiling and
deploing, we can live with that restriction).
I'll stick with static weaving then. Although it complicates the
doployment process a little bit, this seems to be the best workaround
for my situation right now - thanks for the hint. Btw I must say that
besides those limitations about weaving the Eclipselink OSGi Bundles
work really good - great work.

Tom
Previous Topic:setShouldBindAllParameters performance issue
Next Topic:Use Transformer in query
Goto Forum:
  


Current Time: Tue Oct 21 19:56:43 GMT 2014

Powered by FUDForum. Page generated in 0.10979 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software