2

I'm recently started working on a project with about 40 other developers. We are using OSGi together with Apache Felix. We build and deploy using Maven with the maven-pax-plugin. OSGi and pax are both very new to me so I don't know any specifics about the project setup.

To deploy to my own machine, I use the commands

mvn clean install
mvn pax:provision

The pax:provision command starts up pax-runner and the last lines in the log are the following:

 -> Provision bundle [...., at default start level, bundle will be started, bundle will be loaded from the cache]
 -> Preparing framework [Felix 4.0.3]
 -> Downloading bundles...
 -> Using execution environment [NONE]
 -> Runner has successfully finished his job!

Listening for transport dt_socket at address: 5005

On some of the pc's in use, it takes about 30 seconds to 1 minute after this line before Apache Felix starts up and the application is accessible via a browser. However, on my colleague's pc this takes about 8-9 minutes and on mine it takes about 16 minutes.

During those 16 minutes, there is no excessive CPU use or network traffic. It seems as if nothing is happening.

I have tried changing the logging level to debug, which gives me a ton of info about the pax-runner, but after the 'Listening for transport dt_socket...' line, it's 16 minutes of silence. During that time I can connect my remote debugger (IntelliJ) to the server, so something must be running.

Noone of my colleagues seem to know what happens during this time, and why it takes so long for the 2 of us, but flies by for the other people. Google doesn't give me any clues either so I thought I'd ask here.

It is quite a complicated project setup so I'd like to program small pieces at a time and test a lot, but having to wait 16 minutes to test a small change is killing productivity of course.

I hope someone can help me with this. Thank you!

Final Frag
  • 21
  • 1

2 Answers2

0

Find out if the bundles are all brought up nicely. Either by accessing the Felix console and issue "ps", "scr info" command or put in a Webconsole.

Once all the bundles are all resolved and activated, then start look into application specific logs/events to determine if it's operational.

Ming Tsai
  • 197
  • 3
  • 9
0

I would say that you have enabled the debug agent with suspend option set to true. Look for something like this in your poms:

      <provision>
        <param>--vmOptions="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005"</param>
      </provision>

Change suspend=y to suspend=n.

I know that this is old question, but maybe someone will have similar problem.

swist
  • 1,111
  • 8
  • 18