Tobias Krais wrote:
Hi Juergen,

well, that can have different reasons. It works normally quite well and
more interesting would be what are you doing in detail.

I tested many many times and I try to find out what is wrong, to be able
to reproduce my failure. The last thing I found out is:
1. If I install my Extension (named JudasComponent.oxt), the extension
does NOT work.
2. Renaming the extension (e.g. JudasComponent01.oxt) and installing it
will install it and my extension works well!
3. The problem does not depend on my user profile.
4. I experienced the problem only on Ubuntu (amd64) Feisty (OOo 2.2.0)
and Gutsy (OOo 2.3). Up to now, I was not able to reproduce the failure
on Windows and I want to test on Debian Etch systems next week.
5. The first 5 or six times worked also well on my Ubuntu system.
6. The problem first occured when doing the following steps via Java
API: - detecting the version number of the installed extension. Then
removing the extension. At least installing a newer version of the
extension.

-> Is my OpenOffice registry broken?
you can easy test it. Run your office with

soffice -env:UserInstalltion=./mynewuserdir

Install and test your extensions in this new fresh user directory.


Juergen


When did you get this error, when you install the extensions or when you
remove it.

I got the one specific error on installing my extension. Normally, there
is no error messages.

When you get error when you remove the extensions i would be interested
what exactly are you doing in your extension. It's quite easy to crash
the office or doing some strange things in extensions.

My extension contains two protocol handler.
1. The first one dispatches the save dialog.
2. The second reads my file and prints the current document on a printer
and a printer tray I specified on the file.

Here is the code I use for adding the package:
-----%<-----
public class UNOPackageManager implements XCommandEnvironment {

public void addPackage(String packageURL, String packageManagerType) {
        String packageUNOURL = createUNOFileURL(packageURL);
                
        XComponentContext xComponentContext =
                                OOWorkbench.getXComponentContext();
                        
        // Package manager name
        String packageManagerName =
        "/singletons/com.sun.star.deployment.thePackageManagerFactory";
        
        XPackageManager xPM = null;
        try {
                XPackageManagerFactory xPMF = (XPackageManagerFactory)
                AnyConverter.toObject(XPackageManagerFactory.class,
                xComponentContext.getValueByName(packageManagerName));
                
                // Getting the package manager representative
                xPM = xPMF.getPackageManager(pmType);
        }
        catch (Exception e) {
        }
        try {
                XAbortChannel xAbortChannel = xPM.createAbortChannel();
                xPM.addPackage(packageUNOURL, "", xAbortChannel, this);
        }
        catch (Exception e) {
        }
}
                
/**
 * Implementation of the getProgressHandler method of the
 * XCommandEnvironment.
 * @return An implementation of the XProgressHandler.
 */
public XProgressHandler getProgressHandler() {
        return new ProgressImpl();
}
        
/**
 * Implementation of the getInteractionHandler method of the
 * XCommandEnvironment.
 * @return An implementation of the XInteractionHandler.
 */
public XInteractionHandler getInteractionHandler() {
        return new InteractionImpl();
}

}

/**
 * InteractionImpl implements the XInteractionHandler. It is needed to
 * add a UNO package.
 * @author tobias
 */
class InteractionImpl implements XInteractionHandler
{
    /**
     * Implementation of the handle method of the XInteractionHandler.  
     * It handles the add request of a package.
     * @param xRequest The XInteractionRequest needed to handle the             
     * interaction.
     */
     public void handle (XInteractionRequest xRequest)
    {
        boolean approve = true;
        XInteractionContinuation[] conts = xRequest.getContinuations();

        for (int i = 0; i < conts.length; i++)
        {
            if (approve)
            {
                XInteractionApprove xApprove = (XInteractionApprove)
                        UnoRuntime.queryInterface(XInteractionApprove.class,
                                        conts[i]);
                if (xApprove != null)
                    xApprove.select();
                //don't query again for ongoing extensions
                approve = false;
            }
        }
    }
}

/**
 * ProgressImpl implements the XProgressHandler. This class is quiete empty,
 * but nothing more is needed to add UNO packages.
 * @author tobias
 */
class ProgressImpl implements XProgressHandler {
    /**
     * Implementation of the push method of the XProgressHandler. Empty.
     * @param status Object
     */
        public void push(Object status) {
    }

        /**
     * Implementation of the update method of the XProgressHandler. Empty.
     * @param status Object
     */
    public void update(Object status) {
    }

    /**
     * Implementation of the pop method of the XProgressHandler. Empty.
     */
    public void pop() {
    }
}
-----%<-----

Now I continued testing with renamed packages. Adding the package via
API does install the package, but it is not working. Is there a failure
in the code?

Maybe that helps to give me a hint how to continue.

Greetings, Tobias

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to