public static void setLockProvider(String lockProviderName) { LockProvider delegate; if (lockProviderName == null) { // for backwards compatibility delegate = new NullLockProvider(); } else { Object provider = GeoServerExtensions.bean(lockProviderName); if (provider == null) { throw new IllegalStateException( "Could not find " + lockProviderName + " lock provider in spring application context"); } else if (!(provider instanceof LockProvider)) { throw new IllegalStateException( "Found " + lockProviderName + "(" + provider.getClass().getName() + ") in application context, but it was not a LockProvider"); } delegate = (LockProvider) provider; } GlobalLockProvider lockProvider = (GlobalLockProvider) GeoServerExtensions.bean("lockProvider"); if (lockProvider.getDelegate() != delegate) { lockProvider.setDelegate(delegate); } } }
@Test public void testInitializeDatabaseWithIrrelevantTable() throws Exception { support.getConnection() .createStatement() .execute("CREATE TABLE foo (oid INTEGER PRIMARY KEY);"); JDBCResourceStoreProperties config = getConfig(true, true); JDBCResourceStore store = new JDBCResourceStore(support.getDataSource(), config); store.setLockProvider(new NullLockProvider()); { // Check that the database has a resources table with a root record ResultSet rs = support.getConnection() .createStatement() .executeQuery("SELECT * from resources where oid = 0"); assertThat(rs.next(), describedAs("found root record", is(true))); assertThat(rs.getString("name"), equalTo("")); rs.getInt("parent"); assertThat(rs.wasNull(), is(true)); assertThat(rs.getBlob("content"), nullValue()); assertThat(rs.next(), describedAs("only one root", is(false))); } }
store.setLockProvider(new NullLockProvider());
@Test public void testBasicRead() throws Exception { standardData(); JDBCResourceStoreProperties config = getConfig(true, false); JDBCResourceStore store = new JDBCResourceStore(support.getDataSource(), config); store.setLockProvider(new NullLockProvider()); Resource r = store.get("FileA"); byte[] expected = "FileA Contents".getBytes(); InputStream in = r.in(); try { byte[] result = new byte[expected.length]; assertThat( in.read(result), describedAs("file contents same length", equalTo(expected.length))); assertThat(result, equalTo(expected)); assertThat(in.read(), describedAs("stream is empty", equalTo(-1))); } finally { in.close(); } }
@Test public void testLongQuery() throws Exception { standardData(); JDBCResourceStoreProperties config = getConfig(true, false); JDBCResourceStore store = new JDBCResourceStore(support.getDataSource(), config); store.setLockProvider(new NullLockProvider()); Resource r = store.get("DirC/DirF/DirG/FileH"); assertThat(r, not(nullValue())); assertThat(r, resource()); }
@Test public void testBasicDirectoryQuery() throws Exception { standardData(); JDBCResourceStoreProperties config = getConfig(true, false); JDBCResourceStore store = new JDBCResourceStore(support.getDataSource(), config); store.setLockProvider(new NullLockProvider()); Resource r = store.get("DirE"); assertThat(r, not(nullValue())); assertThat(r, directory()); }
@Test public void testBasicResourceQuery() throws Exception { standardData(); JDBCResourceStoreProperties config = getConfig(true, false); JDBCResourceStore store = new JDBCResourceStore(support.getDataSource(), config); store.setLockProvider(new NullLockProvider()); Resource r = store.get("FileA"); assertThat(r, not(nullValue())); assertThat(r, resource()); }
@Test public void testBasicUndefinedQuery() throws Exception { standardData(); JDBCResourceStoreProperties config = getConfig(true, false); JDBCResourceStore store = new JDBCResourceStore(support.getDataSource(), config); store.setLockProvider(new NullLockProvider()); Resource r = store.get("DoesntExist"); assertThat(r, not(nullValue())); assertThat(r, undefined()); }
@Before public void setUp() throws Exception { support = new H2TestSupport(); standardData(); JDBCResourceStoreProperties config = mockConfig(true, false); replay(config); store = new JDBCResourceStore(support.getDataSource(), config); store.setLockProvider(new NullLockProvider()); store.setCache(new SimpleResourceCache(folder.getRoot())); } }
@Before public void setUp() throws Exception { support = new PostgresTestSupport(); standardData(); JDBCResourceStoreProperties config = mockConfig(true, false); replay(config); store = new JDBCResourceStore(support.getDataSource(), config); store.setLockProvider(new NullLockProvider()); store.setCache(new SimpleResourceCache(folder.getRoot())); } }