Hi Jim
If you do a google search on "liferay permgen" you will get a lot of
results about it so this seems to be a general "issue".
I have been testing out several older versions of Liferay with Geronimo
1.1.1 and 2.0.2 and my experience with it is that Liferay is a real
best, although a nice one ;) that likes a lot of memory so try bump up
memory by setting it to something like -Xms128m -Xmx1024m
-XX:MaxPermSize=128m in you java opts and hopefully it will stabilize.
Good luck with this, I am following it with great interest,
unfortunately I have a buzzy time with work at the moment else I would
have joined in this endeavour.
regards
peter petersson
Jim Foster wrote:
djencks wrote:
On Mar 3, 2008, at 8:33 AM, Jim Foster wrote:
djencks wrote:
On Mar 1, 2008, at 10:02 AM, Jim Foster wrote:
djencks wrote:
Your plan works for me. I jar'ed up my sample and attached it
to the
wiki page. Could you see if you can detect the relevant
difference?
thanks
david jencks
<snip>
Hi David,
I think I see the point of confusion.
In your doc, you have this:
[3] Repackage the liferay war
mvn archetype:create \
-DarchetypeGroupId=org.apache.maven.archetypes \
-DarchetypeArtifactId=maven-archetype-webapp \
-DarchetypeVersion=1.0 \
-DgroupId=com.liferay \
-DartifactId=liferay-portal-lesslibs \
-Dversion=4.4.1-NOLIB-SNAPSHOT
cd liferay-portal
rm -rf src
Shouldn't that artifactId be "liferay-portal"?
I don't think so. Previously we've installed the liferay portal war
from liferay in the local maven repo as com.liferay/liferay-portal/
4.4.1/war so we don't want another project claiming to generate the
same artifactId. In fact I tried this at first but just having a
different version between input and output doesn't work -- maven
objects.
Hi David,
I just don't see how in your documentation you can have this:
mvn archetype:create \
...
-DartifactId=liferay-portal-lesslibs \
...
followed by this:
cd liferay-portal
There isn't a directory liferay-portal, but there is
liferay-portal-lesslibs, so one or the other must be out of sync.
Also, in your liferay-sample.jar, you have the directory structure
liferay-parent/
pom.xml
geronimo-jetty-liferay/
pom.xml
liferay-derby/
pom.xml
src/
main/
plan/
plan.xml
resources/
liferay-jetty/
pom.xml
src/
main/
plan/
plan.xml
resources/
liferay-portal/
pom.xml
Where did the directory liferay-portal-lesslibs go?
And where did directory liferay-portal come from?
This is what happens without proper review :-). I started with
calling my repackaged liferay liferay-portal but the duplicate
artifactId didn't work. I then missed updating the name change in a
lot of places.
Hopefully it's fixed now.... waiting for your review...
thanks
david jencks
Hi David,
I am glad that this is turning out to be a productive discussion.
I have some more review notes for you.
For reference:
Constructing a special-purpose server using maven
http://cwiki.apache.org/confluence/display/GMOxDOC21/Constructing+a+special-purpose+server+using+maven
[1] Preparation – find the artifacts
[2] Set up a parent maven project
[3] Repackage the liferay war
[4] Build a database plugin
[5] Build the liferay war plugin
[6] Build an assembly
[7] Run the project
Note:
In the following, I use the term "baseline" to mean your liferay-sample.jar
attached to your wiki doc, which builds as it should in maven (hence
"baseline"), and "doc" to mean your wiki documentation.
[3] baseline has this:
<version>4.4.1</version>
whereas the doc has this:
<version>${liferayVersion}</version>
which produces an artifact not found error (i.e., there is no
liferayVersion defined at this point of the process).
[5] baseline has this:
<dependency>
<groupId>com.liferay</groupId>
<artifactId>liferay-portal-lesslibs</artifactId>
<version>${liferayVersion}-SNAPSHOT</version>
<type>war</type>
<scope>provided</scope>
</dependency>
whereas the doc has this:
<dependency>
<groupId>com.liferay</groupId>
<artifactId>liferay-portal-lesslibs</artifactId>
<version>${liferayVersion}</version>
<type>war</type>
<scope>provided</scope>
</dependency>
which produces
[INFO]
------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO]
------------------------------------------------------------------------
[INFO] Failed to resolve artifact.
GroupId: com.liferay
ArtifactId: liferay-portal-lesslibs
Version: 4.4.1
[6] baseline has this:
<properties>
<geronimoVersion>2.1</geronimoVersion>
</properties>
whereas the mvn command generates this:
<properties>
<geronimoVersion>2.2-SNAPSHOT</geronimoVersion>
</properties>
which produces
[INFO]
------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO]
------------------------------------------------------------------------
[INFO] Failed to resolve artifact.
GroupId: org.apache.geronimo.assemblies
ArtifactId: assemblies
Version: 2.2-SNAPSHOT
Reason: Unable to download the artifact from any repository
[7] I see the same PermGen error.
I wonder if we built this using MySQL rather than the system database (as
the Liferay folks intended) we would be in better shape?
After all, that database (the MySQL version at least) is just shy of 60MB,
so it stands to reason that we are taxing resources here.
I would like to explore this. Could you please guide me?
I think I have the basics down of what would be needed, but I don't think I
quite have it all down yet, and I would like to know for sure by hearing it
from you.
I would like to see us put this puppy to bed, you folks bless it for the
general public, and move on (Liferay portal is but the first of several apps
I am building on top of Geronimo - details of this project to be shared as
we go).
Thanks!
Jim