This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 158681
Collapse All | Expand All

(-)a/versioning/apichanges.xml (+18 lines)
Lines 106-111 Link Here
106
106
107
    <changes>
107
    <changes>
108
        
108
        
109
        <change>
110
            <api name="versioning_spi"/>
111
            <summary>Added getCollocationQueryImplementation() method to VersioningSystem</summary>
112
            <version major="1" minor="9"/>
113
            <date day="17" month="2" year="2009"/>
114
            <author login="tstupka"/>
115
            <compatibility addition="yes"/>
116
            <description>
117
                New method getAttribute(File file, String attrName). Provides additional VCS specific information
118
                about versioned files. The only supported attribute at this moment is 
119
                "ProvidedExtensions.RemoteLocation" for which VCS systems
120
                overrinding getAttribute should return the files remote repository, resp. remote origin.
121
                (e.g. Repository URL in case of SVN or default pull in case of Mercurial).
122
            </description>
123
            <class package="org.netbeans.modules.versioning.spi" name="VCSInterceptor"/>
124
            <issue number="158681"/>
125
        </change>
126
109
        <change>
127
        <change>
110
            <api name="versioning_spi"/>
128
            <api name="versioning_spi"/>
111
            <summary>Added getCollocationQueryImplementation() method to VersioningSystem</summary>
129
            <summary>Added getCollocationQueryImplementation() method to VersioningSystem</summary>
(-)a/versioning/nbproject/project.properties (-1 / +1 lines)
Lines 41-47 Link Here
41
javac.source=1.5
41
javac.source=1.5
42
42
43
javadoc.name=Versioning
43
javadoc.name=Versioning
44
spec.version.base=1.9.0
44
spec.version.base=1.10.0
45
is.autoload=true
45
is.autoload=true
46
46
47
javadoc.arch=${basedir}/arch.xml
47
javadoc.arch=${basedir}/arch.xml
(-)a/versioning/src/org/netbeans/modules/versioning/FilesystemInterceptor.java (-1 / +18 lines)
Lines 55-60 Link Here
55
 */
55
 */
56
class FilesystemInterceptor extends ProvidedExtensions implements FileChangeListener {
56
class FilesystemInterceptor extends ProvidedExtensions implements FileChangeListener {
57
57
58
    /**
59
     * A verioned files remote repository or origin.
60
     */
61
    private static final String ATTRIBUTE_REMOTE_LOCATION = "ProvidedExtensions.RemoteLocation";
62
58
    private VersioningManager master;
63
    private VersioningManager master;
59
64
60
    // === LIFECYCLE =======================================================================================
65
    // === LIFECYCLE =======================================================================================
Lines 93-98 Link Here
93
        }
98
        }
94
        // can be optimized by taking out local history from the search
99
        // can be optimized by taking out local history from the search
95
        return getInterceptor(file, false).isMutable(file);
100
        return getInterceptor(file, false).isMutable(file);
101
    }
102
103
    @Override
104
    public Object getAttribute(File file, String attrName) {
105
        if(ATTRIBUTE_REMOTE_LOCATION.equals(attrName)) {
106
            return getInterceptor(file, file.isDirectory()).getAttribute(attrName);
107
        } else {
108
            return null;
109
        }
96
    }
110
    }
97
111
98
    // ==================================================================================================
112
    // ==================================================================================================
Lines 333-338 Link Here
333
            return interceptor.isMutable(file);
347
            return interceptor.isMutable(file);
334
        }
348
        }
335
349
350
        private String getAttribute(String attrName) {
351
            return interceptor.getAttribute(file, attrName);
352
        }
353
336
        public boolean beforeDelete() {
354
        public boolean beforeDelete() {
337
            lhInterceptor.beforeDelete(file);
355
            lhInterceptor.beforeDelete(file);
338
            return interceptor.beforeDelete(file);
356
            return interceptor.beforeDelete(file);
Lines 454-460 Link Here
454
                return false;
472
                return false;
455
            }
473
            }
456
        }
474
        }
457
458
//        VCSInterceptor getInterceptor() {
475
//        VCSInterceptor getInterceptor() {
459
//            return interceptor;
476
//            return interceptor;
460
//        }
477
//        }
(-)a/versioning/src/org/netbeans/modules/versioning/spi/VCSInterceptor.java (-2 / +15 lines)
Lines 55-61 Link Here
55
     */
55
     */
56
    protected VCSInterceptor() {
56
    protected VCSInterceptor() {
57
    }
57
    }
58
    
58
59
    // ==================================================================================================
59
    // ==================================================================================================
60
    // QUERIES
60
    // QUERIES
61
    // ==================================================================================================
61
    // ==================================================================================================
Lines 73-79 Link Here
73
    public boolean isMutable(File file) {
73
    public boolean isMutable(File file) {
74
        return file.canWrite();
74
        return file.canWrite();
75
    }
75
    }
76
    
76
77
    /**
78
     * Queries the versioning system for a files VCS specific attribute. At the momement the
79
     * only supported attribute name is <code>ProvidedExtensions.RemoteLocation</code>
80
     * 
81
     * @param file a file to get the attribute for
82
     * @param attrName te attributes name
83
     * @return the attributes value or null if not available
84
     * @since 1.10
85
     */
86
    public String getAttribute(File file, String attrName) {
87
        return null;
88
    }
89
77
    // ==================================================================================================
90
    // ==================================================================================================
78
    // DELETE
91
    // DELETE
79
    // ==================================================================================================
92
    // ==================================================================================================
(-)a/versioning/test/unit/src/org/netbeans/modules/versioning/spi/VCSInterceptorTest.java (-1 / +16 lines)
Lines 69-75 Link Here
69
69
70
    protected void setUp() throws Exception {
70
    protected void setUp() throws Exception {
71
        super.setUp();
71
        super.setUp();
72
        dataRootDir = new File(System.getProperty("data.root.dir"));
72
        dataRootDir = new File("/tmp/"); //new File(System.getProperty("data.root.dir"));
73
        if(!dataRootDir.exists()) dataRootDir.mkdirs();
73
        Lookup.getDefault().lookupAll(VersioningSystem.class);
74
        Lookup.getDefault().lookupAll(VersioningSystem.class);
74
        inteceptor = (TestVCSInterceptor) TestVCS.getInstance().getVCSInterceptor();
75
        inteceptor = (TestVCSInterceptor) TestVCS.getInstance().getVCSInterceptor();
75
        File f = new File(dataRootDir, "workdir/root-test-versioned/deleteme.txt");
76
        File f = new File(dataRootDir, "workdir/root-test-versioned/deleteme.txt");
Lines 94-99 Link Here
94
        file.setReadOnly();
95
        file.setReadOnly();
95
        fo.canWrite();
96
        fo.canWrite();
96
        assertTrue(inteceptor.getIsMutableFiles().contains(file));
97
        assertTrue(inteceptor.getIsMutableFiles().contains(file));
98
    }
99
100
    public void testGetAttribute() throws IOException {
101
        File f = new File(dataRootDir, "workdir/root-test-versioned");
102
        FileObject fo = FileUtil.toFileObject(f);
103
        fo = fo.createData("gotattr.txt");
104
        File file = FileUtil.toFile(fo);
105
        
106
        String attr = (String) fo.getAttribute("ProvidedExtensions.RemoteLocation");
107
        assertNotNull(attr);
108
        assertTrue(attr.endsWith(file.getName()));
109
110
        attr = (String) fo.getAttribute("whatever");
111
        assertNull(attr);
97
    }
112
    }
98
113
99
    public void testChangedFile() throws IOException {
114
    public void testChangedFile() throws IOException {
(-)a/versioning/test/unit/src/org/netbeans/modules/versioning/spi/testvcs/TestVCSInterceptor.java (+4 lines)
Lines 70-75 Link Here
70
    public boolean isMutable(File file) {
70
    public boolean isMutable(File file) {
71
        isMutableFiles.add(file);
71
        isMutableFiles.add(file);
72
        return super.isMutable(file);
72
        return super.isMutable(file);
73
    }
74
75
    public String getAttribute(File file, String attrName) {
76
        return "http://a.repository.far.far.away/" + file.getName();
73
    }
77
    }
74
78
75
    public boolean beforeCreate(File file, boolean isDirectory) {
79
    public boolean beforeCreate(File file, boolean isDirectory) {

Return to bug 158681