Remote Import

Name Remote Import Plugin
Vendor Atlassian Software Systems (Website)
Authors Jens Schumacher, Don Brown
Homepage http://confluence.atlassian.com/display/CONFEXT/Remote+Import
Issue Management http://developer.atlassian.com/jira/browse/RIMP
Categories Administration
Version 0.9.5
Availability Confluence v2.7 to v2.10-m1
State Beta
Support Unsupported Plugins
License Freeware / Open Source (BSD)
Price Free
Release Docs http://confluence.atlassian.com/display/CONFEXT/Remote+Import
Java API Docs n/a
Download Source http://svn.atlassian.com/svn/public/contrib/confluence/remoteimport-plugin/tags/remoteimport-0.9.5
Download JAR remoteimport-0.9.5.jar

Description/Features

The Remote Import plugin allows to import data from a remote Confluence instance. Spaces, users and groups can be migrated from one instance to another.

Installation

You need to have System Administrator permissions in order to install and configure plugins.

Installing and Configuring Plugins using the Plugin Repository Client

If the plugin you wish to install is listed in the Confluence Plugin Repository, you can use the Confluence Repository Client to install it. Just find the plugin in the list and click the 'install' link. There's more information in Installing and Configuring Plugins using the Plugin Repository Client.

Installing and Configuring Plugins Manually

If the plugin you wish to install is not listed in the Confluence Plugin Repository, you can still install it by uploading it to your Confluence site:

  1. In the 'Administration' section of Confluence, click the Plugin Repository link.
  2. Click the 'Upload' tab.
  3. Use the 'Browse' button to find the plugin jar you wish to install.
  4. Select the jar file and click 'Open'.
  5. The plugin will be uploaded from your machine to Confluence, and will be automatically installed.

There's more information in Installing and Configuring Plugins manually.

RELATED TOPICS

Removing malfunctioning plugins

  • The plugin has to be installed on both instances, the remote and the local instance of Confluence
  • Ensure that both instances are running the same major version of Confluence

Usage

The plugin will add a new Remote Import link to the global administration in the Administration section.

The Remote Import screen has two section.

  • Remote Login Details
  • What do you want to import

The remote login details specify the instance from which you want to import the data as well as a username and password to log into the instance. Please note that you will only be able to import spaces to which the specified user has access.

The second section allows you to specify the type of data you want to import.

Property Description
Space (key) the key a single space
Space Group (key) the key of the space group
User Group the name of a single user group
Groups all groups starting with the specified key. Eg. the key "sales" will retrieve the groups sales-interal and sales-external

Examples

Version History

Version Date State License Price
Show description 0.9.5 (#106) 13 Mar 2008 Beta Freeware / Open Source (BSD) Free

Release Notes

This release resolves an issue with user-migration and improves error messages displayed to the user during that process.

  • Fixed problem with migrating user passwords (RIMP-6)
  • Improved error message handling

Contributors

  • Jens Schumacher — Developer

Show description 0.9.4 (#105) 07 Feb 2008 Beta Freeware / Open Source (BSD) Free

Release Notes

This release features a check for the group migration to prevent accidental migration of all users and groups. It also makes this plugin compatible with Confluence 2.7.1 which by default utilizes Atlassian-User for user-management. If you are still using OS-User, you will have to use the Remote Import Plugin 0.9.

  • Improved input verification
  • Confluence 2.7.1 (Atlassian User) compatibility

Contributors

  • Jens Schumacher — Developer

Show description 0.9 (#101) 19 Sep 2007 Beta Freeware / Open Source (BSD) Free

Release Notes

This release brings along improvements to the import UI as well as the option to rename user groups upon import

  • UI Improvements
  • Renaming of user groups
  • Separate keys for different import options

Contributors

  • Jens Schumacher — Developer

Show description 0.8 (#100) 07 Sep 2007 Beta Freeware / Open Source (BSD) Free

Release Notes

This plugin allows to import content from another Confluence instance. It supports the migration of spaces, users and groups.

The 0.8 release is a beta release.
  • Beta Release

Contributors

  • Jens Schumacher — Developer
  • Don Brown — Developer

Open Issues

No issue tracking setup for this plugin.

Screenshots

Labels

plugin plugin Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Sep 20, 2007

    Guy Fraser says:

    The JIRA project doesn't seem to exist yet so posting a couple of feature reques...

    The JIRA project doesn't seem to exist yet so posting a couple of feature requests here before I forget...

    I guess normally this plugin will be used behind the company firewall and as only admins can use it then it makes sense to have the plugin do what it currently does.

    However, I'd love to use this plugin on a public server - that being the case, some extra controls are needed...

    1. Ability to define which spaces/etc can be exported on source server.

    It would be sweet if the server that contains the original data could be configured to say which things it will allow to be exported to another server.

    For example, I might want our user guides to be transferrable to other sites, but not our website space.

    If none of these settings are defined, then the default should be "nothing can be exported". You have to add things to make them available for export and maybe also have an "All" checkbox if you wanted all spaces or all users, etc., to be exportable.

    2. Ability for destination server to show a list of available things that can be imported.

    Based on #1 above, the user would enter details for the source server and the plugin would query the source server to ask for a list of available things. The admin then chooses what they want from the list and away they go.

    3. Ability to say which users are allowed to use the export

    As the admin of a destination server might not be an admin of the source server, it would be useful if we could list which users (they would need account on source server) are allowed to perform the import to from the remote server.

    4. Ability for source server to export to a remote destination server

    From what I can see, at present the remote (destination) server logs in to the source server and pulls data from it.

    It would be useful if that could also work the other way round - ie. source server pushes data to the remote destination server. In this scenario, the source server would need to log in to the remote destination server and push the content in to it.

    5. Ability to do scheduled transfers

    The ability to schedule hourly, daily, weekly transfers of data would be most useful.

    1. Oct 03, 2007

      Jens Schumacher says:

      Guy, I've added a Jira project for this plugin, so feel free to create future ...

      Guy,

      I've added a Jira project for this plugin, so feel free to create future issues in Jira.

      Regarding your suggestions:

      1-3: The use is currently limited to administrators because the plugin is located in the global administration. However, that doesn't mean that you will have to be an administrator on the remote instance. You can login as any user and export content from that instance. However, there are a few restrictions:

      • You have to have export permission for the space you want to export on the remote server.
      • You have to be a member of the group you want to export.

      4. I had already a customer asking for this so I will definitely put that up on the roadmap.

      5. Agreed, scheduled transfers would be useful to merge data. However, for this to work, local space has to be removed before the import is done. This functionality gives you the ability to shoot yourself in the foot and I would rather not hand over the gun for this That said, there are ways to reduce the risk of accidently deleting your data and we can certainly look into implementing the feature in a future version.

  2. Feb 22, 2008

    Aaron Godert says:

    This plugin looks great!  We've got two separate instances on the same ...

    This plugin looks great!  We've got two separate instances on the same version, and our users and groups are sync'd up already (or will be here shortly).

    So, my question is if all of that is already taken care of and now we only want to import space content, will the plugin know that the users and groups already exist on the target system and just ignore creating or updating them? 

  3. Feb 22, 2008

    Aaron Godert says:

    Hi, I have a couple other questions: Does it leave the old space on the source...

    Hi, I have a couple other questions:

    1. Does it leave the old space on the source system intact? It doesn't delete it, right?
    2. It sounds like I have to verify on the destination server that the spacekey doesn't already exist or it will overwrite it, right?
    3. When I choose a group or groups to import, does it also bring over users in those groups and create them if necessary? What if the users already exist? What if any of groups already existed?

    Thanks!

    1. Feb 25, 2008

      Choy Li Tham says:

      Hi Aaron, If you have any queries regarding the usage of the Remote Import plug...

      Hi Aaron,

      If you have any queries regarding the usage of the Remote Import plugin, I would recommend you to contact the plugin authors as stated in this page, so that they should be able to resolve your queries.

      Regards,
      Choy Li

    2. Mar 06, 2008

      Jens Schumacher says:

      1. The remote space will not be deleted. 2. The plugin will not delete any data....

      1. The remote space will not be deleted.
      2. The plugin will not delete any data. The migration will be aborted if a space with the same key already exists on the local instance.
      3. All users and groups will be copied. If the group already exists, the remote users will be added to that group. If a user already exists, the user from the remote server will not be migrated, but the local user will still be added to the required groups.

  4. Mar 28, 2008

    Patricia Kale says:

    Hello! I am trying to use this plugin to migrate several spaces from our de...

    Hello!

    I am trying to use this plugin to migrate several spaces from our development Confluence instance to our production instance. However, I have run into a problem. After I enter the URL, username, password, and space key, then press import, I receive this error message: Import failed: Unable to contact remote Confluence server and execute export. On the running task page, I get the following message: Status: Import failed: Unable to contact remote Confluence server and execute export
    Time Elapsed: 30 seconds
    Completion: 100% complete

    The entries in the stdout log file are voluminous. I think that these bits might give a clue:

    Mar 28, 2008 1:47:22 PM org.apache.catalina.startup.Catalina start
    INFO: Server startup in 161813 ms
    
    Exception in thread "Remote Space Import task" java.lang.RuntimeException: java.lang.IllegalArgumentException: Unable to contact remote Confluence server and execute export
            at com.atlassian.confluence.extra.remoteimport.RemoteImportAction$CompleteImportTask$1.doInTransaction(RemoteImportAction.java:124)
            at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:127)at com.atlassian.confluence.extra.remoteimport.RemoteImportAction$CompleteImportTask.runInternal(RemoteImportAction.java:85)
            at com.atlassian.confluence.util.longrunning.ConfluenceAbstractLongRunningTask.run(ConfluenceAbstractLongRunningTask.java:21)
            at java.lang.Thread.run(Thread.java:595)
    
    Caused by: java.lang.IllegalArgumentException: Unable to contact remote Confluence server and execute export
            at com.atlassian.confluence.extra.remoteimport.DefaultSpaceImportManager.exportRemoteSpace(DefaultSpaceImportManager.java:80)
            at com.atlassian.confluence.extra.remoteimport.DefaultSpaceImportManager.importRemoteSpace(DefaultSpaceImportManager.java:279)
            at com.atlassian.confluence.extra.remoteimport.RemoteImportAction$CompleteImportTask.importSpace(RemoteImportAction.java:181)
            at com.atlassian.confluence.extra.remoteimport.RemoteImportAction$CompleteImportTask.access$2400(RemoteImportAction.java:66)
            at com.atlassian.confluence.extra.remoteimport.RemoteImportAction$CompleteImportTask$1.doInTransaction(RemoteImportAction.java:115)
            ... 4 more
    
    Caused by: java.net.UnknownHostException: https
            at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
            at java.net.Socket.connect(Socket.java:516)
            at java.net.Socket.connect(Socket.java:466)
            at sun.net.NetworkClient.doConnect(NetworkClient.java:157)
            at sun.net.www.http.HttpClient.openServer(HttpClient.java:365)
            at sun.net.www.http.HttpClient.openServer(HttpClient.java:477)
            at sun.net.www.http.HttpClient.<init>(HttpClient.java:214)
            at sun.net.www.http.HttpClient.New(HttpClient.java:287)
            at sun.net.www.http.HttpClient.New(HttpClient.java:299)
            at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:795)
            at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:747)
            at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:672)
            at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:839)
            at org.apache.xmlrpc.DefaultXmlRpcTransport.sendXmlRpc(DefaultXmlRpcTransport.java:83)
            at org.apache.xmlrpc.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:71)
            at org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:193)
            at org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:184)
            at org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:177)
            at com.atlassian.confluence.extra.remoteimport.DefaultSpaceImportManager.call(DefaultSpaceImportManager.java:362)
            at com.atlassian.confluence.extra.remoteimport.DefaultSpaceImportManager.getLoginToken(DefaultSpaceImportManager.java:357)
            at com.atlassian.confluence.extra.remoteimport.DefaultSpaceImportManager.exportRemoteSpace(DefaultSpaceImportManager.java:69)
            ... 8 more

    We are using SSL on the machines running both Confluence instance (URL is https://). Could this be causing the problem?
    Thanks much!
    Pat

    1. Mar 30, 2008

      Choy Li Tham says:

      Hi Patricia, Please create a support ticket at the following issue tracker for ...

      Hi Patricia,

      Please create a support ticket at the following issue tracker for further investigation:

      Regards,
      Choy Li

  5. May 19

    Imtiaz B Syed says:

    Dear Jens/Brown, I would like to know whether this plugin will work the sam...

    Dear Jens/Brown,

    I would like to know whether this plugin will work the same even if we change the context from confluence to some other name like 'containerdoc'.

    Because I observe there are some remote calls based on string 'confluence1.xxx'. It will be a great help if you could explain the role of the string 'confluence1.xxx' in this implimentation and what are the other similar strings to call remote services?

    Thanks
    Imtiaz

  6. May 22

    Imtiaz B Syed says:

    When we do a Remote import thru this plug-in it is not importing the labels of t...

    When we do a Remote import thru this plug-in it is not importing the labels of the source server space to target server space. Any clue in this how to get it done?

  7. Jul 29

    Aaron Hamid says:

    @ Patricia and Choy: I think this is a bug in the plugin.  It does not app...

    @ Patricia and Choy:

    I think this is a bug in the plugin.  It does not appear to be fixed as of this posting.  There is a check that prepends the "http://" incorrectly yielding a url like http://https://urlyouspecified/ and therefore the unknownhostexception.  Here is a trivial patch that fixes it:

    Index: C:/data/development/projects/remoteimport-0.9.5/src/main/java/com/atlassian/confluence/extra/remoteimport/AbstractRemoteImportAction.java
    ===================================================================
    --- C:/data/development/projects/remoteimport-0.9.5/src/main/java/com/atlassian/confluence/extra/remoteimport/AbstractRemoteImportAction.java    (revision 21411)
    +++ C:/data/development/projects/remoteimport-0.9.5/src/main/java/com/atlassian/confluence/extra/remoteimport/AbstractRemoteImportAction.java    (working copy)
    @@ -28,7 +28,7 @@
             {
                 try
                 {
    -                if (!url.startsWith("http://"))
    +                if (!url.startsWith("http://") && !url.startsWith("https://"))
                         url = "http://"+url;
                    
                     parsedUrl = new URL(url + "/rpc/xmlrpc");
     

    1. Jul 30

      Patricia Kale says:

      Hi Aaron, Thanks for replying to my post. I submitted a Jira issue for this pro...

      Hi Aaron,

      Thanks for replying to my post. I submitted a Jira issue for this problem, which was resolved for me. The instructions on this page addressed my problem:

      http://confluence.atlassian.com/display/JIRA/Connecting to SSL services

      -Pat