Announcement Announcement Module
Collapse
No announcement yet.
STS on stand-alone network? Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • STS on stand-alone network?

    My team does development on a stand-alone network. I'd like to upgrade from vanilla Eclipse over to STS since we're a Grails shop, but I'm wondering how extension installation would be handled in the absence of an Internet connection.

    Can some kind soul enlighten me as to these matters?

  • #2
    Hi,

    The STS extension install mechanism will not work without internet connection. To solve this issue you could mirror our extension P2 repository (more details upon request) and host that in house. Then use normal Eclipse/STS update manager to install the Grails and Groovy support.

    Just today I filed the following JIRA which will allow you to override any URL used in STS to point different URLs. This will also solve the Extension Install issue as you can then host your own extension site.

    STS-638: As a corporate user, I want to contribute my own URLs for everything that STS consumes from the internet
    https://issuetracker.springsource.com/browse/STS-638

    Let me know if you want more details about hosting your own STS extension P2 update site.

    Christian

    Comment


    • #3
      I had feared that would be the case. Yes, please tell me the details regarding the hosting of a mirror. Also, I note that the fix is targeted at the 2.3.0 release. What would the timetable be for that release?

      Many thanks.
      -U

      Comment


      • #4
        i'm also interested in the answer as i'm facing the same situation

        Comment


        • #5
          I'll provide a required documentation early next week.

          Sorry for the delay.

          Christian

          Comment


          • #6
            Hello Christian, just wondering if there was any progress with this
            thanks

            Comment


            • #7
              Create ant build file:

              Code:
              <?xml version="1.0" encoding="UTF-8"?>
              <project name="p2mirror" default="default" xmlns:contrib="antlib:net.sf.antcontrib">
                      <description>
                          description
                      </description>
              
              	<target name="setup_windows">
                  	        <property name="REPO_HOME" value="C:/java/eclipse_3.5/repo"></property>
              	</target>
              
              	<target name="windows" depends="setup_windows">
              		<antcall target="STS" />
              	</target>
              
              	<target name="build_aggregate_repo" depends="setup_windows">
              		<contrib:for param="dir">
              			<dirset dir="${REPO_HOME}" includes="*">
              			</dirset>
              			<sequential>
              				<echo>@{dir}</echo>
              				<p2.composite.repository description="Eclipse plugins" >
              					<repository location="file://${REPO_HOME}/../eclipse_repo" name="Eclipse plugins" compressed="false"/>
              					<add>
              						<repository location="file://@{dir}" />
              					</add>
              				</p2.composite.repository>
              			</sequential>
              		</contrib:for>
              	</target>
              
                  <target name="anyedit">
              	    <echo>anyedit</echo>
              	    <p2.mirror verbose="true">
              		    <repository location="${REPO_HOME}/anyedit" name="anyedit" append="true"/>
              		    <source>
              			    <repository location="http://andrei.gmxhome.de/eclipse/" />
              		    </source>
              		    <iu id="AnyEditTools.feature.group" version="" />
              		    <iu id="EclipseSkins.feature.group" version="" />
              		    <iu id="de.loskutov.BytecodeOutline.feature.feature.group" version="" />
              		    <iu id="JDepend4Eclipse.feature.group" version="" />
              		    <iu id="FileSync.feature.group" version="" />
              	    </p2.mirror>
                  </target>
              
                  <target name="ajdt2">
              	    <echo>ajdt2</echo>
              	    <p2.mirror verbose="true">
              		    <repository location="${REPO_HOME}/adjt2_35/" name="AJDT2_35" append="true" />
              		    <source>
              			    <repository location="http://download.eclipse.org/tools/ajdt/35/update" />
              		    </source>
              		    <iu id="org.eclipse.ajdt" version="" />
              		    <iu id="org.eclipse.ajdt.source" version="" />
              		    <iu id="org.eclipse.ajdt.other" version="" />
              	    	<!--
              		    <slicingoptions includeOptional="true" includeNonGreedy="false" followStrict="true" />
              		    -->
              	    </p2.mirror>
                  </target>
              
                  <target name="subclipse16">
              	    <echo>subclipse 1.6</echo>
              	    <p2.mirror verbose="true">
              		    <repository location="${REPO_HOME}/subclipse16/" name="subclipse" append="true" />
              		    <source>
              			    <repository location="http://subclipse.tigris.org/update_1.6.x" />
              		    </source>
              	    	<!--
              		    <slicingoptions includeOptional="true" includeNonGreedy="false" followStrict="true" />
              		    -->
              	    </p2.mirror>
                  </target>
              
              	<target name="eclemma">
              	    <p2.mirror verbose="true">
              			    <repository location="${REPO_HOME}/eclemma/" name="ECLEMMA" append="true" />
              			    <source>
              				    <repository location="http://update.eclemma.org/" />
              			    </source>
              			    <iu id="com.mountainminds.eclemma.feature.feature.group" version="" />
              		    </p2.mirror>
              	</target>
              
              	<target name="findbugs">
              		<echo>findbugs</echo>
                  	         <p2.mirror verbose="true">
              			<repository location="${REPO_HOME}/findbugs" name="findbugs" append="true"/>
              			<source>
              				<repository location="http://findbugs.cs.umd.edu/eclipse/" />
              			</source>
              			<iu id="edu.umd.cs.findbugs.plugin.eclipse.feature.group" version="" />
              		</p2.mirror>
              	</target>
              
              	<target name="pmd">
              		<echo>pmd</echo>
                  	<p2.mirror verbose="true">
              		<repository location="${REPO_HOME}/pmd" name="pmd" append="true"/>
              			<source>
              				<repository location="http://pmd.sf.net/eclipse/site.xml" />
              			</source>
              			<iu id="net.sourceforge.pmd.eclipse.feature.group" version="" />
              		</p2.mirror>
              	</target>
              
              	<target name="m2eclipse">
              		<echo>m2eclipse</echo>
              	   	<p2.mirror verbose="true">
              		<repository location="${REPO_HOME}/m2eclipse" name="m2eclipse" append="true"/>
              			<source>
              				<repository location="http://m2eclipse.sonatype.org/update-dev/" />
              			</source>
              			<iu id="Maven Integration" version="" />
              			<iu id="Maven Optional Components" version="" />
              			<iu id="Maven Project Configurators" version="" />
              		</p2.mirror>
              	</target>
              
                     <target name="checkstyle">
              		<echo>checkstyle</echo>
                  	        <p2.mirror verbose="true">
              			<repository location="${REPO_HOME}/checkstyle" name="checkstyle" append="true"/>
              			<source>
              				<repository location="http://eclipse-cs.sf.net/update/" />
              			</source>
              			<!--
              			<iu id="net.sf.eclipsecs.feature.group" version="5.0.0.200906281855-final" />
              			-->
              		</p2.mirror>
              	</target>
              
              	<target name="propedit">
              		<echo>propedit</echo>
              		<p2.mirror verbose="true">
                  			<repository location="${REPO_HOME}/propedit" name="propedit" append="true"/>
                  			<source>
                  				<repository location="http://propedit.sourceforge.jp/eclipse/updates/" />
                  			</source>
                      		<iu id="jp.gr.java_conf.ussiy.app.propedit.feature.group" version="5.3.3" />
                      		<iu id="jp.gr.java_conf.ussiy.app.propedit.hyperlink.feature.group" version="1.0.2" />
                      	</p2.mirror>
              	</target>
              
              	<target name="moreunit">
              		<echo>moreunit</echo>
              		<p2.mirror verbose="true">
              			<repository location="${REPO_HOME}/moreunit" name="moreunit" append="true"/>
              			<source>
              				<repository location="http://moreunit.sourceforge.net/org.moreunit.updatesite/"/>
              			</source>
              			<iu id="moreUnit.feature.group" version="" />
              		</p2.mirror>
              	</target>
              
               	<target name="STS">
              		<echo>Sprint Tools Suite</echo>
              		<p2.mirror verbose="true">
              			<repository location="${REPO_HOME}/STS" name="STS" append="true" />
              			<source>
              				<repository location="http://dist.springframework.org/snapshot/IDE/nightly" />
              				<repository location="http://dist.springsource.com/snapshot/DMS-TOOLS/nightly" />
              				<repository location="http://dist.springsource.com/snapshot/STS/nightly/e3.4" />
              			</source>
              			<iu id="Core / dm Server Tools" version="" />
              			<iu id="Core / STS" version="" />
              			<iu id="Core / Spring IDE" version="" />
              			<iu id="Extensions / Spring IDE" version="" />
              			<iu id="Integrations / Spring IDE" version="" />
              			<iu id="Resources / Spring IDE" version="" />
              		</p2.mirror>
              <!-- no need...
              		<slicingoptions includeOptional="true" includeNonGreedy="false" followStrict="true" />
              -->
              	</target>
              </project>
              You can use it directly from your eclipse installation - you'll have to run it from eclipse JVM!

              All you have to do is run target "windows". If you want to fetch more plugins just add them to the "windows" target.

              build_aggregate_repo is left as an example how to build p2 repo that contains multiple features (sort of "corporate p2 repo"). You can extend this build file with your own custom targets.


              Also, notice that I used ant contrib lib so you have couple of options:
              - install and use your own ant and ant contrib (just replace ANT_HOME in eclipse)
              - remove antcontrib and targets that use it (aggregate repo, windows)

              IU names are needed only if you don't intend to do the full mirror of the p2 repo.

              In case someone would like to find out the names of IU:
              - opening Help -> Install New software
              - selecting update site as usual
              - select desired feature, category of features, or plugin
              - click on the More... in the Details group of the dialog
              - select General information from the tree in a newly open dialog
              - use Identifier as IU name

              More information on p2 ant tasks can be found at:

              - http://wiki.eclipse.org/Equinox/p2/Ant_Tasks
              - http://wiki.eclipse.org/Equinox_p2_Repository_Mirroring


              If you don't want to run this from GUI you can create shell script or a .bat file that executes antRunner app from your eclipse:

              Code:
              /cygdrive/c/java/eclipse_3.5/eclipse351_wtp/eclipse/eclipsec.exe -nosplash --launcher.suppressErrors -application org.eclipse.ant.core.antRunner -buildfile build.xml $@
              "$@" represents all of the arguments passed through command line - should be names of the ant targets you want to execute (STS, springide, emma).
              Last edited by iloncar; Dec 12th, 2009, 08:39 AM. Reason: replaced repository update sites, corrections

              Comment


              • #8
                Originally posted by Christian Dupuis View Post
                The STS extension install mechanism will not work without internet connection.
                Why doesn't it work like other Eclipse plugins where you can just download a zip file of the site?

                Comment


                • #9
                  Coroporate STS

                  Originally posted by digweed View Post
                  Why doesn't it work like other Eclipse plugins where you can just download a zip file of the site?
                  I agree. The Explanation of mirroring does not help at all since if I am working in an environment with no Internet connection I am unlikely to have enough space or access to create a mirror!

                  This make this tool totally useless in most corporate environments!

                  Please consider another method which satisfies the following criteria found in most large corporates:

                  * no or limited internet access (at best only http allowed)
                  * Limited space available on the PC (controlled environment)
                  * Easy to implement for beginners (when introducing this tool it is not always to java experts often beginners)

                  copying a JAR/ZIP into a folder most can cope with.

                  Comment


                  • #10
                    Originally posted by chrisryder View Post
                    I agree. The Explanation of mirroring does not help at all since if I am working in an environment with no Internet connection I am unlikely to have enough space or access to create a mirror!
                    I'm sorry if mirroring instructions aren't helpful (btw. I do not work for SpringSource).

                    You could do it from home (mirror size is ~75MB). If you're not an experienced eclipse user you could download complete STS eclipse bundle. Other than that I'm out of ideas.

                    Comment


                    • #11
                      Originally posted by iloncar View Post
                      I'm sorry if mirroring instructions aren't helpful (btw. I do not work for SpringSource).

                      You could do it from home (mirror size is ~75MB). If you're not an experienced eclipse user you could download complete STS eclipse bundle. Other than that I'm out of ideas.
                      How does one start the mirror? Something as simple as wget?

                      I don't see a "complete STS eclipse bundle" to download on springsource.org. But yes, I would be perfectly happy if the Grails/Groovy stuff was just built in to STS instead of being a separate download.

                      Either way, STS will not be a viable solution for us until this is resolved.

                      Comment


                      • #12
                        Originally posted by digweed View Post
                        How does one start the mirror? Something as simple as wget?
                        You have to run ant tasks from within eclipse that will mirror p2 repositories.

                        Have you tried to run mirror task using instructions I gave?

                        I don't see a "complete STS eclipse bundle" to download on springsource.org. But yes, I would be perfectly happy if the Grails/Groovy stuff was just built in to STS instead of being a separate download.
                        What about
                        http://www.springsource.com/products...suite-download ?

                        I tought it comes with grails support. Anyway, you can always download STS, add more plugins to it, zip it and share it with other developers.

                        Also, take a look at this article:

                        http://edgblog.wordpress.com/2010/01...lipse-plugins/

                        you could use an existing eclipse install as an update site.

                        Comment


                        • #13
                          Originally posted by iloncar View Post
                          What about
                          http://www.springsource.com/products...suite-download ?

                          I tought it comes with grails support.
                          Nope, Grails/Groovy stuff has to be downloaded separately once STS is installed.

                          I have no doubts that I can hack something together but that is not really the point. I am not the only one in this situation, and a more elegant solution would probably help a lot of people.

                          Comment

                          Working...
                          X