Page 1 of 2 12 LastLast
Results 1 to 10 of 13

Thread: STS on stand-alone network?

  1. #1
    Join Date
    Nov 2009
    Posts
    2

    Question 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. #2
    Join Date
    Aug 2004
    Location
    Duesseldorf, Germany
    Posts
    1,210

    Default

    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
    Christian Dupuis
    SpringSource, a division of VMware
    Lead, SpringSource Tools Team
    http://www.springsource.com
    http://twitter.com/cdupuis

  3. #3
    Join Date
    Nov 2009
    Posts
    2

    Default

    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

  4. #4
    Join Date
    Oct 2009
    Posts
    13

    Default

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

  5. #5
    Join Date
    Aug 2004
    Location
    Duesseldorf, Germany
    Posts
    1,210

    Default

    I'll provide a required documentation early next week.

    Sorry for the delay.

    Christian
    Christian Dupuis
    SpringSource, a division of VMware
    Lead, SpringSource Tools Team
    http://www.springsource.com
    http://twitter.com/cdupuis

  6. #6
    Join Date
    Oct 2009
    Posts
    13

    Default

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

  7. #7

    Default

    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 at 08:39 AM. Reason: replaced repository update sites, corrections
    Ivica Loncar

  8. #8
    Join Date
    Jul 2007
    Posts
    7

    Default

    Quote 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?

  9. #9
    Join Date
    Jan 2010
    Location
    Herborn, Germany
    Posts
    1

    Unhappy Coroporate STS

    Quote 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.

  10. #10

    Default

    Quote 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.
    Ivica Loncar

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •